Contract 0x050ca43222dfb2b50ff5d6e5a2785fc14f07f889 1

 

Contract Overview

Secured Ship: Old SHIP Token
Balance:
10.64684697 BNB

BNB Value:
$6,630.96 (@ $622.81/BNB)
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x8f80ec850c9f7eb6c317ce4e85791e46833a4f72051764b6cd914dda72c0b50fApprove130510492021-11-29 13:36:3637 mins ago0x84d89f100d7d2d6ac16735a7030d4ce9f1f670c2 IN  Secured Ship: Old SHIP Token0 BNB0.00022226
0xd750d593ef5d7678fa8e111dce41fbf4a996d6fccefaf23990aace7db83baa91Approve130509632021-11-29 13:31:4941 mins ago0x84d89f100d7d2d6ac16735a7030d4ce9f1f670c2 IN  Secured Ship: Old SHIP Token0 BNB0.00022226
0x9c6370b891e01e00da79dbf7da5f3900237e787022c9d9082d3ae92316e57a98Transfer130500132021-11-29 12:36:121 hr 37 mins ago0xcacf4ceae47a2fde66b8bc604372b55bb2b65c79 IN  Secured Ship: Old SHIP Token0 BNB0.001576725
0x9a42307320a35f1089d5aeaf4258e7a28971c2cc5cd1f8a09e739d932b206860Transfer130470852021-11-29 9:48:214 hrs 25 mins ago0xde383acc3006c7f83b33cd6baed5958036d20c7f IN  Secured Ship: Old SHIP Token0 BNB0.000341285
0x69a4952e01c372305fa30834cf377c4a8a6a179ff9a10f519b39101767a49b36Transfer130458352021-11-29 8:38:025 hrs 35 mins ago0x88a85d53fca2a5278c6d197c3cbbfa95277680d8 IN  Secured Ship: Old SHIP Token0 BNB0.001576725
0x84f90b356ba8649658c4086fc87a04eaa3e2c393122178ab4241ec809cb85352Approve130454402021-11-29 8:14:115 hrs 59 mins ago0x55d621df399c5438f32d1743ec74e3809c86fb8c IN  Secured Ship: Old SHIP Token0 BNB0.00022226
0x79fc7f4047df746aa3d98e435ce69d96521969bea5726f225dafb349d4fcff30Approve130450222021-11-29 7:50:316 hrs 23 mins ago0x88a85d53fca2a5278c6d197c3cbbfa95277680d8 IN  Secured Ship: Old SHIP Token0 BNB0.00022226
0x9142935cf947701a0ab4e258a8daa99dd8d2e988d6664c45395e4e092f1d25c0Approve130392122021-11-29 2:29:5211 hrs 43 mins ago0xcacf4ceae47a2fde66b8bc604372b55bb2b65c79 IN  Secured Ship: Old SHIP Token0 BNB0.00022226
0xe4929d4e73494d0e1a0ade464a87c58bdaa0dad76f78e076a6c4e6905d3a7634Transfer130382232021-11-29 1:35:4712 hrs 37 mins ago0xfcad96859afc0195e8e5263fd8aa8e3015b085f4 IN  Secured Ship: Old SHIP Token0 BNB0.000341045
0xdc997cf0873a539597d8f5785b97a31a7411748d25772cfd126db565e2c68ac9Approve130375352021-11-29 0:59:0113 hrs 14 mins ago0x20a78e647ff8663b7d38dc37d9c0bcb39a4b8dea IN  Secured Ship: Old SHIP Token0 BNB0.00022226
0x635db8a7819bc819ada992d4ff7f8463285ffd1b357740eaaf2c02320fbd9e05Transfer130372472021-11-29 0:43:4313 hrs 29 mins ago0x26df5de009a6373ddfdcad1618677a769fefc1cf IN  Secured Ship: Old SHIP Token0 BNB0.000341285
0xa6880091ab6c40ad811958da7e8381e9f2559c46212eb5951659a03b040b99d2Approve130365722021-11-29 0:06:4414 hrs 6 mins ago0xbe0db7b364f52bba3335e456725e9092b67de66a IN  Secured Ship: Old SHIP Token0 BNB0.00022226
0xaa43fb8d998c4794ca54d3647dda09de80bd5cfa9b282cf2c453609614c039b3Transfer130286132021-11-28 16:58:5021 hrs 14 mins ago0xaa8f0d38ade7dcf116f6b3d201fb7deb42ac86cf IN  Secured Ship: Old SHIP Token0 BNB0.000341285
0xecc5610fc5eb69ae0513c547886c716f5c221349b8ea0d6895405caf4c89af29Transfer130272192021-11-28 15:43:0822 hrs 30 mins ago0x955095584d5850bca94fb9f67a5e7a85238e3ea9 IN  Secured Ship: Old SHIP Token0 BNB0.000341345
0xda504871d9b5405de639de577c8b3588dcdac9d03fbaf4e4e7f93a9a52598cacApprove130261192021-11-28 14:44:5923 hrs 28 mins ago0xe6abb1e51904060f9e6c13c955ccaf0c233f3240 IN  Secured Ship: Old SHIP Token0 BNB0.00022226
0x0aa132500b0cf9b12c5a1560b1d2bd0cafd212dca3f67ccc47d4c3ce898dd135Approve130163612021-11-28 6:00:291 day 8 hrs ago0xebad5be674a541423736c9b52f8f94021e408230 IN  Secured Ship: Old SHIP Token0 BNB0.00022226
0xc21d0f2ad5f7a532f3f26b3150abc3f6f37e6a949336daf47f3136b7ba10125cTransfer130136882021-11-28 3:37:251 day 10 hrs ago0xc2e11edec0e70ec9c8fc3353e79eef66a66a25a2 IN  Secured Ship: Old SHIP Token0 BNB0.001576725
0x27557feb2ac926026e9d8f242d54ba7c464908791a0c209a18c232c3fe74ad30Transfer130135162021-11-28 3:28:391 day 10 hrs ago0xc2e11edec0e70ec9c8fc3353e79eef66a66a25a2 IN  Secured Ship: Old SHIP Token0 BNB0.00155126
0xc15f673f84e01ec2833bd471ad57813e05ac4000aca87a87a947471b52fa79c3Transfer130089412021-11-27 23:22:211 day 14 hrs ago0x26265986391db4fafdf11d02588c57c42c1d9b85 IN  Secured Ship: Old SHIP Token0 BNB0.001576665
0x597aed5ce3e2344cb31677a92cefc29b10aeb90208815a33466d88790af79843Approve129987122021-11-27 14:18:171 day 23 hrs ago0xf85cf27e0a6b11f5fbf13dab4781348db6eb6c27 IN  Secured Ship: Old SHIP Token0 BNB0.00022226
0x30c7b3dbfacad4d013944443c49d92028156af115697bd3683961ce5806a2a27Transfer129964642021-11-27 12:15:202 days 1 hr ago0xde383acc3006c7f83b33cd6baed5958036d20c7f IN  Secured Ship: Old SHIP Token0 BNB0.000341285
0x68b7ff79719b5d91f165458b4acd2fc27ae4016a0ef33bad7270afdd72340277Approve129957372021-11-27 11:37:062 days 2 hrs ago0x45d5f09b45d593c91bdec136d75554601261b61a IN  Secured Ship: Old SHIP Token0 BNB0.00022226
0x6b7a876e5897d66645e3831c08402dfcb71ad303487b3c9ed52729f2e12f5b15Approve129939522021-11-27 10:02:572 days 4 hrs ago0x252cfae43462a89ea2588a39d79a36e9ee739926 IN  Secured Ship: Old SHIP Token0 BNB0.00022226
0x0f9cd6b90810d923e756e5e7479072d0df1e6a190de4ae402f4272223cd4d39fTransfer129933372021-11-27 9:29:042 days 4 hrs ago0x5d39fde8ad9b281034f819157cd86de4952b989f IN  Secured Ship: Old SHIP Token0 BNB0.001576725
0xe093be17b2eacb28a8a51205e05ad621a208c1d5e508c26ae237fbac635f5768Approve129882292021-11-27 4:51:072 days 9 hrs ago0x70554fe0f7200c9358b24e5e30629b22e982039f IN  Secured Ship: Old SHIP Token0 BNB0.00022226
[ Download CSV Export 

OVERVIEW

Secured Ship has migrated to 0xc0a696bbb66352e5b88624f1d1b8909c34dc4e4a

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xcc8880f834e73b40a7095ccc48666836d5eeb8d17b1d277cc7bd29ad468b1f81123242932021-11-03 5:12:2826 days 9 hrs ago Secured Ship: Old SHIP Token PancakeSwap: Router v20.002052483942358093 BNB
0xcc8880f834e73b40a7095ccc48666836d5eeb8d17b1d277cc7bd29ad468b1f81123242932021-11-03 5:12:2826 days 9 hrs ago PancakeSwap: Router v2 Secured Ship: Old SHIP Token0.002052483942358093 BNB
0xf47d12c788e6e2f708fa641fd9255b2fe1c0fedfb12db040390c3704a58609e7123242342021-11-03 5:09:3126 days 9 hrs ago Secured Ship: Old SHIP Token PancakeSwap: Router v20.002013004471375803 BNB
0xf47d12c788e6e2f708fa641fd9255b2fe1c0fedfb12db040390c3704a58609e7123242342021-11-03 5:09:3126 days 9 hrs ago PancakeSwap: Router v2 Secured Ship: Old SHIP Token0.002013004471375803 BNB
0x1a55f6d93010ca8518e38ef194df507ba071a182b7d53fe847ef93d6317591a5123242342021-11-03 5:09:3126 days 9 hrs ago Secured Ship: Old SHIP Token PancakeSwap: Router v20.002013032618523888 BNB
0x1a55f6d93010ca8518e38ef194df507ba071a182b7d53fe847ef93d6317591a5123242342021-11-03 5:09:3126 days 9 hrs ago PancakeSwap: Router v2 Secured Ship: Old SHIP Token0.002013032618523888 BNB
0x346991c15d743a6fcfbbad4dccad5e366cc6f867332196e8e3bbca6c2687f99b123242322021-11-03 5:09:2526 days 9 hrs ago Secured Ship: Old SHIP Token PancakeSwap: Router v20.002013060766459129 BNB
0x346991c15d743a6fcfbbad4dccad5e366cc6f867332196e8e3bbca6c2687f99b123242322021-11-03 5:09:2526 days 9 hrs ago PancakeSwap: Router v2 Secured Ship: Old SHIP Token0.002013060766459129 BNB
0xd1a3db878383bd9821ced3a7cc3f546dde3bcab0ed0d112cf64967e55cf81e65123242302021-11-03 5:09:1926 days 9 hrs ago Secured Ship: Old SHIP Token PancakeSwap: Router v20.002013088915181559 BNB
0xd1a3db878383bd9821ced3a7cc3f546dde3bcab0ed0d112cf64967e55cf81e65123242302021-11-03 5:09:1926 days 9 hrs ago PancakeSwap: Router v2 Secured Ship: Old SHIP Token0.002013088915181559 BNB
0x9f8854abb1789803d4d97dfe81e62af76ce778164f55dda51901f80218f792e7123242062021-11-03 5:08:0726 days 9 hrs ago Secured Ship: Old SHIP Token PancakeSwap: Router v20.00201270047181351 BNB
0x9f8854abb1789803d4d97dfe81e62af76ce778164f55dda51901f80218f792e7123242062021-11-03 5:08:0726 days 9 hrs ago PancakeSwap: Router v2 Secured Ship: Old SHIP Token0.00201270047181351 BNB
0xb9e59bbaf3f615b81cc00da27554333774e840a4b2120c4d452a85eabeffa5f8123241992021-11-03 5:07:4626 days 9 hrs ago Secured Ship: Old SHIP Token PancakeSwap: Router v20.002012728613389182 BNB
0xb9e59bbaf3f615b81cc00da27554333774e840a4b2120c4d452a85eabeffa5f8123241992021-11-03 5:07:4626 days 9 hrs ago PancakeSwap: Router v2 Secured Ship: Old SHIP Token0.002012728613389182 BNB
0xbe4baa99dd85fe49ef9f5c8584fd46641416c210cc7017c5ec0c517a66797018123241392021-11-03 5:04:4626 days 9 hrs ago Secured Ship: Old SHIP Token PancakeSwap: Router v20.002001649342657979 BNB
0xbe4baa99dd85fe49ef9f5c8584fd46641416c210cc7017c5ec0c517a66797018123241392021-11-03 5:04:4626 days 9 hrs ago PancakeSwap: Router v2 Secured Ship: Old SHIP Token0.002001649342657979 BNB
0x02f110efe73e821402a6ee5570a9fbd3229b580bc63bf27a386669749584f451123241382021-11-03 5:04:4326 days 9 hrs ago Secured Ship: Old SHIP Token PancakeSwap: Router v20.002003702338368097 BNB
0x02f110efe73e821402a6ee5570a9fbd3229b580bc63bf27a386669749584f451123241382021-11-03 5:04:4326 days 9 hrs ago PancakeSwap: Router v2 Secured Ship: Old SHIP Token0.002003702338368097 BNB
0x640d5ec0f97ea18aecec75c28edc3c49f57399fe604db09227b7d7a602c19bb9123239912021-11-03 4:57:2226 days 9 hrs ago Secured Ship: Old SHIP Token PancakeSwap: Router v20.001912475278177613 BNB
0x640d5ec0f97ea18aecec75c28edc3c49f57399fe604db09227b7d7a602c19bb9123239912021-11-03 4:57:2226 days 9 hrs ago PancakeSwap: Router v2 Secured Ship: Old SHIP Token0.001912475278177613 BNB
0x3ddbf0539d9c6b8a67eca65cd5c6d4690c8dead53500af07a5f12624b5423a5a123239902021-11-03 4:57:1926 days 9 hrs ago Secured Ship: Old SHIP Token PancakeSwap: Router v20.001912878297572795 BNB
0x3ddbf0539d9c6b8a67eca65cd5c6d4690c8dead53500af07a5f12624b5423a5a123239902021-11-03 4:57:1926 days 9 hrs ago PancakeSwap: Router v2 Secured Ship: Old SHIP Token0.001912878297572795 BNB
0xaad6b8f92cbcb498a348a182663f5220fa574d5f4b885e8e531277ff6a9311af123239692021-11-03 4:56:1626 days 9 hrs ago Secured Ship: Old SHIP Token PancakeSwap: Router v20.001909992686807542 BNB
0xaad6b8f92cbcb498a348a182663f5220fa574d5f4b885e8e531277ff6a9311af123239692021-11-03 4:56:1626 days 9 hrs ago PancakeSwap: Router v2 Secured Ship: Old SHIP Token0.001909992686807542 BNB
0xb1052492f0e13263ed48c062a4d6aba6786bc5e81e529f487e7605a74b420f82123239652021-11-03 4:56:0426 days 9 hrs ago Secured Ship: Old SHIP Token PancakeSwap: Router v20.001905591217927431 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SecuredShip

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-09-10
*/

pragma solidity ^0.6.12;
// SPDX-License-Identifier: Unlicensed
interface IERC20 {

    function totalSupply() external view returns (uint256);

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

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;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

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

    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

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

        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            if (returndata.length > 0) {

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

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

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

    constructor () internal {
        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;
    }

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

    function lock(uint256 time) public virtual onlyOwner {
        _previousOwner = _owner;
        _owner = address(0);
        _lockTime = now + time;
        emit OwnershipTransferred(_owner, address(0));
    }
    
    function unlock() public virtual {
        require(_previousOwner == msg.sender, "You don't have permission to unlock");
        require(now > _lockTime , "Contract is locked until 7 days");
        emit OwnershipTransferred(_owner, _previousOwner);
        _owner = _previousOwner;
    }
}

// pragma solidity >=0.5.0;

interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);

    function feeTo() external view returns (address);
    function feeToSetter() external view returns (address);

    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function allPairs(uint) external view returns (address pair);
    function allPairsLength() external view returns (uint);

    function createPair(address tokenA, address tokenB) external returns (address pair);

    function setFeeTo(address) external;
    function setFeeToSetter(address) external;
}


