**Maintenance in progress, block data might not be up to date**

Contract 0xc6f509274fcc1f485644167cb911fd0c61545e6c 1

 

Contract Overview

Obsidium: OBS Token
Balance:
0.112123376506327925 BNB

BNB Value:
$43.94 (@ $391.87/BNB)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x26d5c85421f9e5e042967568046d6b8815e43fb688d008b133ec6df792846559Approve147494942022-01-28 3:53:001 hr 40 mins ago0x603ca8009d3c74b2792aa5f67e05f02c19960217 IN  Obsidium: OBS Token0 BNB0.00023831892
0x836558c7a5461ffeaf70463fd07d9c41a605a4be45e2c63af25a8ff3809dadb7Approve147489962022-01-28 3:28:062 hrs 5 mins ago0xa6e076f880bce85e6a350af4e243a15bfc142c90 IN  Obsidium: OBS Token0 BNB0.00022252
0x9e3a5657c4506f7f2e6aa064d6ba3e4865e61ea09456975ba01f5b8f868ec8f7Approve147489792022-01-28 3:27:152 hrs 6 mins ago0x5a9a064b31826517a6a6c683ef61f95ef46a053c IN  Obsidium: OBS Token0 BNB0.00022252
0xea0c02c43de37480f8fa7c3100ac364320b98ab107de5efe3be97ead3acc973bApprove147484502022-01-28 3:00:482 hrs 32 mins ago0xf63a71d1c2cbaaeeb3a488e99304f812fb7c396e IN  Obsidium: OBS Token0 BNB0.00022252
0x5b0c7b7f7d87c0a76870889bca638b7025622a65515063b19fe911fbc3a7d09cApprove147478172022-01-28 2:29:093 hrs 4 mins ago0x22076427aac375db546a554912d5fcd62be1e613 IN  Obsidium: OBS Token0 BNB0.00022252
0xb5eb529aec726abc3b9516c38f13eeeec254d2febd3511f65faaeef70c5c413dTransfer147471172022-01-28 1:52:583 hrs 40 mins ago0xa5e093ea1018f1776237851e4536ac2f8aec4d6f IN  Obsidium: OBS Token0 BNB0.00021374
0xdc9652a61863c8fa11c54a390ae93bd8e664fb1cf1714a5c9a139d6b803b9a28Approve147468972022-01-28 1:41:583 hrs 51 mins ago0x60369592eb38c54a5d478efbdc4c74c3c2e14093 IN  Obsidium: OBS Token0 BNB0.00022252
0x0389067079dbc2f104ce8b169e2d77c83ce542e21267ab158265bb2105bbad7eTransfer147468652022-01-28 1:40:223 hrs 53 mins ago0xf981df6dbebac9b20a2270b0ce1db960680a618e IN  Obsidium: OBS Token0 BNB0.00021374
0x3d2bcab8a4162daccdef6af4603398702f4c36c6de86567d7364230ba85bccacApprove147454082022-01-28 0:27:315 hrs 6 mins ago0xe2f429c1347263df17b8df6485346b8b274a5fcd IN  Obsidium: OBS Token0 BNB0.00022252
0x0da8b63e52a5a7401d12528dd9d0f1bead2c8ceff999552bde47103e66092e8aApprove147453372022-01-28 0:23:585 hrs 9 mins ago0x8519cda7ad6b771294c7bb6e157853d7ae5e7c0e IN  Obsidium: OBS Token0 BNB0.00022252
0x78da5fc8949de1525ba4cb1979047a4cd9d2411baca65a03919f1bac4116bc34Approve147451722022-01-28 0:15:435 hrs 17 mins ago0xd73a3ca0ee00bc45902fdc17d75a2b3b74de6ca6 IN  Obsidium: OBS Token0 BNB0.00022252
0x5ca3500ed6a42cb1078676b0df97a552826fd121f58fc7666e535d50d909077fTransfer147451262022-01-28 0:13:255 hrs 20 mins ago0xbf53c45a210005f728ea703aa64555080d563f43 IN  Obsidium: OBS Token0 BNB0.00021368
0x15cbced4b918491f9cd825ab9eb8e50846454837c09748f89eed4de369db8e50Approve147449942022-01-28 0:06:495 hrs 26 mins ago0x7f25c403356a140109119ca8037a0b9bd3183a90 IN  Obsidium: OBS Token0 BNB0.00022252
0x2ab8d7a9f91e124b68d1b584532b30c97d342ce376025acb6795c3de4b0b2162Transfer147449332022-01-28 0:03:465 hrs 29 mins ago0xbf53c45a210005f728ea703aa64555080d563f43 IN  Obsidium: OBS Token0 BNB0.00028868
0xbe95bb4b5a787fb37ee2f00af0fa1e99559fbe2d11c607ac5512ed1086ebed3aApprove147444282022-01-27 23:38:315 hrs 55 mins ago0x1e05c16a62a04b4bb9d22b352ae3328a82be8990 IN  Obsidium: OBS Token0 BNB0.00022252
0x98fe2d8682dae30d34682cecd455773dc2caeb776ab748a68b25669bcd245e3fApprove147438922022-01-27 23:11:436 hrs 21 mins ago0x6a4c582122a87cbb9af9a4672091b1d766b7be3e IN  Obsidium: OBS Token0 BNB0.0000728
0x615564b165e70aa7e47396a17de0d511cb43d626781a918741caf42599b9b108Approve147437232022-01-27 23:03:146 hrs 30 mins ago0xbf53c45a210005f728ea703aa64555080d563f43 IN  Obsidium: OBS Token0 BNB0.00022252
0xbf0336442315d2737995aff0808f6c626e82031ac1359d2953e6c0612c134445Approve147436012022-01-27 22:57:086 hrs 36 mins ago0x503e1e84ac717b16d43553653974265c8fdb1268 IN  Obsidium: OBS Token0 BNB0.00022252
0x0db25a1f4e3aa3ae522c92e11daa5b42c58081044d11e5ef06499dd5abf48e05Approve147423712022-01-27 21:53:597 hrs 39 mins ago0xba38d33d97a40266a3122d6fe5f2ace24ae73d87 IN  Obsidium: OBS Token0 BNB0.00022252
0xf162fcda001a955b9cd69d9f08b4753fef99826745b67dc8f7d1984bf3b4b310Approve147423602022-01-27 21:53:267 hrs 40 mins ago0x31e7a4a7d5deab0396c625bb01aceb603dd9e797 IN  Obsidium: OBS Token0 BNB0.00022252
0x956aa5b4ec6f7f7f2529673c447c687d431eab44af804bc0881311dc7c966f55Approve147416202022-01-27 21:16:218 hrs 17 mins ago0x3587c8bc484b856d84f17642bd71f3b147404a9b IN  Obsidium: OBS Token0 BNB0.00022252
0x67cb7c2519e0425a75aa66be9df88e7c0d7d285cfae854bd805c40b08d3869f3Approve147412702022-01-27 20:58:518 hrs 34 mins ago0x3f2fae58420347f0d62b5e3c577d131f0338cbab IN  Obsidium: OBS Token0 BNB0.00022252
0xa1d96e8260c7a6ca84a1b0201f711cba94c1cb826a00972f68d182f12fbe9d3bApprove147412622022-01-27 20:58:278 hrs 35 mins ago0xdd6012cb86af64876d8cdc770ce2cd5d8ae46ac7 IN  Obsidium: OBS Token0 BNB0.00022252
0x249963cf20b0c81a6877e5356a8f746a3a7ceac5f881bba177260e961cef93abTransfer147412392022-01-27 20:57:188 hrs 36 mins ago0x0c57d338d9d1ccc3dc4f812f830db08bbe6c3a32 IN  Obsidium: OBS Token0 BNB0.00021374
0x22e50f6b3ebc862837013522c266c058af3dfa11b84b6368113694be1123eb3eApprove147407412022-01-27 20:32:249 hrs 1 min ago0x9ae198861fa89298b86ee40a965a44975666822f IN  Obsidium: OBS Token0 BNB0.0000779688
[ Download CSV Export 

OVERVIEW

Obsidium is the ecosystem serverless cross-chain layer-2 solution that fuel the crypto space with DeFi, AAM & NFTs at infinity scalability, high throughput, sub-seconds confirmation time and fees at a tenth of a cent which was initiated to bring the concept of “Zero Initial Supply”.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x4308d7a84ac3d11635473dfb5f27f67286103c7da69bd0412c0d1a883d8c6c9614751372- Obsidium: OBS Token0x9418d04a2f6a89c2d6031b5c2e1d04cb264593490.004866188763870224 BNB
0x4308d7a84ac3d11635473dfb5f27f67286103c7da69bd0412c0d1a883d8c6c9614751372- Obsidium: OBS Token0xc005ef0ebf220e3824a5739f5085885dc8a001150.009732377527740447 BNB
0x4308d7a84ac3d11635473dfb5f27f67286103c7da69bd0412c0d1a883d8c6c9614751372- Obsidium: OBS Token PancakeSwap: Router v20.007299283145805335 BNB
0x4308d7a84ac3d11635473dfb5f27f67286103c7da69bd0412c0d1a883d8c6c9614751372- PancakeSwap: Router v2 Obsidium: OBS Token0.021897849437416006 BNB
0x7158ae93e5d997ccdaed16ab724b4c94f63d0c695c585efa3346888aec8565b914751266- Obsidium: OBS Token0x9418d04a2f6a89c2d6031b5c2e1d04cb264593490.002650112439454104 BNB
0x7158ae93e5d997ccdaed16ab724b4c94f63d0c695c585efa3346888aec8565b914751266- Obsidium: OBS Token0xc005ef0ebf220e3824a5739f5085885dc8a001150.005300224878908208 BNB
0x7158ae93e5d997ccdaed16ab724b4c94f63d0c695c585efa3346888aec8565b914751266- Obsidium: OBS Token PancakeSwap: Router v20.003975168659181155 BNB
0x7158ae93e5d997ccdaed16ab724b4c94f63d0c695c585efa3346888aec8565b914751266- PancakeSwap: Router v2 Obsidium: OBS Token0.011925505977543467 BNB
0x3bd92fc2db27f42ed2bb3aa343b885e6ccfbbf6aeca629d3017be58813080f5e14751140- Obsidium: OBS Token0x9418d04a2f6a89c2d6031b5c2e1d04cb264593490.000269259868478518 BNB
0x3bd92fc2db27f42ed2bb3aa343b885e6ccfbbf6aeca629d3017be58813080f5e14751140- Obsidium: OBS Token0xc005ef0ebf220e3824a5739f5085885dc8a001150.000538519736957034 BNB
0x3bd92fc2db27f42ed2bb3aa343b885e6ccfbbf6aeca629d3017be58813080f5e14751140- Obsidium: OBS Token PancakeSwap: Router v20.000403889802717775 BNB
0x3bd92fc2db27f42ed2bb3aa343b885e6ccfbbf6aeca629d3017be58813080f5e14751140- PancakeSwap: Router v2 Obsidium: OBS Token0.001211669408153327 BNB
0x7baf69ec1ed24d0656327030880f7285c7690aad1daca7393b8a16e276c7c23d14750020- Obsidium: OBS Token0x9418d04a2f6a89c2d6031b5c2e1d04cb264593490.005801819005166018 BNB
0x7baf69ec1ed24d0656327030880f7285c7690aad1daca7393b8a16e276c7c23d14750020- Obsidium: OBS Token0xc005ef0ebf220e3824a5739f5085885dc8a001150.011603638010332034 BNB
0x7baf69ec1ed24d0656327030880f7285c7690aad1daca7393b8a16e276c7c23d14750020- Obsidium: OBS Token PancakeSwap: Router v20.008702728507749025 BNB
0x7baf69ec1ed24d0656327030880f7285c7690aad1daca7393b8a16e276c7c23d14750020- PancakeSwap: Router v2 Obsidium: OBS Token0.026108185523247077 BNB
0xd5f9655de42743bfba11a85f84fb8e9a5750799f3cb9dd1bc49815bc55b68e8514749682- Obsidium: OBS Token0x9418d04a2f6a89c2d6031b5c2e1d04cb264593490.005937500123737705 BNB
0xd5f9655de42743bfba11a85f84fb8e9a5750799f3cb9dd1bc49815bc55b68e8514749682- Obsidium: OBS Token0xc005ef0ebf220e3824a5739f5085885dc8a001150.011875000247475409 BNB
0xd5f9655de42743bfba11a85f84fb8e9a5750799f3cb9dd1bc49815bc55b68e8514749682- Obsidium: OBS Token PancakeSwap: Router v20.008906250185606557 BNB
0xd5f9655de42743bfba11a85f84fb8e9a5750799f3cb9dd1bc49815bc55b68e8514749682- PancakeSwap: Router v2 Obsidium: OBS Token0.026718750556819671 BNB
0xddc3e936cbd7fdddd1cd76ecf6aba7217a1c7175e5b08a123b0210bbe89bc44614749658- Obsidium: OBS Token0x9418d04a2f6a89c2d6031b5c2e1d04cb264593490.000562615629719388 BNB
0xddc3e936cbd7fdddd1cd76ecf6aba7217a1c7175e5b08a123b0210bbe89bc44614749658- Obsidium: OBS Token0xc005ef0ebf220e3824a5739f5085885dc8a001150.001125231259438774 BNB
0xddc3e936cbd7fdddd1cd76ecf6aba7217a1c7175e5b08a123b0210bbe89bc44614749658- Obsidium: OBS Token PancakeSwap: Router v20.00084392344457908 BNB
0xddc3e936cbd7fdddd1cd76ecf6aba7217a1c7175e5b08a123b0210bbe89bc44614749658- PancakeSwap: Router v2 Obsidium: OBS Token0.002531770333737242 BNB
0x60e913487ebef5e93cc4a57d17fff6c4e16d48816ee60831d996a7bb1444a96e147491592022-01-28 3:36:151 hr 57 mins ago Obsidium: OBS Token0x9418d04a2f6a89c2d6031b5c2e1d04cb264593490.00027649077834799 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Obsidium

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity Multiple files format)

