Contract 0xd2a23e28a6cF48357D3A40d00CC318fbCB6a3b26

 

Contract Overview

Balance:
0.005779772525494196 ETH

ETH Value:
$10.20 (@ $1,764.38/ETH)

Token:
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x9e08dff380d2c3a676274aa4865c187a75ba512b8360e8268d0cf397fb8ed3efApprove718588362023-03-20 18:25:5414 mins ago0xd0a9f2f7ed38538038601bc220c6132e48cc1276 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.000074320.1
0x772e6d4b19d61d6f48c67c8d35843e52ebdeb9a4ee8aa1246aa1bb62cfa51abcApprove718567662023-03-20 18:17:1823 mins ago0xc79126f586591fcb46dead808d40616e4f3ed325 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.000058350.1
0x854feb6442a8a10c0047708429753732459a043b5f71bef0edb89a30024780adApprove718562782023-03-20 18:15:1225 mins ago0x4f44fe35ff1da724166e7ebf044e015e3b0e479f IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00005925 0.1
0xf8b4ab95851ed4b21471d11a6fa868dfd660923d15e88077ef0286b295da344cApprove718446852023-03-20 17:26:521 hr 13 mins ago0x6b2d6564452b01f6994d2b9163bd371273b5e9a5 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00005803 0.1
0xbbf2cf521765700ae9f98b887e75ef04f17caf6f4831110dbfcb58371a0f01cdApprove718444842023-03-20 17:26:011 hr 14 mins ago0x4d97507dc05cd5481e21a1dfa90125ad9c209f1b IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00005862 0.1
0x4c558c0fa277053ebebafd5ae2fd28109b01f065a1da4f6259f053eb91ba3772Approve718398982023-03-20 17:07:011 hr 33 mins ago0xa5e693e7b3261fd0aa6bb55aad01444384903161 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00005064 0.1
0xf16aac76f6ad89a933a7ea4fceb867305b0e88e95c4ef8f96a7c7e71cf84d36bTransfer718387872023-03-20 17:02:201 hr 38 mins ago0xfda1121915083676fbae24a91248d9e8fbc9f998 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00005096 0.1
0x6260d04a9f4e2fe493906ef89fdf27aa2906104c6f8c0806c38c56bdb3aa6549Approve718351792023-03-20 16:47:381 hr 52 mins ago0x201b591a2b6339460c5a25cb724ad25236aa9361 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.000059090.1
0xe234d9326f10d4f9823ef152f5d1ba07bf4b984bc0dc07d3d79394e83d89f67aApprove718351252023-03-20 16:47:251 hr 53 mins ago0xa021f471257b02685ae8728091ea3ce5efdf66a5 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00006091 0.1
0xf196e876fb3f69d760bef27e013264371acd85dca338d34e60bd2a245ca90303Approve718313722023-03-20 16:31:562 hrs 8 mins ago0x0688704b6a9043bbc657adef440d1e7518c08e10 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.000048290.1
0x469d029682f5fd85b50bd9d392879b812b7afe1b25cfb959d28b82fffdc0bc23Set Fee Profile718291692023-03-20 16:23:002 hrs 17 mins ago0xb7e041809b7b026b97f03bd6dbc28e74cceca08e IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00006067 0.1
0xd04d80c16f1b43b10d6e44af11df2914295bcd45c5ae4d7bf49ed387ef020890Approve718290802023-03-20 16:22:382 hrs 17 mins ago0xb4991851986e5d8a4ed5d440043b000ca859e619 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00004560.1
0x0f0c37b404cceac4d20f1d9426e4e558a8ba555067ec90b150400cb6e0baf7f7Approve718290642023-03-20 16:22:342 hrs 18 mins ago0x5161db8ff7d277d611550a1499ed1a9c59bfe1b4 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00004721 0.1
0x2fa2aa625b02a46cc89fc4f39413d9a881b8a0d12b57e4c0d714cb53d69e982aApprove718285762023-03-20 16:20:312 hrs 20 mins ago0x9e3d24c1bd05b0ab424441b1a3b5c016ea619384 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00004560.1
0x08155a01997cd458c19955f10c883e14c1eea8650c009369ded016f319ce7e32Approve718265492023-03-20 16:12:132 hrs 28 mins ago0x37200b2e29b58bda1bcfcb93e7b4b26688020ba7 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.000039760.1
0xd9421c9f96d9c4beddf4ed35fbbd908c4e454ec69da9899667a7b9139d578449Approve718243832023-03-20 16:03:232 hrs 37 mins ago0xcba967e5488c0df31c593902ca13304c7e000000 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00006351 0.1
0x048e29d333a759f9cca8c76705c38aa340023cbe14d0ee67838727dc9c51d3cbApprove718240842023-03-20 16:02:082 hrs 38 mins ago0xfee069692c5a48ede946900ad8ddc13e76ca2f3f IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00006244 0.1
0x97197d68c3a32006bd57c0863eb81ec812b014043e6ebb6075fd50c8e325b66cApprove718198372023-03-20 15:44:472 hrs 55 mins ago0x24108f093e0211aa62276651fda45cdd6e82b9f0 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00005077 0.1
0x51de07da73fca8570e5862b4bf2daf57d98a45ebcda4cfafe6b1fc86a7ad8dffApprove718196322023-03-20 15:43:552 hrs 56 mins ago0xca1430680c6c30c75abe9d42217fe307ed7513ae IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00004929 0.1
0x3bdef0fae55fb9e09fffa42cad35a20c68d5e620ef73ae4bf248942db2c15d2aTransfer718148522023-03-20 15:24:063 hrs 16 mins ago0x6493b107354398ef95c313d252a5c2cd0f288529 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00005147 0.1
0xac148e3b87514160ae0d218dd197dbfe5182e2004779c95019a562a945fab5a4Approve718090792023-03-20 15:00:173 hrs 40 mins ago0xc6e2dcf6c60ac5262337b9eb182823812471351f IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00006196 0.1
0x605cbe203392e20f2c5110c204d2d552be4de7f4da2c0eab51b6108c6420c649Approve717987472023-03-20 14:17:414 hrs 22 mins ago0x0300ce3495a34da8c05e0844c508dd225f6e3ffe IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00005034 0.1
0xb0746e8b3c3976196a9049b01a74f7fd613c4f72515a895d6a2b6b222e9e50efApprove717982132023-03-20 14:15:274 hrs 25 mins ago0x0300ce3495a34da8c05e0844c508dd225f6e3ffe IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00005014 0.1
0x416ed4a3ac8d96a3fef4481d212fcbbc55fe4580163dbe3ea0d2a44ee2b7243fApprove717885262023-03-20 13:35:495 hrs 4 mins ago0xcd0d83d9e840f8e27d5c2e365fd365ff1c05b248 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00004403 0.1
0x938b0ba2f8d6c6d5ac33c3a04d0fc64aada45eac848debed5df9706ed41be964Approve717870022023-03-20 13:29:365 hrs 10 mins ago0xadda540bf6af09abcbf96d70e5c8716d0f8ecee5 IN  0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH0.00004835 0.1
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x38c133ee4fa26c96e1d78dec62ec03b25a8d767ec8ed2ef6649dd7b8d46bc382718623242023-03-20 18:40:268 secs ago 0x0a2854fbbd9b3ef66f17d47284e7f899b9509330 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x38c133ee4fa26c96e1d78dec62ec03b25a8d767ec8ed2ef6649dd7b8d46bc382718623242023-03-20 18:40:268 secs ago 0x0a2854fbbd9b3ef66f17d47284e7f899b9509330 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x38c133ee4fa26c96e1d78dec62ec03b25a8d767ec8ed2ef6649dd7b8d46bc382718623242023-03-20 18:40:268 secs ago 0x1111111254eeb25477b68fb85ed929f73a960582 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x3faffa667e7aeefcf4dbb1ae94caa0dbca5e4b6f470f42d2e1c9571c28e4caba718621782023-03-20 18:39:4945 secs ago 0x0a2854fbbd9b3ef66f17d47284e7f899b9509330 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x3faffa667e7aeefcf4dbb1ae94caa0dbca5e4b6f470f42d2e1c9571c28e4caba718621782023-03-20 18:39:4945 secs ago 0x0a2854fbbd9b3ef66f17d47284e7f899b9509330 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x3faffa667e7aeefcf4dbb1ae94caa0dbca5e4b6f470f42d2e1c9571c28e4caba718621782023-03-20 18:39:4945 secs ago 0x1111111254eeb25477b68fb85ed929f73a960582 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x53a3ec510468a5a22893a08dadc38da4fe3864e00ea243a64954ad9083f79c75718616202023-03-20 18:37:263 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x53a3ec510468a5a22893a08dadc38da4fe3864e00ea243a64954ad9083f79c75718616202023-03-20 18:37:263 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0xfa62fc4b40d78be354cc0eacb9786badd5c98e556095825f44ef87f172221efd718613932023-03-20 18:36:373 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0xfa62fc4b40d78be354cc0eacb9786badd5c98e556095825f44ef87f172221efd718613932023-03-20 18:36:373 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x8e71c6415b2bac1a84cfeafe9bdd940329fd43001b7528a985ee69913a274d2d718581892023-03-20 18:23:1517 mins ago 0xc353a74e8c64ed09a378114b42c0dad5fd760bc4 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x46f236bc65dd267056d267a183a8c6cecbbdf9f5f31a9c4077f26796bd52837c718580902023-03-20 18:22:5017 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x46f236bc65dd267056d267a183a8c6cecbbdf9f5f31a9c4077f26796bd52837c718580902023-03-20 18:22:5017 mins ago 0x863e9610e9e0c3986dcc6fb2cd335e11d88f7d5f 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x46f236bc65dd267056d267a183a8c6cecbbdf9f5f31a9c4077f26796bd52837c718580902023-03-20 18:22:5017 mins ago 0x863e9610e9e0c3986dcc6fb2cd335e11d88f7d5f 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x168b569fd9c4f7c370c20c7e99f4eaa9adf91caa6bb6daf0b26dff562817dd13718580122023-03-20 18:22:3018 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x168b569fd9c4f7c370c20c7e99f4eaa9adf91caa6bb6daf0b26dff562817dd13718580122023-03-20 18:22:3018 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0xe46b07d7c01d48004dfed6ab18f79931fe08064fd9785467006dc678280bce33718579982023-03-20 18:22:2718 mins ago 0xc353a74e8c64ed09a378114b42c0dad5fd760bc4 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x89778160ef5a38d0db0072d556f03fd553d0718df2ed632a72fad055d1e79413718566002023-03-20 18:16:3424 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x89778160ef5a38d0db0072d556f03fd553d0718df2ed632a72fad055d1e79413718566002023-03-20 18:16:3424 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0xca146862f9436a04b00fe453bb575e929313cce02d65b517f023cf5b786fec7e718564742023-03-20 18:16:0324 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0xca146862f9436a04b00fe453bb575e929313cce02d65b517f023cf5b786fec7e718564742023-03-20 18:16:0324 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x48c808d98bc7105357b687966e5f1410a183323943e740aaaa1ea8fce27f37f4718564312023-03-20 18:15:5124 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0x48c808d98bc7105357b687966e5f1410a183323943e740aaaa1ea8fce27f37f4718564312023-03-20 18:15:5124 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0xab43bc33ec8f6079cc047a4842856b37cf032b7e219a4665d927dc6a5fd30380718563302023-03-20 18:15:2525 mins ago 0x6ca8ca39a645b281f719aba4222c50ece0f2102c 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
0xab43bc33ec8f6079cc047a4842856b37cf032b7e219a4665d927dc6a5fd30380718563302023-03-20 18:15:2525 mins ago 0x863e9610e9e0c3986dcc6fb2cd335e11d88f7d5f 0xd2a23e28a6cf48357d3a40d00cc318fbcb6a3b260 ETH
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Pornlab

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Arbiscan on 2023-02-28
*/