// pragma solidity >=0.5.0;

interface IUniswapV2Pair {
    event Approval(address indexed owner, address indexed spender, uint value);
    event Transfer(address indexed from, address indexed to, uint value);

    function name() external pure returns (string memory);
    function symbol() external pure returns (string memory);
    function decimals() external pure returns (uint8);
    function totalSupply() external view returns (uint);
    function balanceOf(address owner) external view returns (uint);
    function allowance(address owner, address spender) external view returns (uint);

    function approve(address spender, uint value) external returns (bool);
    function transfer(address to, uint value) external returns (bool);
    function transferFrom(address from, address to, uint value) external returns (bool);

    function DOMAIN_SEPARATOR() external view returns (bytes32);
    function PERMIT_TYPEHASH() external pure returns (bytes32);
    function nonces(address owner) external view returns (uint);

    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;

    event Mint(address indexed sender, uint amount0, uint amount1);
    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
    event Swap(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    event Sync(uint112 reserve0, uint112 reserve1);

    function MINIMUM_LIQUIDITY() external pure returns (uint);
    function factory() external view returns (address);
    function token0() external view returns (address);
    function token1() external view returns (address);
    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
    function price0CumulativeLast() external view returns (uint);
    function price1CumulativeLast() external view returns (uint);
    function kLast() external view returns (uint);

    function mint(address to) external returns (uint liquidity);
    function burn(address to) external returns (uint amount0, uint amount1);
    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
    function skim(address to) external;
    function sync() external;

    function initialize(address, address) external;
}

// pragma solidity >=0.6.2;

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    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 addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    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);
}



// pragma solidity >=0.6.2;

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}