File 1 of 7: Obsidium.sol
/*
* Contract written by @Anubis
* Tokenomics applicable with Selling tax 6%  - only applicable for 6 months (0% thereafter)
* 4.5% to liquidity pool | 1% to marketing wallet | 0.5% to ‘buyback’ wallet
* Name  - Obsidium | Symbol - OBS 
* MAX Supply -  14,5 millions
* Anti-dump Max Sell no more than 1.05% of supply over 24 hours – only applicable for 6 months (0% thereafter)
*/

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

import "./Context.sol";
import "./Ownable.sol";
import "./SafeMath.sol";
import "./IBEP20.sol";

import "./IUniswapV2Factory.sol";
import "./IUniswapV2Router02.sol";

contract Obsidium is Context, IBEP20, Ownable {
  using SafeMath for uint256;

  mapping (address => uint256) private _balances;
  mapping (address => mapping (address => uint256)) private _allowances;
  mapping(address => bool) private _isExcludedFromFee; // wallets excluded from fee
  mapping (address => uint256) private _tokenSold;

  mapping (address => uint256) private _startTime;
  mapping (address => uint256) private _blockTime;

  uint256 public _maxSoldAmount;
  uint256 private _totalSupply;
  uint8 private _decimals;
  string private _symbol;
  string private _name;  
  uint256 public _taxFee;
  uint256 public _minBalance;

  address public uniswapV2Pair;
  address payable public _teamWallet;
  address payable public _buybackWallet;

  bool public inSwap = false;
  bool public swapEnabled = true;

  IUniswapV2Router02 public uniswapV2Router; // pancakeswap v2 router

  modifier lockTheSwap {
    inSwap = true;
    _;
    inSwap = false;
  }

  /**
   * @dev Initialize params for tokenomics
   */

  constructor() {
    _name = unicode"Obsidium";
    _symbol = "OBS";
    _decimals = 18;
    _totalSupply = 14500000 * 10**18;
    _balances[msg.sender] = _totalSupply;    
    _taxFee = 600;
    _minBalance = 1 * 10**18;
    _maxSoldAmount = 10 * 14500000 * 10**18;

    _teamWallet = payable(0xc005eF0Ebf220e3824a5739F5085885dC8A00115); 
    _buybackWallet = payable(0x9418d04a2f6A89c2d6031b5C2E1D04cb26459349);

    // BSC MainNet router
    IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
    uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
    uniswapV2Router = _uniswapV2Router;

    // BSC MainNet router
    // 0x10ED43C718714eb63d5aA57B78B54704E256024E

    // BSC TestNet router
    // 0x9Ac64Cc6e4415144C455BD8E4837Fea55603e5c3

    _isExcludedFromFee[owner()] = true;
    _isExcludedFromFee[address(this)] = true;
    _isExcludedFromFee[_teamWallet] = true;
    _isExcludedFromFee[_buybackWallet] = true;

    emit Transfer(address(0), msg.sender, _totalSupply);
  }

  /**
   * @dev Returns the bep token owner.
   */

  function getOwner() external override view returns (address) {
    return owner();
  }

  /**
   * @dev Returns the token decimals.
   */

  function decimals() external override view returns (uint8) {
    return _decimals;
  }

  /**
   * @dev Returns the token symbol.
   */

  function symbol() external override view returns (string memory) {
    return _symbol;
  }

  /**
  * @dev Returns the token name.
  */

  function name() external override view returns (string memory) {
    return _name;
  }

  /**
   * @dev See {BEP20-totalSupply}.
   */

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

  /**
   * @dev See {BEP20-balanceOf}.
   */

  //function balanceOf(address account) external override view returns (uint256) {
  function balanceOf(address account) public view override returns (uint256) {
    return _balances[account];
  }

  function excludeFromFee(address account) public onlyOwner {
    _isExcludedFromFee[account] = true;
  }
  
  function includeInFee(address account) public onlyOwner {
    _isExcludedFromFee[account] = false;
  }

  /**
   * @dev See {BEP20-transfer}.
   *
   * Requirements:
   *
   * - `recipient` cannot be the zero address.
   * - the caller must have a balance of at least `amount`.
   */

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

  /**
   * @dev See {BEP20-allowance}.
   */

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

  /**
   * @dev See {BEP20-approve}.
   *
   * Requirements:
   *
   * - `spender` cannot be the zero address.
   */
   
  function approve(address spender, uint256 amount) public override returns (bool) {
    _approve(_msgSender(), spender, amount);
    return true;
  }

  /**
   * @dev See {BEP20-transferFrom}.
   *
   * Emits an {Approval} event indicating the updated allowance. This is not
   * required by the EIP. See the note at the beginning of {BEP20};
   *
   * Requirements:
   * - `sender` and `recipient` cannot be the zero address.
   * - `sender` must have a balance of at least `amount`.
   * - the caller must have allowance for `sender`'s tokens of at least
   * `amount`.
   */

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

  /**
   * @dev Atomically increases the allowance granted to `spender` by the caller.
   *
   * This is an alternative to {approve} that can be used as a mitigation for
   * problems described in {BEP20-approve}.
   *
   * Emits an {Approval} event indicating the updated allowance.
   *
   * Requirements:
   *
   * - `spender` cannot be the zero address.
   */

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

  /**
   * @dev Atomically decreases the allowance granted to `spender` by the caller.
   *
   * This is an alternative to {approve} that can be used as a mitigation for
   * problems described in {BEP20-approve}.
   *
   * Emits an {Approval} event indicating the updated allowance.
   *
   * Requirements:
   *
   * - `spender` cannot be the zero address.
   * - `spender` must have allowance for the caller of at least
   * `subtractedValue`.
   */

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

  /**
   * @dev Moves tokens `amount` from `sender` to `recipient`.
   *
   * This is internal function is equivalent to {transfer}
   *
   * Emits a {Transfer} event.
   *
   * Requirements:
   *
   * - `sender` cannot be the zero address.
   * - `recipient` cannot be the zero address.
   * - `sender` must have a balance of at least `amount`.
   */

  function _transfer(address from, address to, uint256 amount) internal {

    require(from != address(0), "BEP20: transfer from the zero address");
    require(to != address(0), "BEP20: transfer to the zero address");
    require(amount > 0, "Transfer amount must be greater than zero");

    bool takeFee = true;

    if (!inSwap && swapEnabled && to == uniswapV2Pair){      
      // limit max sold
      if(_tokenSold[from] == 0){
        _startTime[from] = block.timestamp;
      }

      _tokenSold[from] = _tokenSold[from] + amount;

      if( block.timestamp < _startTime[from] + (1 days)){
          require(_tokenSold[from] <= _maxSoldAmount, "Sold amount exceeds the maxTxAmount.");
      }else{
          _startTime[from] = block.timestamp;
          _tokenSold[from] = 0;
      }

      // transfer tokens
      uint256 obsBalance = balanceOf(address(this));
      if(obsBalance > _minBalance){                    
        transferTokens(obsBalance);
      }
      
      if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
        takeFee = false;
      }
    } else {
      takeFee = false;
    }

    _tokenTransfer(from, to, amount, takeFee);
  }

  /**
   * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.   
   *
   * Emits an {Approval} event.
   *
   * Requirements:
   *
   * - `owner` cannot be the zero address.
   * - `spender` cannot be the zero address.
   */

  function _approve(address owner, address spender, uint256 amount) internal {
    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);
  }

  /**
    * @dev transfer tokens to liqudity, team wallet and buyback wallet.
   */

  function transferTokens(uint256 tokenBalance) private lockTheSwap {
    uint256 liquidityTokens = tokenBalance.div(4); // 0.75%
    uint256 otherBNBTokens = tokenBalance - liquidityTokens; // 2.25%

    uint256 initialBalance = address(this).balance;
    swapTokensForEth(otherBNBTokens);

    uint256 newBalance = address(this).balance.sub(initialBalance);
    uint256 liquidityCapacity = newBalance.div(3);
    addLiqudity(liquidityTokens, liquidityCapacity);

    uint256 teamCapacity = newBalance - liquidityCapacity;    
    uint256 teamBNB = teamCapacity.mul(2).div(3);
    _teamWallet.transfer(teamBNB);

    uint256 buybackBNB = teamCapacity - teamBNB;
    _buybackWallet.transfer(buybackBNB);
  }

  /**
    * @dev Swap tokens from obs to bnb
   */

  function swapTokensForEth(uint256 tokenAmount) private{
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = uniswapV2Router.WETH();
    _approve(address(this), address(uniswapV2Router), tokenAmount);
    uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
  }

  /**
    * @dev Add obs token and bnb as same ratio on pancakeswap router
   */

  function addLiqudity(uint256 tokenAmount, uint256 ethAmount) private {
    // approve token transfer to cover all possible scenarios
    _approve(address(this), address(uniswapV2Router), tokenAmount);

    // add amount to contract
    uniswapV2Router.addLiquidityETH{value: ethAmount}(
        address(this),
        tokenAmount,
        0, // slippage is unavoidable
        0, // slippage is unavoidable
        owner(),
        block.timestamp
    );
  }

  /**
    * @dev the Owner can swap regarding the obs token's amount of contract balance
    * this is for manual function
   */

  function contractBalanceSwap() external onlyOwner{
      uint256 contractBalance = balanceOf(address(this));
      swapTokensForEth(contractBalance);
  }

  /**
    * @dev the Owner can send regarding the obs token's amount of contract balance
    * this is for manual function
    * we need to remain 0.1BNB in contract balance for swap and transfer fees.
   */

  function contractBalanceSend(uint256 amount, address payable _destAddr) external onlyOwner{
    uint256 contractETHBalance = address(this).balance - 1 * 10**17;
    if(contractETHBalance > amount){
      _destAddr.transfer(amount);
    }
  }

  /**
    * @dev remove all fees
   */

  function removeAllFee() private {
    if (_taxFee == 0) return;
    _taxFee = 0;
  }

  /**
    * @dev set all fees
   */

  function restoreAllFee() private {
    _taxFee = 600;
  }

  /**
    * @dev transfer tokens with amount 
   */

  function _tokenTransfer(address sender, address recipient, uint256 amount, bool isTakeFee) private {
    if (!isTakeFee) removeAllFee();
    _transferStandard(sender, recipient, amount);
    if (!isTakeFee) restoreAllFee();
  }

  function _transferStandard(address sender, address recipient, uint256 amount) private {    
    uint256 fee = amount.mul(_taxFee).div(10000); // for 3% fee
    //_beforeTokenTransfer(sender, recipient, amount);

    uint256 senderBalance = _balances[sender];
    require(senderBalance >= amount, "BEP20: transfer amount exceeds balance");
    _balances[sender] = senderBalance - amount;
    uint256 amountnew = amount - fee;
    _balances[recipient] += (amountnew);

    if (fee>0) {
      _balances[address(this)] += (fee);
      emit Transfer(sender, address(this), fee);
    }

    emit Transfer(sender, recipient, amountnew);
  }

  /**
    * @dev set Max sold amount
   */

  function _setMaxSoldAmount(uint256 maxvalue) external onlyOwner {
      _maxSoldAmount = maxvalue;
  }

  /**
    * @dev set min balance for transferring
   */

  function _setMinBalance(uint256 minValue) external onlyOwner {
    _minBalance = minValue;
  }

  /**
    * @dev determine whether we apply tax fee or not
   */

  function _setApplyContractFee(bool isFee) external onlyOwner {
    if(isFee) {
        _taxFee = 600;
    } else {
        _taxFee = 0;
    }
  }

  function _setTeamWalletAddress(address teamWalletAddr) external onlyOwner {
    _teamWallet = payable(teamWalletAddr);
  }

  function _setBuybackWalletAddress(address buybackWalletAddr) external onlyOwner {
    _buybackWallet = payable(buybackWalletAddr);
  }

  receive() external payable {}
}

