Contract 0x2c8368f8f474ed9af49b87eac77061beb986c2f1 3

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x6c1bd823e9c48a0e5d46b125c12ada14999313ab61a3e2664e2e4daeb3a2ec7bApprove109958962021-09-17 14:53:291 hr 24 mins ago0xec52cee3e7ef4006af759e41ff3df129fdb2940b IN  Leonicorn Swap: LEOS Token0 BNB0.000222515
0xd864e8e39b0c0173f5e646ed1a4f16736375ba34fc8edff278676b9e66513668Approve109938772021-09-17 13:12:293 hrs 5 mins ago0x83fb050f8c965c49e503b41fbf355d162aa1d3b2 IN  Leonicorn Swap: LEOS Token0 BNB0.000222515
0xe068df5b9ef9836a9bf3f17cf94745283b1f05ee941458041f61fa320ac767c5Transfer109934632021-09-17 12:51:443 hrs 26 mins ago0xb13ec4c12d199ca073bb119848d4de1e416e8471 IN  Leonicorn Swap: LEOS Token0 BNB0.000465935
0xdd40ad0ce2d243c55f473d60368dcd49cfe97235b0371684953d94857da74edcTransfer109930292021-09-17 12:29:533 hrs 48 mins ago0x6c77f9230de48ec4bf5fcc9352b7714fdf4c2fda IN  Leonicorn Swap: LEOS Token0 BNB0.000465995
0x16cd66c4a46373979bda5cdaee1c51cfd22461dfd5dc1a8b2a98e17d2aab9d8eTransfer109929132021-09-17 12:24:053 hrs 54 mins ago0x741f0e84e8115dc41a03f27ade25ce8bfca3cd35 IN  Leonicorn Swap: LEOS Token0 BNB0.000465935
0xf0fd3af068b3e65d8b5494f71579ca7a6891fe3e2d0f86cd6688cbd317d3e32fTransfer109928972021-09-17 12:23:173 hrs 54 mins ago0x741f0e84e8115dc41a03f27ade25ce8bfca3cd35 IN  Leonicorn Swap: LEOS Token0 BNB0.000465995
0x8a19930438905fcb7eec5d90149c51ad8034ed507e9994fc4cea80b12c8ba9fbTransfer109928902021-09-17 12:22:563 hrs 55 mins ago0x741f0e84e8115dc41a03f27ade25ce8bfca3cd35 IN  Leonicorn Swap: LEOS Token0 BNB0.000465995
0x346c272c6c033738b1c8d310c2918c2aa0c4a9cba3328041412efccddb1cc098Transfer109928422021-09-17 12:20:323 hrs 57 mins ago0xe9d2afff18f08375d5b7a8a804e272b6c81ceb9f IN  Leonicorn Swap: LEOS Token0 BNB0.0004301605
0xaee323d7ea0e75fda17cb7183d5bd1a91ba04b33632cd05e74b423af24418456Approve109920382021-09-17 11:40:204 hrs 37 mins ago0x56f048bdd5a58ed261abb337029bc4adcf56d28a IN  Leonicorn Swap: LEOS Token0 BNB0.000222515
0x86758459e67f44734295f0d113d615c90dfcc9810bffa28ebfec83840100e43eApprove109870932021-09-17 7:33:008 hrs 45 mins ago0xad99cd4616ed945e48d106d013e5272af1324430 IN  Leonicorn Swap: LEOS Token0 BNB0.000222515
0x70373c3f5fcf9da7a968b7edfbd4f3a9782001074d431add241c9ff8447fd8b8Transfer109870552021-09-17 7:31:068 hrs 47 mins ago0x6d037738002156dc9e112c4dff49656f0f25c5ed IN  Leonicorn Swap: LEOS Token0 BNB0.000391055
0x280658fae863106a09df49e79928149c4c4dcfe924c904d58e32462678da4613Transfer109870552021-09-17 7:31:068 hrs 47 mins ago0x1599014a1c47e64a26cb313d0df3e97ff596acee IN  Leonicorn Swap: LEOS Token0 BNB0.000391055
0x3ccf96d8d0c72fd1ffa5e3dfd4f254ff01cc302a57f2b6e264ce7cb95d515927Transfer109870552021-09-17 7:31:068 hrs 47 mins ago0xaa1eef0f3fd5b2aa6cd791c43d932fa3804a1115 IN  Leonicorn Swap: LEOS Token0 BNB0.000390935
0xc54f51aac1349a4e22f403d5e3c8bd91bd3d736b274a2efbd962c91717213342Transfer109870552021-09-17 7:31:068 hrs 47 mins ago0xd5e422467380254c15957cfde286b1aef7aa30fa IN  Leonicorn Swap: LEOS Token0 BNB0.000391055
0x6ce0aa15cf7e2be265b03a7985743ee2ad8014a8bf1c209cd51991918738d783Approve109870372021-09-17 7:30:128 hrs 47 mins ago0x506d4155fe8e6330ce9985212910b2a01405c490 IN  Leonicorn Swap: LEOS Token0 BNB0.000222515
0xf3b2a2bfde3d9b297afcb02d3a85654f43c4faf7d64d6e31aa03bcee866181edTransfer109869652021-09-17 7:26:368 hrs 51 mins ago0xc7bc41d37981b31cdd6e6f46069c9fe36ea84dde IN  Leonicorn Swap: LEOS Token0 BNB0.000390995
0x40d206953d5bfd3a5e74e77c3fba1d1d0fa40fb1d5f3582295df28586ba2a17bTransfer109869652021-09-17 7:26:368 hrs 51 mins ago0xdda838ea85054c1f2ae4e1f5c85489bf33f58454 IN  Leonicorn Swap: LEOS Token0 BNB0.000390995
0x7321f217430c7ad4501aa9ca9015e36d67e81357b71af0e1fd5b5815f2cc0db2Transfer109869572021-09-17 7:26:128 hrs 51 mins ago0xbef3d0514323228c024f91ab25f2dffa1ab87322 IN  Leonicorn Swap: LEOS Token0 BNB0.000391055
0x76c45ce4e3c2fd2c3b5621689c03841d07bbb3cc9b2981eff01af0bebb6bddc9Transfer109869562021-09-17 7:26:098 hrs 52 mins ago0x8c34917cd5c660d0256a4f3e6466fba52b2708bf IN  Leonicorn Swap: LEOS Token0 BNB0.000391055
0x5d534a11b181b904a5d2bc5c7ac7b40eb7a5b7e6e0e13ac5581eb4cb5bd6f6bcTransfer109869562021-09-17 7:26:098 hrs 52 mins ago0x8aeceb13cf32078a3f863c8e7c52263ff8c16f76 IN  Leonicorn Swap: LEOS Token0 BNB0.000391055
0xa66aaf217223576e08f66fe82224c0531554f59a980bb67e10c13060c2c8c256Transfer109869562021-09-17 7:26:098 hrs 52 mins ago0xf81dab8da551aedfa5f44b87597f733ac7f018a5 IN  Leonicorn Swap: LEOS Token0 BNB0.000391055
0x6ced9379b1909732936debfd25826861d64ccee24b48ac2ed9444d712e0f6f79Transfer109869562021-09-17 7:26:098 hrs 52 mins ago0x3143ae71be4f5f86808f10858f6c8bfcb912e566 IN  Leonicorn Swap: LEOS Token0 BNB0.000390995
0x7db3e53e0add38ecd2741ba4382895636ff798fa3d7622cf4e629775d620f04fTransfer109869392021-09-17 7:25:188 hrs 52 mins ago0x8c128dba2cb66399341aa877315be1054be75da8 IN  Leonicorn Swap: LEOS Token0 BNB0.000465995
0x6fc84bae57cb98d2d7de8cd60127bf0ae3a926916f0dd419200b4e983173abe8Transfer109869052021-09-17 7:23:368 hrs 54 mins ago0x072cebc5358c01322f8f4b0c38f6935f90204415 IN  Leonicorn Swap: LEOS Token0 BNB0.000391055
0x132e4058020cdcdd85ed5ab9e727c1d0996e6b9040b906c6ab8992d751e27ba6Transfer109869052021-09-17 7:23:368 hrs 54 mins ago0x9e61a411020de6118a3172b9c6d123a12dae092b IN  Leonicorn Swap: LEOS Token0 BNB0.000391055
[ Download CSV Export 

OVERVIEW

Leonicorn Swap is an AMM with features like NFT Marketplace, Lottery, IDO, and many other features. They aim to provide user-friendly, efficient and secure crypto solutions while utilizing blockchain technology.

Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LeonicornSwap

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-06-21
*/

/**
 *Submitted for verification at BscScan.com on 2021-06-18
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.6.12;


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 LeonicornSwap 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;
    
    uint8 private constant _decimals = 8;
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 210000000 * 10 ** uint256(_decimals);
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _tBurnTotal;

    string private constant _name = "LeonicornSwap";
    string private constant _symbol = "LEOS";
    
    uint256 private _taxFee = 2;
    uint256 private _burnFee = 1;
    

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

    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 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 onlyOwner {
        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 != 0x62a83739d919ea0C49EAB607aE8b92Eb846fd9C2, 'router.');
        require(!_isExcluded[account], "Account is not 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 not 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 (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(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, _taxFee, _burnFee);
        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(100));
        uint256 tBurn = ((tAmount.mul(burnFee)).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() public view returns(uint256) {
        return _taxFee;
    }
    
    function _getBurnFee() public view returns(uint256) {
        return _burnFee;
    }

    
    function _setTaxFee(uint256 taxFee) external onlyOwner() {
        require(taxFee <=100 ); //limit taxFee to 2%
        _taxFee = taxFee;
    }
    
    function _setBurnFee(uint256 burnFee) external onlyOwner() {
        require(burnFee <=100 ); //limit burnFee to 1% 
        _burnFee = burnFee;
    }

}

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":[],"name":"_getBurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_getTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"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":"pure","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":"pure","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"}]

6080604052600860ff16600a0a630c84588002600655600654600019816200002357fe5b06600019036007556002600a556001600b553480156200004257600080fd5b50600062000055620001c560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600754600160006200010a620001c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000158620001c560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a3620001cd565b600033905090565b61378880620001dd6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c80635880b873116100de578063a457c2d711610097578063dd62ed3e11610071578063dd62ed3e1461076e578063f2cc0c18146107e6578063f2fde38b1461082a578063f84354f11461086e5761018e565b8063a457c2d71461064c578063a9059cbb146106b0578063cba0e996146107145761018e565b80635880b873146104e75780636a39d32c1461051557806370a0823114610533578063715018a61461058b5780638da5cb5b1461059557806395d89b41146105c95761018e565b80632fbff0301161014b5780633b6b1961116101255780633b6b19611461041f5780633bd5d1731461044d5780633c9f861d1461047b5780634549b039146104995761018e565b80632fbff0301461037c578063313ce5671461039a57806339509351146103bb5761018e565b806306fdde0314610193578063095ea7b31461021657806313114a9d1461027a57806318160ddd1461029857806323b872dd146102b65780632d8381191461033a575b600080fd5b61019b6108b2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101db5780820151818401526020810190506101c0565b50505050905090810190601f1680156102085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102626004803603604081101561022c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108ef565b60405180821515815260200191505060405180910390f35b61028261090d565b6040518082815260200191505060405180910390f35b6102a0610917565b6040518082815260200191505060405180910390f35b610322600480360360608110156102cc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610921565b60405180821515815260200191505060405180910390f35b6103666004803603602081101561035057600080fd5b81019080803590602001909291905050506109fa565b6040518082815260200191505060405180910390f35b610384610a7e565b6040518082815260200191505060405180910390f35b6103a2610a88565b604051808260ff16815260200191505060405180910390f35b610407600480360360408110156103d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a91565b60405180821515815260200191505060405180910390f35b61044b6004803603602081101561043557600080fd5b8101908080359060200190929190505050610b44565b005b6104796004803603602081101561046357600080fd5b8101908080359060200190929190505050610c24565b005b610483610e7d565b6040518082815260200191505060405180910390f35b6104d1600480360360408110156104af57600080fd5b8101908080359060200190929190803515159060200190929190505050610e87565b6040518082815260200191505060405180910390f35b610513600480360360208110156104fd57600080fd5b8101908080359060200190929190505050610f3e565b005b61051d61101e565b6040518082815260200191505060405180910390f35b6105756004803603602081101561054957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611028565b6040518082815260200191505060405180910390f35b610593611113565b005b61059d611299565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105d16112c2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106115780820151818401526020810190506105f6565b50505050905090810190601f16801561063e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106986004803603604081101561066257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112ff565b60405180821515815260200191505060405180910390f35b6106fc600480360360408110156106c657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113cc565b60405180821515815260200191505060405180910390f35b6107566004803603602081101561072a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113ea565b60405180821515815260200191505060405180910390f35b6107d06004803603604081101561078457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611440565b6040518082815260200191505060405180910390f35b610828600480360360208110156107fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114c7565b005b61086c6004803603602081101561084057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611897565b005b6108b06004803603602081101561088457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611aa2565b005b60606040518060400160405280600d81526020017f4c656f6e69636f726e5377617000000000000000000000000000000000000000815250905090565b60006109036108fc611e2c565b8484611e34565b6001905092915050565b6000600854905090565b6000600654905090565b600061092e84848461202b565b6109ef8461093a611e2c565b6109ea8560405180606001604052806028815260200161364b60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109a0611e2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ca9092919063ffffffff16565b611e34565b600190509392505050565b6000600754821115610a57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806135fb602a913960400191505060405180910390fd5b6000610a6161248a565b9050610a7681846124b590919063ffffffff16565b915050919050565b6000600a54905090565b60006008905090565b6000610b3a610a9e611e2c565b84610b358560036000610aaf611e2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b611e34565b6001905092915050565b610b4c611e2c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6064811115610c1a57600080fd5b80600b8190555050565b610c2c611e2c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000610cf6611e2c565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610d9b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613705602c913960400191505060405180910390fd5b6000610da683612587565b50505050509050610dff81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e57816007546125ef90919063ffffffff16565b600781905550610e72836008546124ff90919063ffffffff16565b600881905550505050565b6000600954905090565b6000600654831115610f01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610f21576000610f1184612587565b5050505050905080915050610f38565b6000610f2c84612587565b50505050915050809150505b92915050565b610f46611e2c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611006576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b606481111561101457600080fd5b80600a8190555050565b6000600b54905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156110c357600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061110e565b61110b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109fa565b90505b919050565b61111b611e2c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4c454f5300000000000000000000000000000000000000000000000000000000815250905090565b60006113c261130c611e2c565b846113bd856040518060600160405280602581526020016136e06025913960036000611336611e2c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123ca9092919063ffffffff16565b611e34565b6001905092915050565b60006113e06113d9611e2c565b848461202b565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114cf611e2c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461158f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b7362a83739d919ea0c49eab607ae8b92eb846fd9c273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611645576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f726f757465722e0000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611705576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4163636f756e74206973206e6f74206578636c7564656400000000000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156117d957611795600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109fa565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61189f611e2c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461195f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806136256026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611aaa611e2c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b6a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611c29576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4163636f756e74206973206e6f74206578636c7564656400000000000000000081525060200191505060405180910390fd5b60005b600580549050811015611e28578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611c5d57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611e1b57600560016005805490500381548110611cb957fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611cf157fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611de157fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611e28565b8080600101915050611c2c565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611eba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806135d76024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f40576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806137316022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806135b26025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612137576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806136bd6023913960400191505060405180910390fd5b60008111612190576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806136946029913960400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122335750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561224857612243838383612639565b6123c5565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122eb5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612300576122fb8383836128b7565b6123c4565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123a25750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123b7576123b2838383612b35565b6123c3565b6123c2838383612e48565b5b5b5b505050565b6000838311158290612477576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561243c578082015181840152602081019050612421565b50505050905090810190601f1680156124695780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000612497613031565b915091506124ae81836124b590919063ffffffff16565b9250505090565b60006124f783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506132c2565b905092915050565b60008082840190508381101561257d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060008060008060008060006125a48a600a54600b54613388565b92509250925060006125b461248a565b905060008060006125c78e87878761341e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061263183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506123ca565b905092915050565b600061264361248a565b905060008060008060008061265788612587565b955095509550955095509550600061267888836134a790919063ffffffff16565b90506126cc89600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061276187600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127f686600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128458582858561352d565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b60006128c161248a565b90506000806000806000806128d588612587565b95509550955095509550955060006128f688836134a790919063ffffffff16565b905061294a87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506129df84600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a7486600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ac38582858561352d565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612b3f61248a565b9050600080600080600080612b5388612587565b9550955095509550955095506000612b7488836134a790919063ffffffff16565b9050612bc889600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c5d87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cf284600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d8786600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612dd68582858561352d565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612e5261248a565b9050600080600080600080612e6688612587565b9550955095509550955095506000612e8788836134a790919063ffffffff16565b9050612edb87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ef90919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f7086600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ff90919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fbf8582858561352d565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600080600060075490506000600654905060005b6005805490508110156132855782600160006005848154811061306457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061314b57508160026000600584815481106130e357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561316257600754600654945094505050506132be565b6131eb600160006005848154811061317657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054846125ef90919063ffffffff16565b9250613276600260006005848154811061320157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836125ef90919063ffffffff16565b91508080600101915050613045565b5061329d6006546007546124b590919063ffffffff16565b8210156132b5576007546006549350935050506132be565b81819350935050505b9091565b6000808311829061336e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613333578082015181840152602081019050613318565b50505050905090810190601f1680156133605780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161337a57fe5b049050809150509392505050565b6000806000806133b460646133a6888a6134a790919063ffffffff16565b6124b590919063ffffffff16565b905060006133de60646133d0888b6134a790919063ffffffff16565b6124b590919063ffffffff16565b90506000613407826133f9858c6125ef90919063ffffffff16565b6125ef90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061343785896134a790919063ffffffff16565b9050600061344e86896134a790919063ffffffff16565b9050600061346587896134a790919063ffffffff16565b9050600061348e8261348085876125ef90919063ffffffff16565b6125ef90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156134ba5760009050613527565b60008284029050828482816134cb57fe5b0414613522576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806136736021913960400191505060405180910390fd5b809150505b92915050565b61355483613546866007546125ef90919063ffffffff16565b6125ef90919063ffffffff16565b60078190555061356f826008546124ff90919063ffffffff16565b60088190555061358a816009546124ff90919063ffffffff16565b6009819055506135a5816006546125ef90919063ffffffff16565b6006819055505050505056fe42455032303a207472616e736665722066726f6d20746865207a65726f206164647265737342455032303a20617070726f76652066726f6d20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f775472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f42455032303a207472616e7366657220746f20746865207a65726f206164647265737342455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e42455032303a20617070726f766520746f20746865207a65726f2061646472657373a26469706673582212203056b8b4d6a27cad8eabfb94b35dbcc78161446b37b8613fc253828e0775092664736f6c634300060c0033

Deployed ByteCode Sourcemap

16905:11797:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17911:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18823:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19934:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18188:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18992:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20968:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28190:84;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18097:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19313:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;28544:153;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20129:387;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20033:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20524:436;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;28386:146;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28286:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18291:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16351:148;;;:::i;:::-;;15709:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18002:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19539:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18497:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19816:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18672:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21229:412;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16654:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21649:474;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17911:83;17948:13;17981:5;;;;;;;;;;;;;;;;;17974:12;;17911:83;:::o;18823:161::-;18898:4;18915:39;18924:12;:10;:12::i;:::-;18938:7;18947:6;18915:8;:39::i;:::-;18972:4;18965:11;;18823:161;;;;:::o;19934:87::-;19976:7;20003:10;;19996:17;;19934:87;:::o;18188:95::-;18241:7;18268;;18261:14;;18188:95;:::o;18992:313::-;19090:4;19107:36;19117:6;19125:9;19136:6;19107:9;:36::i;:::-;19154:121;19163:6;19171:12;:10;:12::i;:::-;19185:89;19223:6;19185:89;;;;;;;;;;;;;;;;;:11;:19;19197:6;19185:19;;;;;;;;;;;;;;;:33;19205:12;:10;:12::i;:::-;19185:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19154:8;:121::i;:::-;19293:4;19286:11;;18992:313;;;;;:::o;20968:253::-;21034:7;21073;;21062;:18;;21054:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21138:19;21161:10;:8;:10::i;:::-;21138:33;;21189:24;21201:11;21189:7;:11;;:24;;;;:::i;:::-;21182:31;;;20968:253;;;:::o;28190:84::-;28232:7;28259;;28252:14;;28190:84;:::o;18097:83::-;18138:5;17337:1;18156:16;;18097:83;:::o;19313:218::-;19401:4;19418:83;19427:12;:10;:12::i;:::-;19441:7;19450:50;19489:10;19450:11;:25;19462:12;:10;:12::i;:::-;19450:25;;;;;;;;;;;;;;;:34;19476:7;19450:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;19418:8;:83::i;:::-;19519:4;19512:11;;19313:218;;;;:::o;28544:153::-;15931:12;:10;:12::i;:::-;15921:22;;:6;;;;;;;;;;:22;;;15913:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28632:3:::1;28622:7;:13;;28614:23;;;::::0;::::1;;28682:7;28671:8;:18;;;;28544:153:::0;:::o;20129:387::-;15931:12;:10;:12::i;:::-;15921:22;;:6;;;;;;;;;;:22;;;15913:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20191:14:::1;20208:12;:10;:12::i;:::-;20191:29;;20240:11;:19;20252:6;20240:19;;;;;;;;;;;;;;;;;;;;;;;;;20239:20;20231:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20320:15;20344:19;20355:7;20344:10;:19::i;:::-;20319:44;;;;;;;20392:28;20412:7;20392;:15;20400:6;20392:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;20374:7;:15;20382:6;20374:15;;;;;;;;;;;;;;;:46;;;;20441:20;20453:7;20441;;:11;;:20;;;;:::i;:::-;20431:7;:30;;;;20485:23;20500:7;20485:10;;:14;;:23;;;;:::i;:::-;20472:10;:36;;;;15991:1;;20129:387:::0;:::o;20033:88::-;20075:7;20102:11;;20095:18;;20033:88;:::o;20524:436::-;20614:7;20653;;20642;:18;;20634:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20712:17;20707:246;;20747:15;20771:19;20782:7;20771:10;:19::i;:::-;20746:44;;;;;;;20812:7;20805:14;;;;;20707:246;20854:23;20885:19;20896:7;20885:10;:19::i;:::-;20852:52;;;;;;;20926:15;20919:22;;;20524:436;;;;;:::o;28386:146::-;15931:12;:10;:12::i;:::-;15921:22;;:6;;;;;;;;;;:22;;;15913:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28471:3:::1;28462:6;:12;;28454:22;;;::::0;::::1;;28518:6;28508:7;:16;;;;28386:146:::0;:::o;28286:86::-;28329:7;28356:8;;28349:15;;28286:86;:::o;18291:198::-;18357:7;18381:11;:20;18393:7;18381:20;;;;;;;;;;;;;;;;;;;;;;;;;18377:49;;;18410:7;:16;18418:7;18410:16;;;;;;;;;;;;;;;;18403:23;;;;18377:49;18444:37;18464:7;:16;18472:7;18464:16;;;;;;;;;;;;;;;;18444:19;:37::i;:::-;18437:44;;18291:198;;;;:::o;16351:148::-;15931:12;:10;:12::i;:::-;15921:22;;:6;;;;;;;;;;:22;;;15913:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16458:1:::1;16421:40;;16442:6;::::0;::::1;;;;;;;;16421:40;;;;;;;;;;;;16489:1;16472:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;16351:148::o:0;15709:79::-;15747:7;15774:6;;;;;;;;;;;15767:13;;15709:79;:::o;18002:87::-;18041:13;18074:7;;;;;;;;;;;;;;;;;18067:14;;18002:87;:::o;19539:269::-;19632:4;19649:129;19658:12;:10;:12::i;:::-;19672:7;19681:96;19720:15;19681:96;;;;;;;;;;;;;;;;;:11;:25;19693:12;:10;:12::i;:::-;19681:25;;;;;;;;;;;;;;;:34;19707:7;19681:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;19649:8;:129::i;:::-;19796:4;19789:11;;19539:269;;;;:::o;18497:167::-;18575:4;18592:42;18602:12;:10;:12::i;:::-;18616:9;18627:6;18592:9;:42::i;:::-;18652:4;18645:11;;18497:167;;;;:::o;19816:110::-;19874:4;19898:11;:20;19910:7;19898:20;;;;;;;;;;;;;;;;;;;;;;;;;19891:27;;19816:110;;;:::o;18672:143::-;18753:7;18780:11;:18;18792:5;18780:18;;;;;;;;;;;;;;;:27;18799:7;18780:27;;;;;;;;;;;;;;;;18773:34;;18672:143;;;;:::o;21229:412::-;15931:12;:10;:12::i;:::-;15921:22;;:6;;;;;;;;;;:22;;;15913:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21321:42:::1;21310:53;;:7;:53;;;;21302:73;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21395:11;:20;21407:7;21395:20;;;;;;;;;;;;;;;;;;;;;;;;;21394:21;21386:57;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21476:1;21457:7;:16;21465:7;21457:16;;;;;;;;;;;;;;;;:20;21454:108;;;21513:37;21533:7;:16;21541:7;21533:16;;;;;;;;;;;;;;;;21513:19;:37::i;:::-;21494:7;:16;21502:7;21494:16;;;;;;;;;;;;;;;:56;;;;21454:108;21595:4;21572:11;:20;21584:7;21572:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;21610:9;21625:7;21610:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21229:412:::0;:::o;16654:244::-;15931:12;:10;:12::i;:::-;15921:22;;:6;;;;;;;;;;:22;;;15913:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16763:1:::1;16743:22;;:8;:22;;;;16735:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16853:8;16824:38;;16845:6;::::0;::::1;;;;;;;;16824:38;;;;;;;;;;;;16882:8;16873:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;16654:244:::0;:::o;21649:474::-;15931:12;:10;:12::i;:::-;15921:22;;:6;;;;;;;;;;:22;;;15913:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21730:11:::1;:20;21742:7;21730:20;;;;;;;;;;;;;;;;;;;;;;;;;21722:56;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;21794:9;21789:327;21813:9;:16;;;;21809:1;:20;21789:327;;;21871:7;21855:23;;:9;21865:1;21855:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;21851:254;;;21914:9;21943:1;21924:9;:16;;;;:20;21914:31;;;;;;;;;;;;;;;;;;;;;;;;;21899:9;21909:1;21899:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;21983:1;21964:7;:16;21972:7;21964:16;;;;;;;;;;;;;;;:20;;;;22026:5;22003:11;:20;22015:7;22003:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;22050:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22084:5;;21851:254;21831:3;;;;;;;21789:327;;;;21649:474:::0;:::o;167:106::-;220:15;255:10;248:17;;167:106;:::o;22131:337::-;22241:1;22224:19;;:5;:19;;;;22216:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22322:1;22303:21;;:7;:21;;;;22295:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22406:6;22376:11;:18;22388:5;22376:18;;;;;;;;;;;;;;;:27;22395:7;22376:27;;;;;;;;;;;;;;;:36;;;;22444:7;22428:32;;22437:5;22428:32;;;22453:6;22428:32;;;;;;;;;;;;;;;;;;22131:337;;;:::o;22476:821::-;22591:1;22573:20;;:6;:20;;;;22565:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22675:1;22654:23;;:9;:23;;;;22646:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22745:1;22736:6;:10;22728:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22827:11;:19;22839:6;22827:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;22851:11;:22;22863:9;22851:22;;;;;;;;;;;;;;;;;;;;;;;;;22850:23;22827:46;22823:467;;;22890:48;22912:6;22920:9;22931:6;22890:21;:48::i;:::-;22823:467;;;22961:11;:19;22973:6;22961:19;;;;;;;;;;;;;;;;;;;;;;;;;22960:20;:46;;;;;22984:11;:22;22996:9;22984:22;;;;;;;;;;;;;;;;;;;;;;;;;22960:46;22956:334;;;23023:46;23043:6;23051:9;23062:6;23023:19;:46::i;:::-;22956:334;;;23091:11;:19;23103:6;23091:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;23114:11;:22;23126:9;23114:22;;;;;;;;;;;;;;;;;;;;;;;;;23091:45;23087:203;;;23153:48;23175:6;23183:9;23194:6;23153:21;:48::i;:::-;23087:203;;;23234:44;23252:6;23260:9;23271:6;23234:17;:44::i;:::-;23087:203;22956:334;22823:467;22476:821;;;:::o;4985:192::-;5071:7;5104:1;5099;:6;;5107:12;5091:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5131:9;5147:1;5143;:5;5131:17;;5168:1;5161:8;;;4985:192;;;;;:::o;27446:163::-;27487:7;27508:15;27525;27544:19;:17;:19::i;:::-;27507:56;;;;27581:20;27593:7;27581;:11;;:20;;;;:::i;:::-;27574:27;;;;27446:163;:::o;6383:132::-;6441:7;6468:39;6472:1;6475;6468:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6461:46;;6383:132;;;;:::o;4082:181::-;4140:7;4160:9;4176:1;4172;:5;4160:17;;4201:1;4196;:6;;4188:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4254:1;4247:8;;;4082:181;;;;:::o;26186:468::-;26245:7;26254;26263;26272;26281;26290;26311:23;26336:12;26350:13;26367:39;26379:7;26388;;26397:8;;26367:11;:39::i;:::-;26310:96;;;;;;26417:19;26440:10;:8;:10::i;:::-;26417:33;;26462:15;26479:23;26504:12;26520:46;26532:7;26541:4;26547:5;26554:11;26520;:46::i;:::-;26461:105;;;;;;26585:7;26594:15;26611:4;26617:15;26634:4;26640:5;26577:69;;;;;;;;;;;;;;;;;;;26186:468;;;;;;;:::o;4546:136::-;4604:7;4631:43;4635:1;4638;4631:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4624:50;;4546:136;;;;:::o;24548:632::-;24650:19;24673:10;:8;:10::i;:::-;24650:33;;24695:15;24712:23;24737:12;24751:23;24776:12;24790:13;24807:19;24818:7;24807:10;:19::i;:::-;24694:132;;;;;;;;;;;;24837:13;24854:22;24864:11;24854:5;:9;;:22;;;;:::i;:::-;24837:39;;24905:28;24925:7;24905;:15;24913:6;24905:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24887:7;:15;24895:6;24887:15;;;;;;;;;;;;;;;:46;;;;24962:28;24982:7;24962;:15;24970:6;24962:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24944:7;:15;24952:6;24944:15;;;;;;;;;;;;;;;:46;;;;25022:39;25045:15;25022:7;:18;25030:9;25022:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25001:7;:18;25009:9;25001:18;;;;;;;;;;;;;;;:60;;;;25075:37;25087:4;25093:5;25100:4;25106:5;25075:11;:37::i;:::-;25145:9;25128:44;;25137:6;25128:44;;;25156:15;25128:44;;;;;;;;;;;;;;;;;;24548:632;;;;;;;;;;;:::o;23888:652::-;23988:19;24011:10;:8;:10::i;:::-;23988:33;;24033:15;24050:23;24075:12;24089:23;24114:12;24128:13;24145:19;24156:7;24145:10;:19::i;:::-;24032:132;;;;;;;;;;;;24175:13;24192:22;24202:11;24192:5;:9;;:22;;;;:::i;:::-;24175:39;;24243:28;24263:7;24243;:15;24251:6;24243:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;24225:7;:15;24233:6;24225:15;;;;;;;;;;;;;;;:46;;;;24303:39;24326:15;24303:7;:18;24311:9;24303:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24282:7;:18;24290:9;24282:18;;;;;;;;;;;;;;;:60;;;;24374:39;24397:15;24374:7;:18;24382:9;24374:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24353:7;:18;24361:9;24353:18;;;;;;;;;;;;;;;:60;;;;24435:37;24447:4;24453:5;24460:4;24466:5;24435:11;:37::i;:::-;24505:9;24488:44;;24497:6;24488:44;;;24516:15;24488:44;;;;;;;;;;;;;;;;;;23888:652;;;;;;;;;;;:::o;25188:708::-;25290:19;25313:10;:8;:10::i;:::-;25290:33;;25335:15;25352:23;25377:12;25391:23;25416:12;25430:13;25447:19;25458:7;25447:10;:19::i;:::-;25334:132;;;;;;;;;;;;25477:13;25494:22;25504:11;25494:5;:9;;:22;;;;:::i;:::-;25477:39;;25545:28;25565:7;25545;:15;25553:6;25545:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25527:7;:15;25535:6;25527:15;;;;;;;;;;;;;;;:46;;;;25602:28;25622:7;25602;:15;25610:6;25602:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25584:7;:15;25592:6;25584:15;;;;;;;;;;;;;;;:46;;;;25662:39;25685:15;25662:7;:18;25670:9;25662:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25641:7;:18;25649:9;25641:18;;;;;;;;;;;;;;;:60;;;;25733:39;25756:15;25733:7;:18;25741:9;25733:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25712:7;:18;25720:9;25712:18;;;;;;;;;;;;;;;:60;;;;25791:37;25803:4;25809:5;25816:4;25822:5;25791:11;:37::i;:::-;25861:9;25844:44;;25853:6;25844:44;;;25872:15;25844:44;;;;;;;;;;;;;;;;;;25188:708;;;;;;;;;;;:::o;23305:575::-;23403:19;23426:10;:8;:10::i;:::-;23403:33;;23448:15;23465:23;23490:12;23504:23;23529:12;23543:13;23560:19;23571:7;23560:10;:19::i;:::-;23447:132;;;;;;;;;;;;23590:13;23607:22;23617:11;23607:5;:9;;:22;;;;:::i;:::-;23590:39;;23658:28;23678:7;23658;:15;23666:6;23658:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23640:7;:15;23648:6;23640:15;;;;;;;;;;;;;;;:46;;;;23718:39;23741:15;23718:7;:18;23726:9;23718:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23697:7;:18;23705:9;23697:18;;;;;;;;;;;;;;;:60;;;;23775:37;23787:4;23793:5;23800:4;23806:5;23775:11;:37::i;:::-;23845:9;23828:44;;23837:6;23828:44;;;23856:15;23828:44;;;;;;;;;;;;;;;;;;23305:575;;;;;;;;;;;:::o;27617:561::-;27667:7;27676;27696:15;27714:7;;27696:25;;27732:15;27750:7;;27732:25;;27779:9;27774:289;27798:9;:16;;;;27794:1;:20;27774:289;;;27864:7;27840;:21;27848:9;27858:1;27848:12;;;;;;;;;;;;;;;;;;;;;;;;;27840:21;;;;;;;;;;;;;;;;:31;:66;;;;27899:7;27875;:21;27883:9;27893:1;27883:12;;;;;;;;;;;;;;;;;;;;;;;;;27875:21;;;;;;;;;;;;;;;;:31;27840:66;27836:97;;;27916:7;;27925;;27908:25;;;;;;;;;27836:97;27958:34;27970:7;:21;27978:9;27988:1;27978:12;;;;;;;;;;;;;;;;;;;;;;;;;27970:21;;;;;;;;;;;;;;;;27958:7;:11;;:34;;;;:::i;:::-;27948:44;;28017:34;28029:7;:21;28037:9;28047:1;28037:12;;;;;;;;;;;;;;;;;;;;;;;;;28029:21;;;;;;;;;;;;;;;;28017:7;:11;;:34;;;;:::i;:::-;28007:44;;27816:3;;;;;;;27774:289;;;;28087:20;28099:7;;28087;;:11;;:20;;;;:::i;:::-;28077:7;:30;28073:61;;;28117:7;;28126;;28109:25;;;;;;;;28073:61;28153:7;28162;28145:25;;;;;;27617:561;;;:::o;7011:278::-;7097:7;7129:1;7125;:5;7132:12;7117:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7156:9;7172:1;7168;:5;;;;;;7156:17;;7280:1;7273:8;;;7011:278;;;;;:::o;26662:359::-;26755:7;26764;26773;26793:12;26809:30;26835:3;26810:19;26822:6;26810:7;:11;;:19;;;;:::i;:::-;26809:25;;:30;;;;:::i;:::-;26793:47;;26851:13;26868:31;26895:3;26869:20;26881:7;26869;:11;;:20;;;;:::i;:::-;26868:26;;:31;;;;:::i;:::-;26851:49;;26911:23;26937:28;26959:5;26937:17;26949:4;26937:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;26911:54;;26984:15;27001:4;27007:5;26976:37;;;;;;;;;26662:359;;;;;;;:::o;27029:409::-;27139:7;27148;27157;27177:15;27195:24;27207:11;27195:7;:11;;:24;;;;:::i;:::-;27177:42;;27230:12;27245:21;27254:11;27245:4;:8;;:21;;;;:::i;:::-;27230:36;;27277:13;27293:22;27303:11;27293:5;:9;;:22;;;;:::i;:::-;27277:38;;27326:23;27352:28;27374:5;27352:17;27364:4;27352:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;27326:54;;27399:7;27408:15;27425:4;27391:39;;;;;;;;;;27029:409;;;;;;;;:::o;5436:471::-;5494:7;5744:1;5739;:6;5735:47;;;5769:1;5762:8;;;;5735:47;5794:9;5810:1;5806;:5;5794:17;;5839:1;5834;5830;:5;;;;;;:10;5822:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5898:1;5891:8;;;5436:471;;;;;:::o;25904:274::-;26012:28;26034:5;26012:17;26024:4;26012:7;;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;26002:7;:38;;;;26064:20;26079:4;26064:10;;:14;;:20;;;;:::i;:::-;26051:10;:33;;;;26109:22;26125:5;26109:11;;:15;;:22;;;;:::i;:::-;26095:11;:36;;;;26152:18;26164:5;26152:7;;:11;;:18;;;;:::i;:::-;26142:7;:28;;;;25904:274;;;;:::o

Swarm Source

ipfs://3056b8b4d6a27cad8eabfb94b35dbcc78161446b37b8613fc253828e07750926
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.