contract SecuredShip is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

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

    mapping (address => bool) private _isExcludedFromFee;

    mapping (address => bool) private _isExcluded;
    address[] private _excluded;
   
    uint256 private constant MAX = ~uint256(0);
    uint256 private _tTotal = 1000000000000 * 10**3 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name = "Secured Ship";
    string private _symbol = "SHIP";
    uint8 private _decimals = 9;
    
    uint256 public _taxFee = 2;
    uint256 private _previousTaxFee = _taxFee;
    
    uint256 public _liquidityFee = 2;
    uint256 private _previousLiquidityFee = _liquidityFee;
    
    uint256 public _MarketingFee = 4;
    address public MarketingWallet = 0xAe20ce82a4D311d8c6DE5e7D97256cAE3ee5c14E;
    uint256 private _previousMarketingFee = _MarketingFee;
    
    uint256 public _BurnFee = 2;
    address public BurnWallet = 0x000000000000000000000000000000000000dEaD;
    uint256 private _previousBurnFee = _BurnFee;

    IUniswapV2Router02 public immutable uniswapV2Router;
    address public immutable uniswapV2Pair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    
    uint256 public _maxTxAmount = 1000000000000 * 10**3 * 10**9;
    uint256 private numTokensSellToAddToLiquidity = 5000000 * 10**3 * 10**9;
    
    event MinTokensBeforeSwapUpdated(uint256 minTokensBeforeSwap);
    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor () public {
        _rOwned[_msgSender()] = _rTotal;
        
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E);
         // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;
        
        //exclude owner and this contract from fee
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function includeInReward(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }
        function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tLiquidity) = _getValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);        
        _takeLiquidity(tLiquidity);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    
        function excludeFromFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = true;
    }
    
    function includeInFee(address account) public onlyOwner {
        _isExcludedFromFee[account] = false;
    }
    
    function setMarketingWallet(address newWallet) external onlyOwner() {
        MarketingWallet = newWallet;
    }
    
    function setTaxFeePercent(uint256 taxFee) external onlyOwner() {
        _taxFee = taxFee;
    }
    
    function setMarketingFeePercent(uint256 marketingFee) external onlyOwner() {
        _MarketingFee = marketingFee;
    }
    
    function setBurnFeePercent(uint256 burnFee) external onlyOwner() {
        _BurnFee = burnFee;
    }
    
    function setLiquidityFeePercent(uint256 liquidityFee) external onlyOwner() {
        _liquidityFee = liquidityFee;
    }
   
    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(
            10**2
        );
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public onlyOwner {
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }
    
     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

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

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

    function _getTValues(uint256 tAmount) private view returns (uint256, uint256, uint256) {
        uint256 tFee = calculateTaxFee(tAmount);
        uint256 tLiquidity = calculateLiquidityFee(tAmount);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tLiquidity);
        return (tTransferAmount, tFee, tLiquidity);
    }

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

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

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
    
    function _takeLiquidity(uint256 tLiquidity) private {
        uint256 currentRate =  _getRate();
        uint256 rLiquidity = tLiquidity.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rLiquidity);
        if(_isExcluded[address(this)])
            _tOwned[address(this)] = _tOwned[address(this)].add(tLiquidity);
    }
    
    function calculateTaxFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_taxFee).div(
            10**2
        );
    }

    function calculateLiquidityFee(uint256 _amount) private view returns (uint256) {
        return _amount.mul(_liquidityFee).div(
            10**2
        );
    }
    
    function removeAllFee() private {
        if(_taxFee == 0 && _liquidityFee == 0 && _MarketingFee == 0 && _BurnFee == 0) return;
        
        _previousTaxFee = _taxFee;
        _previousLiquidityFee = _liquidityFee;
        _previousMarketingFee = _MarketingFee;
        _previousBurnFee = _BurnFee;
        
        _taxFee = 0;
        _liquidityFee = 0;
        _MarketingFee = 0;
        _BurnFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _liquidityFee = _previousLiquidityFee;
        _MarketingFee = _previousMarketingFee;
        _BurnFee = _previousBurnFee;
    }
    
    function isExcludedFromFee(address account) public view returns(bool) {
        return _isExcludedFromFee[account];
    }

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

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if(from != owner() && to != owner())
            require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");

        // is the token balance of this contract address over the min number of
        // tokens that we need to initiate a swap + liquidity lock?
        // also, don't get caught in a circular liquidity event.
        // also, don't swap & liquify if sender is uniswap pair.
        uint256 contractTokenBalance = balanceOf(address(this));
        
        if(contractTokenBalance >= _maxTxAmount)
        {
            contractTokenBalance = _maxTxAmount;
        }
        
        bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity;
        if (
            overMinTokenBalance &&
            !inSwapAndLiquify &&
            from != uniswapV2Pair &&
            swapAndLiquifyEnabled
        ) {
            contractTokenBalance = numTokensSellToAddToLiquidity;
            //add liquidity
            swapAndLiquify(contractTokenBalance);
        }
        
        //indicates if fee should be deducted from transfer
        bool takeFee = true;
        
        //if any account belongs to _isExcludedFromFee account then remove the fee
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        
        //transfer amount, it will take tax, burn, liquidity fee
        _tokenTransfer(from,to,amount,takeFee);
    }

    function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap {
        // split the contract balance into halves
        uint256 half = contractTokenBalance.div(2);
        uint256 otherHalf = contractTokenBalance.sub(half);

        // capture the contract's current ETH balance.
        // this is so that we can capture exactly the amount of ETH that the
        // swap creates, and not make the liquidity event include any ETH that
        // has been manually sent to the contract
        uint256 initialBalance = address(this).balance;

        // swap tokens for ETH
        swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered

        // how much ETH did we just swap into?
        uint256 newBalance = address(this).balance.sub(initialBalance);

        // add liquidity to uniswap
        addLiquidity(otherHalf, newBalance);
        
        emit SwapAndLiquify(half, newBalance, otherHalf);
    }

    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this),
            block.timestamp
        );
    }

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

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

    //this method is responsible for taking all fee, if takeFee is true
    function _tokenTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
        if(!takeFee)
            removeAllFee();
            
        //Calculate Burn and Marketing amount
        uint256 MarketingAmt = amount.mul(_MarketingFee).div(100);
        uint256 BurnAmt = amount.mul(_BurnFee).div(100);
        
        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, (amount.sub(MarketingAmt).sub(BurnAmt)));
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, (amount.sub(MarketingAmt).sub(BurnAmt)));
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, (amount.sub(MarketingAmt).sub(BurnAmt)));
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, (amount.sub(MarketingAmt).sub(BurnAmt)));
        } else {
            _transferStandard(sender, recipient, (amount.sub(MarketingAmt).sub(BurnAmt)));
        }
        
        //Send transfers to Burn and Marketing wallet
        _transferStandard(sender, MarketingWallet, MarketingAmt);
        _transferStandard(sender, BurnWallet, BurnAmt);
        
        if(!takeFee)
            restoreAllFee();
    }

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

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

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


    

}

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":false,"internalType":"uint256","name":"minTokensBeforeSwap","type":"uint256"}],"name":"MinTokensBeforeSwapUpdated","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":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"BurnWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_BurnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_MarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"geUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"burnFee","type":"uint256"}],"name":"setBurnFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"}],"name":"setMarketingFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