File 2 of 7: Context.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

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

File 3 of 7: IBEP20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

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

    /**
     * @dev Returns the token decimals.
     */
    function decimals() external view returns (uint8);

    /**
     * @dev Returns the token symbol.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the token name.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the bep token owner.
     */
    function getOwner() external view returns (address);

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

File 4 of 7: IUniswapV2Factory.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

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

File 5 of 7: IUniswapV2Router02.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

// import "./IUniswapV2Router01.sol";

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

File 6 of 7: Ownable.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
import "./Context.sol";

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

File 7 of 7: SafeMath.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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":"_buybackWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSoldAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_minBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"isFee","type":"bool"}],"name":"_setApplyContractFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"buybackWalletAddr","type":"address"}],"name":"_setBuybackWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxvalue","type":"uint256"}],"name":"_setMaxSoldAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minValue","type":"uint256"}],"name":"_setMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"teamWalletAddr","type":"address"}],"name":"_setTeamWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"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":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address payable","name":"_destAddr","type":"address"}],"name":"contractBalanceSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractBalanceSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526011805461ffff60a01b1916600160a81b1790553480156200002557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350604080518082019091526008808252674f6273696469756d60c01b60209092019182526200009891600c91620003e7565b50604080518082019091526003808252624f425360e81b6020909201918252620000c591600b91620003e7565b50600a805460ff191660121790556a0bfe7e93369b759e80000060098190553360009081526002602090815260409182902092909255610258600d55670de0b6b3a7640000600e556a77f0f1c022129831000000600855601080546001600160a01b031990811673c005ef0ebf220e3824a5739f5085885dc8a001151790915560118054909116739418d04a2f6a89c2d6031b5c2e1d04cb26459349179055805163c45a015560e01b815290517310ed43c718714eb63d5aa57b78b54704e256024e92839263c45a01559260048083019392829003018186803b158015620001ac57600080fd5b505afa158015620001c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e791906200048d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200023057600080fd5b505afa15801562000245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026b91906200048d565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015620002b457600080fd5b505af1158015620002c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ef91906200048d565b600f80546001600160a01b03199081166001600160a01b039384161790915560128054909116918316919091179055600160046000620003376000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260049093528183208054851660019081179091556010548216845282842080548616821790556011549091168352818320805490941617909255600954915133927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620003d891815260200190565b60405180910390a350620004fa565b828054620003f590620004bd565b90600052602060002090601f01602090048101928262000419576000855562000464565b82601f106200043457805160ff191683800117855562000464565b8280016001018555821562000464579182015b828111156200046457825182559160200191906001019062000447565b506200047292915062000476565b5090565b5b8082111562000472576000815560010162000477565b6000602082840312156200049f578081fd5b81516001600160a01b0381168114620004b6578182fd5b9392505050565b600181811c90821680620004d257607f821691505b60208210811415620004f457634e487b7160e01b600052602260045260246000fd5b50919050565b611b32806200050a6000396000f3fe6080604052600436106101f25760003560e01c806370a082311161010d578063a457c2d7116100a0578063d83067861161006f578063d83067861461056a578063dd62ed3e1461058b578063ea2f0b37146105d1578063f2fde38b146105f1578063f61313911461061157600080fd5b8063a457c2d7146104ea578063a9059cbb1461050a578063bc3e07391461052a578063cb463f6c1461054a57600080fd5b8063893d20e8116100dc578063893d20e8146104a15780638da5cb5b146104a157806395b487f1146104bf57806395d89b41146104d557600080fd5b806370a0823114610420578063715018a614610456578063777774791461046b578063834379b41461048b57600080fd5b8063313ce56711610185578063437823ec11610154578063437823ec146103aa57806349bd5a5e146103ca57806366107391146103ea5780636ddd1713146103ff57600080fd5b8063313ce5671461033257806337e294d51461035457806339509351146103745780633b124fe71461039457600080fd5b806318160ddd116101c157806318160ddd146102b357806323b872dd146102d257806326714138146102f25780632d2115ad1461031257600080fd5b806306fdde03146101fe578063095ea7b3146102295780630d475f66146102595780631694505e1461027b57600080fd5b366101f957005b600080fd5b34801561020a57600080fd5b50610213610631565b60405161022091906118e3565b60405180910390f35b34801561023557600080fd5b5061024961024436600461182f565b6106c3565b6040519015158152602001610220565b34801561026557600080fd5b50610279610274366004611892565b6106da565b005b34801561028757600080fd5b5060125461029b906001600160a01b031681565b6040516001600160a01b039091168152602001610220565b3480156102bf57600080fd5b506009545b604051908152602001610220565b3480156102de57600080fd5b506102496102ed3660046117ef565b610768565b3480156102fe57600080fd5b5061027961030d36600461187a565b6107d1565b34801561031e57600080fd5b5061027961032d36600461187a565b610800565b34801561033e57600080fd5b50600a5460405160ff9091168152602001610220565b34801561036057600080fd5b5060105461029b906001600160a01b031681565b34801561038057600080fd5b5061024961038f36600461182f565b61082f565b3480156103a057600080fd5b506102c4600d5481565b3480156103b657600080fd5b506102796103c536600461177f565b610865565b3480156103d657600080fd5b50600f5461029b906001600160a01b031681565b3480156103f657600080fd5b506102796108b3565b34801561040b57600080fd5b5060115461024990600160a81b900460ff1681565b34801561042c57600080fd5b506102c461043b36600461177f565b6001600160a01b031660009081526002602052604090205490565b34801561046257600080fd5b506102796108f9565b34801561047757600080fd5b5061027961048636600461177f565b61096d565b34801561049757600080fd5b506102c4600e5481565b3480156104ad57600080fd5b506000546001600160a01b031661029b565b3480156104cb57600080fd5b506102c460085481565b3480156104e157600080fd5b506102136109b9565b3480156104f657600080fd5b5061024961050536600461182f565b6109c8565b34801561051657600080fd5b5061024961052536600461182f565b610a17565b34801561053657600080fd5b5060115461029b906001600160a01b031681565b34801561055657600080fd5b5061027961056536600461185a565b610a24565b34801561057657600080fd5b5060115461024990600160a01b900460ff1681565b34801561059757600080fd5b506102c46105a63660046117b7565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b3480156105dd57600080fd5b506102796105ec36600461177f565b610a65565b3480156105fd57600080fd5b5061027961060c36600461177f565b610ab0565b34801561061d57600080fd5b5061027961062c36600461177f565b610b9a565b6060600c805461064090611a49565b80601f016020809104026020016040519081016040528092919081815260200182805461066c90611a49565b80156106b95780601f1061068e576101008083540402835291602001916106b9565b820191906000526020600020905b81548152906001019060200180831161069c57829003601f168201915b5050505050905090565b60006106d0338484610be6565b5060015b92915050565b6000546001600160a01b0316331461070d5760405162461bcd60e51b815260040161070490611936565b60405180910390fd5b600061072167016345785d8a000047611a32565b905082811115610763576040516001600160a01b0383169084156108fc029085906000818181858888f19350505050158015610761573d6000803e3d6000fd5b505b505050565b6000610775848484610d0a565b6107c784336107c285604051806060016040528060288152602001611ab0602891396001600160a01b038a1660009081526003602090815260408083203384529091529020549190611030565b610be6565b5060019392505050565b6000546001600160a01b031633146107fb5760405162461bcd60e51b815260040161070490611936565b600e55565b6000546001600160a01b0316331461082a5760405162461bcd60e51b815260040161070490611936565b600855565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916106d09185906107c2908661106a565b6000546001600160a01b0316331461088f5760405162461bcd60e51b815260040161070490611936565b6001600160a01b03166000908152600460205260409020805460ff19166001179055565b6000546001600160a01b031633146108dd5760405162461bcd60e51b815260040161070490611936565b306000908152600260205260409020546108f6816110d0565b50565b6000546001600160a01b031633146109235760405162461bcd60e51b815260040161070490611936565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109975760405162461bcd60e51b815260040161070490611936565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6060600b805461064090611a49565b60006106d033846107c285604051806060016040528060258152602001611ad8602591393360009081526003602090815260408083206001600160a01b038d1684529091529020549190611030565b60006106d0338484610d0a565b6000546001600160a01b03163314610a4e5760405162461bcd60e51b815260040161070490611936565b8015610a5d57610258600d5550565b6000600d5550565b6000546001600160a01b03163314610a8f5760405162461bcd60e51b815260040161070490611936565b6001600160a01b03166000908152600460205260409020805460ff19169055565b6000546001600160a01b03163314610ada5760405162461bcd60e51b815260040161070490611936565b6001600160a01b038116610b3f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610704565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610bc45760405162461bcd60e51b815260040161070490611936565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610c485760405162461bcd60e51b8152602060048201526024808201527f42455032303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610704565b6001600160a01b038216610ca95760405162461bcd60e51b815260206004820152602260248201527f42455032303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610704565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610d6e5760405162461bcd60e51b815260206004820152602560248201527f42455032303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610704565b6001600160a01b038216610dd05760405162461bcd60e51b815260206004820152602360248201527f42455032303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610704565b60008111610e325760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610704565b601154600190600160a01b900460ff16158015610e585750601154600160a81b900460ff165b8015610e715750600f546001600160a01b038481169116145b15611020576001600160a01b038416600090815260056020526040902054610eaf576001600160a01b03841660009081526006602052604090204290555b6001600160a01b038416600090815260056020526040902054610ed39083906119db565b6001600160a01b038516600090815260056020908152604080832093909355600690522054610f0590620151806119db565b421015610f87576008546001600160a01b0385166000908152600560205260409020541115610f825760405162461bcd60e51b8152602060048201526024808201527f536f6c6420616d6f756e74206578636565647320746865206d61785478416d6f6044820152633ab73a1760e11b6064820152608401610704565b610fae565b6001600160a01b038416600090815260066020908152604080832042905560059091528120555b30600090815260026020526040902054600e54811115610fd157610fd181611255565b6001600160a01b03851660009081526004602052604090205460ff168061101057506001600160a01b03841660009081526004602052604090205460ff165b1561101a57600091505b50611024565b5060005b61076184848484611378565b600081848411156110545760405162461bcd60e51b815260040161070491906118e3565b5060006110618486611a32565b95945050505050565b60008061107783856119db565b9050838110156110c95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610704565b9392505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061111357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b15801561116757600080fd5b505afa15801561117b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119f919061179b565b816001815181106111c057634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526012546111e69130911684610be6565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac9479061121f90859060009086903090429060040161196b565b600060405180830381600087803b15801561123957600080fd5b505af115801561124d573d6000803e3d6000fd5b505050505050565b6011805460ff60a01b1916600160a01b17905560006112758260046113a0565b905060006112838284611a32565b90504761128f826110d0565b600061129b47836113e2565b905060006112aa8260036113a0565b90506112b68582611424565b60006112c28284611a32565b905060006112dc60036112d6846002611508565b906113a0565b6010546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611317573d6000803e3d6000fd5b5060006113248284611a32565b6011546040519192506001600160a01b03169082156108fc029083906000818181858888f1935050505015801561135f573d6000803e3d6000fd5b50506011805460ff60a01b191690555050505050505050565b8061138557611385611587565b611390848484611597565b8061076157610761610258600d55565b60006110c983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611751565b60006110c983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611030565b60125461143c9030906001600160a01b031684610be6565b6012546001600160a01b031663f305d7198230856000806114656000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b1580156114c857600080fd5b505af11580156114dc573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061150191906118b6565b5050505050565b600082611517575060006106d4565b60006115238385611a13565b90508261153085836119f3565b146110c95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610704565b600d5461159057565b6000600d55565b60006115b46127106112d6600d548561150890919063ffffffff16565b6001600160a01b0385166000908152600260205260409020549091508281101561162f5760405162461bcd60e51b815260206004820152602660248201527f42455032303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610704565b6116398382611a32565b6001600160a01b03861660009081526002602052604081209190915561165f8385611a32565b6001600160a01b03861660009081526002602052604081208054929350839290919061168c9084906119db565b909155505082156116fc5730600090815260026020526040812080548592906116b69084906119db565b909155505060405183815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161174191815260200190565b60405180910390a3505050505050565b600081836117725760405162461bcd60e51b815260040161070491906118e3565b50600061106184866119f3565b600060208284031215611790578081fd5b81356110c981611a9a565b6000602082840312156117ac578081fd5b81516110c981611a9a565b600080604083850312156117c9578081fd5b82356117d481611a9a565b915060208301356117e481611a9a565b809150509250929050565b600080600060608486031215611803578081fd5b833561180e81611a9a565b9250602084013561181e81611a9a565b929592945050506040919091013590565b60008060408385031215611841578182fd5b823561184c81611a9a565b946020939093013593505050565b60006020828403121561186b578081fd5b813580151581146110c9578182fd5b60006020828403121561188b578081fd5b5035919050565b600080604083850312156118a4578182fd5b8235915060208301356117e481611a9a565b6000806000606084860312156118ca578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b8181101561190f578581018301518582016040015282016118f3565b818111156119205783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156119ba5784516001600160a01b031683529383019391830191600101611995565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156119ee576119ee611a84565b500190565b600082611a0e57634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611a2d57611a2d611a84565b500290565b600082821015611a4457611a44611a84565b500390565b600181811c90821680611a5d57607f821691505b60208210811415611a7e57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146108f657600080fdfe42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220606233e9941647976ef0ecb1668a03d96dfd16306be0e5ba7789dcc96add86ad64736f6c63430008040033