// SPDX-License-Identifier: MIT

pragma solidity >= 0.8.0;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    uint256 private _lockTime;

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

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

}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}
interface IV2Pair {
    function factory() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function sync() external;
}
interface IRouter01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IRouter02 is IRouter01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

 contract Pornlab is IERC20, Ownable {

  uint256 private constant _totalTokens = 1_000_000_000 * 10**DECIMALS; 
  string private constant NAME = "PornLab";
  string private constant SYMBOL = "PLAB";
  uint8 private constant DECIMALS = 18;

  struct feeProfile{ uint8 _liquidity; uint8 _marketing; uint8 _dev; uint8 _totalFee; }

  feeProfile public _buyProfile;
  feeProfile public _sellProfile;
        
  mapping (address => mapping (address => uint256)) private _allowances;
  mapping (address => uint256) private _balances; 
  mapping (address => bool) public _addressesExcludedFromFees; 

  bool public _isSwapEnabled; 
  bool public _isFeeEnabled; 
  bool public _isBuyingAllowed; //The contract will be activated once liquidity is added.

  uint256 public _tokenSwapThreshold = _totalTokens / 1000 * 1; //0.1%

  // UNISWAP INTERFACES (For swaps)
  IRouter02 internal V2Router;
  address private V2Pair;

  address public _marketingWallet;
  address public _devWallet;

  uint256 private blockPenalty;
  uint256 public tradingActiveBlock = 0; // 0 means trading is not active

  event _changeFees(uint256 _liq, uint256 _marketing, uint256 _dev, bool _isBuy);
  event _updateWallets(address _marketing, address _dev);
  event _setRouter(address _routerAddress);
  event _setThreshold(uint256 _threshold);
  event _clear(uint256 _tokenAmount);
  event _claimDust(uint256 _amount);
  event _launch(uint256 _start);
  event _swapAndLiquify(uint256 _amount);
    
  // BSC TESTNET: 0xD99D1c33F9fC3444f8101754aBC46c52416550D1
  constructor () {
    _balances[_msgSender()] = totalSupply();
    _marketingWallet = address(0xA51e4ca53f6e7722922B6B18ce1F5E058C15198c);
    _devWallet = address(0xB7E041809B7B026b97f03Bd6dbC28E74cCECa08E);

    // Initialize V2 router 
    setSwapRouter(address(0x863e9610E9E0C3986DCc6fb2cD335e11D88f7D5f));

    // Exclude contract from fees
    setExcludedFromFees(address(this), true);
    setExcludedFromFees(_msgSender(), true);
    setExcludedFromFees(_marketingWallet, true);
    setExcludedFromFees(_devWallet, true);

    // buy 
    setFeeProfile(1,1,1,true);
    // sell
    setFeeProfile(1,1,1,false);

    emit Transfer(address(0), _msgSender(), totalSupply());
  }

  function Launch(uint256 _blockPenalty) external onlyOwner {
    require(!_isBuyingAllowed, "trading is already active");
  
    setSwapEnabled(true);
    setFeeEnabled(true);

    _isBuyingAllowed = true;
    tradingActiveBlock = block.number;
    blockPenalty = _blockPenalty;

    emit _launch(tradingActiveBlock);
  }

  function setWallets(address _marketing, address _dev) external onlyOwner() {
        _marketingWallet = _marketing;
        _devWallet = _dev;
        emit _updateWallets(_marketing, _dev);
    }

  function setFeeProfile(uint8 _liquidity, uint8 _marketing, uint8 _dev, bool _updateBuy) public onlyOwner() {
    uint8 _totalFee = _liquidity + _marketing + _dev;
    require(_totalFee <= 20, "tax to high");
        if(_updateBuy) { _buyProfile._liquidity = _liquidity;  _buyProfile._marketing = _marketing;  _buyProfile._dev = _dev; _buyProfile._totalFee = _totalFee; }
        else{ _sellProfile._liquidity = _liquidity; _sellProfile._marketing = _marketing; _sellProfile._dev = _dev; _sellProfile._totalFee = _totalFee;}
        emit _changeFees(_liquidity,_marketing,_dev,_updateBuy);
    }
    
  function transfer(address recipient, uint256 amount) public override returns (bool) {
    doTransfer(_msgSender(), recipient, amount);
    return true;
  }

  function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
    doTransfer(sender, recipient, amount);
    doApprove(sender, _msgSender(), _allowances[sender][_msgSender()] - amount); // Will fail when there is not enough allowance
    return true;
  }
  
  function balanceOf(address account) public view override returns (uint256) {
    return _balances[account];
  }

  function approve(address spender, uint256 amount) public override returns (bool) {
    doApprove(_msgSender(), spender, amount);
    return true;
  }
  
  function doTransfer(address sender, address recipient, uint256 amount) internal virtual {
    require(sender != address(0), "zero address transfer is not allowed");
    require(recipient != address(0), "zero address transfer is not allowed");
    require(amount > 0, "amount must be greater than zero");

    if(!_isBuyingAllowed)  { require(_addressesExcludedFromFees[sender], "cant transfer"); }
    if(_isSwapEnabled){	executeSwapCheck(sender, recipient); }

    uint256 feeRate = calculateFeeRate(sender, recipient);
    uint256 feeAmount = amount * feeRate / 100;
    uint256 transferAmount = amount - feeAmount;

    updateBalances(sender, recipient, amount, feeAmount);

    emit Transfer(sender, recipient, transferAmount); 
  }
  
  function executeSwapCheck(address sender, address recipient) private {
    if (!isMarketTransfer(sender, recipient)) {
      return;
    }

    uint256 tokensAvailableForSwap = balanceOf(address(this));
    if (tokensAvailableForSwap >= _tokenSwapThreshold) {
      tokensAvailableForSwap = _tokenSwapThreshold;

      bool isSelling = isPancakeswapPair(recipient);
      if (isSelling) {
        executeSwap(tokensAvailableForSwap);
      }
    }
  }

  // if buildup becomes to large in contract
  function clearSwap(uint256 _tokenAmount) external onlyOwner(){
    executeSwap(_tokenAmount);
    emit _clear(_tokenAmount);
  }
  
  function executeSwap(uint256 amount) private {
    // Allow pancakeswap to spend the tokens of the address
    doApprove(address(this), address(V2Router), amount);
    uint256 total = _sellProfile._totalFee;

    uint256 tokensReservedForLiquidity = amount * _sellProfile._liquidity / total;
    uint256 tokensReservedForDev = amount * _sellProfile._dev / total ;
    uint256 tokensReservedForMarketing = amount - tokensReservedForLiquidity - tokensReservedForDev;

    uint256 tokensToSwapForLiquidity = tokensReservedForLiquidity / 2;
    uint256 tokensToAddAsLiquidity = tokensToSwapForLiquidity;

    uint256 tokensToSwap = tokensToSwapForLiquidity + tokensReservedForMarketing + tokensReservedForDev;
    uint256 ethSwapped = swapTokensForBNB(tokensToSwap);
    
    uint256 bnbToBeAddedToLiquidity = ethSwapped * tokensToSwapForLiquidity / tokensToSwap;
    uint256 bnbToBeSentToDevelopment = ethSwapped * tokensReservedForDev / tokensToSwap;
    uint256 bnbToBeSentToMarketing = ethSwapped - bnbToBeAddedToLiquidity- bnbToBeSentToDevelopment;

    payable(_marketingWallet).transfer(bnbToBeSentToMarketing);
    payable(_devWallet).transfer(bnbToBeSentToDevelopment);

    try V2Router.addLiquidityETH{value: bnbToBeAddedToLiquidity}(address(this), tokensToAddAsLiquidity, 0, 0, _devWallet, block.timestamp){} catch {}
    
    emit _swapAndLiquify(ethSwapped);
  }

  function updateBalances(address sender, address recipient, uint256 sentAmount, uint256 feeAmount) private {
    // Calculate amount to be received by recipient
    uint256 receivedAmount = sentAmount - feeAmount;

    // Update balances
    _balances[sender] -= sentAmount;
    _balances[recipient] += receivedAmount;
    
    // Add fees to contract
    _balances[address(this)] += feeAmount;

    // hides bloat emits
    if(feeAmount > 0 ){
      emit Transfer(sender, address(this), feeAmount); 
    }
  
  }

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

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

  function calculateFeeRate(address sender, address recipient) private view returns(uint256) {
    bool applyFees = _isFeeEnabled && !_addressesExcludedFromFees[sender] && !_addressesExcludedFromFees[recipient];
    if (applyFees) {
      if (isPancakeswapPair(recipient)) {
        return _sellProfile._totalFee;
      }else{
            if(isPenaltyActive()){
                return 75;
              }else{
                return _buyProfile._totalFee;
              }
            }
    }
    return 0;
  }
  
  function swapTokensForBNB(uint256 tokenAmount) internal returns(uint256) {
    uint256 initialBalance = address(this).balance;
  
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = V2Router.WETH();
    V2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
 
    return address(this).balance - initialBalance;
  }

  function isSwapTransfer(address sender, address recipient) private view returns(bool) {
    bool isContractSelling = sender == address(this) && isPancakeswapPair(recipient);
    return isContractSelling;
  }

  function isMarketTransfer(address sender, address recipient) internal virtual view returns(bool) {
    return !isSwapTransfer(sender, recipient);
  }

  function amountUntilSwap() external  view returns (uint256) {
    uint256 balance = balanceOf(address(this));
    if (balance > _tokenSwapThreshold) {
      return 0;
    }
    return _tokenSwapThreshold - balance;
  }

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

  function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
    doApprove(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue);
    return true;
  }

  function setSwapRouter(address routerAddress) public onlyOwner {
    require(routerAddress != address(0), "Cannot use the zero address as router address");
    V2Router = IRouter02(routerAddress);
    V2Pair = IFactoryV2(V2Router.factory()).createPair(address(this), V2Router.WETH());
    emit _setRouter(routerAddress);
  }

  function isPancakeswapPair(address addr) internal view returns(bool) {
    return V2Pair == addr;
  }

  function setTokenSwapThreshold(uint256 threshold) external  onlyOwner {
    require(threshold > 0, "Threshold must be greater than 0");
    _tokenSwapThreshold = threshold;
    emit _setThreshold(threshold);
  }

  // dust can build up by failure of adding liq 
  function clearDust() external  onlyOwner{
      payable(_devWallet).transfer(address(this).balance);
      emit _claimDust(address(this).balance);
  }

    function totalSupply() public override pure returns (uint256) { return _totalTokens; }
    function allowance(address user, address spender) public view override returns (uint256) { return _allowances[user][spender]; }
    function pairAddress() public view returns (address) { return V2Pair; }
    function setSwapEnabled(bool isEnabled) public onlyOwner { _isSwapEnabled = isEnabled; }
    function setFeeEnabled(bool isEnabled) public onlyOwner { _isFeeEnabled = isEnabled; }
    function setExcludedFromFees(address addr, bool value) public onlyOwner { _addressesExcludedFromFees[addr] = value; }
    function isPenaltyActive() public view returns (bool) { return tradingActiveBlock >= block.number - blockPenalty; } 
    function decimals() external pure override returns (uint8) { if (totalSupply() == 0) { revert(); } return DECIMALS; }
    function symbol() external pure override returns (string memory) { return SYMBOL; }
    function name() external pure override returns (string memory) { return NAME; }
    function getOwner() external view override returns (address) { return owner(); }

  receive() external payable {}
}

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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_liq","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_marketing","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_dev","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_isBuy","type":"bool"}],"name":"_changeFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"_claimDust","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"_clear","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_start","type":"uint256"}],"name":"_launch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_routerAddress","type":"address"}],"name":"_setRouter","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_threshold","type":"uint256"}],"name":"_setThreshold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"_swapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_marketing","type":"address"},{"indexed":false,"internalType":"address","name":"_dev","type":"address"}],"name":"_updateWallets","type":"event"},{"inputs":[{"internalType":"uint256","name":"_blockPenalty","type":"uint256"}],"name":"Launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_addressesExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyProfile","outputs":[{"internalType":"uint8","name":"_liquidity","type":"uint8"},{"internalType":"uint8","name":"_marketing","type":"uint8"},{"internalType":"uint8","name":"_dev","type":"uint8"},{"internalType":"uint8","name":"_totalFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isBuyingAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isFeeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellProfile","outputs":[{"internalType":"uint8","name":"_liquidity","type":"uint8"},{"internalType":"uint8","name":"_marketing","type":"uint8"},{"internalType":"uint8","name":"_dev","type":"uint8"},{"internalType":"uint8","name":"_totalFee","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountUntilSwap","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":"clearDust","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenAmount","type":"uint256"}],"name":"clearSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isPenaltyActive","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":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isEnabled","type":"bool"}],"name":"setFeeEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_liquidity","type":"uint8"},{"internalType":"uint8","name":"_marketing","type":"uint8"},{"internalType":"uint8","name":"_dev","type":"uint8"},{"internalType":"bool","name":"_updateBuy","type":"bool"}],"name":"setFeeProfile","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isEnabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"routerAddress","type":"address"}],"name":"setSwapRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"threshold","type":"uint256"}],"name":"setTokenSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_dev","type":"address"}],"name":"setWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingActiveBlock","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"},{"stateMutability":"payable","type":"receive"}]

60806040526103e8620000156012600a62000796565b6200002590633b9aca00620007ae565b620000319190620007c8565b6200003e906001620007ae565b6009556000600f553480156200005357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200009f620001c6565b33600090815260066020526040902055600c80546001600160a01b031990811673a51e4ca53f6e7722922b6b18ce1f5e058c15198c17909155600d805490911673b7e041809b7b026b97f03bd6dbc28e74cceca08e1790556200011673863e9610e9e0c3986dcc6fb2cd335e11d88f7d5f620001eb565b6200012330600162000479565b6200013033600162000479565b600c5462000149906001600160a01b0316600162000479565b600d5462000162906001600160a01b0316600162000479565b620001716001808080620004ef565b62000181600180806000620004ef565b3360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620001af620001c6565b60405190815260200160405180910390a362000832565b6000620001d66012600a62000796565b620001e690633b9aca00620007ae565b905090565b6000546001600160a01b031633146200023a5760405162461bcd60e51b815260206004820181905260248201526000805160206200269083398151915260448201526064015b60405180910390fd5b6001600160a01b038116620002a85760405162461bcd60e51b815260206004820152602d60248201527f43616e6e6f742075736520746865207a65726f2061646472657373206173207260448201526c6f75746572206164647265737360981b606482015260840162000231565b600a80546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000302573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003289190620007eb565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200038b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b19190620007eb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620003ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004259190620007eb565b600b80546001600160a01b0319166001600160a01b0392831617905560405190821681527fd1431ffd6b1c0a705bfdf15dbd9a5954739e5f4f093dd08fef588fd4151642619060200160405180910390a150565b6000546001600160a01b03163314620004c45760405162461bcd60e51b8152602060048201819052602482015260008051602062002690833981519152604482015260640162000231565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146200053a5760405162461bcd60e51b8152602060048201819052602482015260008051602062002690833981519152604482015260640162000231565b60008262000549858762000816565b62000555919062000816565b905060148160ff1611156200059b5760405162461bcd60e51b815260206004820152600b60248201526a0e8c2f040e8de40d0d2ced60ab1b604482015260640162000231565b8115620005ea576003805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff0000001916176301000000918416919091021790556200062d565b6004805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff0000001916176301000000918416919091021790555b6040805160ff87811682528681166020830152851681830152831515606082015290517f44bc7ab7a81ee033147d69565c5c1c74915cd840ece00a5eb172ce9c7b7814c09181900360800190a15050505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006d8578160001904821115620006bc57620006bc62000681565b80851615620006ca57918102915b93841c93908002906200069c565b509250929050565b600082620006f15750600162000790565b81620007005750600062000790565b8160018114620007195760028114620007245762000744565b600191505062000790565b60ff84111562000738576200073862000681565b50506001821b62000790565b5060208310610133831016604e8410600b841016171562000769575081810a62000790565b62000775838362000697565b80600019048211156200078c576200078c62000681565b0290505b92915050565b6000620007a760ff841683620006e0565b9392505050565b808202811582820484141762000790576200079062000681565b600082620007e657634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620007fe57600080fd5b81516001600160a01b0381168114620007a757600080fd5b60ff818116838216019081111562000790576200079062000681565b611e4e80620008426000396000f3fe6080604052600436106102135760003560e01c8063893d20e811610118578063d3f6a157116100a0578063e6f2306b1161006f578063e6f2306b14610695578063ee40166e146106cb578063f0977357146106e1578063f16f07ae14610701578063fb96a95f1461071757600080fd5b8063d3f6a157146105f0578063d3ff209d14610610578063dd62ed3e1461062f578063e01af92c1461067557600080fd5b8063962dfc75116100e7578063962dfc7514610552578063a457c2d714610572578063a72e5e1514610592578063a8b08982146105b2578063a9059cbb146105d057600080fd5b8063893d20e8146104e75780638da5cb5b146104e757806391f24c091461050557806395d89b411461052557600080fd5b80633e0bf7161161019b57806359ecf39e1161016a57806359ecf39e146104425780635a264ca71461046257806370a08231146104825780637d584aa1146104b85780637f7fcecc146104cd57600080fd5b80633e0bf7161461038a57806341273657146103ed57806358b69bc31461040d578063590ffdce1461042257600080fd5b806318160ddd116101e257806318160ddd146102eb57806323b872dd1461030e5780633094375d1461032e578063313ce56714610343578063395093511461036a57600080fd5b806306fdde031461021f578063095ea7b3146102615780630db474fa1461029157806311a63e17146102b357600080fd5b3661021a57005b600080fd5b34801561022b57600080fd5b506040805180820190915260078152662837b9372630b160c91b60208201525b6040516102589190611939565b60405180910390f35b34801561026d57600080fd5b5061028161027c36600461199f565b610747565b6040519015158152602001610258565b34801561029d57600080fd5b506102b16102ac3660046119e0565b61075e565b005b3480156102bf57600080fd5b50600d546102d3906001600160a01b031681565b6040516001600160a01b039091168152602001610258565b3480156102f757600080fd5b506103006107ab565b604051908152602001610258565b34801561031a57600080fd5b50610281610329366004611a02565b6107cc565b34801561033a57600080fd5b5061030061081e565b34801561034f57600080fd5b50610358610854565b60405160ff9091168152602001610258565b34801561037657600080fd5b5061028161038536600461199f565b610870565b34801561039657600080fd5b506003546103c09060ff808216916101008104821691620100008204811691630100000090041684565b6040805160ff95861681529385166020850152918416918301919091529091166060820152608001610258565b3480156103f957600080fd5b506102b1610408366004611a43565b6108a7565b34801561041957600080fd5b50610281610b06565b34801561042e57600080fd5b506102b161043d366004611a60565b610b20565b34801561044e57600080fd5b506102b161045d366004611a95565b610b75565b34801561046e57600080fd5b506008546102819062010000900460ff1681565b34801561048e57600080fd5b5061030061049d366004611a43565b6001600160a01b031660009081526006602052604090205490565b3480156104c457600080fd5b506102b1610c24565b3480156104d957600080fd5b506008546102819060ff1681565b3480156104f357600080fd5b506000546001600160a01b03166102d3565b34801561051157600080fd5b506102b1610520366004611abf565b610cbd565b34801561053157600080fd5b50604080518082019091526004815263282620a160e11b602082015261024b565b34801561055e57600080fd5b50600c546102d3906001600160a01b031681565b34801561057e57600080fd5b5061028161058d36600461199f565b610e26565b34801561059e57600080fd5b506102b16105ad366004611a95565b610e5d565b3480156105be57600080fd5b50600b546001600160a01b03166102d3565b3480156105dc57600080fd5b506102816105eb36600461199f565b610f42565b3480156105fc57600080fd5b506102b161060b366004611b13565b610f4f565b34801561061c57600080fd5b5060085461028190610100900460ff1681565b34801561063b57600080fd5b5061030061064a366004611b13565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561068157600080fd5b506102b16106903660046119e0565b610fe7565b3480156106a157600080fd5b506004546103c09060ff808216916101008104821691620100008204811691630100000090041684565b3480156106d757600080fd5b50610300600f5481565b3480156106ed57600080fd5b506102b16106fc366004611a95565b611024565b34801561070d57600080fd5b5061030060095481565b34801561072357600080fd5b50610281610732366004611a43565b60076020526000908152604090205460ff1681565b6000610754338484611087565b5060015b92915050565b6000546001600160a01b031633146107915760405162461bcd60e51b815260040161078890611b4c565b60405180910390fd5b600880549115156101000261ff0019909216919091179055565b60006107b96012600a611c7b565b6107c790633b9aca00611c8a565b905090565b60006107d98484846111ab565b6001600160a01b03841660009081526005602090815260408083203380855292529091205461081491869161080f908690611ca1565b611087565b5060019392505050565b3060009081526006602052604081205460095481111561084057600091505090565b8060095461084e9190611ca1565b91505090565b600061085e6107ab565b60000361086a57600080fd5b50601290565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161075491859061080f908690611cb4565b6000546001600160a01b031633146108d15760405162461bcd60e51b815260040161078890611b4c565b6001600160a01b03811661093d5760405162461bcd60e51b815260206004820152602d60248201527f43616e6e6f742075736520746865207a65726f2061646472657373206173207260448201526c6f75746572206164647265737360981b6064820152608401610788565b600a80546001600160a01b0319166001600160a01b0383169081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015610996573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ba9190611cc7565b6001600160a01b031663c9c6539630600a60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a409190611cc7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610a8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab19190611cc7565b600b80546001600160a01b0319166001600160a01b0392831617905560405190821681527fd1431ffd6b1c0a705bfdf15dbd9a5954739e5f4f093dd08fef588fd415164261906020015b60405180910390a150565b6000600e5443610b169190611ca1565b600f541015905090565b6000546001600160a01b03163314610b4a5760405162461bcd60e51b815260040161078890611b4c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610b9f5760405162461bcd60e51b815260040161078890611b4c565b60008111610bef5760405162461bcd60e51b815260206004820181905260248201527f5468726573686f6c64206d7573742062652067726561746572207468616e20306044820152606401610788565b60098190556040518181527f3d5472e45a39af360c106b99aa48f7356cd3b609ea581b5deb38a4b1270e898590602001610afb565b6000546001600160a01b03163314610c4e5760405162461bcd60e51b815260040161078890611b4c565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610c87573d6000803e3d6000fd5b506040514781527fd1c23667321cc2db9d1de3db7f4dcf0eb5ade4f87e163713d3667eec1e92facb9060200160405180910390a1565b6000546001600160a01b03163314610ce75760405162461bcd60e51b815260040161078890611b4c565b600082610cf48587611ce4565b610cfe9190611ce4565b905060148160ff161115610d425760405162461bcd60e51b815260206004820152600b60248201526a0e8c2f040e8de40d0d2ced60ab1b6044820152606401610788565b8115610d8f576003805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff000000191617630100000091841691909102179055610dd2565b6004805460ff87811661ffff1990921691909117610100878316021763ffff00001916620100008683160263ff0000001916176301000000918416919091021790555b6040805160ff87811682528681166020830152851681830152831515606082015290517f44bc7ab7a81ee033147d69565c5c1c74915cd840ece00a5eb172ce9c7b7814c09181900360800190a15050505050565b3360008181526005602090815260408083206001600160a01b0387168452909152812054909161075491859061080f908690611ca1565b6000546001600160a01b03163314610e875760405162461bcd60e51b815260040161078890611b4c565b60085462010000900460ff1615610ee05760405162461bcd60e51b815260206004820152601960248201527f74726164696e6720697320616c726561647920616374697665000000000000006044820152606401610788565b610eea6001610fe7565b610ef4600161075e565b6008805462ff000019166201000017905543600f819055600e8290556040517f6600f6005863f92891b8c04d901a1f5d14860257428eba2058e9f3f9175b563391610afb9190815260200190565b60006107543384846111ab565b6000546001600160a01b03163314610f795760405162461bcd60e51b815260040161078890611b4c565b600c80546001600160a01b038481166001600160a01b03199283168117909355600d80549185169190921681179091556040805192835260208301919091527fe67d5d4d7e74d0ccbdf30dbd83729da0b6a8405bfb83b5f35038638e19a4ea13910160405180910390a15050565b6000546001600160a01b031633146110115760405162461bcd60e51b815260040161078890611b4c565b6008805460ff1916911515919091179055565b6000546001600160a01b0316331461104e5760405162461bcd60e51b815260040161078890611b4c565b6110578161135b565b6040518181527f8d9f39d10957a4e556f944f249fcdc7cc1263cc4e31368fe3056895f85d4599d90602001610afb565b6001600160a01b0383166110e95760405162461bcd60e51b8152602060048201526024808201527f43616e6e6f7420617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610788565b6001600160a01b03821661114a5760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610788565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166111d15760405162461bcd60e51b815260040161078890611cfd565b6001600160a01b0382166111f75760405162461bcd60e51b815260040161078890611cfd565b600081116112475760405162461bcd60e51b815260206004820181905260248201527f616d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610788565b60085462010000900460ff166112af576001600160a01b03831660009081526007602052604090205460ff166112af5760405162461bcd60e51b815260206004820152600d60248201526c31b0b73a103a3930b739b332b960991b6044820152606401610788565b60085460ff16156112c4576112c483836115ac565b60006112d08484611602565b9050600060646112e08385611c8a565b6112ea9190611d41565b905060006112f88285611ca1565b9050611306868686856116c2565b846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161134b91815260200190565b60405180910390a3505050505050565b600a546113739030906001600160a01b031683611087565b60045460ff630100000082048116916000918391611392911685611c8a565b61139c9190611d41565b60045490915060009083906113ba9062010000900460ff1686611c8a565b6113c49190611d41565b90506000816113d38487611ca1565b6113dd9190611ca1565b905060006113ec600285611d41565b9050806000846113fc8584611cb4565b6114069190611cb4565b905060006114138261179f565b90506000826114228684611c8a565b61142c9190611d41565b905060008361143b8985611c8a565b6114459190611d41565b90506000816114548486611ca1565b61145e9190611ca1565b600c546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015611499573d6000803e3d6000fd5b50600d546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156114d4573d6000803e3d6000fd5b50600a54600d5460405163f305d71960e01b81523060048201526024810189905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990859060c40160606040518083038185885af193505050508015611562575060408051601f3d908101601f1916820190925261155f91810190611d63565b60015b1561156b575050505b6040518481527f7bf54cb9a865e8dabf744f65dfac5fe865060b1d1b8172c512d88fe90815cf2a9060200160405180910390a1505050505050505050505050565b6115b682826118f6565b6115be575050565b3060009081526006602052604090205460095481106115fd5750600954600b546001600160a01b0383811691161480156115fb576115fb8261135b565b505b505050565b6008546000908190610100900460ff16801561163757506001600160a01b03841660009081526007602052604090205460ff16155b801561165c57506001600160a01b03831660009081526007602052604090205460ff16155b905080156116b857600b546001600160a01b0380851691160361168d5750506004546301000000900460ff16610758565b611695610b06565b156116a457604b915050610758565b50506003546301000000900460ff16610758565b5060009392505050565b60006116ce8284611ca1565b6001600160a01b0386166000908152600660205260408120805492935085929091906116fb908490611ca1565b90915550506001600160a01b03841660009081526006602052604081208054839290611728908490611cb4565b9091555050306000908152600660205260408120805484929061174c908490611cb4565b909155505081156117985760405182815230906001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b5050505050565b60408051600280825260608201835260009247928492909160208301908036833701905050905030816000815181106117da576117da611d91565b6001600160a01b03928316602091820292909201810191909152600a54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611833573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118579190611cc7565b8160018151811061186a5761186a611d91565b6001600160a01b039283166020918202929092010152600a5460405163791ac94760e01b815291169063791ac947906118b0908790600090869030904290600401611da7565b600060405180830381600087803b1580156118ca57600080fd5b505af11580156118de573d6000803e3d6000fd5b5050505081476118ee9190611ca1565b949350505050565b6000611902838361190a565b159392505050565b6000806001600160a01b038416301480156118ee5750600b546001600160a01b03808516911614949350505050565b600060208083528351808285015260005b818110156119665785810183015185820160400152820161194a565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461199c57600080fd5b50565b600080604083850312156119b257600080fd5b82356119bd81611987565b946020939093013593505050565b803580151581146119db57600080fd5b919050565b6000602082840312156119f257600080fd5b6119fb826119cb565b9392505050565b600080600060608486031215611a1757600080fd5b8335611a2281611987565b92506020840135611a3281611987565b929592945050506040919091013590565b600060208284031215611a5557600080fd5b81356119fb81611987565b60008060408385031215611a7357600080fd5b8235611a7e81611987565b9150611a8c602084016119cb565b90509250929050565b600060208284031215611aa757600080fd5b5035919050565b803560ff811681146119db57600080fd5b60008060008060808587031215611ad557600080fd5b611ade85611aae565b9350611aec60208601611aae565b9250611afa60408601611aae565b9150611b08606086016119cb565b905092959194509250565b60008060408385031215611b2657600080fd5b8235611b3181611987565b91506020830135611b4181611987565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611bd2578160001904821115611bb857611bb8611b81565b80851615611bc557918102915b93841c9390800290611b9c565b509250929050565b600082611be957506001610758565b81611bf657506000610758565b8160018114611c0c5760028114611c1657611c32565b6001915050610758565b60ff841115611c2757611c27611b81565b50506001821b610758565b5060208310610133831016604e8410600b8410161715611c55575081810a610758565b611c5f8383611b97565b8060001904821115611c7357611c73611b81565b029392505050565b60006119fb60ff841683611bda565b808202811582820484141761075857610758611b81565b8181038181111561075857610758611b81565b8082018082111561075857610758611b81565b600060208284031215611cd957600080fd5b81516119fb81611987565b60ff818116838216019081111561075857610758611b81565b60208082526024908201527f7a65726f2061646472657373207472616e73666572206973206e6f7420616c6c6040820152631bddd95960e21b606082015260800190565b600082611d5e57634e487b7160e01b600052601260045260246000fd5b500490565b600080600060608486031215611d7857600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611df75784516001600160a01b031683529383019391830191600101611dd2565b50506001600160a01b0396909616606085015250505060800152939250505056fea26469706673582212208d6a8638a76bbd781beaa0ba68f009b3312deaa25ba0608c5db808e931f9e23764736f6c634300081300334f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572

Deployed ByteCode Sourcemap

4556:11876:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16229:79;;;;;;;;;;-1:-1:-1;16301:4:0;;;;;;;;;;;;-1:-1:-1;;;16301:4:0;;;;16229:79;;;;;;;:::i;:::-;;;;;;;;8578:152;;;;;;;;;;-1:-1:-1;8578:152:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;8578:152:0;1023:187:1;15680:86:0;;;;;;;;;;-1:-1:-1;15680:86:0;;;;;:::i;:::-;;:::i;:::-;;5532:25;;;;;;;;;;-1:-1:-1;5532:25:0;;;;-1:-1:-1;;;;;5532:25:0;;;;;;-1:-1:-1;;;;;1729:32:1;;;1711:51;;1699:2;1684:18;5532:25:0;1565:203:1;15284:86:0;;;;;;;;;;;;;:::i;:::-;;;1919:25:1;;;1907:2;1892:18;15284:86:0;1773:177:1;8149:302:0;;;;;;;;;;-1:-1:-1;8149:302:0;;;;;:::i;:::-;;:::i;13744:224::-;;;;;;;;;;;;;:::i;16017:117::-;;;;;;;;;;;;;:::i;:::-;;;2588:4:1;2576:17;;;2558:36;;2546:2;2531:18;16017:117:0;2416:184:1;13974:206:0;;;;;;;;;;-1:-1:-1;13974:206:0;;;;;:::i;:::-;;:::i;4896:29::-;;;;;;;;;;-1:-1:-1;4896:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2850:4:1;2838:17;;;2820:36;;2892:17;;;2887:2;2872:18;;2865:45;2946:17;;;2926:18;;;2919:45;;;;3000:17;;;2995:2;2980:18;;2973:45;2807:3;2792:19;4896:29:0;2605:419:1;14408:329:0;;;;;;;;;;-1:-1:-1;14408:329:0;;;;;:::i;:::-;;:::i;15895:115::-;;;;;;;;;;;;;:::i;15772:117::-;;;;;;;;;;-1:-1:-1;15772:117:0;;;;;:::i;:::-;;:::i;14852:215::-;;;;;;;;;;-1:-1:-1;14852:215:0;;;;;:::i;:::-;;:::i;5231:28::-;;;;;;;;;;-1:-1:-1;5231:28:0;;;;;;;;;;;8459:113;;;;;;;;;;-1:-1:-1;8459:113:0;;;;;:::i;:::-;-1:-1:-1;;;;;8548:18:0;8525:7;8548:18;;;:9;:18;;;;;;;8459:113;15123:153;;;;;;;;;;;;;:::i;5168:26::-;;;;;;;;;;-1:-1:-1;5168:26:0;;;;;;;;16314:80;;;;;;;;;;-1:-1:-1;16366:7:0;936:6;-1:-1:-1;;;;;936:6:0;16314:80;15284:86;7375:600;;;;;;;;;;-1:-1:-1;7375:600:0;;;;;:::i;:::-;;:::i;16140:83::-;;;;;;;;;;-1:-1:-1;16214:6:0;;;;;;;;;;;;-1:-1:-1;;;16214:6:0;;;;16140:83;;5496:31;;;;;;;;;;-1:-1:-1;5496:31:0;;;;-1:-1:-1;;;;;5496:31:0;;;14186:216;;;;;;;;;;-1:-1:-1;14186:216:0;;;;;:::i;:::-;;:::i;6833:331::-;;;;;;;;;;-1:-1:-1;6833:331:0;;;;;:::i;:::-;;:::i;15509:71::-;;;;;;;;;;-1:-1:-1;15571:6:0;;-1:-1:-1;;;;;15571:6:0;15509:71;;7985:158;;;;;;;;;;-1:-1:-1;7985:158:0;;;;;:::i;:::-;;:::i;7170:199::-;;;;;;;;;;-1:-1:-1;7170:199:0;;;;;:::i;:::-;;:::i;5200:25::-;;;;;;;;;;-1:-1:-1;5200:25:0;;;;;;;;;;;15376:127;;;;;;;;;;-1:-1:-1;15376:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;15474:17:0;;;15456:7;15474:17;;;:11;:17;;;;;;;;:26;;;;;;;;;;;;;15376:127;15586:88;;;;;;;;;;-1:-1:-1;15586:88:0;;;;;:::i;:::-;;:::i;4930:30::-;;;;;;;;;;-1:-1:-1;4930:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;5597:37;;;;;;;;;;;;;;;;10014:131;;;;;;;;;;-1:-1:-1;10014:131:0;;;;;:::i;:::-;;:::i;5324:60::-;;;;;;;;;;;;;;;;5101:59;;;;;;;;;;-1:-1:-1;5101:59:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8578:152;8653:4;8666:40;193:10;8690:7;8699:6;8666:9;:40::i;:::-;-1:-1:-1;8720:4:0;8578:152;;;;;:::o;15680:86::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;;;;;;;;;15738:13:::1;:25:::0;;;::::1;;;;-1:-1:-1::0;;15738:25:0;;::::1;::::0;;;::::1;::::0;;15680:86::o;15284:::-;15337:7;4655:12;4796:2;4655;:12;:::i;:::-;4639:28;;:13;:28;:::i;:::-;15348:19;;15284:86;:::o;8149:302::-;8247:4;8260:37;8271:6;8279:9;8290:6;8260:10;:37::i;:::-;-1:-1:-1;;;;;8336:19:0;;;;;;:11;:19;;;;;;;;193:10;8336:33;;;;;;;;;8304:75;;8314:6;;8336:42;;8372:6;;8336:42;:::i;:::-;8304:9;:75::i;:::-;-1:-1:-1;8441:4:0;8149:302;;;;;:::o;13744:224::-;13847:4;13795:7;8548:18;;;:9;:18;;;;;;13874:19;;13864:7;:29;13860:60;;;13911:1;13904:8;;;13744:224;:::o;13860:60::-;13955:7;13933:19;;:29;;;;:::i;:::-;13926:36;;;13744:224;:::o;16017:117::-;16069:5;16082:13;:11;:13::i;:::-;16099:1;16082:18;16078:37;;16104:8;;;16078:37;-1:-1:-1;4796:2:0;;16017:117::o;13974:206::-;193:10;14062:4;14108:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14108:34:0;;;;;;;;;;14062:4;;14075:81;;14099:7;;14108:47;;14145:10;;14108:47;:::i;14408:329::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14486:27:0;::::1;14478:85;;;::::0;-1:-1:-1;;;14478:85:0;;7250:2:1;14478:85:0::1;::::0;::::1;7232:21:1::0;7289:2;7269:18;;;7262:30;7328:34;7308:18;;;7301:62;-1:-1:-1;;;7379:18:1;;;7372:43;7432:19;;14478:85:0::1;7048:409:1::0;14478:85:0::1;14570:8;:35:::0;;-1:-1:-1;;;;;;14570:35:0::1;-1:-1:-1::0;;;;;14570:35:0;::::1;::::0;;::::1;::::0;;;14632:18:::1;::::0;;-1:-1:-1;;;14632:18:0;;;;:16:::1;::::0;:18:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;14570:35;14632:18:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;14621:41:0::1;;14671:4;14678:8;;;;;;;;;-1:-1:-1::0;;;;;14678:8:0::1;-1:-1:-1::0;;;;;14678:13:0::1;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14621:73;::::0;-1:-1:-1;;;;;;14621:73:0::1;::::0;;;;;;-1:-1:-1;;;;;7948:15:1;;;14621:73:0::1;::::0;::::1;7930:34:1::0;8000:15;;7980:18;;;7973:43;7865:18;;14621:73:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14612:6;:82:::0;;-1:-1:-1;;;;;;14612:82:0::1;-1:-1:-1::0;;;;;14612:82:0;;::::1;;::::0;;14706:25:::1;::::0;1729:32:1;;;1711:51;;14706:25:0::1;::::0;1699:2:1;1684:18;14706:25:0::1;;;;;;;;14408:329:::0;:::o;15895:115::-;15943:4;15995:12;;15980;:27;;;;:::i;:::-;15958:18;;:49;;15951:56;;15895:115;:::o;15772:117::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15846:32:0;;;::::1;;::::0;;;:26:::1;:32;::::0;;;;:40;;-1:-1:-1;;15846:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15772:117::o;14852:215::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;14949:1:::1;14937:9;:13;14929:58;;;::::0;-1:-1:-1;;;14929:58:0;;8229:2:1;14929:58:0::1;::::0;::::1;8211:21:1::0;;;8248:18;;;8241:30;8307:34;8287:18;;;8280:62;8359:18;;14929:58:0::1;8027:356:1::0;14929:58:0::1;14994:19;:31:::0;;;15037:24:::1;::::0;1919:25:1;;;15037:24:0::1;::::0;1907:2:1;1892:18;15037:24:0::1;1773:177:1::0;15123:153:0;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;15180:10:::1;::::0;15172:51:::1;::::0;-1:-1:-1;;;;;15180:10:0;;::::1;::::0;15201:21:::1;15172:51:::0;::::1;;;::::0;15180:10:::1;15172:51:::0;15180:10;15172:51;15201:21;15180:10;15172:51;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;15237:33:0::1;::::0;15248:21:::1;1919:25:1::0;;15237:33:0::1;::::0;1907:2:1;1892:18;15237:33:0::1;;;;;;;15123:153::o:0;7375:600::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;7489:15:::1;7533:4:::0;7507:23:::1;7520:10:::0;7507;:23:::1;:::i;:::-;:30;;;;:::i;:::-;7489:48;;7565:2;7552:9;:15;;;;7544:39;;;::::0;-1:-1:-1;;;7544:39:0;;8743:2:1;7544:39:0::1;::::0;::::1;8725:21:1::0;8782:2;8762:18;;;8755:30;-1:-1:-1;;;8801:18:1;;;8794:41;8852:18;;7544:39:0::1;8541:335:1::0;7544:39:0::1;7597:10;7594:308;;;7611:11;:35:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;7649:35:0;;;;;;;7611::::1;7649::::0;;::::1;;;-1:-1:-1::0;;7712:33:0;7687:23;;;::::1;;-1:-1:-1::0;;7712:33:0;;;;;::::1;::::0;;;::::1;;::::0;;7594:308:::1;;;7764:12;:36:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;7802:36:0;;;;;;;7764::::1;7802::::0;;::::1;;;-1:-1:-1::0;;7866:34:0;7840:24;;;::::1;;-1:-1:-1::0;;7866:34:0;;;;;::::1;::::0;;;::::1;;::::0;;7594:308:::1;7917:50;::::0;;9130:4:1;9118:17;;;9100:36;;9172:17;;;9167:2;9152:18;;9145:45;9226:17;;9206:18;;;9199:45;9287:14;;9280:22;9275:2;9260:18;;9253:50;7917::0;;::::1;::::0;;;;9087:3:1;7917:50:0;;::::1;7482:493;7375:600:::0;;;;:::o;14186:216::-;193:10;14279:4;14325:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14325:34:0;;;;;;;;;;14279:4;;14292:86;;14316:7;;14325:52;;14362:15;;14325:52;:::i;6833:331::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;6907:16:::1;::::0;;;::::1;;;6906:17;6898:55;;;::::0;-1:-1:-1;;;6898:55:0;;9516:2:1;6898:55:0::1;::::0;::::1;9498:21:1::0;9555:2;9535:18;;;9528:30;9594:27;9574:18;;;9567:55;9639:18;;6898:55:0::1;9314:349:1::0;6898:55:0::1;6964:20;6979:4;6964:14;:20::i;:::-;6991:19;7005:4;6991:13;:19::i;:::-;7019:16;:23:::0;;-1:-1:-1;;7019:23:0::1;::::0;::::1;::::0;;7070:12:::1;7049:18;:33:::0;;;7089:12:::1;:28:::0;;;7131:27:::1;::::0;::::1;::::0;::::1;::::0;1919:25:1;;;1907:2;1892:18;;1773:177;7985:158:0;8063:4;8076:43;193:10;8101:9;8112:6;8076:10;:43::i;7170:199::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;7256:16:::1;:29:::0;;-1:-1:-1;;;;;7256:29:0;;::::1;-1:-1:-1::0;;;;;;7256:29:0;;::::1;::::0;::::1;::::0;;;7296:10:::1;:17:::0;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;7329:32:::1;::::0;;7930:34:1;;;7995:2;7980:18;;7973:43;;;;7329:32:0::1;::::0;7865:18:1;7329:32:0::1;;;;;;;7170:199:::0;;:::o;15586:88::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;15645:14:::1;:26:::0;;-1:-1:-1;;15645:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15586:88::o;10014:131::-;998:6;;-1:-1:-1;;;;;998:6:0;193:10;998:22;990:67;;;;-1:-1:-1;;;990:67:0;;;;;;;:::i;:::-;10082:25:::1;10094:12;10082:11;:25::i;:::-;10119:20;::::0;1919:25:1;;;10119:20:0::1;::::0;1907:2:1;1892:18;10119:20:0::1;1773:177:1::0;12090:320:0;-1:-1:-1;;;;;12180:19:0;;12172:68;;;;-1:-1:-1;;;12172:68:0;;9870:2:1;12172:68:0;;;9852:21:1;9909:2;9889:18;;;9882:30;9948:34;9928:18;;;9921:62;-1:-1:-1;;;9999:18:1;;;9992:34;10043:19;;12172:68:0;9668:400:1;12172:68:0;-1:-1:-1;;;;;12255:21:0;;12247:68;;;;-1:-1:-1;;;12247:68:0;;10275:2:1;12247:68:0;;;10257:21:1;10314:2;10294:18;;;10287:30;10353:34;10333:18;;;10326:62;-1:-1:-1;;;10404:18:1;;;10397:32;10446:19;;12247:68:0;10073:398:1;12247:68:0;-1:-1:-1;;;;;12324:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;12372:32;;1919:25:1;;;12372:32:0;;1892:18:1;12372:32:0;;;;;;;12090:320;;;:::o;8738:751::-;-1:-1:-1;;;;;8841:20:0;;8833:69;;;;-1:-1:-1;;;8833:69:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;8917:23:0;;8909:72;;;;-1:-1:-1;;;8909:72:0;;;;;;;:::i;:::-;9005:1;8996:6;:10;8988:55;;;;-1:-1:-1;;;8988:55:0;;11083:2:1;8988:55:0;;;11065:21:1;;;11102:18;;;11095:30;11161:34;11141:18;;;11134:62;11213:18;;8988:55:0;10881:356:1;8988:55:0;9056:16;;;;;;;9052:88;;-1:-1:-1;;;;;9085:34:0;;;;;;:26;:34;;;;;;;;9077:60;;;;-1:-1:-1;;;9077:60:0;;11444:2:1;9077:60:0;;;11426:21:1;11483:2;11463:18;;;11456:30;-1:-1:-1;;;11502:18:1;;;11495:43;11555:18;;9077:60:0;11242:337:1;9077:60:0;9149:14;;;;9146:58;;;9166:35;9183:6;9191:9;9166:16;:35::i;:::-;9212:15;9230:35;9247:6;9255:9;9230:16;:35::i;:::-;9212:53;-1:-1:-1;9272:17:0;9311:3;9292:16;9212:53;9292:6;:16;:::i;:::-;:22;;;;:::i;:::-;9272:42;-1:-1:-1;9321:22:0;9346:18;9272:42;9346:6;:18;:::i;:::-;9321:43;;9373:52;9388:6;9396:9;9407:6;9415:9;9373:14;:52::i;:::-;9456:9;-1:-1:-1;;;;;9439:43:0;9448:6;-1:-1:-1;;;;;9439:43:0;;9467:14;9439:43;;;;1919:25:1;;1907:2;1892:18;;1773:177;9439:43:0;;;;;;;;8826:663;;;8738:751;;;:::o;10153:1397::-;10299:8;;10266:51;;10284:4;;-1:-1:-1;;;;;10299:8:0;10310:6;10266:9;:51::i;:::-;10340:12;:22;;;;;;;;10324:13;;10340:22;;10408:32;;10417:23;10408:6;:32;:::i;:::-;:40;;;;:::i;:::-;10495:12;:17;10371:77;;-1:-1:-1;10455:28:0;;10515:5;;10486:26;;10495:17;;;;;10486:6;:26;:::i;:::-;:34;;;;:::i;:::-;10455:65;-1:-1:-1;10528:34:0;10455:65;10565:35;10574:26;10565:6;:35;:::i;:::-;:58;;;;:::i;:::-;10528:95;-1:-1:-1;10632:32:0;10667:30;10696:1;10667:26;:30;:::i;:::-;10632:65;-1:-1:-1;10632:65:0;10704:30;10849:20;10793:53;10820:26;10632:65;10793:53;:::i;:::-;:76;;;;:::i;:::-;10770:99;;10876:18;10897:30;10914:12;10897:16;:30::i;:::-;10876:51;-1:-1:-1;10940:31:0;11014:12;10974:37;10987:24;10876:51;10974:37;:::i;:::-;:52;;;;:::i;:::-;10940:86;-1:-1:-1;11033:32:0;11104:12;11068:33;11081:20;11068:10;:33;:::i;:::-;:48;;;;:::i;:::-;11033:83;-1:-1:-1;11123:30:0;11033:83;11156:36;11169:23;11156:10;:36;:::i;:::-;:62;;;;:::i;:::-;11235:16;;11227:58;;11123:95;;-1:-1:-1;;;;;;11235:16:0;;11227:58;;;;;11123:95;;11235:16;11227:58;11235:16;11227:58;11123:95;11235:16;11227:58;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11300:10:0;;11292:54;;-1:-1:-1;;;;;11300:10:0;;;;11292:54;;;;;11321:24;;11300:10;11292:54;11300:10;11292:54;11321:24;11300:10;11292:54;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11359:8:0;;11461:10;;11359:130;;-1:-1:-1;;;11359:130:0;;11424:4;11359:130;;;12147:34:1;12197:18;;;12190:34;;;11359:8:0;12240:18:1;;;12233:34;;;12283:18;;;12276:34;-1:-1:-1;;;;;11461:10:0;;;12326:19:1;;;12319:44;11473:15:0;12379:19:1;;;12372:35;11359:8:0;;;:24;;11391:23;;12081:19:1;;11359:130:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11359:130:0;;;;;;;;-1:-1:-1;;11359:130:0;;;;;;;;;;;;:::i;:::-;;;11355:145;;;;;;;11517:27;;1919:25:1;;;11517:27:0;;1907:2:1;1892:18;11517:27:0;;;;;;;10198:1352;;;;;;;;;;;10153:1397;:::o;9497:465::-;9578:35;9595:6;9603:9;9578:16;:35::i;:::-;9573:65;;9497:465;;:::o;9573:65::-;9697:4;9646:30;8548:18;;;:9;:18;;;;;;9740:19;;9714:45;;9710:247;;-1:-1:-1;9795:19:0;;14826:6;;-1:-1:-1;;;;;14826:14:0;;;:6;;:14;9879:71;;;;9905:35;9917:22;9905:11;:35::i;:::-;9761:196;9710:247;9566:396;9497:465;;:::o;12416:521::-;12531:13;;12498:7;;;;12531:13;;;;;:52;;;;-1:-1:-1;;;;;;12549:34:0;;;;;;:26;:34;;;;;;;;12548:35;12531:52;:94;;;;-1:-1:-1;;;;;;12588:37:0;;;;;;:26;:37;;;;;;;;12587:38;12531:94;12514:111;;12636:9;12632:285;;;14826:6;;-1:-1:-1;;;;;14826:14:0;;;:6;;:14;12656:254;;-1:-1:-1;;12708:12:0;:22;;;;;;12701:29;;12656:254;12762:17;:15;:17::i;:::-;12759:136;;;12806:2;12799:9;;;;;12759:136;-1:-1:-1;;12856:11:0;:21;;;;;;12849:28;;12759:136;-1:-1:-1;12930:1:0;;12416:521;-1:-1:-1;;;12416:521:0:o;11556:528::-;11722:22;11747;11760:9;11747:10;:22;:::i;:::-;-1:-1:-1;;;;;11802:17:0;;;;;;:9;:17;;;;;:31;;11722:47;;-1:-1:-1;11823:10:0;;11802:17;;;:31;;11823:10;;11802:31;:::i;:::-;;;;-1:-1:-1;;;;;;;11840:20:0;;;;;;:9;:20;;;;;:38;;11864:14;;11840:20;:38;;11864:14;;11840:38;:::i;:::-;;;;-1:-1:-1;;11938:4:0;11920:24;;;;:9;:24;;;;;:37;;11948:9;;11920:24;:37;;11948:9;;11920:37;:::i;:::-;;;;-1:-1:-1;;11995:13:0;;11992:83;;12024:42;;1919:25:1;;;12049:4:0;;-1:-1:-1;;;;;12024:42:0;;;;;1907:2:1;1892:18;12024:42:0;;;;;;;11992:83;11662:422;11556:528;;;;:::o;12945:420::-;13106:16;;;13120:1;13106:16;;;;;;;;13009:7;;13050:21;;13009:7;;13106:16;;;;;;;;;;;;-1:-1:-1;13106:16:0;13082:40;;13147:4;13129;13134:1;13129:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13129:23:0;;;:7;;;;;;;;;;:23;;;;13169:8;;:15;;;-1:-1:-1;;;13169:15:0;;;;:8;;;;;:13;;:15;;;;;13129:7;;13169:15;;;;;:8;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13159:4;13164:1;13159:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13159:25:0;;;:7;;;;;;;;;:25;13191:8;;:113;;-1:-1:-1;;;13191:113:0;;:8;;;:59;;:113;;13251:11;;13191:8;;13267:4;;13281;;13288:15;;13191:113;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13345:14;13321:21;:38;;;;:::i;:::-;13314:45;12945:420;-1:-1:-1;;;;12945:420:0:o;13587:151::-;13678:4;13699:33;13714:6;13722:9;13699:14;:33::i;:::-;13698:34;;13587:151;-1:-1:-1;;;13587:151:0:o;13371:210::-;13451:4;;-1:-1:-1;;;;;13489:23:0;;13507:4;13489:23;:55;;;;-1:-1:-1;14826:6:0;;-1:-1:-1;;;;;14826:14:0;;;:6;;:14;13464:80;13371:210;-1:-1:-1;;;;13371:210:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:160::-;1280:20;;1336:13;;1329:21;1319:32;;1309:60;;1365:1;1362;1355:12;1309:60;1215:160;;;:::o;1380:180::-;1436:6;1489:2;1477:9;1468:7;1464:23;1460:32;1457:52;;;1505:1;1502;1495:12;1457:52;1528:26;1544:9;1528:26;:::i;:::-;1518:36;1380:180;-1:-1:-1;;;1380:180:1:o;1955:456::-;2032:6;2040;2048;2101:2;2089:9;2080:7;2076:23;2072:32;2069:52;;;2117:1;2114;2107:12;2069:52;2156:9;2143:23;2175:31;2200:5;2175:31;:::i;:::-;2225:5;-1:-1:-1;2282:2:1;2267:18;;2254:32;2295:33;2254:32;2295:33;:::i;:::-;1955:456;;2347:7;;-1:-1:-1;;;2401:2:1;2386:18;;;;2373:32;;1955:456::o;3029:247::-;3088:6;3141:2;3129:9;3120:7;3116:23;3112:32;3109:52;;;3157:1;3154;3147:12;3109:52;3196:9;3183:23;3215:31;3240:5;3215:31;:::i;3281:315::-;3346:6;3354;3407:2;3395:9;3386:7;3382:23;3378:32;3375:52;;;3423:1;3420;3413:12;3375:52;3462:9;3449:23;3481:31;3506:5;3481:31;:::i;:::-;3531:5;-1:-1:-1;3555:35:1;3586:2;3571:18;;3555:35;:::i;:::-;3545:45;;3281:315;;;;;:::o;3601:180::-;3660:6;3713:2;3701:9;3692:7;3688:23;3684:32;3681:52;;;3729:1;3726;3719:12;3681:52;-1:-1:-1;3752:23:1;;3601:180;-1:-1:-1;3601:180:1:o;3786:156::-;3852:20;;3912:4;3901:16;;3891:27;;3881:55;;3932:1;3929;3922:12;3947:391;4024:6;4032;4040;4048;4101:3;4089:9;4080:7;4076:23;4072:33;4069:53;;;4118:1;4115;4108:12;4069:53;4141:27;4158:9;4141:27;:::i;:::-;4131:37;;4187:36;4219:2;4208:9;4204:18;4187:36;:::i;:::-;4177:46;;4242:36;4274:2;4263:9;4259:18;4242:36;:::i;:::-;4232:46;;4297:35;4328:2;4317:9;4313:18;4297:35;:::i;:::-;4287:45;;3947:391;;;;;;;:::o;4343:388::-;4411:6;4419;4472:2;4460:9;4451:7;4447:23;4443:32;4440:52;;;4488:1;4485;4478:12;4440:52;4527:9;4514:23;4546:31;4571:5;4546:31;:::i;:::-;4596:5;-1:-1:-1;4653:2:1;4638:18;;4625:32;4666:33;4625:32;4666:33;:::i;:::-;4718:7;4708:17;;;4343:388;;;;;:::o;4736:356::-;4938:2;4920:21;;;4957:18;;;4950:30;5016:34;5011:2;4996:18;;4989:62;5083:2;5068:18;;4736:356::o;5097:127::-;5158:10;5153:3;5149:20;5146:1;5139:31;5189:4;5186:1;5179:15;5213:4;5210:1;5203:15;5229:422;5318:1;5361:5;5318:1;5375:270;5396:7;5386:8;5383:21;5375:270;;;5455:4;5451:1;5447:6;5443:17;5437:4;5434:27;5431:53;;;5464:18;;:::i;:::-;5514:7;5504:8;5500:22;5497:55;;;5534:16;;;;5497:55;5613:22;;;;5573:15;;;;5375:270;;;5379:3;5229:422;;;;;:::o;5656:806::-;5705:5;5735:8;5725:80;;-1:-1:-1;5776:1:1;5790:5;;5725:80;5824:4;5814:76;;-1:-1:-1;5861:1:1;5875:5;;5814:76;5906:4;5924:1;5919:59;;;;5992:1;5987:130;;;;5899:218;;5919:59;5949:1;5940:10;;5963:5;;;5987:130;6024:3;6014:8;6011:17;6008:43;;;6031:18;;:::i;:::-;-1:-1:-1;;6087:1:1;6073:16;;6102:5;;5899:218;;6201:2;6191:8;6188:16;6182:3;6176:4;6173:13;6169:36;6163:2;6153:8;6150:16;6145:2;6139:4;6136:12;6132:35;6129:77;6126:159;;;-1:-1:-1;6238:19:1;;;6270:5;;6126:159;6317:34;6342:8;6336:4;6317:34;:::i;:::-;6387:6;6383:1;6379:6;6375:19;6366:7;6363:32;6360:58;;;6398:18;;:::i;:::-;6436:20;;5656:806;-1:-1:-1;;;5656:806:1:o;6467:140::-;6525:5;6554:47;6595:4;6585:8;6581:19;6575:4;6554:47;:::i;6612:168::-;6685:9;;;6716;;6733:15;;;6727:22;;6713:37;6703:71;;6754:18;;:::i;6785:128::-;6852:9;;;6873:11;;;6870:37;;;6887:18;;:::i;6918:125::-;6983:9;;;7004:10;;;7001:36;;;7017:18;;:::i;7462:251::-;7532:6;7585:2;7573:9;7564:7;7560:23;7556:32;7553:52;;;7601:1;7598;7591:12;7553:52;7633:9;7627:16;7652:31;7677:5;7652:31;:::i;8388:148::-;8476:4;8455:12;;;8469;;;8451:31;;8494:13;;8491:39;;;8510:18;;:::i;10476:400::-;10678:2;10660:21;;;10717:2;10697:18;;;10690:30;10756:34;10751:2;10736:18;;10729:62;-1:-1:-1;;;10822:2:1;10807:18;;10800:34;10866:3;10851:19;;10476:400::o;11584:217::-;11624:1;11650;11640:132;;11694:10;11689:3;11685:20;11682:1;11675:31;11729:4;11726:1;11719:15;11757:4;11754:1;11747:15;11640:132;-1:-1:-1;11786:9:1;;11584:217::o;12418:306::-;12506:6;12514;12522;12575:2;12563:9;12554:7;12550:23;12546:32;12543:52;;;12591:1;12588;12581:12;12543:52;12620:9;12614:16;12604:26;;12670:2;12659:9;12655:18;12649:25;12639:35;;12714:2;12703:9;12699:18;12693:25;12683:35;;12418:306;;;;;:::o;12861:127::-;12922:10;12917:3;12913:20;12910:1;12903:31;12953:4;12950:1;12943:15;12977:4;12974:1;12967:15;12993:980;13255:4;13303:3;13292:9;13288:19;13334:6;13323:9;13316:25;13360:2;13398:6;13393:2;13382:9;13378:18;13371:34;13441:3;13436:2;13425:9;13421:18;13414:31;13465:6;13500;13494:13;13531:6;13523;13516:22;13569:3;13558:9;13554:19;13547:26;;13608:2;13600:6;13596:15;13582:29;;13629:1;13639:195;13653:6;13650:1;13647:13;13639:195;;;13718:13;;-1:-1:-1;;;;;13714:39:1;13702:52;;13809:15;;;;13774:12;;;;13750:1;13668:9;13639:195;;;-1:-1:-1;;;;;;;13890:32:1;;;;13885:2;13870:18;;13863:60;-1:-1:-1;;;13954:3:1;13939:19;13932:35;13851:3;12993:980;-1:-1:-1;;;12993:980:1:o

Metadata Hash

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