69d3c21bcecceda100000060095569085afffa6ff50bffffff19600a55610100604052600c60c08190526b05365637572656420536869760a41b60e09081526200004b91908162000403565b50604080518082019091526004808252630534849560e41b60209092019182526200007991600d9162000403565b50600e805460ff191660091790556002600f81905560108190556011819055601281905560046013819055601480546001600160a01b031990811673ae20ce82a4d311d8c6de5e7d97256cae3ee5c14e1790915560159190915560168290556017805490911661dead1790556018556019805461ff00191661010017905569d3c21bcecceda1000000601a55674563918244f40000601b553480156200011e57600080fd5b5060006200012b620003f0565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a546003600062000186620003f0565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060007310ed43c718714eb63d5aa57b78b54704e256024e9050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620001fd57600080fd5b505afa15801562000212573d6000803e3d6000fd5b505050506040513d60208110156200022957600080fd5b5051604080516315ab88c960e31b815290516001600160a01b039283169263c9c653969230929186169163ad5c464891600480820192602092909190829003018186803b1580156200027a57600080fd5b505afa1580156200028f573d6000803e3d6000fd5b505050506040513d6020811015620002a657600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301525160448083019260209291908290030181600087803b158015620002f957600080fd5b505af11580156200030e573d6000803e3d6000fd5b505050506040513d60208110156200032557600080fd5b50516001600160601b0319606091821b811660a0529082901b1660805260016006600062000352620003f4565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff1995861617905530815260069092529020805490911660011790556200039c620003f0565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009546040518082815260200191505060405180910390a3506200049f565b3390565b6000546001600160a01b031690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200044657805160ff191683800117855562000476565b8280016001018555821562000476579182015b828111156200047657825182559160200191906001019062000459565b506200048492915062000488565b5090565b5b8082111562000484576000815560010162000489565b60805160601c60a05160601c612d9c620004e76000398061105d5280611c36525080610ac95280612495528061254d5280612574528061265a52806126815250612d9c6000f3fe60806040526004361061026b5760003560e01c80635342acb411610144578063a69df4b5116100b6578063d543dbeb1161007a578063d543dbeb146108a6578063dd467064146108d0578063dd62ed3e146108fa578063e4a80d7214610935578063ea2f0b371461094a578063f2fde38b1461097d57610272565b8063a69df4b5146107ed578063a9059cbb14610802578063b6c523241461083b578063c49b9a8014610850578063cea269581461087c57610272565b80637d1db4a5116101085780637d1db4a51461071857806388f820201461072d5780638da5cb5b146107605780638ee88c531461077557806395d89b411461079f578063a457c2d7146107b457610272565b80635342acb4146106555780635d098b38146106885780636bc87c3a146106bb57806370a08231146106d0578063715018a61461070357610272565b806339509351116101dd578063457c194c116101a1578063457c194c146105a4578063475b8473146105ce57806349bd5a5e146105e35780634a74bb02146105f85780634c1d019b1461060d57806352390c021461062257610272565b806339509351146104c75780633b124fe7146105005780633bd5d17314610515578063437823ec1461053f5780634549b0391461057257610272565b806318160ddd1161022f57806318160ddd146103d257806323b872dd146103e75780632598cdb21461042a5780632d8381191461043f578063313ce567146104695780633685d4191461049457610272565b8063061c82d01461027757806306fdde03146102a3578063095ea7b31461032d57806313114a9d1461037a5780631694505e146103a157610272565b3661027257005b600080fd5b34801561028357600080fd5b506102a16004803603602081101561029a57600080fd5b50356109b0565b005b3480156102af57600080fd5b506102b8610a0d565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102f25781810151838201526020016102da565b50505050905090810190601f16801561031f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561033957600080fd5b506103666004803603604081101561035057600080fd5b506001600160a01b038135169060200135610aa3565b604080519115158252519081900360200190f35b34801561038657600080fd5b5061038f610ac1565b60408051918252519081900360200190f35b3480156103ad57600080fd5b506103b6610ac7565b604080516001600160a01b039092168252519081900360200190f35b3480156103de57600080fd5b5061038f610aeb565b3480156103f357600080fd5b506103666004803603606081101561040a57600080fd5b506001600160a01b03813581169160208101359091169060400135610af1565b34801561043657600080fd5b506103b6610b78565b34801561044b57600080fd5b5061038f6004803603602081101561046257600080fd5b5035610b87565b34801561047557600080fd5b5061047e610be9565b6040805160ff9092168252519081900360200190f35b3480156104a057600080fd5b506102a1600480360360208110156104b757600080fd5b50356001600160a01b0316610bf2565b3480156104d357600080fd5b50610366600480360360408110156104ea57600080fd5b506001600160a01b038135169060200135610db3565b34801561050c57600080fd5b5061038f610e01565b34801561052157600080fd5b506102a16004803603602081101561053857600080fd5b5035610e07565b34801561054b57600080fd5b506102a16004803603602081101561056257600080fd5b50356001600160a01b0316610ee1565b34801561057e57600080fd5b5061038f6004803603604081101561059557600080fd5b50803590602001351515610f5d565b3480156105b057600080fd5b506102a1600480360360208110156105c757600080fd5b5035610fef565b3480156105da57600080fd5b506103b661104c565b3480156105ef57600080fd5b506103b661105b565b34801561060457600080fd5b5061036661107f565b34801561061957600080fd5b5061038f61108d565b34801561062e57600080fd5b506102a16004803603602081101561064557600080fd5b50356001600160a01b0316611093565b34801561066157600080fd5b506103666004803603602081101561067857600080fd5b50356001600160a01b0316611219565b34801561069457600080fd5b506102a1600480360360208110156106ab57600080fd5b50356001600160a01b0316611237565b3480156106c757600080fd5b5061038f6112b1565b3480156106dc57600080fd5b5061038f600480360360208110156106f357600080fd5b50356001600160a01b03166112b7565b34801561070f57600080fd5b506102a1611319565b34801561072457600080fd5b5061038f6113a9565b34801561073957600080fd5b506103666004803603602081101561075057600080fd5b50356001600160a01b03166113af565b34801561076c57600080fd5b506103b66113cd565b34801561078157600080fd5b506102a16004803603602081101561079857600080fd5b50356113dc565b3480156107ab57600080fd5b506102b8611439565b3480156107c057600080fd5b50610366600480360360408110156107d757600080fd5b506001600160a01b03813516906020013561149a565b3480156107f957600080fd5b506102a1611502565b34801561080e57600080fd5b506103666004803603604081101561082557600080fd5b506001600160a01b0381351690602001356115f0565b34801561084757600080fd5b5061038f611604565b34801561085c57600080fd5b506102a16004803603602081101561087357600080fd5b5035151561160a565b34801561088857600080fd5b506102a16004803603602081101561089f57600080fd5b50356116b1565b3480156108b257600080fd5b506102a1600480360360208110156108c957600080fd5b503561170e565b3480156108dc57600080fd5b506102a1600480360360208110156108f357600080fd5b503561178c565b34801561090657600080fd5b5061038f6004803603604081101561091d57600080fd5b506001600160a01b038135811691602001351661182a565b34801561094157600080fd5b5061038f611855565b34801561095657600080fd5b506102a16004803603602081101561096d57600080fd5b50356001600160a01b031661185b565b34801561098957600080fd5b506102a1600480360360208110156109a057600080fd5b50356001600160a01b03166118d4565b6109b86119ba565b6000546001600160a01b03908116911614610a08576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b600f55565b600c8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a995780601f10610a6e57610100808354040283529160200191610a99565b820191906000526020600020905b815481529060010190602001808311610a7c57829003601f168201915b5050505050905090565b6000610ab7610ab06119ba565b84846119be565b5060015b92915050565b600b5490565b7f000000000000000000000000000000000000000000000000000000000000000081565b60095490565b6000610afe848484611aaa565b610b6e84610b0a6119ba565b610b6985604051806060016040528060288152602001612c19602891396001600160a01b038a16600090815260056020526040812090610b486119ba565b6001600160a01b031681526020810191909152604001600020549190611cf0565b6119be565b5060019392505050565b6014546001600160a01b031681565b6000600a54821115610bca5760405162461bcd60e51b815260040180806020018281038252602a815260200180612b5e602a913960400191505060405180910390fd5b6000610bd4611d87565b9050610be08382611daa565b9150505b919050565b600e5460ff1690565b610bfa6119ba565b6000546001600160a01b03908116911614610c4a576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526007602052604090205460ff16610cb7576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b60005b600854811015610daf57816001600160a01b031660088281548110610cdb57fe5b6000918252602090912001546001600160a01b03161415610da757600880546000198101908110610d0857fe5b600091825260209091200154600880546001600160a01b039092169183908110610d2e57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600482526040808220829055600790925220805460ff191690556008805480610d8057fe5b600082815260209020810160001990810180546001600160a01b0319169055019055610daf565b600101610cba565b5050565b6000610ab7610dc06119ba565b84610b698560056000610dd16119ba565b6001600160a01b03908116825260208083019390935260409182016000908120918c168152925290205490611df3565b600f5481565b6000610e116119ba565b6001600160a01b03811660009081526007602052604090205490915060ff1615610e6c5760405162461bcd60e51b815260040180806020018281038252602c815260200180612cf3602c913960400191505060405180910390fd5b6000610e7783611e4d565b505050506001600160a01b038416600090815260036020526040902054919250610ea391905082611e9c565b6001600160a01b038316600090815260036020526040902055600a54610ec99082611e9c565b600a55600b54610ed99084611df3565b600b55505050565b610ee96119ba565b6000546001600160a01b03908116911614610f39576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600660205260409020805460ff19166001179055565b6000600954831115610fb6576040805162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604482015290519081900360640190fd5b81610fd5576000610fc684611e4d565b50939550610abb945050505050565b6000610fe084611e4d565b50929550610abb945050505050565b610ff76119ba565b6000546001600160a01b03908116911614611047576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b601355565b6017546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b601954610100900460ff1681565b60135481565b61109b6119ba565b6000546001600160a01b039081169116146110eb576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526007602052604090205460ff1615611159576040805162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260036020526040902054156111b3576001600160a01b03811660009081526003602052604090205461119990610b87565b6001600160a01b0382166000908152600460205260409020555b6001600160a01b03166000818152600760205260408120805460ff191660019081179091556008805491820181559091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319169091179055565b6001600160a01b031660009081526006602052604090205460ff1690565b61123f6119ba565b6000546001600160a01b0390811691161461128f576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b60115481565b6001600160a01b03811660009081526007602052604081205460ff16156112f757506001600160a01b038116600090815260046020526040902054610be4565b6001600160a01b038216600090815260036020526040902054610abb90610b87565b6113216119ba565b6000546001600160a01b03908116911614611371576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b600080546040516001600160a01b0390911690600080516020612c61833981519152908390a3600080546001600160a01b0319169055565b601a5481565b6001600160a01b031660009081526007602052604090205460ff1690565b6000546001600160a01b031690565b6113e46119ba565b6000546001600160a01b03908116911614611434576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b601155565b600d8054604080516020601f6002600019610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610a995780601f10610a6e57610100808354040283529160200191610a99565b6000610ab76114a76119ba565b84610b6985604051806060016040528060258152602001612d4260259139600560006114d16119ba565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611cf0565b6001546001600160a01b0316331461154b5760405162461bcd60e51b8152600401808060200182810382526023815260200180612d1f6023913960400191505060405180910390fd5b60025442116115a1576040805162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c2037206461797300604482015290519081900360640190fd5b600154600080546040516001600160a01b039384169390911691600080516020612c6183398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000610ab76115fd6119ba565b8484611aaa565b60025490565b6116126119ba565b6000546001600160a01b03908116911614611662576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b60198054821515610100810261ff00199092169190911790915560408051918252517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599181900360200190a150565b6116b96119ba565b6000546001600160a01b03908116911614611709576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b601655565b6117166119ba565b6000546001600160a01b03908116911614611766576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b611786606461178083600954611ede90919063ffffffff16565b90611daa565b601a5550565b6117946119ba565b6000546001600160a01b039081169116146117e4576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b60008054600180546001600160a01b03199081166001600160a01b038416179091551681554282016002556040518190600080516020612c61833981519152908290a350565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b60165481565b6118636119ba565b6000546001600160a01b039081169116146118b3576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600660205260409020805460ff19169055565b6118dc6119ba565b6000546001600160a01b0390811691161461192c576040805162461bcd60e51b81526020600482018190526024820152600080516020612c41833981519152604482015290519081900360640190fd5b6001600160a01b0381166119715760405162461bcd60e51b8152600401808060200182810382526026815260200180612b886026913960400191505060405180910390fd5b600080546040516001600160a01b0380851693921691600080516020612c6183398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b3390565b6001600160a01b038316611a035760405162461bcd60e51b8152600401808060200182810382526024815260200180612ccf6024913960400191505060405180910390fd5b6001600160a01b038216611a485760405162461bcd60e51b8152600401808060200182810382526022815260200180612bae6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316611aef5760405162461bcd60e51b8152600401808060200182810382526025815260200180612caa6025913960400191505060405180910390fd5b6001600160a01b038216611b345760405162461bcd60e51b8152600401808060200182810382526023815260200180612b3b6023913960400191505060405180910390fd5b60008111611b735760405162461bcd60e51b8152600401808060200182810382526029815260200180612c816029913960400191505060405180910390fd5b611b7b6113cd565b6001600160a01b0316836001600160a01b031614158015611bb55750611b9f6113cd565b6001600160a01b0316826001600160a01b031614155b15611bfb57601a54811115611bfb5760405162461bcd60e51b8152600401808060200182810382526028815260200180612bd06028913960400191505060405180910390fd5b6000611c06306112b7565b9050601a548110611c165750601a545b601b5481108015908190611c2d575060195460ff16155b8015611c6b57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b8015611c7e5750601954610100900460ff165b15611c9157601b549150611c9182611f37565b6001600160a01b03851660009081526006602052604090205460019060ff1680611cd357506001600160a01b03851660009081526006602052604090205460ff165b15611cdc575060005b611ce886868684611fd4565b505050505050565b60008184841115611d7f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611d44578181015183820152602001611d2c565b50505050905090810190601f168015611d715780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6000806000611d946121f1565b9092509050611da38282611daa565b9250505090565b6000611dec83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612354565b9392505050565b600082820183811015611dec576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000806000806000806000806000611e648a6123b9565b9250925092506000806000611e828d8686611e7d611d87565b6123f5565b919f909e50909c50959a5093985091965092945050505050565b6000611dec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cf0565b600082611eed57506000610abb565b82820282848281611efa57fe5b0414611dec5760405162461bcd60e51b8152600401808060200182810382526021815260200180612bf86021913960400191505060405180910390fd5b6019805460ff191660011790556000611f51826002611daa565b90506000611f5f8383611e9c565b905047611f6b83612445565b6000611f774783611e9c565b9050611f838382612654565b604080518581526020810183905280820185905290517f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb5619181900360600190a150506019805460ff19169055505050565b80611fe157611fe1612758565b6000611ffd606461178060135486611ede90919063ffffffff16565b9050600061201b606461178060165487611ede90919063ffffffff16565b6001600160a01b03871660009081526007602052604090205490915060ff16801561205f57506001600160a01b03851660009081526007602052604090205460ff16155b1561208757612082868661207d846120778988611e9c565b90611e9c565b6127b7565b6121b4565b6001600160a01b03861660009081526007602052604090205460ff161580156120c857506001600160a01b03851660009081526007602052604090205460ff165b156120e55761208286866120e0846120778988611e9c565b6128db565b6001600160a01b03861660009081526007602052604090205460ff1615801561212757506001600160a01b03851660009081526007602052604090205460ff16155b1561214457612082868661213f846120778988611e9c565b612984565b6001600160a01b03861660009081526007602052604090205460ff16801561218457506001600160a01b03851660009081526007602052604090205460ff165b156121a157612082868661219c846120778988611e9c565b6129c8565b6121b4868661213f846120778988611e9c565b6014546121cc9087906001600160a01b031684612984565b6017546121e49087906001600160a01b031683612984565b82611ce857611ce8612a3b565b600a546009546000918291825b6008548110156123225782600360006008848154811061221a57fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054118061227f575081600460006008848154811061225857fe5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b1561229657600a5460095494509450505050612350565b6122d660036000600884815481106122aa57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490611e9c565b925061231860046000600884815481106122ec57fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390611e9c565b91506001016121fe565b50600954600a5461233291611daa565b82101561234a57600a54600954935093505050612350565b90925090505b9091565b600081836123a35760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611d44578181015183820152602001611d2c565b5060008385816123af57fe5b0495945050505050565b6000806000806123c885612a55565b905060006123d586612a71565b905060006123e7826120778986611e9c565b979296509094509092505050565b60008080806124048886611ede565b905060006124128887611ede565b905060006124208888611ede565b90506000612432826120778686611e9c565b939b939a50919850919650505050505050565b6040805160028082526060808301845292602083019080368337019050509050308160008151811061247357fe5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156124ec57600080fd5b505afa158015612500573d6000803e3d6000fd5b505050506040513d602081101561251657600080fd5b505181518290600190811061252757fe5b60200260200101906001600160a01b031690816001600160a01b031681525050612572307f0000000000000000000000000000000000000000000000000000000000000000846119be565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663791ac9478360008430426040518663ffffffff1660e01b81526004018086815260200185815260200180602001846001600160a01b03168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156126175781810151838201526020016125ff565b505050509050019650505050505050600060405180830381600087803b15801561264057600080fd5b505af1158015611ce8573d6000803e3d6000fd5b61267f307f0000000000000000000000000000000000000000000000000000000000000000846119be565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f305d7198230856000806126bc6113cd565b426040518863ffffffff1660e01b815260040180876001600160a01b03168152602001868152602001858152602001848152602001836001600160a01b0316815260200182815260200196505050505050506060604051808303818588803b15801561272757600080fd5b505af115801561273b573d6000803e3d6000fd5b50505050506040513d606081101561275257600080fd5b50505050565b600f541580156127685750601154155b80156127745750601354155b80156127805750601654155b1561278a576127b5565b600f805460105560118054601255601380546015556016805460185560009384905591839055829055555b565b6000806000806000806127c987611e4d565b6001600160a01b038f16600090815260046020526040902054959b509399509197509550935091506127fb9088611e9c565b6001600160a01b038a1660009081526004602090815260408083209390935560039052205461282a9087611e9c565b6001600160a01b03808b1660009081526003602052604080822093909355908a16815220546128599086611df3565b6001600160a01b03891660009081526003602052604090205561287b81612a8d565b6128858483612b16565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3505050505050505050565b6000806000806000806128ed87611e4d565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061291f9087611e9c565b6001600160a01b03808b16600090815260036020908152604080832094909455918b168152600490915220546129559084611df3565b6001600160a01b0389166000908152600460209081526040808320939093556003905220546128599086611df3565b60008060008060008061299687611e4d565b6001600160a01b038f16600090815260036020526040902054959b5093995091975095509350915061282a9087611e9c565b6000806000806000806129da87611e4d565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150612a0c9088611e9c565b6001600160a01b038a1660009081526004602090815260408083209390935560039052205461291f9087611e9c565b601054600f55601254601155601554601355601854601655565b6000610abb6064611780600f5485611ede90919063ffffffff16565b6000610abb606461178060115485611ede90919063ffffffff16565b6000612a97611d87565b90506000612aa58383611ede565b30600090815260036020526040902054909150612ac29082611df3565b3060009081526003602090815260408083209390935560079052205460ff1615612b115730600090815260046020526040902054612b009084611df3565b306000908152600460205260409020555b505050565b600a54612b239083611e9c565b600a55600b54612b339082611df3565b600b55505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636b45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220a7a712842508bb7d4f947d7c09397f3c897da90d4e4bfff90eba6fee3cc72b2764736f6c634300060c0033