Deployed ByteCode Sourcemap

611:12645:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3207:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4551:148;;;;;;;;;;-1:-1:-1;4551:148:4;;;;;:::i;:::-;;:::i;:::-;;;4107:14:7;;4100:22;4082:41;;4070:2;4055:18;4551:148:4;4037:92:7;11049:241:4;;;;;;;;;;-1:-1:-1;11049:241:4;;;;;:::i;:::-;;:::i;:::-;;1432:41;;;;;;;;;;-1:-1:-1;1432:41:4;;;;-1:-1:-1;;;;;1432:41:4;;;;;;-1:-1:-1;;;;;3062:32:7;;;3044:51;;3032:2;3017:18;1432:41:4;2999:102:7;3345:94:4;;;;;;;;;;-1:-1:-1;3422:12:4;;3345:94;;;9488:25:7;;;9476:2;9461:18;3345:94:4;9443:76:7;5131:295:4;;;;;;;;;;-1:-1:-1;5131:295:4;;;;;:::i;:::-;;:::i;12648:94::-;;;;;;;;;;-1:-1:-1;12648:94:4;;;;;:::i;:::-;;:::i;12485:102::-;;;;;;;;;;-1:-1:-1;12485:102:4;;;;;:::i;:::-;;:::i;2929:86::-;;;;;;;;;;-1:-1:-1;3001:9:4;;2929:86;;3001:9;;;;10654:36:7;;10642:2;10627:18;2929:86:4;10609:87:7;1287:34:4;;;;;;;;;;-1:-1:-1;1287:34:4;;;;-1:-1:-1;;;;;1287:34:4;;;5795:197;;;;;;;;;;-1:-1:-1;5795:197:4;;;;;:::i;:::-;;:::i;1198:22::-;;;;;;;;;;;;;;;;3687:103;;;;;;;;;;-1:-1:-1;3687:103:4;;;;;:::i;:::-;;:::i;1255:28::-;;;;;;;;;;-1:-1:-1;1255:28:4;;;;-1:-1:-1;;;;;1255:28:4;;;10683:153;;;;;;;;;;;;;:::i;1397:30::-;;;;;;;;;;-1:-1:-1;1397:30:4;;;;-1:-1:-1;;;1397:30:4;;;;;;3572:111;;;;;;;;;;-1:-1:-1;3572:111:4;;;;;:::i;:::-;-1:-1:-1;;;;;3660:18:4;3638:7;3660:18;;;:9;:18;;;;;;;3572:111;629:145:5;;;;;;;;;;;;;:::i;12961:122:4:-;;;;;;;;;;-1:-1:-1;12961:122:4;;;;;:::i;:::-;;:::i;1224:26::-;;;;;;;;;;;;;;;;2788:86;;;;;;;;;;-1:-1:-1;2840:7:4;488:6:5;-1:-1:-1;;;;;488:6:5;2788:86:4;;1054:29;;;;;;;;;;;;;;;;3068:90;;;;;;;;;;;;;:::i;6449:248::-;;;;;;;;;;-1:-1:-1;6449:248:4;;;;;:::i;:::-;;:::i;4083:156::-;;;;;;;;;;-1:-1:-1;4083:156:4;;;;;:::i;:::-;;:::i;1325:37::-;;;;;;;;;;-1:-1:-1;1325:37:4;;;;-1:-1:-1;;;;;1325:37:4;;;12812:145;;;;;;;;;;-1:-1:-1;12812:145:4;;;;;:::i;:::-;;:::i;1367:26::-;;;;;;;;;;-1:-1:-1;1367:26:4;;;;-1:-1:-1;;;1367:26:4;;;;;;4289:137;;;;;;;;;;-1:-1:-1;4289:137:4;;;;;:::i;:::-;-1:-1:-1;;;;;4394:18:4;;;4372:7;4394:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4289:137;3796:102;;;;;;;;;;-1:-1:-1;3796:102:4;;;;;:::i;:::-;;:::i;784:240:5:-;;;;;;;;;;-1:-1:-1;784:240:5;;;;;:::i;:::-;;:::i;13087:134:4:-;;;;;;;;;;-1:-1:-1;13087:134:4;;;;;:::i;:::-;;:::i;3207:86::-;3255:13;3283:5;3276:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3207:86;:::o;4551:148::-;4626:4;4638:39;168:10:0;4661:7:4;4670:6;4638:8;:39::i;:::-;-1:-1:-1;4690:4:4;4551:148;;;;;:::o;11049:241::-;546:6:5;;-1:-1:-1;;;;;546:6:5;168:10:0;546:22:5;538:67;;;;-1:-1:-1;;;538:67:5;;;;;;;:::i;:::-;;;;;;;;;11145:26:4::1;11174:34;11198:10;11174:21;:34;:::i;:::-;11145:63;;11238:6;11217:18;:27;11214:72;;;11253:26;::::0;-1:-1:-1;;;;;11253:18:4;::::1;::::0;:26;::::1;;;::::0;11272:6;;11253:26:::1;::::0;;;11272:6;11253:18;:26;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;11214:72;615:1:5;11049:241:4::0;;:::o;5131:295::-;5229:4;5241:36;5251:6;5259:9;5270:6;5241:9;:36::i;:::-;5283:121;5292:6;168:10:0;5314:89:4;5352:6;5314:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5314:19:4;;;;;;:11;:19;;;;;;;;168:10:0;5314:33:4;;;;;;;;;;:37;:89::i;:::-;5283:8;:121::i;:::-;-1:-1:-1;5417:4:4;5131:295;;;;;:::o;12648:94::-;546:6:5;;-1:-1:-1;;;;;546:6:5;168:10:0;546:22:5;538:67;;;;-1:-1:-1;;;538:67:5;;;;;;;:::i;:::-;12715:11:4::1;:22:::0;12648:94::o;12485:102::-;546:6:5;;-1:-1:-1;;;;;546:6:5;168:10:0;546:22:5;538:67;;;;-1:-1:-1;;;538:67:5;;;;;;;:::i;:::-;12557:14:4::1;:25:::0;12485:102::o;5795:197::-;168:10:0;5875:4:4;5919:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;5919:34:4;;;;;;;;;;5875:4;;5887:83;;5910:7;;5919:50;;5958:10;5919:38;:50::i;3687:103::-;546:6:5;;-1:-1:-1;;;;;546:6:5;168:10:0;546:22:5;538:67;;;;-1:-1:-1;;;538:67:5;;;;;;;:::i;:::-;-1:-1:-1;;;;;3751:27:4::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;3751:34:4::1;3781:4;3751:34;::::0;;3687:103::o;10683:153::-;546:6:5;;-1:-1:-1;;;;;546:6:5;168:10:0;546:22:5;538:67;;;;-1:-1:-1;;;538:67:5;;;;;;;:::i;:::-;10784:4:4::1;10740:23;3660:18:::0;;;:9;:18;;;;;;10798:33:::1;3660:18:::0;10798:16:::1;:33::i;:::-;615:1:5;10683:153:4:o:0;629:145:5:-;546:6;;-1:-1:-1;;;;;546:6:5;168:10:0;546:22:5;538:67;;;;-1:-1:-1;;;538:67:5;;;;;;;:::i;:::-;735:1:::1;719:6:::0;;698:40:::1;::::0;-1:-1:-1;;;;;719:6:5;;::::1;::::0;698:40:::1;::::0;735:1;;698:40:::1;765:1;748:19:::0;;-1:-1:-1;;;;;;748:19:5::1;::::0;;629:145::o;12961:122:4:-;546:6:5;;-1:-1:-1;;;;;546:6:5;168:10:0;546:22:5;538:67;;;;-1:-1:-1;;;538:67:5;;;;;;;:::i;:::-;13041:11:4::1;:37:::0;;-1:-1:-1;;;;;;13041:37:4::1;-1:-1:-1::0;;;;;13041:37:4;;;::::1;::::0;;;::::1;::::0;;12961:122::o;3068:90::-;3118:13;3146:7;3139:14;;;;;:::i;6449:248::-;6534:4;6546:129;168:10:0;6569:7:4;6578:96;6617:15;6578:96;;;;;;;;;;;;;;;;;168:10:0;6578:25:4;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;6578:34:4;;;;;;;;;;;;:38;:96::i;4083:156::-;4163:4;4175:42;168:10:0;4199:9:4;4210:6;4175:9;:42::i;12812:145::-;546:6:5;;-1:-1:-1;;;;;546:6:5;168:10:0;546:22:5;538:67;;;;-1:-1:-1;;;538:67:5;;;;;;;:::i;:::-;12882:5:4::1;12879:74;;;12909:3;12899:7;:13:::0;615:1:5::1;10683:153:4:o:0;12879:74::-:1;12945:1;12935:7;:11:::0;12812:145;:::o;3796:102::-;546:6:5;;-1:-1:-1;;;;;546:6:5;168:10:0;546:22:5;538:67;;;;-1:-1:-1;;;538:67:5;;;;;;;:::i;:::-;-1:-1:-1;;;;;3858:27:4::1;3888:5;3858:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;3858:35:4::1;::::0;;3796:102::o;784:240:5:-;546:6;;-1:-1:-1;;;;;546:6:5;168:10:0;546:22:5;538:67;;;;-1:-1:-1;;;538:67:5;;;;;;;:::i;:::-;-1:-1:-1;;;;;872:22:5;::::1;864:73;;;::::0;-1:-1:-1;;;864:73:5;;6394:2:7;864:73:5::1;::::0;::::1;6376:21:7::0;6433:2;6413:18;;;6406:30;6472:34;6452:18;;;6445:62;-1:-1:-1;;;6523:18:7;;;6516:36;6569:19;;864:73:5::1;6366:228:7::0;864:73:5::1;973:6;::::0;;952:38:::1;::::0;-1:-1:-1;;;;;952:38:5;;::::1;::::0;973:6;::::1;::::0;952:38:::1;::::0;::::1;1000:6;:17:::0;;-1:-1:-1;;;;;;1000:17:5::1;-1:-1:-1::0;;;;;1000:17:5;;;::::1;::::0;;;::::1;::::0;;784:240::o;13087:134:4:-;546:6:5;;-1:-1:-1;;;;;546:6:5;168:10:0;546:22:5;538:67;;;;-1:-1:-1;;;538:67:5;;;;;;;:::i;:::-;13173:14:4::1;:43:::0;;-1:-1:-1;;;;;;13173:43:4::1;-1:-1:-1::0;;;;;13173:43:4;;;::::1;::::0;;;::::1;::::0;;13087:134::o;8475:314::-;-1:-1:-1;;;;;8564:19:4;;8556:68;;;;-1:-1:-1;;;8556:68:4;;5584:2:7;8556:68:4;;;5566:21:7;5623:2;5603:18;;;5596:30;5662:34;5642:18;;;5635:62;-1:-1:-1;;;5713:18:7;;;5706:34;5757:19;;8556:68:4;5556:226:7;8556:68:4;-1:-1:-1;;;;;8638:21:4;;8630:68;;;;-1:-1:-1;;;8630:68:4;;9141:2:7;8630:68:4;;;9123:21:7;9180:2;9160:18;;;9153:30;9219:34;9199:18;;;9192:62;-1:-1:-1;;;9270:18:7;;;9263:32;9312:19;;8630:68:4;9113:224:7;8630:68:4;-1:-1:-1;;;;;8705:18:4;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8752:32;;9488:25:7;;;8752:32:4;;9461:18:7;8752:32:4;;;;;;;8475:314;;;:::o;7054:1167::-;-1:-1:-1;;;;;7139:18:4;;7131:68;;;;-1:-1:-1;;;7131:68:4;;5178:2:7;7131:68:4;;;5160:21:7;5217:2;5197:18;;;5190:30;5256:34;5236:18;;;5229:62;-1:-1:-1;;;5307:18:7;;;5300:35;5352:19;;7131:68:4;5150:227:7;7131:68:4;-1:-1:-1;;;;;7213:16:4;;7205:64;;;;-1:-1:-1;;;7205:64:4;;8737:2:7;7205:64:4;;;8719:21:7;8776:2;8756:18;;;8749:30;8815:34;8795:18;;;8788:62;-1:-1:-1;;;8866:18:7;;;8859:33;8909:19;;7205:64:4;8709:225:7;7205:64:4;7292:1;7283:6;:10;7275:64;;;;-1:-1:-1;;;7275:64:4;;7920:2:7;7275:64:4;;;7902:21:7;7959:2;7939:18;;;7932:30;7998:34;7978:18;;;7971:62;-1:-1:-1;;;8049:18:7;;;8042:39;8098:19;;7275:64:4;7892:231:7;7275:64:4;7377:6;;7361:4;;-1:-1:-1;;;7377:6:4;;;;7376:7;:22;;;;-1:-1:-1;7387:11:4;;-1:-1:-1;;;7387:11:4;;;;7376:22;:45;;;;-1:-1:-1;7408:13:4;;-1:-1:-1;;;;;7402:19:4;;;7408:13;;7402:19;7376:45;7372:797;;;-1:-1:-1;;;;;7463:16:4;;;;;;:10;:16;;;;;;7460:78;;-1:-1:-1;;;;;7495:16:4;;;;;;:10;:16;;;;;7514:15;7495:34;;7460:78;-1:-1:-1;;;;;7565:16:4;;;;;;:10;:16;;;;;;:25;;7584:6;;7565:25;:::i;:::-;-1:-1:-1;;;;;7546:16:4;;;;;;:10;:16;;;;;;;;:44;;;;7621:10;:16;;;;:27;;7641:6;7621:27;:::i;:::-;7603:15;:45;7599:245;;;7689:14;;-1:-1:-1;;;;;7669:16:4;;;;;;:10;:16;;;;;;:34;;7661:83;;;;-1:-1:-1;;;7661:83:4;;5989:2:7;7661:83:4;;;5971:21:7;6028:2;6008:18;;;6001:30;6067:34;6047:18;;;6040:62;-1:-1:-1;;;6118:18:7;;;6111:34;6162:19;;7661:83:4;5961:226:7;7661:83:4;7599:245;;;-1:-1:-1;;;;;7769:16:4;;;;;;:10;:16;;;;;;;;7788:15;7769:34;;7815:10;:16;;;;;:20;7599:245;7916:4;7877:18;3660;;;:9;:18;;;;;;7946:11;;7933:24;;7930:93;;;7988:26;8003:10;7988:14;:26::i;:::-;-1:-1:-1;;;;;8041:24:4;;;;;;:18;:24;;;;;;;;;:50;;-1:-1:-1;;;;;;8069:22:4;;;;;;:18;:22;;;;;;;;8041:50;8037:90;;;8113:5;8103:15;;8037:90;7372:797;;;;-1:-1:-1;8157:5:4;7372:797;8175:41;8190:4;8196:2;8200:6;8208:7;8175:14;:41::i;401:186:6:-;487:7;522:12;514:6;;;;506:29;;;;-1:-1:-1;;;506:29:6;;;;;;;;:::i;:::-;-1:-1:-1;545:9:6;557:5;561:1;557;:5;:::i;:::-;545:17;401:186;-1:-1:-1;;;;;401:186:6:o;80:175::-;138:7;;169:5;173:1;169;:5;:::i;:::-;157:17;;197:1;192;:6;;184:46;;;;-1:-1:-1;;;184:46:6;;6801:2:7;184:46:6;;;6783:21:7;6840:2;6820:18;;;6813:30;6879:29;6859:18;;;6852:57;6926:18;;184:46:6;6773:177:7;184:46:6;247:1;80:175;-1:-1:-1;;;80:175:6:o;9639:366:4:-;9723:16;;;9737:1;9723:16;;;;;;;;9699:21;;9723:16;;;;;;;;;;-1:-1:-1;9723:16:4;9699:40;;9763:4;9745;9750:1;9745:7;;;;;;-1:-1:-1;;;9745:7:4;;;;;;;;;-1:-1:-1;;;;;9745:23:4;;;:7;;;;;;;;;;:23;;;;9784:15;;:22;;;-1:-1:-1;;;9784:22:4;;;;:15;;;;;:20;;:22;;;;;9745:7;;9784:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9774:4;9779:1;9774:7;;;;;;-1:-1:-1;;;9774:7:4;;;;;;;;;-1:-1:-1;;;;;9774:32:4;;;:7;;;;;;;;;:32;9844:15;;9812:62;;9829:4;;9844:15;9862:11;9812:8;:62::i;:::-;9880:15;;:120;;-1:-1:-1;;;9880:120:4;;-1:-1:-1;;;;;9880:15:4;;;;:66;;:120;;9947:11;;9880:15;;9963:4;;9977;;9984:15;;9880:120;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9639:366;;:::o;8878:705::-;1530:6;:13;;-1:-1:-1;;;;1530:13:4;-1:-1:-1;;;1530:13:4;;;;8976:19:::1;:12:::0;8993:1:::1;8976:16;:19::i;:::-;8950:45:::0;-1:-1:-1;9010:22:4::1;9035:30;8950:45:::0;9035:12;:30:::1;:::i;:::-;9010:55:::0;-1:-1:-1;9106:21:4::1;9133:32;9010:55:::0;9133:16:::1;:32::i;:::-;9172:18;9193:41;:21;9219:14:::0;9193:25:::1;:41::i;:::-;9172:62:::0;-1:-1:-1;9240:25:4::1;9268:17;9172:62:::0;9283:1:::1;9268:14;:17::i;:::-;9240:45;;9291:47;9303:15;9320:17;9291:11;:47::i;:::-;9345:20;9368:30;9381:17:::0;9368:10;:30:::1;:::i;:::-;9345:53:::0;-1:-1:-1;9408:15:4::1;9426:26;9450:1;9426:19;9345:53:::0;9443:1:::1;9426:16;:19::i;:::-;:23:::0;::::1;:26::i;:::-;9458:11;::::0;:29:::1;::::0;9408:44;;-1:-1:-1;;;;;;9458:11:4::1;::::0;:29;::::1;;;::::0;9408:44;;9458:11:::1;:29:::0;:11;:29;9408:44;9458:11;:29;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;9494:18:4::1;9515:22;9530:7:::0;9515:12;:22:::1;:::i;:::-;9543:14;::::0;:35:::1;::::0;9494:43;;-1:-1:-1;;;;;;9543:14:4::1;::::0;:35;::::1;;;::::0;9494:43;;9543:14:::1;:35:::0;:14;:35;9494:43;9543:14;:35;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;1556:6:4;:14;;-1:-1:-1;;;;1556:14:4;;;-1:-1:-1;;;;;;;;8878:705:4:o;11573:227::-;11683:9;11678:30;;11694:14;:12;:14::i;:::-;11714:44;11732:6;11740:9;11751:6;11714:17;:44::i;:::-;11769:9;11764:31;;11780:15;11508:3;11498:7;:13;11459:57;838:130:6;896:7;922:39;926:1;929;922:39;;;;;;;;;;;;;;;;;:3;:39::i;261:134::-;319:7;345:43;349:1;352;345:43;;;;;;;;;;;;;;;;;:3;:43::i;10091:458:4:-;10260:15;;10228:62;;10245:4;;-1:-1:-1;;;;;10260:15:4;10278:11;10228:8;:62::i;:::-;10327:15;;-1:-1:-1;;;;;10327:15:4;:31;10366:9;10394:4;10409:11;10327:15;;10506:7;462::5;488:6;-1:-1:-1;;;;;488:6:5;;424:77;10506:7:4;10327:217;;;;;;-1:-1:-1;;;;;;10327:217:4;;;-1:-1:-1;;;;;3689:15:7;;;10327:217:4;;;3671:34:7;3721:18;;;3714:34;;;;3764:18;;;3757:34;;;;3807:18;;;3800:34;3871:15;;;3850:19;;;3843:44;10523:15:4;3903:19:7;;;3896:35;3605:19;;10327:217:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10091:458;;:::o;593:239:6:-;651:7;674:6;670:45;;-1:-1:-1;703:1:6;696:8;;670:45;724:9;736:5;740:1;736;:5;:::i;:::-;724:17;-1:-1:-1;768:1:6;759:5;763:1;724:17;759:5;:::i;:::-;:10;751:56;;;;-1:-1:-1;;;751:56:6;;7157:2:7;751:56:6;;;7139:21:7;7196:2;7176:18;;;7169:30;7235:34;7215:18;;;7208:62;-1:-1:-1;;;7286:18:7;;;7279:31;7327:19;;751:56:6;7129:223:7;11334:84:4;11376:7;;11372:25;;11334:84::o;11372:25::-;11412:1;11402:7;:11;11334:84::o;11804:633::-;11900:11;11914:30;11938:5;11914:19;11925:7;;11914:6;:10;;:19;;;;:::i;:30::-;-1:-1:-1;;;;;12044:17:4;;12020:21;12044:17;;;:9;:17;;;;;;11900:44;;-1:-1:-1;12075:23:4;;;;12067:74;;;;-1:-1:-1;;;12067:74:4;;8330:2:7;12067:74:4;;;8312:21:7;8369:2;8349:18;;;8342:30;8408:34;8388:18;;;8381:62;-1:-1:-1;;;8459:18:7;;;8452:36;8505:19;;12067:74:4;8302:228:7;12067:74:4;12167:22;12183:6;12167:13;:22;:::i;:::-;-1:-1:-1;;;;;12147:17:4;;;;;;:9;:17;;;;;:42;;;;12215:12;12224:3;12215:6;:12;:::i;:::-;-1:-1:-1;;;;;12233:20:4;;;;;;:9;:20;;;;;:35;;12195:32;;-1:-1:-1;12195:32:4;;12233:20;;;:35;;12195:32;;12233:35;:::i;:::-;;;;-1:-1:-1;;12279:5:4;;12275:108;;12312:4;12294:24;;;;:9;:24;;;;;:33;;12323:3;;12294:24;:33;;12323:3;;12294:33;:::i;:::-;;;;-1:-1:-1;;12340:36:4;;9488:25:7;;;12365:4:4;;-1:-1:-1;;;;;12340:36:4;;;;;9476:2:7;9461:18;12340:36:4;;;;;;;12275:108;12411:9;-1:-1:-1;;;;;12394:38:4;12403:6;-1:-1:-1;;;;;12394:38:4;;12422:9;12394:38;;;;9488:25:7;;9476:2;9461:18;;9443:76;12394:38:4;;;;;;;;11804:633;;;;;;:::o;974:185:6:-;1060:7;1094:12;1087:5;1079:28;;;;-1:-1:-1;;;1079:28:6;;;;;;;;:::i;:::-;-1:-1:-1;1117:9:6;1129:5;1133:1;1129;:5;:::i;14:257:7:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:7;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:7;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:7;1386:18;;;;1373:32;;1049:362::o;1416:325::-;1484:6;1492;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1566:6;1558;1551:22;1513:2;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1503:238:7:o;1746:293::-;1802:6;1855:2;1843:9;1834:7;1830:23;1826:32;1823:2;;;1876:6;1868;1861:22;1823:2;1920:9;1907:23;1973:5;1966:13;1959:21;1952:5;1949:32;1939:2;;2000:6;1992;1985:22;2044:190;2103:6;2156:2;2144:9;2135:7;2131:23;2127:32;2124:2;;;2177:6;2169;2162:22;2124:2;-1:-1:-1;2205:23:7;;2114:120;-1:-1:-1;2114:120:7:o;2239:333::-;2315:6;2323;2376:2;2364:9;2355:7;2351:23;2347:32;2344:2;;;2397:6;2389;2382:22;2344:2;2438:9;2425:23;2415:33;;2498:2;2487:9;2483:18;2470:32;2511:31;2536:5;2511:31;:::i;2577:316::-;2665:6;2673;2681;2734:2;2722:9;2713:7;2709:23;2705:32;2702:2;;;2755:6;2747;2740:22;2702:2;2789:9;2783:16;2773:26;;2839:2;2828:9;2824:18;2818:25;2808:35;;2883:2;2872:9;2868:18;2862:25;2852:35;;2692:201;;;;;:::o;4368:603::-;4480:4;4509:2;4538;4527:9;4520:21;4570:6;4564:13;4613:6;4608:2;4597:9;4593:18;4586:34;4638:4;4651:140;4665:6;4662:1;4659:13;4651:140;;;4760:14;;;4756:23;;4750:30;4726:17;;;4745:2;4722:26;4715:66;4680:10;;4651:140;;;4809:6;4806:1;4803:13;4800:2;;;4879:4;4874:2;4865:6;4854:9;4850:22;4846:31;4839:45;4800:2;-1:-1:-1;4955:2:7;4934:15;-1:-1:-1;;4930:29:7;4915:45;;;;4962:2;4911:54;;4489:482;-1:-1:-1;;;4489:482:7:o;7357:356::-;7559:2;7541:21;;;7578:18;;;7571:30;7637:34;7632:2;7617:18;;7610:62;7704:2;7689:18;;7531:182::o;9524:983::-;9786:4;9834:3;9823:9;9819:19;9865:6;9854:9;9847:25;9891:2;9929:6;9924:2;9913:9;9909:18;9902:34;9972:3;9967:2;9956:9;9952:18;9945:31;9996:6;10031;10025:13;10062:6;10054;10047:22;10100:3;10089:9;10085:19;10078:26;;10139:2;10131:6;10127:15;10113:29;;10160:4;10173:195;10187:6;10184:1;10181:13;10173:195;;;10252:13;;-1:-1:-1;;;;;10248:39:7;10236:52;;10343:15;;;;10308:12;;;;10284:1;10202:9;10173:195;;;-1:-1:-1;;;;;;;10424:32:7;;;;10419:2;10404:18;;10397:60;-1:-1:-1;;;10488:3:7;10473:19;10466:35;10385:3;9795:712;-1:-1:-1;;;9795:712:7:o;10701:128::-;10741:3;10772:1;10768:6;10765:1;10762:13;10759:2;;;10778:18;;:::i;:::-;-1:-1:-1;10814:9:7;;10749:80::o;10834:217::-;10874:1;10900;10890:2;;-1:-1:-1;;;10925:31:7;;10979:4;10976:1;10969:15;11007:4;10932:1;10997:15;10890:2;-1:-1:-1;11036:9:7;;10880:171::o;11056:168::-;11096:7;11162:1;11158;11154:6;11150:14;11147:1;11144:21;11139:1;11132:9;11125:17;11121:45;11118:2;;;11169:18;;:::i;:::-;-1:-1:-1;11209:9:7;;11108:116::o;11229:125::-;11269:4;11297:1;11294;11291:8;11288:2;;;11302:18;;:::i;:::-;-1:-1:-1;11339:9:7;;11278:76::o;11359:380::-;11438:1;11434:12;;;;11481;;;11502:2;;11556:4;11548:6;11544:17;11534:27;;11502:2;11609;11601:6;11598:14;11578:18;11575:38;11572:2;;;11655:10;11650:3;11646:20;11643:1;11636:31;11690:4;11687:1;11680:15;11718:4;11715:1;11708:15;11572:2;;11414:325;;;:::o;11744:127::-;11805:10;11800:3;11796:20;11793:1;11786:31;11836:4;11833:1;11826:15;11860:4;11857:1;11850:15;11876:131;-1:-1:-1;;;;;11951:31:7;;11941:42;;11931:2;;11997:1;11994;11987:12

Swarm Source

ipfs://606233e9941647976ef0ecb1668a03d96dfd16306be0e5ba7789dcc96add86ad
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.