Deployed ByteCode Sourcemap

15012:19909:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22965:98;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22965:98:0;;:::i;:::-;;17774:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18686:161;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18686:161:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;19807:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;16333:51;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;16333:51:0;;;;;;;;;;;;;;18051:95;;;;;;;;;;;;;:::i;18855:313::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18855:313:0;;;;;;;;;;;;;;;;;:::i;16022:75::-;;;;;;;;;;;;;:::i;20731:253::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20731:253:0;;:::i;17960:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21447:479;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21447:479:0;-1:-1:-1;;;;;21447:479:0;;:::i;19176:218::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19176:218:0;;;;;;;;:::i;15791:26::-;;;;;;;;;;;;;:::i;19902:377::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19902:377:0;;:::i;22594:111::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22594:111:0;-1:-1:-1;;;;;22594:111:0;;:::i;20287:436::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20287:436:0;;;;;;;;;:::i;23075:122::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23075:122:0;;:::i;16204:70::-;;;;;;;;;;;;;:::i;16391:38::-;;;;;;;;;;;;;:::i;16470:40::-;;;;;;;;;;;;;:::i;15983:32::-;;;;;;;;;;;;;:::i;20992:447::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20992:447:0;-1:-1:-1;;;;;20992:447:0;;:::i;27372:123::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27372:123:0;-1:-1:-1;;;;;27372:123:0;;:::i;22839:114::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22839:114:0;-1:-1:-1;;;;;22839:114:0;;:::i;15878:32::-;;;;;;;;;;;;;:::i;18154:198::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18154:198:0;-1:-1:-1;;;;;18154:198:0;;:::i;5886:148::-;;;;;;;;;;;;;:::i;16523:59::-;;;;;;;;;;;;;:::i;19679:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19679:120:0;-1:-1:-1;;;;;19679:120:0;;:::i;5672:79::-;;;;;;;;;;;;;:::i;23323:122::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23323:122:0;;:::i;17865:87::-;;;;;;;;;;;;;:::i;19402:269::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;19402:269:0;;;;;;;;:::i;6617:293::-;;;;;;;;;;;;;:::i;18360:167::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18360:167:0;;;;;;;;:::i;6294:89::-;;;;;;;;;;;;;:::i;23626:171::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23626:171:0;;;;:::i;23209:102::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23209:102:0;;:::i;23456:162::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23456:162:0;;:::i;6391:214::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6391:214:0;;:::i;18535:143::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18535:143:0;;;;;;;;;;:::i;16170:27::-;;;;;;;;;;;;;:::i;22717:110::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22717:110:0;-1:-1:-1;;;;;22717:110:0;;:::i;6042:244::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6042:244:0;-1:-1:-1;;;;;6042:244:0;;:::i;22965:98::-;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;23039:7:::1;:16:::0;22965:98::o;17774:83::-;17844:5;17837:12;;;;;;;;-1:-1:-1;;17837:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17811:13;;17837:12;;17844:5;;17837:12;;17844:5;17837:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17774:83;:::o;18686:161::-;18761:4;18778:39;18787:12;:10;:12::i;:::-;18801:7;18810:6;18778:8;:39::i;:::-;-1:-1:-1;18835:4:0;18686:161;;;;;:::o;19807:87::-;19876:10;;19807:87;:::o;16333:51::-;;;:::o;18051:95::-;18131:7;;18051:95;:::o;18855:313::-;18953:4;18970:36;18980:6;18988:9;18999:6;18970:9;:36::i;:::-;19017:121;19026:6;19034:12;:10;:12::i;:::-;19048:89;19086:6;19048:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19048:19:0;;;;;;:11;:19;;;;;;19068:12;:10;:12::i;:::-;-1:-1:-1;;;;;19048:33:0;;;;;;;;;;;;-1:-1:-1;19048:33:0;;;:89;:37;:89::i;:::-;19017:8;:121::i;:::-;-1:-1:-1;19156:4:0;18855:313;;;;;:::o;16022:75::-;;;-1:-1:-1;;;;;16022:75:0;;:::o;20731:253::-;20797:7;20836;;20825;:18;;20817:73;;;;-1:-1:-1;;;20817:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20901:19;20924:10;:8;:10::i;:::-;20901:33;-1:-1:-1;20952:24:0;:7;20901:33;20952:11;:24::i;:::-;20945:31;;;20731:253;;;;:::o;17960:83::-;18026:9;;;;17960:83;:::o;21447:479::-;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;21529:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;21521:60;;;::::0;;-1:-1:-1;;;21521:60:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;21597:9;21592:327;21616:9;:16:::0;21612:20;::::1;21592:327;;;21674:7;-1:-1:-1::0;;;;;21658:23:0::1;:9;21668:1;21658:12;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;21658:12:0::1;:23;21654:254;;;21717:9;21727:16:::0;;-1:-1:-1;;21727:20:0;;;21717:31;::::1;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;21702:9:::1;:12:::0;;-1:-1:-1;;;;;21717:31:0;;::::1;::::0;21712:1;;21702:12;::::1;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;21702:46:0::1;-1:-1:-1::0;;;;;21702:46:0;;::::1;;::::0;;21767:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;21806:11:::1;:20:::0;;;;:28;;-1:-1:-1;;21806:28:0::1;::::0;;21853:9:::1;:15:::0;;;::::1;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;21853:15:0;;;;;-1:-1:-1;;;;;;21853:15:0::1;::::0;;;;;21887:5:::1;;21654:254;21634:3;;21592:327;;;;21447:479:::0;:::o;19176:218::-;19264:4;19281:83;19290:12;:10;:12::i;:::-;19304:7;19313:50;19352:10;19313:11;:25;19325:12;:10;:12::i;:::-;-1:-1:-1;;;;;19313:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;19313:25:0;;;:34;;;;;;;;;;;:38;:50::i;15791:26::-;;;;:::o;19902:377::-;19954:14;19971:12;:10;:12::i;:::-;-1:-1:-1;;;;;20003:19:0;;;;;;:11;:19;;;;;;19954:29;;-1:-1:-1;20003:19:0;;20002:20;19994:77;;;;-1:-1:-1;;;19994:77:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20083:15;20107:19;20118:7;20107:10;:19::i;:::-;-1:-1:-1;;;;;;;;;20155:15:0;;;;;;:7;:15;;;;;;20082:44;;-1:-1:-1;20155:28:0;;:15;-1:-1:-1;20082:44:0;20155:19;:28::i;:::-;-1:-1:-1;;;;;20137:15:0;;;;;;:7;:15;;;;;:46;20204:7;;:20;;20216:7;20204:11;:20::i;:::-;20194:7;:30;20248:10;;:23;;20263:7;20248:14;:23::i;:::-;20235:10;:36;-1:-1:-1;;;19902:377:0:o;22594:111::-;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22663:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;22663:34:0::1;22693:4;22663:34;::::0;;22594:111::o;20287:436::-;20377:7;20416;;20405;:18;;20397:62;;;;;-1:-1:-1;;;20397:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20475:17;20470:246;;20510:15;20534:19;20545:7;20534:10;:19::i;:::-;-1:-1:-1;20509:44:0;;-1:-1:-1;20568:14:0;;-1:-1:-1;;;;;20568:14:0;20470:246;20617:23;20648:19;20659:7;20648:10;:19::i;:::-;-1:-1:-1;20615:52:0;;-1:-1:-1;20682:22:0;;-1:-1:-1;;;;;20682:22:0;23075:122;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;23161:13:::1;:28:::0;23075:122::o;16204:70::-;;;-1:-1:-1;;;;;16204:70:0;;:::o;16391:38::-;;;:::o;16470:40::-;;;;;;;;;:::o;15983:32::-;;;;:::o;20992:447::-;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;21189:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;21188:21;21180:61;;;::::0;;-1:-1:-1;;;21180:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;-1:-1:-1::0;;;;;21255:16:0;::::1;21274:1;21255:16:::0;;;:7:::1;:16;::::0;;;;;:20;21252:108:::1;;-1:-1:-1::0;;;;;21331:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;21311:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;21292:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;21252:108:::1;-1:-1:-1::0;;;;;21370:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;21370:27:0::1;21393:4;21370:27:::0;;::::1;::::0;;;21408:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;21408:23:0::1;::::0;;::::1;::::0;;20992:447::o;27372:123::-;-1:-1:-1;;;;;27460:27:0;27436:4;27460:27;;;:18;:27;;;;;;;;;27372:123::o;22839:114::-;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;22918:15:::1;:27:::0;;-1:-1:-1;;;;;;22918:27:0::1;-1:-1:-1::0;;;;;22918:27:0;;;::::1;::::0;;;::::1;::::0;;22839:114::o;15878:32::-;;;;:::o;18154:198::-;-1:-1:-1;;;;;18244:20:0;;18220:7;18244:20;;;:11;:20;;;;;;;;18240:49;;;-1:-1:-1;;;;;;18273:16:0;;;;;;:7;:16;;;;;;18266:23;;18240:49;-1:-1:-1;;;;;18327:16:0;;;;;;:7;:16;;;;;;18307:37;;:19;:37::i;5886:148::-;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;5993:1:::1;5977:6:::0;;5956:40:::1;::::0;-1:-1:-1;;;;;5977:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;5956:40:0;5993:1;;5956:40:::1;6024:1;6007:19:::0;;-1:-1:-1;;;;;;6007:19:0::1;::::0;;5886:148::o;16523:59::-;;;;:::o;19679:120::-;-1:-1:-1;;;;;19771:20:0;19747:4;19771:20;;;:11;:20;;;;;;;;;19679:120::o;5672:79::-;5710:7;5737:6;-1:-1:-1;;;;;5737:6:0;5672:79;:::o;23323:122::-;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;23409:13:::1;:28:::0;23323:122::o;17865:87::-;17937:7;17930:14;;;;;;;;-1:-1:-1;;17930:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17904:13;;17930:14;;17937:7;;17930:14;;17937:7;17930:14;;;;;;;;;;;;;;;;;;;;;;;;19402:269;19495:4;19512:129;19521:12;:10;:12::i;:::-;19535:7;19544:96;19583:15;19544:96;;;;;;;;;;;;;;;;;:11;:25;19556:12;:10;:12::i;:::-;-1:-1:-1;;;;;19544:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;19544:25:0;;;:34;;;;;;;;;;;:96;:38;:96::i;6617:293::-;6669:14;;-1:-1:-1;;;;;6669:14:0;6687:10;6669:28;6661:76;;;;-1:-1:-1;;;6661:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6762:9;;6756:3;:15;6748:60;;;;;-1:-1:-1;;;6748:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6853:14;;;6845:6;;6824:44;;-1:-1:-1;;;;;6853:14:0;;;;6845:6;;;;-1:-1:-1;;;;;;;;;;;6824:44:0;;6888:14;;;6879:23;;-1:-1:-1;;;;;;6879:23:0;-1:-1:-1;;;;;6888:14:0;;;6879:23;;;;;;6617:293::o;18360:167::-;18438:4;18455:42;18465:12;:10;:12::i;:::-;18479:9;18490:6;18455:9;:42::i;6294:89::-;6366:9;;6294:89;:::o;23626:171::-;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;23703:21:::1;:32:::0;;;::::1;;;::::0;::::1;-1:-1:-1::0;;23703:32:0;;::::1;::::0;;;::::1;::::0;;;23751:38:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;23626:171:::0;:::o;23209:102::-;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;23285:8:::1;:18:::0;23209:102::o;23456:162::-;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;23550:60:::1;23594:5;23550:25;23562:12;23550:7;;:11;;:25;;;;:::i;:::-;:29:::0;::::1;:60::i;:::-;23535:12;:75:::0;-1:-1:-1;23456:162:0:o;6391:214::-;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;6472:6:::1;::::0;;;6455:23;;-1:-1:-1;;;;;;6455:23:0;;::::1;-1:-1:-1::0;;;;;6472:6:0;::::1;6455:23;::::0;;;6489:19:::1;::::0;;6531:3:::1;:10:::0;::::1;6519:9;:22:::0;6557:40:::1;::::0;6472:6;;-1:-1:-1;;;;;;;;;;;6557:40:0;6472:6;;6557:40:::1;6391:214:::0;:::o;18535:143::-;-1:-1:-1;;;;;18643:18:0;;;18616:7;18643:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;18535:143::o;16170:27::-;;;;:::o;22717:110::-;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;22784:27:0::1;22814:5;22784:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;22784:35:0::1;::::0;;22717:110::o;6042:244::-;5809:12;:10;:12::i;:::-;5799:6;;-1:-1:-1;;;;;5799:6:0;;;:22;;;5791:67;;;;;-1:-1:-1;;;5791:67:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5791:67:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6131:22:0;::::1;6123:73;;;;-1:-1:-1::0;;;6123:73:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6233:6;::::0;;6212:38:::1;::::0;-1:-1:-1;;;;;6212:38:0;;::::1;::::0;6233:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;6212:38:0;::::1;6261:6;:17:::0;;-1:-1:-1;;;;;;6261:17:0::1;-1:-1:-1::0;;;;;6261:17:0;;;::::1;::::0;;;::::1;::::0;;6042:244::o;2342:106::-;2430:10;2342:106;:::o;27503:337::-;-1:-1:-1;;;;;27596:19:0;;27588:68;;;;-1:-1:-1;;;27588:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27675:21:0;;27667:68;;;;-1:-1:-1;;;27667:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;27748:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;27800:32;;;;;;;;;;;;;;;;;27503:337;;;:::o;27848:1813::-;-1:-1:-1;;;;;27970:18:0;;27962:68;;;;-1:-1:-1;;;27962:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;28049:16:0;;28041:64;;;;-1:-1:-1;;;28041:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28133:1;28124:6;:10;28116:64;;;;-1:-1:-1;;;28116:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28202:7;:5;:7::i;:::-;-1:-1:-1;;;;;28194:15:0;:4;-1:-1:-1;;;;;28194:15:0;;;:32;;;;;28219:7;:5;:7::i;:::-;-1:-1:-1;;;;;28213:13:0;:2;-1:-1:-1;;;;;28213:13:0;;;28194:32;28191:125;;;28259:12;;28249:6;:22;;28241:75;;;;-1:-1:-1;;;28241:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28611:28;28642:24;28660:4;28642:9;:24::i;:::-;28611:55;;28714:12;;28690:20;:36;28687:112;;-1:-1:-1;28775:12:0;;28687:112;28870:29;;28846:53;;;;;;;28928;;-1:-1:-1;28965:16:0;;;;28964:17;28928:53;:91;;;;;29006:13;-1:-1:-1;;;;;28998:21:0;:4;-1:-1:-1;;;;;28998:21:0;;;28928:91;:129;;;;-1:-1:-1;29036:21:0;;;;;;;28928:129;28910:318;;;29107:29;;29084:52;;29180:36;29195:20;29180:14;:36::i;:::-;-1:-1:-1;;;;;29436:24:0;;29309:12;29436:24;;;:18;:24;;;;;;29324:4;;29436:24;;;:50;;-1:-1:-1;;;;;;29464:22:0;;;;;;:18;:22;;;;;;;;29436:50;29433:96;;;-1:-1:-1;29512:5:0;29433:96;29615:38;29630:4;29635:2;29638:6;29645:7;29615:14;:38::i;:::-;27848:1813;;;;;;:::o;1116:192::-;1202:7;1238:12;1230:6;;;;1222:29;;;;-1:-1:-1;;;1222:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1274:5:0;;;1116:192::o;25260:163::-;25301:7;25322:15;25339;25358:19;:17;:19::i;:::-;25321:56;;-1:-1:-1;25321:56:0;-1:-1:-1;25395:20:0;25321:56;;25395:11;:20::i;:::-;25388:27;;;;25260:163;:::o;1574:132::-;1632:7;1659:39;1663:1;1666;1659:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1652:46;1574:132;-1:-1:-1;;;1574:132:0:o;783:181::-;841:7;873:5;;;897:6;;;;889:46;;;;;-1:-1:-1;;;889:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;24058:419;24117:7;24126;24135;24144;24153;24162;24183:23;24208:12;24222:18;24244:20;24256:7;24244:11;:20::i;:::-;24182:82;;;;;;24276:15;24293:23;24318:12;24334:50;24346:7;24355:4;24361:10;24373;:8;:10::i;:::-;24334:11;:50::i;:::-;24275:109;;;;-1:-1:-1;24275:109:0;;-1:-1:-1;24435:15:0;;-1:-1:-1;24452:4:0;;-1:-1:-1;24458:10:0;;-1:-1:-1;24058:419:0;;-1:-1:-1;;;;;24058:419:0:o;972:136::-;1030:7;1057:43;1061:1;1064;1057:43;;;;;;;;;;;;;;;;;:3;:43::i;1316:250::-;1374:7;1398:6;1394:47;;-1:-1:-1;1428:1:0;1421:8;;1394:47;1465:5;;;1469:1;1465;:5;:1;1489:5;;;;;:10;1481:56;;;;-1:-1:-1;;;1481:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29669:985;16967:16;:23;;-1:-1:-1;;16967:23:0;16986:4;16967:23;;;:16;29820:27:::1;:20:::0;29845:1:::1;29820:24;:27::i;:::-;29805:42:::0;-1:-1:-1;29858:17:0::1;29878:30;:20:::0;29805:42;29878:24:::1;:30::i;:::-;29858:50:::0;-1:-1:-1;30211:21:0::1;30277:22;30294:4:::0;30277:16:::1;:22::i;:::-;30430:18;30451:41;:21;30477:14:::0;30451:25:::1;:41::i;:::-;30430:62;;30542:35;30555:9;30566:10;30542:12;:35::i;:::-;30603:43;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;-1:-1:-1::0;;17013:16:0;:24;;-1:-1:-1;;17013:24:0;;;-1:-1:-1;;;29669:985:0:o;31853:1375::-;31964:7;31960:40;;31986:14;:12;:14::i;:::-;32072:20;32095:34;32125:3;32095:25;32106:13;;32095:6;:10;;:25;;;;:::i;:34::-;32072:57;;32140:15;32158:29;32183:3;32158:20;32169:8;;32158:6;:10;;:20;;;;:::i;:29::-;-1:-1:-1;;;;;32212:19:0;;;;;;:11;:19;;;;;;32140:47;;-1:-1:-1;32212:19:0;;:46;;;;-1:-1:-1;;;;;;32236:22:0;;;;;;:11;:22;;;;;;;;32235:23;32212:46;32208:762;;;32275:81;32297:6;32305:9;32317:37;32346:7;32317:24;:6;32328:12;32317:10;:24::i;:::-;:28;;:37::i;:::-;32275:21;:81::i;:::-;32208:762;;;-1:-1:-1;;;;;32379:19:0;;;;;;:11;:19;;;;;;;;32378:20;:46;;;;-1:-1:-1;;;;;;32402:22:0;;;;;;:11;:22;;;;;;;;32378:46;32374:596;;;32441:79;32461:6;32469:9;32481:37;32510:7;32481:24;:6;32492:12;32481:10;:24::i;:37::-;32441:19;:79::i;32374:596::-;-1:-1:-1;;;;;32543:19:0;;;;;;:11;:19;;;;;;;;32542:20;:47;;;;-1:-1:-1;;;;;;32567:22:0;;;;;;:11;:22;;;;;;;;32566:23;32542:47;32538:432;;;32606:77;32624:6;32632:9;32644:37;32673:7;32644:24;:6;32655:12;32644:10;:24::i;:37::-;32606:17;:77::i;32538:432::-;-1:-1:-1;;;;;32705:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;32728:22:0;;;;;;:11;:22;;;;;;;;32705:45;32701:269;;;32767:81;32789:6;32797:9;32809:37;32838:7;32809:24;:6;32820:12;32809:10;:24::i;:37::-;32767:21;:81::i;32701:269::-;32881:77;32899:6;32907:9;32919:37;32948:7;32919:24;:6;32930:12;32919:10;:24::i;32881:77::-;33071:15;;33045:56;;33063:6;;-1:-1:-1;;;;;33071:15:0;33088:12;33045:17;:56::i;:::-;33138:10;;33112:46;;33130:6;;-1:-1:-1;;;;;33138:10:0;33150:7;33112:17;:46::i;:::-;33183:7;33179:41;;33205:15;:13;:15::i;25431:561::-;25528:7;;25564;;25481;;;;;25588:289;25612:9;:16;25608:20;;25588:289;;;25678:7;25654;:21;25662:9;25672:1;25662:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25662:12:0;25654:21;;;;;;;;;;;;;:31;;:66;;;25713:7;25689;:21;25697:9;25707:1;25697:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25697:12:0;25689:21;;;;;;;;;;;;;:31;25654:66;25650:97;;;25730:7;;25739;;25722:25;;;;;;;;;25650:97;25772:34;25784:7;:21;25792:9;25802:1;25792:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25792:12:0;25784:21;;;;;;;;;;;;;25772:7;;:11;:34::i;:::-;25762:44;;25831:34;25843:7;:21;25851:9;25861:1;25851:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25851:12:0;25843:21;;;;;;;;;;;;;25831:7;;:11;:34::i;:::-;25821:44;-1:-1:-1;25630:3:0;;25588:289;;;-1:-1:-1;25913:7:0;;25901;;:20;;:11;:20::i;:::-;25891:7;:30;25887:61;;;25931:7;;25940;;25923:25;;;;;;;;25887:61;25967:7;;-1:-1:-1;25976:7:0;-1:-1:-1;25431:561:0;;;:::o;1714:278::-;1800:7;1835:12;1828:5;1820:28;;;;-1:-1:-1;;;1820:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1859:9;1875:1;1871;:5;;;;;;;1714:278;-1:-1:-1;;;;;1714:278:0:o;24485:330::-;24545:7;24554;24563;24583:12;24598:24;24614:7;24598:15;:24::i;:::-;24583:39;;24633:18;24654:30;24676:7;24654:21;:30::i;:::-;24633:51;-1:-1:-1;24695:23:0;24721:33;24633:51;24721:17;:7;24733:4;24721:11;:17::i;:33::-;24695:59;24790:4;;-1:-1:-1;24796:10:0;;-1:-1:-1;24485:330:0;;-1:-1:-1;;;24485:330:0:o;24823:429::-;24938:7;;;;24994:24;:7;25006:11;24994;:24::i;:::-;24976:42;-1:-1:-1;25029:12:0;25044:21;:4;25053:11;25044:8;:21::i;:::-;25029:36;-1:-1:-1;25076:18:0;25097:27;:10;25112:11;25097:14;:27::i;:::-;25076:48;-1:-1:-1;25135:23:0;25161:33;25076:48;25161:17;:7;25173:4;25161:11;:17::i;:33::-;25213:7;;;;-1:-1:-1;25239:4:0;;-1:-1:-1;24823:429:0;;-1:-1:-1;;;;;;;24823:429:0:o;30662:589::-;30812:16;;;30826:1;30812:16;;;30788:21;30812:16;;;;;30788:21;30812:16;;;;;;;;;;-1:-1:-1;30812:16:0;30788:40;;30857:4;30839;30844:1;30839:7;;;;;;;;;;;;;:23;-1:-1:-1;;;;;30839:23:0;;;-1:-1:-1;;;;;30839:23:0;;;;;30883:15;-1:-1:-1;;;;;30883:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;30883:22:0;30873:7;;:4;;30878:1;;30873:7;;;;;;;;;;;:32;-1:-1:-1;;;;;30873:32:0;;;-1:-1:-1;;;;;30873:32:0;;;;;30918:62;30935:4;30950:15;30968:11;30918:8;:62::i;:::-;31019:15;-1:-1:-1;;;;;31019:66:0;;31100:11;31126:1;31170:4;31197;31217:15;31019:224;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31019:224:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31259:513;31407:62;31424:4;31439:15;31457:11;31407:8;:62::i;:::-;31512:15;-1:-1:-1;;;;;31512:31:0;;31551:9;31584:4;31604:11;31630:1;31673;31716:7;:5;:7::i;:::-;31738:15;31512:252;;;;;;;;;;;;;-1:-1:-1;;;;;31512:252:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;31512:252:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;31259:513:0:o;26711:426::-;26757:7;;:12;:34;;;;-1:-1:-1;26773:13:0;;:18;26757:34;:56;;;;-1:-1:-1;26795:13:0;;:18;26757:56;:73;;;;-1:-1:-1;26817:8:0;;:13;26757:73;26754:85;;;26832:7;;26754:85;26877:7;;;26859:15;:25;26919:13;;;26895:21;:37;26967:13;;;26943:21;:37;27010:8;;;26991:16;:27;-1:-1:-1;27039:11:0;;;;27061:17;;;;27089;;;27117:12;26711:426;:::o;34340:566::-;34443:15;34460:23;34485:12;34499:23;34524:12;34538:18;34560:19;34571:7;34560:10;:19::i;:::-;-1:-1:-1;;;;;34608:15:0;;;;;;:7;:15;;;;;;34442:137;;-1:-1:-1;34442:137:0;;-1:-1:-1;34442:137:0;;-1:-1:-1;34442:137:0;-1:-1:-1;34442:137:0;-1:-1:-1;34442:137:0;-1:-1:-1;34608:28:0;;34628:7;34608:19;:28::i;:::-;-1:-1:-1;;;;;34590:15:0;;;;;;:7;:15;;;;;;;;:46;;;;34665:7;:15;;;;:28;;34685:7;34665:19;:28::i;:::-;-1:-1:-1;;;;;34647:15:0;;;;;;;:7;:15;;;;;;:46;;;;34725:18;;;;;;;:39;;34748:15;34725:22;:39::i;:::-;-1:-1:-1;;;;;34704:18:0;;;;;;:7;:18;;;;;:60;34778:26;34793:10;34778:14;:26::i;:::-;34815:23;34827:4;34833;34815:11;:23::i;:::-;34871:9;-1:-1:-1;;;;;34854:44:0;34863:6;-1:-1:-1;;;;;34854:44:0;;34882:15;34854:44;;;;;;;;;;;;;;;;;;34340:566;;;;;;;;;:::o;33746:586::-;33847:15;33864:23;33889:12;33903:23;33928:12;33942:18;33964:19;33975:7;33964:10;:19::i;:::-;-1:-1:-1;;;;;34012:15:0;;;;;;:7;:15;;;;;;33846:137;;-1:-1:-1;33846:137:0;;-1:-1:-1;33846:137:0;;-1:-1:-1;33846:137:0;-1:-1:-1;33846:137:0;-1:-1:-1;33846:137:0;-1:-1:-1;34012:28:0;;33846:137;34012:19;:28::i;:::-;-1:-1:-1;;;;;33994:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;34072:18;;;;;:7;:18;;;;;:39;;34095:15;34072:22;:39::i;:::-;-1:-1:-1;;;;;34051:18:0;;;;;;:7;:18;;;;;;;;:60;;;;34143:7;:18;;;;:39;;34166:15;34143:22;:39::i;33236:502::-;33335:15;33352:23;33377:12;33391:23;33416:12;33430:18;33452:19;33463:7;33452:10;:19::i;:::-;-1:-1:-1;;;;;33500:15:0;;;;;;:7;:15;;;;;;33334:137;;-1:-1:-1;33334:137:0;;-1:-1:-1;33334:137:0;;-1:-1:-1;33334:137:0;-1:-1:-1;33334:137:0;-1:-1:-1;33334:137:0;-1:-1:-1;33500:28:0;;33334:137;33500:19;:28::i;21936:642::-;22039:15;22056:23;22081:12;22095:23;22120:12;22134:18;22156:19;22167:7;22156:10;:19::i;:::-;-1:-1:-1;;;;;22204:15:0;;;;;;:7;:15;;;;;;22038:137;;-1:-1:-1;22038:137:0;;-1:-1:-1;22038:137:0;;-1:-1:-1;22038:137:0;-1:-1:-1;22038:137:0;-1:-1:-1;22038:137:0;-1:-1:-1;22204:28:0;;22224:7;22204:19;:28::i;:::-;-1:-1:-1;;;;;22186:15:0;;;;;;:7;:15;;;;;;;;:46;;;;22261:7;:15;;;;:28;;22281:7;22261:19;:28::i;27149:211::-;27203:15;;27193:7;:25;27245:21;;27229:13;:37;27293:21;;27277:13;:37;27336:16;;27325:8;:27;27149:211::o;26371:154::-;26435:7;26462:55;26501:5;26462:20;26474:7;;26462;:11;;:20;;;;:::i;26533:166::-;26603:7;26630:61;26675:5;26630:26;26642:13;;26630:7;:11;;:26;;;;:::i;26004:355::-;26067:19;26090:10;:8;:10::i;:::-;26067:33;-1:-1:-1;26111:18:0;26132:27;:10;26067:33;26132:14;:27::i;:::-;26211:4;26195:22;;;;:7;:22;;;;;;26111:48;;-1:-1:-1;26195:38:0;;26111:48;26195:26;:38::i;:::-;26186:4;26170:22;;;;:7;:22;;;;;;;;:63;;;;26247:11;:26;;;;;;26244:107;;;26329:4;26313:22;;;;:7;:22;;;;;;:38;;26340:10;26313:26;:38::i;:::-;26304:4;26288:22;;;;:7;:22;;;;;:63;26244:107;26004:355;;;:::o;23903:147::-;23981:7;;:17;;23993:4;23981:11;:17::i;:::-;23971:7;:27;24022:10;;:20;;24037:4;24022:14;:20::i;:::-;24009:10;:33;-1:-1:-1;;23903:147:0:o

Swarm Source

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