Contract 0x7b1AC460c155ABb6b1D02b543952426A6aaF6b72 4

 

Contract Overview

Balance:
3.161627767146150241 BNB

BNB Value:
$1,478.06 (@ $467.50/BNB)
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xa7c80e96d188e46aa75ad4a39193befabdb33824979649b019c1321540bb7ac4Create Auction117927262021-10-15 11:38:101 day 4 hrs ago0xcbb3506a9359410b58b30db7743d5e3a672092be IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00129665
0x5654bcd364e072bcc1eee83ff156f674058bfc1374f8abee25ed3546c411b5c5Create Auction117649732021-10-14 12:27:112 days 3 hrs ago0xcbb3506a9359410b58b30db7743d5e3a672092be IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00129665
0x7bca2cfa6e914c78ef2c85dcc7353ed0d94925878502e0ef768acdf7dc3fe6daCreate Auction117648182021-10-14 12:19:262 days 3 hrs ago0xcbb3506a9359410b58b30db7743d5e3a672092be IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00133865
0x04ce6d52d2c8b9650eec871129a3e49ce523d91db27d96ab3168494b3414c8c6Create Auction117323312021-10-13 9:00:323 days 7 hrs ago0x1cea85b1148bead4d40316bc4d5270f70425b79c IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00144296
0x149f2a01cf1a3d1d0104be4a6dafdf6820e7897aac11ff152e7e21d8fa098987Create Auction117095742021-10-12 13:42:094 days 2 hrs ago0xc16fcf982d2a3623ffb2704f77453d6f9d438c0e IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.0001397
0x6aef41fa9d70854c57c538888b0aaafd25556c21c26b6416b7f5acdabd3e60d8Create Auction117083572021-10-12 12:39:354 days 3 hrs ago0xc16fcf982d2a3623ffb2704f77453d6f9d438c0e IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.0001397
0x50bfd133906a574377d5c56bbe448a2c1205e9ec0fe3ab56c136f47c4a9af457Create Auction116877892021-10-11 19:28:004 days 20 hrs ago0xcbb3506a9359410b58b30db7743d5e3a672092be IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00129665
0x15edb0158681d782c29ccf14e8640f9daa61fa5394a13143acc6dc8913fa66acCreate Auction116876752021-10-11 19:22:184 days 20 hrs ago0xcbb3506a9359410b58b30db7743d5e3a672092be IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00129665
0x79a054c0f6c37e69374747a8ce65a79e329573cd6569de7f480ec78dcad163c3Create Auction116875262021-10-11 19:14:504 days 20 hrs ago0xcbb3506a9359410b58b30db7743d5e3a672092be IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00129665
0xeffb32320068dc2607843d28d1448d116012cf38b2e65de8be21dd9e41deca8cBid116827922021-10-11 14:38:465 days 1 hr ago0x1cea85b1148bead4d40316bc4d5270f70425b79c IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720.0000001 BNB0.00067234
0xe59912a11a5f563aae0e78c429b7df6f6fbdff732a8c4341dc92d67c3662d45fCreate Auction116827852021-10-11 14:38:255 days 1 hr ago0x1cea85b1148bead4d40316bc4d5270f70425b79c IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00133847
0x694189b8107f099d5cccc30ed587c285cf0f0a564cf71f4c4e6e6ad6b9ff7a8aCancel Auction116826682021-10-11 14:32:335 days 1 hr ago0x1cea85b1148bead4d40316bc4d5270f70425b79c IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00048289
0x95d0ba65c49e410de296abefd5be4f88c426793004ea31436f85881fb1c5d5f3Create Auction116820522021-10-11 14:01:455 days 1 hr ago0x1cea85b1148bead4d40316bc4d5270f70425b79c IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00133859
0x349445fb9ce58c971fb1bff281db6ffd5cd86142e297f70423d736b0837677dePurchase Tokens116813962021-10-11 13:28:575 days 2 hrs ago0x1cea85b1148bead4d40316bc4d5270f70425b79c IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720.11 BNB0.00025497
0xb556e0190a095af7b4f1a12fad7eadbbe4e83405dc3bcaef6bcd505182343980Purchase Tokens116813512021-10-11 13:26:425 days 2 hrs ago0x1cea85b1148bead4d40316bc4d5270f70425b79c IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720.12 BNB0.00025497
0x56514cba16362ff6dcb5774c703aeec14b43c74ff995d7a1d556aed23eb717a9Purchase Tokens116812992021-10-11 13:24:065 days 2 hrs ago0x1cea85b1148bead4d40316bc4d5270f70425b79c IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720.11 BNB0.00025497
0xcd721537a5309292456da0d4e6b1e49ea08cb1daf472bea7e5f95a591b632393Bid116393842021-10-10 2:20:206 days 13 hrs ago0x588ddba761c28e055dcb5fc15564a289df721783 IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720.0003 BNB0.000136645
0x655a49ff14263aa292592cb671792a53a5e35d0881931873dadf6fcd5d957786Create Auction116393682021-10-10 2:19:326 days 13 hrs ago0x588ddba761c28e055dcb5fc15564a289df721783 IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00122159
0x2afcc816b860812476316b6f7132d2b7572e2d410a9111c5c4e568342ea36e28Create Auction116229122021-10-09 12:35:447 days 3 hrs ago0x28f9d6ecd33d9317016f07e9c10c27813ed15bc3 IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00122159
0x9256b0f046363c80a1593cf2dfad2fcec2cd4667fd048e98a8c2149f338415cdCreate Auction116228742021-10-09 12:33:507 days 3 hrs ago0x28f9d6ecd33d9317016f07e9c10c27813ed15bc3 IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00133859
0x95f49e9652595d57bfa092fcb0e8cf04ba4dca981f1d14cc671a5308fd88a0a5Purchase Tokens116198112021-10-09 10:00:067 days 6 hrs ago0x015a1e870598fb57379bc4038dda2d55e3f47cb8 IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720.3 BNB0.00032997
0x0ae6c0d93daa8139ebb2401328875c981e7887386465547945f405ab9a0e36ffBid116090732021-10-09 1:01:537 days 14 hrs ago0xa7a9936585599be77b9aa0223c4f9057a68f6d9e IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720.00000000001 BNB0.00014223
0x2b5a353144ffe3d7b388fbc1f272863fa04c2f846893fc0918f9ee7dcbb9db01Bid116090532021-10-09 1:00:537 days 14 hrs ago0xa7a9936585599be77b9aa0223c4f9057a68f6d9e IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720.00000000001 BNB0.000820335
0x95102b108a4981ac7b0eb190c68093de73bedb130e7cbd613fd067d8b0610282Create Auction115511392021-10-07 0:38:249 days 15 hrs ago0xd784f645f1a9ac90c0170cdde96ab8a013ff5bb1 IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00122153
0x897108b72090f4cd6f65d815d486f1729ecf2462e2a10718b52cb641572bcb10Create Auction115148152021-10-05 18:19:4610 days 21 hrs ago0xcbb3506a9359410b58b30db7743d5e3a672092be IN  0x7b1ac460c155abb6b1d02b543952426a6aaf6b720 BNB0.00129659
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xeffb32320068dc2607843d28d1448d116012cf38b2e65de8be21dd9e41deca8c116827922021-10-11 14:38:465 days 1 hr ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x1cea85b1148bead4d40316bc4d5270f70425b79c0.000000095000000001 BNB
0xeffb32320068dc2607843d28d1448d116012cf38b2e65de8be21dd9e41deca8c116827922021-10-11 14:38:465 days 1 hr ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x027d865ef0b4d1372affe941272f47e013cac6690.000000005 BNB
0xc14dc3ce86af92487789aaee32bc870f0cbb3a627e0b20a1fc366fd65e2733bf111885362021-09-24 8:18:3122 days 7 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720xc98834f2de2eb9c97ffbdf2e4952535d2d4bc1a121 wei
0xb3dfe534ed6a54013802cf9dac9d76cb110d1f862eb8b9f7524d41ae316d81a9111884972021-09-24 8:16:3422 days 7 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x47feb8eee1119e13f71fc92bd3311ead9c2e102d0.000000000000095001 BNB
0xb3dfe534ed6a54013802cf9dac9d76cb110d1f862eb8b9f7524d41ae316d81a9111884972021-09-24 8:16:3422 days 7 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x027d865ef0b4d1372affe941272f47e013cac6690.000000000000005 BNB
0xde2fae2bbe78c37b00208f6c1924547074be81494b7070b2f5ccc28554e9a27e110869372021-09-20 19:07:3325 days 20 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720xb028220d1e4659d3f7fa154fb05af1c4b2ada79d0.0095095 BNB
0xde2fae2bbe78c37b00208f6c1924547074be81494b7070b2f5ccc28554e9a27e110869372021-09-20 19:07:3325 days 20 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x027d865ef0b4d1372affe941272f47e013cac6690.0005005 BNB
0xe1823b00a32f73569862d01676acfb46c832f37b4a8e11fbf98fa2c50ababc76110859422021-09-20 18:17:4725 days 21 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720xb028220d1e4659d3f7fa154fb05af1c4b2ada79d0.0095095 BNB
0xe1823b00a32f73569862d01676acfb46c832f37b4a8e11fbf98fa2c50ababc76110859422021-09-20 18:17:4725 days 21 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x027d865ef0b4d1372affe941272f47e013cac6690.0005005 BNB
0x9b13251307b6d141e10ec9f49c78dc52e2976a3097cecde31649a746e30be271110857692021-09-20 18:09:0825 days 21 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720xb028220d1e4659d3f7fa154fb05af1c4b2ada79d0.0009595 BNB
0x9b13251307b6d141e10ec9f49c78dc52e2976a3097cecde31649a746e30be271110857692021-09-20 18:09:0825 days 21 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x027d865ef0b4d1372affe941272f47e013cac6690.0000505 BNB
0xb8e48e30bc103e58253958ca2a7251730bcb8f64c460f9d4f994c10d8baab03a109870402021-09-17 7:30:2129 days 8 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x2d727249470069aea8ed8260793148c3ebbd356e0.00101 BNB
0xc7790f17f7ca8d8f55ed6f018af35cf8c684b50379592357e015322ae84adea499240342021-08-11 1:05:4366 days 14 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720xd2c63c524fac3ddfe2cd0e9627640682b64fe24d0.1045095 BNB
0xc7790f17f7ca8d8f55ed6f018af35cf8c684b50379592357e015322ae84adea499240342021-08-11 1:05:4366 days 14 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x027d865ef0b4d1372affe941272f47e013cac6690.0055005 BNB
0xfa81203ef54a1b967aa1e8cbaf404cfba69dedabd5d43b688211e2e7f1859a6799240282021-08-11 1:05:2566 days 14 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720xe9457548fd24b80919565c70793aee6fe13685280.0950095 BNB
0xfa81203ef54a1b967aa1e8cbaf404cfba69dedabd5d43b688211e2e7f1859a6799240282021-08-11 1:05:2566 days 14 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x027d865ef0b4d1372affe941272f47e013cac6690.0050005 BNB
0xe0e7ac09d42e60b68f2d768910bc62e3492c45343cf6131ca624ff971387f83097961632021-08-06 11:47:1271 days 4 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x898d6666a4be052f54fd4c58f9ca557d33507b560.00095 BNB
0xe0e7ac09d42e60b68f2d768910bc62e3492c45343cf6131ca624ff971387f83097961632021-08-06 11:47:1271 days 4 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x027d865ef0b4d1372affe941272f47e013cac6690.00005 BNB
0x1bfd5dfdeda38636e81d65d118eed3ef7064dc403a3536617f0c61d63f3bbee097866072021-08-06 3:32:3971 days 12 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720xc98834f2de2eb9c97ffbdf2e4952535d2d4bc1a10.000095000000000001 BNB
0x1bfd5dfdeda38636e81d65d118eed3ef7064dc403a3536617f0c61d63f3bbee097866072021-08-06 3:32:3971 days 12 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x027d865ef0b4d1372affe941272f47e013cac6690.000005 BNB
0x8b25bc448837d63e369d6b25d7e910f9bd5f83557b26626247413c8cafe8a9ea97768222021-08-05 19:12:4471 days 20 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720xc98834f2de2eb9c97ffbdf2e4952535d2d4bc1a10.0009595 BNB
0x8b25bc448837d63e369d6b25d7e910f9bd5f83557b26626247413c8cafe8a9ea97768222021-08-05 19:12:4471 days 20 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x027d865ef0b4d1372affe941272f47e013cac6690.0000505 BNB
0x371d1478eb9b20d803d8be4a7ad21625c7647d40b265c05a31db71afb181ba8593445032021-07-21 7:15:2887 days 8 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b72OpenBiSea: Deployer29 BNB
0xb560c6e5b8e3848d5b3475dad9930a825ac5e8fc382abd8190f2b07b9ef73de582865172021-06-14 9:42:29124 days 6 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x8d9c1e2d55eefcfc194d880cfbfbcda220a4de940.09595 BNB
0xb560c6e5b8e3848d5b3475dad9930a825ac5e8fc382abd8190f2b07b9ef73de582865172021-06-14 9:42:29124 days 6 hrs ago 0x7b1ac460c155abb6b1d02b543952426a6aaf6b720x027d865ef0b4d1372affe941272f47e013cac6690.00505 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OpenBiSea

Compiler Version
v0.6.8+commit.0bbfe453

Optimization Enabled:
Yes with 200 runs

Other Settings:
byzantium EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

File 1 of 16 : Context.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
contract Context {
    constructor () internal { }
    function _msgSender() internal view virtual returns (address payable) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode
        return msg.data;
    }
}

File 2 of 16 : OpenBiSea.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;

import "./access/PoolRoles.sol";
import "./interface/IPoolRegistry.sol";
import "./interface/IAssetsManageTeam.sol";
import "./interface/IERC20.sol";
import "./access/PoolRoles.sol";
import "./math/SafeMath.sol";
//import "./interface/IERC721.sol";
//import "./interface/IERC1155.sol";
import "./utils/EnumerableUintSet.sol";
import "./interface/IOpenBiSeaAuction.sol";
import "./access/TeamRole.sol";

//import "./interface/IERC721Receiver.sol";
//import "./interface/IERC1155Receiver.sol";

contract OpenBiSea is PoolRoles,TeamRole  {
    using SafeMath for uint256;
    using EnumerableUintSet for EnumerableUintSet.UintSet;

    event Deposit(address indexed from, uint256 value);
    event DebugWithdrawLPartner(address sender,address owner, uint256 getDepositLengthSender, uint256 getDepositLengthOwner,uint256 totalAmountReturn,uint256 indexesDepositLength,uint256 balanceThis);
    string private _name;
    bool private _isPublicPool = true;
    address private _auction;
    address private _busdContract;
    address private _token;
    uint256 private _lockPeriod;
    uint256 private _rate;
    uint256 private _poolValueUSD = 0;
    uint256 private _poolValue = 0;
    string private _proofOfValue = "nothing";
    uint256 private _depositFixedFee;
    uint256 private _referralDepositFee;
    uint256 private _auctionCreationFeeMultiplier;
    uint256 private _auctionContractFeeMultiplier;
    uint256 private _totalIncome;
    uint256 private _premiumFee;
    struct DepositToPool {
        uint256 amount;          // Amount of funds deposited
        uint256 time;            // Deposit time
        uint256 lock_period;     // Asset lock time
        bool refund_authorize;   // Are assets unlocked for withdrawal
        uint256 amountWithdrawal;
        address investedToken;
    }
    mapping(address => DepositToPool[]) private _deposites;
    mapping(address => address) private _referrals;

//    mapping(address => uint256) private _consumersRevenueAmount;

    IAssetsManageTeam private _assetsManageTeam;
    IPoolRegistry private _poolRegistry;
    modifier onlyAdmin(address sender) {
        if(hasRole(GENERAL_PARTNER_ROLE, sender) || hasRole(SUPER_ADMIN_ROLE, sender) || _poolRegistry.isTeam(sender)) {
            _;
        } else {
            revert("The sender does not have permission");
        }
    }
    address private _tokenForTokensale;
    uint256 private _initialBalance;
    constructor (
        address tokenForTokensale,
//        string memory name,
//        uint256 locked,
//        uint256 depositFixedFee,
//        uint256 referralDepositFee,
//        uint256 auctionCreationFeeMultiplier,
//        uint256 auctionContractFeeMultiplier,
        address superAdmin,
        address gPartner,
        address lPartner,
        address team,
        address poolRegistry,
        address returnInvestmentLpartner,
        IAssetsManageTeam assetsManageTeam,
        uint256 initialBalance,
        address busdContract
    ) public {
//        _name = name;
        _tokenForTokensale = tokenForTokensale;
//        _lockPeriod = locked;
//        _depositFixedFee = depositFixedFee;
//        _referralDepositFee = referralDepositFee;
//        _auctionCreationFeeMultiplier = auctionCreationFeeMultiplier;
//        _auctionContractFeeMultiplier = auctionContractFeeMultiplier;
        _assetsManageTeam = assetsManageTeam;
        _poolRegistry = IPoolRegistry(poolRegistry);
        _initialBalance = initialBalance;
        _busdContract = busdContract;
        PoolRoles.addAdmin(SUPER_ADMIN_ROLE, msg.sender);
        PoolRoles.addAdmin(SUPER_ADMIN_ROLE, superAdmin);
        PoolRoles.addAdmin(SUPER_ADMIN_ROLE, poolRegistry);
        PoolRoles.finalize();
        grantRole(GENERAL_PARTNER_ROLE, gPartner);
        grantRole(LIMITED_PARTNER_ROLE, lPartner);
        grantRole(STARTUP_TEAM_ROLE, team);
        grantRole(POOL_REGISTRY, poolRegistry);
        grantRole(RETURN_INVESTMENT_LPARTNER, returnInvestmentLpartner);
    }

    function _updatePool(
        string calldata name,
        bool isPublicPool,
        address token,
        uint256 locked,
        uint256 depositFixedFee,
        uint256 referralDepositFee,
        uint256 auctionCreationFeeMultiplier,
        uint256 auctionContractFeeMultiplier
    ) external onlyPoolRegistry returns (bool) {
        _name = name;
        _isPublicPool = isPublicPool;
        _lockPeriod = locked;
        _depositFixedFee = depositFixedFee;
        _referralDepositFee = referralDepositFee;
        _auctionCreationFeeMultiplier = auctionCreationFeeMultiplier;
        _auctionContractFeeMultiplier = auctionContractFeeMultiplier;
        return true;
    }

    function getInfoPool() public view returns( string memory name,bool isPublicPool,address tokenForTokensale,uint256 locked,uint256 initialBalance)
    {
        return ( _name,_isPublicPool,_tokenForTokensale,_lockPeriod, _initialBalance);
    }
    receive() external payable {}
    function getDeposit(address owner, uint256 index) public view returns(uint256 amount, uint256 time, uint256 lock_period, bool refund_authorize, uint256 amountWithdrawal, address investedToken) {
        return ( _deposites[owner][index].amount, _deposites[owner][index].time,_deposites[owner][index].lock_period, _deposites[owner][index].refund_authorize, _deposites[owner][index].amountWithdrawal, _deposites[owner][index].investedToken);
    }
    function getDepositLength(address owner) public view returns(uint256) {
        return (_deposites[owner].length);
    }
    function getReferral(address lPartner) public view returns (address) {
        return _referrals[lPartner];
    }
    function getInfoPoolFees() public view returns(uint256 rate, uint256 depositFixedFee, uint256 referralDepositFee, uint256 auctionCreationFeeMultiplier, uint256 auctionContractFeeMultiplier, uint256 totalIncome, uint256 premiumFee)
    {
        return (_rate, _depositFixedFee, _referralDepositFee, _auctionCreationFeeMultiplier, _auctionContractFeeMultiplier, _totalIncome, _premiumFee);
    }
    function _approveWithdrawLpartner(address lPartner, uint256 index, uint256 amount, address investedToken) external onlyReturnsInvestmentLpartner returns (bool) {
        _deposites[lPartner][index].refund_authorize = true;
        _deposites[lPartner][index].amountWithdrawal = amount;
        _deposites[lPartner][index].investedToken = investedToken;
        return true;
    }
    function _depositPoolRegistry(address sender, uint256 amount, uint256 feesMultipier) external onlyPoolRegistry returns (bool) {
        require(hasRole(LIMITED_PARTNER_ROLE, sender), "InvestmentPool: the sender does not have permission");
        return _deposit(sender, amount, feesMultipier);
    }
    function _withdrawTeam (address payable sender, uint256 amount) external onlyPoolRegistry returns (bool) {
        require(hasRole(STARTUP_TEAM_ROLE, sender), "InvestmentPool: the sender does not have permission");
        _assetsManageTeam._withdraw(address(this), sender, amount);
        sender.transfer(amount);
        return true;
    }
    function _withdrawTokensToStartup(address payable sender,address token, uint256 amount) external onlyPoolRegistry returns (bool) {
        require(hasRole(STARTUP_TEAM_ROLE, sender), "InvestmentPool: the sender does not have permission");
        _assetsManageTeam._withdrawTokensToStartup(address(this),token, sender, amount);
        IERC20(token).transfer(sender, amount);
        return true;
    }
    function _returnsInTokensFromTeam(address payable sender,address token, uint256 amount) external onlyPoolRegistry returns (bool) {
        require(hasRole(STARTUP_TEAM_ROLE, sender), "InvestmentPool: the sender does not have permission");
        IERC20(token).transferFrom(sender, address(this), amount);
        return true;
    }
    function _withdrawLPartner(address payable sender) external onlyPoolRegistry returns (bool, uint256, address) {
        require(hasRole(LIMITED_PARTNER_ROLE, sender), "InvestmentPool: the sender does not have permission");
        uint256 totalAmountReturn = 0;
        address token = address(0);
        uint256 lengthSender = getDepositLength(sender);
        bool result = false;
        for (uint256 i = 0; i < lengthSender; i++) {
            DepositToPool storage deposit = _deposites[sender][i];
            if (deposit.refund_authorize) {
                token = deposit.investedToken;
                if (deposit.amountWithdrawal > 0) {
                    if (token == address(0)) {
                        sender.transfer(deposit.amountWithdrawal);
                        totalAmountReturn = totalAmountReturn.add(deposit.amountWithdrawal);
                    } else {
                        IERC20(token).transfer(sender, deposit.amountWithdrawal);
                    }
                }
                _deposites[sender][i].refund_authorize = false;
                _deposites[sender][i].amountWithdrawal = 0;
            }
        }
        return (result,totalAmountReturn,token);
    }
    function _withdrawSuperAdmin(address payable sender,address token, uint256 amount) external onlyPoolRegistry returns (bool) {
        require(hasRole(SUPER_ADMIN_ROLE, sender), "InvestmentPool: the sender does not have permission");
        if (amount > 0) {
            if (token == address(0)) {
                sender.transfer(amount);
                return true;
            } else {
                IERC20(token).transfer(sender, amount);
                return true;
            }
        }
        return false;
    }
    function _activateDepositToPool() external onlyPoolRegistry returns (bool) {
        require(!_isPublicPool, "InvestmentPool: the pool is already activated");
        _isPublicPool = true;
        return true;
    }
    function _disactivateDepositToPool() external onlyPoolRegistry returns (bool) {
        require(_isPublicPool, "InvestmentPool: the pool is already deactivated");
        _isPublicPool = false;
        return true;
    }
    function _setReferral(address sender, address lPartner, address referral) external onlyPoolRegistry onlyAdmin(sender) returns (bool) {
        _referrals[lPartner] = referral;
        return true;
    }

    function _setRate(uint256 rate) external onlyPoolRegistry returns (bool) {
        _rate = rate;
        return true;
    }
    function _setPoolValues(uint256 poolValueUSD,uint256 poolValue,string calldata proofOfValue) external onlyPoolRegistry returns (bool) {
        _poolValueUSD = poolValueUSD;
        _poolValue = poolValue;
        _proofOfValue = proofOfValue;
        return true;
    }
    function _setAuction(address newAuction) public onlyTeam {
        _auction = newAuction;
    }
    function auction() public view returns (address)  {
        return _auction;
    }
    function getPoolValues() public view returns(uint256 poolValueUSD, uint256 poolValue, string memory proofOfValue)
    {
        return (_poolValueUSD, _poolValue, _proofOfValue);
    }
    function _depositInvestmentInTokensToPool(address payable sender, uint256 amount, address token) external onlyPoolRegistry returns (bool) {
        require(hasRole(LIMITED_PARTNER_ROLE, sender), "InvestmentPool: the sender does not have permission");
        uint256 depositFee = amount.mul(_depositFixedFee).div(100);
        uint256 depositFeeReferrer = amount.mul(_referralDepositFee).div(100);
        uint256 totalDeposit = 0;
        if (_referrals[sender] != address(0)) {
            totalDeposit = amount.sub(depositFee).sub(depositFeeReferrer);
        } else {
            totalDeposit = amount.sub(depositFee);
        }
        _deposites[sender].push(DepositToPool(totalDeposit, block.timestamp, _lockPeriod, false, 0, token));
        return true;
    }
    uint256 private initialPriceInt = 88800000000000000;// 0.0888 BNB one token
    function getInitialPriceInt() public view returns (uint256)  {
        return initialPriceInt;
    }

//    uint256 private _tokensaleTotalAmount = (10 ** uint256(18)).mul(8000);// 8000 obs
    uint256 private _tokensaleTotalSold;

    function purchaseTokensQuantityFor(uint256 amount) public view returns (uint256,uint256) {
        uint256 delta = _initialBalance.sub(_tokensaleTotalSold);
        uint256 newPrice = initialPriceInt.mul(_initialBalance).div(delta);
        return (amount.mul(10 ** uint256(18)).div(newPrice),_initialBalance.sub(_tokensaleTotalSold));
    }

    function purchaseTokens() public payable returns (uint256) {
        require(msg.value > 100000000000000000, "TokensalePool: minimal purchase 0.1BNB.");
        uint256 amountTokens;
        uint256 balance;
        (amountTokens,balance) = purchaseTokensQuantityFor(msg.value);
        require(amountTokens > 0, "TokensalePool: we can't sell 0 tokens.");
        require(amountTokens < balance.div(3), "TokensalePool: we can't sell more than 30% from one transaction. Please decrease investment amount.");
        IERC20(_tokenForTokensale).transfer(msg.sender, amountTokens);
        _tokensaleTotalSold = _tokensaleTotalSold.add(amountTokens);
        return amountTokens;
    }
    uint256 constant private multiplierDefault = 100000;

    function _deposit(address sender, uint256 amount, uint256 feesMultipier) private returns (bool) {
        require(_isPublicPool, "InvestmentPool: pool deposit blocked");
        address payable team = payable(getRoleMember(GENERAL_PARTNER_ROLE,0));
        uint256 depositFee = amount.mul(_depositFixedFee).div(100).div(feesMultipier).mul(multiplierDefault);
        uint256 depositFeeReferrer = amount.mul(_referralDepositFee).div(100).div(feesMultipier).mul(multiplierDefault);
        uint256 totalDeposit = 0;
        if (_referrals[sender] != address(0)) {
            payable(_referrals[sender]).transfer(depositFeeReferrer);
            team.transfer(depositFee);
            totalDeposit = amount.sub(depositFee).sub(depositFeeReferrer);
        } else {
            team.transfer(depositFee);
            totalDeposit = amount.sub(depositFee);
        }
        _deposites[sender].push(DepositToPool(totalDeposit, block.timestamp, _lockPeriod, false, 0, address(0)));
        _totalIncome = _totalIncome.add(amount);
        emit Deposit(sender, amount);
        return true;
    }
    function _transferGeneralPartner(uint256 amount) private returns (bool) {
        address payable gPartner = payable(getMembersRole(GENERAL_PARTNER_ROLE)[0]);
        gPartner.transfer(amount);
        return true;
    }
    function _getTokenAmount(uint256 weiAmount) public view returns (uint256) {
        uint8 DECIMALS = IERC20(_token).decimals();
        return (weiAmount.mul(_rate)).div(10 ** uint256(DECIMALS));
    }
    function isContract(address _addr) private view returns (bool is_contract) {
        uint length;
        assembly {
            length := extcodesize(_addr)
        }
        return (length>0);
    }

    function _removeIndexArray(uint256 index, DepositToPool[] storage array) internal virtual {
        for(uint256 i = index; i < array.length-1; i++) {
            array[i] = array[i+1];
        }
        array.pop();
    }

    function contractsNFTWhitelisted() public view returns (address[] memory) {
        return IOpenBiSeaAuction(_auction).contractsNFTWhitelisted();
    }

    function whitelistContractCreator( address _contractNFT ) public payable {
        require(msg.value >= initialPriceInt.mul(_auctionCreationFeeMultiplier), "OpenBiSea: you must send minimal amount or more");
        IOpenBiSeaAuction(_auction).whitelistContractCreator(_contractNFT,msg.value);
        _totalIncome = _totalIncome.add(msg.value);
    }

    function whitelistContractCreatorTokens( address _contractNFT ) public {
        uint256 amount = (10 ** uint256(18)).mul(_auctionCreationFeeMultiplier);
        IERC20(_tokenForTokensale).transferFrom(msg.sender,address(this),amount);
        _totalIncome = _totalIncome.add(initialPriceInt.mul(amount).div(10 ** uint256(18)));
        IOpenBiSeaAuction(_auction).whitelistContractCreator(_contractNFT,initialPriceInt.mul(amount));
    }
    function createAuction( address _contractNFT, uint256 _tokenId, uint256 _price,uint256 _deadline, bool _isERC1155, bool _isUSD ) public {
        IOpenBiSeaAuction(_auction).createAuction(_contractNFT,_tokenId, _price, _deadline,_isERC1155, msg.sender, _isUSD);
    }
    function bidUSD( address _contractNFT,uint256 _tokenId, uint256 _bidAmount, bool _isERC1155 ) public {
        IERC20(_busdContract).transferFrom(msg.sender,address(this),_bidAmount);
        bool isWin;
        uint256 amountTransferBack;
        address auctionLatestBidderOrSeller;
        bool isUSD;
        (isWin,amountTransferBack,auctionLatestBidderOrSeller,isUSD) = IOpenBiSeaAuction(_auction).bid( _contractNFT, _tokenId, _bidAmount, _isERC1155, msg.sender );
        if (isWin) {
            if (isUSD) {
                uint256 depositFee = _bidAmount.mul(_depositFixedFee).div(100);
                uint256 depositFeeReferrer = _bidAmount.mul(_referralDepositFee).div(100);
                uint256 totalSellerAmount = _bidAmount.sub(depositFee);
                if (_referrals[msg.sender] != address(0)) {
                    totalSellerAmount = totalSellerAmount.sub(depositFeeReferrer);
                    IERC20(_busdContract).transfer(_referrals[msg.sender],depositFeeReferrer);
                    IERC20(_busdContract).transfer(getRoleMember(GENERAL_PARTNER_ROLE,0),depositFee);
                } else {
                    IERC20(_busdContract).transfer(getRoleMember(GENERAL_PARTNER_ROLE,0),depositFee);
                }
                IERC20(_busdContract).transfer(auctionLatestBidderOrSeller,totalSellerAmount);
            }
        } else {
            if (amountTransferBack > 0 && isUSD) {
                IERC20(_busdContract).transfer(auctionLatestBidderOrSeller,amountTransferBack);
            }
        }
    }
    function bid( address _contractNFT,uint256 _tokenId, bool _isERC1155 ) public payable {
        bool isWin;
        uint256 amountTransferBack;
        address auctionLatestBidderOrSeller;
        bool isUSD;
        (isWin,amountTransferBack,auctionLatestBidderOrSeller,isUSD) = IOpenBiSeaAuction(_auction).bid( _contractNFT, _tokenId, msg.value, _isERC1155, msg.sender );
        if (isWin) {
            if (!isUSD) {
                uint256 depositFee = msg.value.mul(_depositFixedFee).div(100);
                uint256 depositFeeReferrer = msg.value.mul(_referralDepositFee).div(100);
                uint256 totalSellerAmount = msg.value.sub(depositFee);
                if (_referrals[msg.sender] != address(0)) {
                    totalSellerAmount = totalSellerAmount.sub(depositFeeReferrer);
                    payable(_referrals[msg.sender]).transfer(depositFeeReferrer);
                    payable(getRoleMember(GENERAL_PARTNER_ROLE,0)).transfer(depositFee);
                } else {
                    payable(getRoleMember(GENERAL_PARTNER_ROLE,0)).transfer(depositFee);
                }
                payable(auctionLatestBidderOrSeller).transfer(totalSellerAmount);
            }
        } else {
            if (amountTransferBack > 0 && !isUSD) {
                payable(auctionLatestBidderOrSeller).transfer(amountTransferBack);
            }
        }
    }
    function cancelAuction( address _contractNFT, uint256 _tokenId, bool _isERC1155 ) public {
        IOpenBiSeaAuction(_auction).cancelAuction(_contractNFT,_tokenId,msg.sender,_isERC1155);
    }
    function checkTokensForClaim( address customer, uint256 priceMainToUSD) public view returns (uint256,uint256,uint256,bool) {
        return IOpenBiSeaAuction(_auction).checkTokensForClaim(customer,priceMainToUSD);
    }
    event ClaimFreeTokens(uint256 amount, address investor,bool result);
    function claimFreeTokens() public returns (bool) {
        uint256 priceMainToUSD;
        uint8 decimals;
        (priceMainToUSD,decimals) = _poolRegistry.getOracleContract().getLatestPrice();

        uint256 tokensToPay;
        (tokensToPay,,,)= checkTokensForClaim(msg.sender,priceMainToUSD.div(10 ** uint256(decimals)));
        bool result = false;
        if (tokensToPay > 0) {
            IERC20(_tokenForTokensale).transfer(msg.sender, tokensToPay);
            IOpenBiSeaAuction(_auction).setConsumersReceivedMainTokenLatestDate(msg.sender);
            result = true;
        }
        emit ClaimFreeTokens(tokensToPay,msg.sender,result);
        return result;
    }
}

File 3 of 16 : AccessControl.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;

import "../utils/EnumerableSet.sol";
import "../GSN/Context.sol";

contract AccessControl is Context {
    using EnumerableSet for EnumerableSet.AddressSet;
    struct RoleData {
        EnumerableSet.AddressSet members;
        bytes32 adminRole;
    }
    mapping (bytes32 => RoleData) private _roles;
    mapping (bytes32 => address[]) private _addressesRoles;
    event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender);
    event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender);
    function hasRole(bytes32 role, address account) public view returns (bool) {
        return _roles[role].members.contains(account);
    }
    function getRoleMemberCount(bytes32 role) public view returns (uint256) {
        return _roles[role].members.length();
    }
   function getRoleMember(bytes32 role, uint256 index) public view returns (address) {
        return _roles[role].members.at(index);
    }
    function getRoleAdmin(bytes32 role) public view returns (bytes32) {
        return _roles[role].adminRole;
    }
    function getMembersRole(bytes32 role) public view returns (address[] memory Accounts) {
        return _addressesRoles[role];
    }
    function grantRole(bytes32 role, address account) public virtual {
        require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to grant");
        _grantRole(role, account);
    }
    function revokeRole(bytes32 role, address account) public virtual {
        require(hasRole(_roles[role].adminRole, _msgSender()), "AccessControl: sender must be an admin to revoke");

        _revokeRole(role, account);
    }
    function _setupRole(bytes32 role, address account) internal virtual {
        _grantRole(role, account);
    }
    function _setRoleAdmin(bytes32 role, bytes32 adminRole) internal virtual {
        _roles[role].adminRole = adminRole;
    }
    function _grantRole(bytes32 role, address account) private {
        if (_roles[role].members.add(account)) {
            _addressesRoles[role].push(account);
            emit RoleGranted(role, account, _msgSender());
        }
    }
    function _revokeRole(bytes32 role, address account) private {
        if (_roles[role].members.remove(account)) {
            for (uint256 i; i < _addressesRoles[role].length; i++) {
                if (_addressesRoles[role][i] == account) {
                    _removeIndexArray(i, _addressesRoles[role]);
                    break;
                }
            }
            emit RoleRevoked(role, account, _msgSender());
        }
    }
    function _removeIndexArray(uint256 index, address[] storage array) internal virtual {
        for(uint256 i = index; i < array.length-1; i++) {
            array[i] = array[i+1];
        }
        array.pop();
    }
}

File 4 of 16 : PoolRoles.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
import "./AccessControl.sol";
import "../ownership/Ownable.sol";
import "../interface/IRoleModel.sol";
contract PoolRoles is AccessControl, Ownable, IRoleModel {
    bool private _finalized = false;
    event Finalized();
    modifier onlyGPartner() {
        require(hasRole(GENERAL_PARTNER_ROLE, msg.sender), "Roles: caller does not have the general partner role");
        _;
    }
    modifier onlyLPartner() {
        require(hasRole(LIMITED_PARTNER_ROLE, msg.sender), "Roles: caller does not have the limited partner role");
        _;
    }
    modifier onlyStartupTeam() {
        require(hasRole(STARTUP_TEAM_ROLE, msg.sender), "Roles: caller does not have the team role");
        _;
    }
    modifier onlyPoolRegistry() {
        require(hasRole(POOL_REGISTRY, msg.sender), "Roles: caller does not have the pool regystry role");
        _;
    }
    modifier onlyReturnsInvestmentLpartner() {
        require(hasRole(RETURN_INVESTMENT_LPARTNER, msg.sender), "Roles: caller does not have the return invesment lpartner role");
        _;
    }
    modifier onlyOracle() {
        require(hasRole(ORACLE, msg.sender), "Roles: caller does not have oracle role");
        _;
    }
    constructor () public {
        _setRoleAdmin(GENERAL_PARTNER_ROLE, SUPER_ADMIN_ROLE);
        _setRoleAdmin(LIMITED_PARTNER_ROLE, SUPER_ADMIN_ROLE);
        _setRoleAdmin(STARTUP_TEAM_ROLE, SUPER_ADMIN_ROLE);
        _setRoleAdmin(POOL_REGISTRY, SUPER_ADMIN_ROLE);
        _setRoleAdmin(RETURN_INVESTMENT_LPARTNER, SUPER_ADMIN_ROLE);
        _setRoleAdmin(ORACLE, SUPER_ADMIN_ROLE);
    }
    function addAdmin(bytes32 role, address account) public onlyOwner returns (bool) {
        require(!_finalized, "ManagerRole: already finalized");

        _setupRole(role, account);
        return true;
    }
    function finalize() public onlyOwner {
        require(!_finalized, "ManagerRole: already finalized");
        _finalized = true;
        emit Finalized();
    }
}

File 5 of 16 : TeamRole.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
import "./lib/Roles.sol";
contract TeamRole {
    using Roles for Roles.Role;
    event TeamAdded(address indexed account);
    event TeamRemoved(address indexed account);
    event OracleAdded(address indexed account);
    event OracleRemoved(address indexed account);
    Roles.Role private _team;
    Roles.Role private _oracle;
    constructor () internal {
        _addTeam(msg.sender);
    }
    modifier onlyTeam() {
        require(isTeam(msg.sender), "TeamRole: caller does not have the Team role");
        _;
    }
    modifier onlyRegistryOracle() {
        require(isOracle(msg.sender), "TeamRole: caller does not have the Oracle role");
        _;
    }

    function isOracle(address account) public view returns (bool) {
        return _oracle.has(account);
    }
    function getOracleAddresses() public view returns (address[] memory) {
        return _oracle.accounts;
    }

    function addOracle(address account) public onlyTeam {
        _addOracle(account);
    }
    function _addOracle(address account) internal {
        _oracle.add(account);
        emit OracleAdded(account);
    }
    function renounceOracle() public {
        _removeOracle(msg.sender);
    }
    function _removeOracle(address account) internal {
        _oracle.remove(account);
        emit OracleRemoved(account);
    }

    function isTeam(address account) public view returns (bool) {
        return _team.has(account);
    }
    function getTeamAddresses() public view returns (address[] memory) {
        return _team.accounts;
    }
    function addTeam(address account) public onlyTeam {
        _addTeam(account);
    }
    function renounceTeam() public onlyTeam {
        _removeTeam(msg.sender);
    }
    function _addTeam(address account) internal {
        _team.add(account);
        emit TeamAdded(account);
    }
    function _removeTeam(address account) internal {
        _team.remove(account);
        emit TeamRemoved(account);
    }
}

File 6 of 16 : Roles.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
library Roles {
    struct Role {
        address[] accounts;
        mapping (address => bool) bearer;
        mapping (bytes32 => uint256) _indexes;
    }
    function add(Role storage role, address account) internal {
        require(!has(role, account), "Roles: account already has role");
        role.bearer[account] = true;
        role.accounts.push(account);
        role._indexes[bytes32(uint256(account))] = role.accounts.length;
    }
    function remove(Role storage role, address account) internal {
        require(has(role, account), "Roles: account does not have role");
        uint256 valueIndex = role._indexes[bytes32(uint256(account))];
        if (valueIndex != 0) { // Equivalent to contains()
            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = role.accounts.length - 1;
            address lastValue = role.accounts[lastIndex];
            role.accounts[toDeleteIndex] = lastValue;
            role.accounts.pop();
            delete role._indexes[bytes32(uint256(account))];
        }
//        for (uint256 i; i < role.accounts.length; i++) {
//            if (role.accounts[i] == account) {
//                _removeIndexArray(i, role.accounts);
//                break;
//            }
//        }
        role.bearer[account] = false;
    }
    function has(Role storage role, address account) internal view returns (bool) {
        require(account != address(0), "Roles: account is the zero address");
        return role.bearer[account];
    }
//    function _removeIndexArray(uint256 index, address[] storage array) internal virtual {
//        for(uint256 i = index; i < array.length-1; i++) {
//            array[i] = array[i+1];
//        }
//        array.pop();
//    }
}

File 7 of 16 : IAssetsManageTeam.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
interface IAssetsManageTeam {
    function _depositToken(address pool, address team, address token, uint256 amount) external returns (bool);
    function _withdraw(address pool, address team, uint256 amount) external returns (bool);
    function _withdrawTokensToStartup(address pool,address token, address team, uint256 amount) external returns (bool);
    function _request(bool withdraw, address pool, address team, uint256 maxValue) external returns(bool);
    function _requestTokensWidthdrawalFromStartup(address pool, address token, address team, uint256 maxValue) external returns(bool);
    function _approve(address pool, address team, address owner) external returns(bool);
    function _approveTokensWidthdrawalFromStartup(address pool, address token, address team, address owner) external returns(bool);
    function _disapprove(address pool, address team, address owner) external returns(bool);
    function _lock(address pool, address team, address owner) external returns(bool);
    function _unlock(address pool, address team, address owner) external returns(bool);
    function addManager(address account) external;
    function getPerformedOperationsLength(address pool, address owner) external view returns(uint256 length);
    function getPerformedOperations(address pool, address owner, uint256 index) external view returns(address token, uint256 amountToken, uint256 withdraw, uint256 time);
    function getRequests(address pool) external view returns(address[] memory);
    function getApproval(address pool) external view returns(address[] memory);
    function getRequestTeamAddress(address pool, address team) external view returns(bool lock, uint256 maxValueToken, uint256 madeValueToken, uint256 maxValue, uint256 madeValue);
    function getApproveTeamAddress(address pool, address team) external view returns(bool lock, uint256 maxValueToken, uint256 madeValueToken, uint256 maxValue, uint256 madeValueE);
}

File 8 of 16 : IERC20.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
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);
    function decimals() external view returns (uint8);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

File 9 of 16 : IOpenBiSeaAuction.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
interface IOpenBiSeaAuction {
    function contractsNFTWhitelisted() external view returns (address[] memory);
    function whitelistContractCreator( address _contractNFT, uint256 fee ) external payable;
    function createAuction( address _contractNFT, uint256 _tokenId, uint256 _price,uint256 _deadline, bool _isERC1155, address _sender, bool _isUSD ) external;
    function bid( address _contractNFT,uint256 _tokenId, uint256 _price, bool _isERC1155, address _sender ) external returns (bool, uint256, address, bool);
    function cancelAuction( address _contractNFT, uint256 _tokenId, address _sender, bool _isERC1155 ) external;
    function checkTokensForClaim( address customer, uint256 priceMainToUSD) external view returns (uint256,uint256,uint256,bool);
    function setConsumersReceivedMainTokenLatestDate(address _sender) external;
}

File 10 of 16 : IOracle.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
interface IOracle {
    function getLatestPrice() external view returns ( uint256,uint8);
    function getCustomPrice(address aggregator) external view returns (uint256,uint8);
}

File 11 of 16 : IPoolRegistry.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
import "./IOracle.sol";
interface IPoolRegistry {
    function isTeam(address account) external view returns (bool);
    function getTeamAddresses() external view returns (address[] memory);
    function getOracleContract() external view returns (IOracle);
    function feesMultipier(address sender) external view returns (uint256);
}

File 12 of 16 : IRoleModel.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
contract IRoleModel {
    bytes32 public constant SUPER_ADMIN_ROLE = keccak256("SUPER_ADMIN_ROLE");
    bytes32 public constant GENERAL_PARTNER_ROLE = keccak256("GENERAL_PARTNER_ROLE");
    bytes32 public constant LIMITED_PARTNER_ROLE = keccak256("LIMITED_PARTNER_ROLE");
    bytes32 public constant STARTUP_TEAM_ROLE = keccak256("STARTUP_TEAM_ROLE");
    bytes32 public constant POOL_REGISTRY = keccak256("POOL_REGISTRY");
    bytes32 public constant RETURN_INVESTMENT_LPARTNER = keccak256("RETURN_INVESTMENT_LPARTNER");
    bytes32 public constant ORACLE = keccak256("ORACLE");
    bytes32 public constant REFERER_ROLE = keccak256("REFERER_ROLE");
}

File 13 of 16 : SafeMath.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
library SafeMath {
     function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
         if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

File 14 of 16 : Ownable.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
import "../GSN/Context.sol";
contract Ownable is Context {
    address private _owner;
    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");
        _;
    }
    /**
    * @dev Transfers ownership of the contract to a new account (`newOwner`).
    * Can only be called by the current owner.
    */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

File 15 of 16 : EnumerableSet.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
library EnumerableSet {
    struct Set {
        bytes32[] _values;
        address[] _collection;
        mapping (bytes32 => uint256) _indexes;
    }
    function _add(Set storage set, bytes32 value, address addressValue) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
            set._collection.push(addressValue);
            set._indexes[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }
    function _remove(Set storage set, bytes32 value) private returns (bool) {
        uint256 valueIndex = set._indexes[value];
        if (valueIndex != 0) { // Equivalent to contains(set, value)
            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = set._values.length - 1;
            bytes32 lastValue = set._values[lastIndex];
            set._values[toDeleteIndex] = lastValue;
            set._values.pop();

            address lastvalueAddress = set._collection[lastIndex];
            set._collection[toDeleteIndex] = lastvalueAddress;
            set._collection.pop();

            set._indexes[lastValue] = toDeleteIndex + 1; // All indexes are 1-based
            delete set._indexes[value];
//            for(uint256 i = 0; i < set._collection.length; i++) {
//                if (set._collection[i] == addressValue) {
//                    _removeIndexArray(i, set._collection);
//                    break;
//                }
//            }
            return true;
        } else {
            return false;
        }
    }
    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._indexes[value] != 0;
    }
    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }
    function _collection(Set storage set) private view returns (address[] memory) {
        return set._collection;    
    }
//    function _removeIndexArray(uint256 index, address[] storage array) internal virtual {
//        for(uint256 i = index; i < array.length-1; i++) {
//            array[i] = array[i+1];
//        }
//        array.pop();
//    }
    function _at(Set storage set, uint256 index) private view returns (bytes32) {
        require(set._values.length > index, "EnumerableSet: index out of bounds");
        return set._values[index];
    }
    struct AddressSet {
        Set _inner;
    }
    function add(AddressSet storage set, address value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(value)), value);
    }
    function remove(AddressSet storage set, address value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(value)));
    }
    function contains(AddressSet storage set, address value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(value)));
    }
    function length(AddressSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }
    function collection(AddressSet storage set) internal view returns (address[] memory) {
        return _collection(set._inner);
    }
    function at(AddressSet storage set, uint256 index) internal view returns (address) {
        return address(uint256(_at(set._inner, index)));
    }
}

File 16 of 16 : EnumerableUintSet.sol
// SPDX-License-Identifier: UNLICENSED
// (c) Oleksii Vynogradov 2021, All rights reserved, contact [email protected] if you like to use code
pragma solidity ^0.6.8;
library EnumerableUintSet {
    struct Set {
        bytes32[] _values;
        uint256[] _collection;
        mapping (bytes32 => uint256) _indexes;
    }
    function _add(Set storage set, bytes32 value, uint256 savedValue) private returns (bool) {
        if (!_contains(set, value)) {
            set._values.push(value);
            set._collection.push(savedValue);
            set._indexes[value] = set._values.length;
            return true;
        } else {
            return false;
        }
    }
    function _remove(Set storage set, bytes32 value) private returns (bool) {
        uint256 valueIndex = set._indexes[value];
        if (valueIndex != 0) { // Equivalent to contains(set, value)
            uint256 toDeleteIndex = valueIndex - 1;
            uint256 lastIndex = set._values.length - 1;
            bytes32 lastValue = set._values[lastIndex];
            set._values[toDeleteIndex] = lastValue;
            set._values.pop();

            uint256 lastvalueAddress = set._collection[lastIndex];
            set._collection[toDeleteIndex] = lastvalueAddress;
            set._collection.pop();

            set._indexes[lastValue] = toDeleteIndex + 1; // All indexes are 1-based
            delete set._indexes[value];
            return true;
        } else {
            return false;
        }
    }
    function _contains(Set storage set, bytes32 value) private view returns (bool) {
        return set._indexes[value] != 0;
    }
    function _length(Set storage set) private view returns (uint256) {
        return set._values.length;
    }
    function _collection(Set storage set) private view returns (uint256[] memory) {
        return set._collection;    
    }

    function _at(Set storage set, uint256 index) private view returns (uint256) {
        require(set._collection.length > index, "EnumerableSet: index out of bounds");
        return set._collection[index];
    }
    struct UintSet {
        Set _inner;
    }
    function add(UintSet storage set, uint256 value) internal returns (bool) {
        return _add(set._inner, bytes32(uint256(value)), value);
    }
    function remove(UintSet storage set, uint256 value) internal returns (bool) {
        return _remove(set._inner, bytes32(uint256(value)));
    }
    function contains(UintSet storage set, uint256 value) internal view returns (bool) {
        return _contains(set._inner, bytes32(uint256(value)));
    }
    function length(UintSet storage set) internal view returns (uint256) {
        return _length(set._inner);
    }
    function collection(UintSet storage set) internal view returns (uint256[] memory) {
        return _collection(set._inner);
    }
    function at(UintSet storage set, uint256 index) internal view returns (uint256) {
        return _at(set._inner, index);
    }
}

Settings
{
  "remappings": [],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "evmVersion": "byzantium",
  "libraries": {},
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"tokenForTokensale","type":"address"},{"internalType":"address","name":"superAdmin","type":"address"},{"internalType":"address","name":"gPartner","type":"address"},{"internalType":"address","name":"lPartner","type":"address"},{"internalType":"address","name":"team","type":"address"},{"internalType":"address","name":"poolRegistry","type":"address"},{"internalType":"address","name":"returnInvestmentLpartner","type":"address"},{"internalType":"contract IAssetsManageTeam","name":"assetsManageTeam","type":"address"},{"internalType":"uint256","name":"initialBalance","type":"uint256"},{"internalType":"address","name":"busdContract","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"investor","type":"address"},{"indexed":false,"internalType":"bool","name":"result","type":"bool"}],"name":"ClaimFreeTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"getDepositLengthSender","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"getDepositLengthOwner","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalAmountReturn","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"indexesDepositLength","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"balanceThis","type":"uint256"}],"name":"DebugWithdrawLPartner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[],"name":"Finalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OracleAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"OracleRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"TeamAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"TeamRemoved","type":"event"},{"inputs":[],"name":"GENERAL_PARTNER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"LIMITED_PARTNER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ORACLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POOL_REGISTRY","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REFERER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RETURN_INVESTMENT_LPARTNER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STARTUP_TEAM_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUPER_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_activateDepositToPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"lPartner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"investedToken","type":"address"}],"name":"_approveWithdrawLpartner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"token","type":"address"}],"name":"_depositInvestmentInTokensToPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"feesMultipier","type":"uint256"}],"name":"_depositPoolRegistry","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_disactivateDepositToPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"_getTokenAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"sender","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_returnsInTokensFromTeam","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAuction","type":"address"}],"name":"_setAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"poolValueUSD","type":"uint256"},{"internalType":"uint256","name":"poolValue","type":"uint256"},{"internalType":"string","name":"proofOfValue","type":"string"}],"name":"_setPoolValues","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"_setRate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"lPartner","type":"address"},{"internalType":"address","name":"referral","type":"address"}],"name":"_setReferral","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"isPublicPool","type":"bool"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"locked","type":"uint256"},{"internalType":"uint256","name":"depositFixedFee","type":"uint256"},{"internalType":"uint256","name":"referralDepositFee","type":"uint256"},{"internalType":"uint256","name":"auctionCreationFeeMultiplier","type":"uint256"},{"internalType":"uint256","name":"auctionContractFeeMultiplier","type":"uint256"}],"name":"_updatePool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"sender","type":"address"}],"name":"_withdrawLPartner","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"sender","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_withdrawSuperAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_withdrawTeam","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"sender","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_withdrawTokensToStartup","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"addAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addTeam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"auction","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contractNFT","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bool","name":"_isERC1155","type":"bool"}],"name":"bid","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_contractNFT","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_bidAmount","type":"uint256"},{"internalType":"bool","name":"_isERC1155","type":"bool"}],"name":"bidUSD","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contractNFT","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"bool","name":"_isERC1155","type":"bool"}],"name":"cancelAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"customer","type":"address"},{"internalType":"uint256","name":"priceMainToUSD","type":"uint256"}],"name":"checkTokensForClaim","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimFreeTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractsNFTWhitelisted","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_contractNFT","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"},{"internalType":"uint256","name":"_price","type":"uint256"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"bool","name":"_isERC1155","type":"bool"},{"internalType":"bool","name":"_isUSD","type":"bool"}],"name":"createAuction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getDeposit","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"lock_period","type":"uint256"},{"internalType":"bool","name":"refund_authorize","type":"bool"},{"internalType":"uint256","name":"amountWithdrawal","type":"uint256"},{"internalType":"address","name":"investedToken","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"getDepositLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInfoPool","outputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"bool","name":"isPublicPool","type":"bool"},{"internalType":"address","name":"tokenForTokensale","type":"address"},{"internalType":"uint256","name":"locked","type":"uint256"},{"internalType":"uint256","name":"initialBalance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInfoPoolFees","outputs":[{"internalType":"uint256","name":"rate","type":"uint256"},{"internalType":"uint256","name":"depositFixedFee","type":"uint256"},{"internalType":"uint256","name":"referralDepositFee","type":"uint256"},{"internalType":"uint256","name":"auctionCreationFeeMultiplier","type":"uint256"},{"internalType":"uint256","name":"auctionContractFeeMultiplier","type":"uint256"},{"internalType":"uint256","name":"totalIncome","type":"uint256"},{"internalType":"uint256","name":"premiumFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInitialPriceInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getMembersRole","outputs":[{"internalType":"address[]","name":"Accounts","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOracleAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPoolValues","outputs":[{"internalType":"uint256","name":"poolValueUSD","type":"uint256"},{"internalType":"uint256","name":"poolValue","type":"uint256"},{"internalType":"string","name":"proofOfValue","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"lPartner","type":"address"}],"name":"getReferral","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"getRoleMember","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleMemberCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTeamAddresses","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOracle","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isTeam","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"purchaseTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"purchaseTokensQuantityFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceTeam","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_contractNFT","type":"address"}],"name":"whitelistContractCreator","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_contractNFT","type":"address"}],"name":"whitelistContractCreatorTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6002805460a060020a60ff0219169055600a805460ff191660011790556000600f81905560105560c0604052600760808190527f6e6f7468696e670000000000000000000000000000000000000000000000000060a090815262000067916011919062000d0d565b5067013b7b21280e0000601e553480156200008157600080fd5b50604051620064fa380380620064fa8339818101604052610140811015620000a857600080fd5b508051602082015160408301516060840151608085015160a086015160c087015160e0880151610100890151610120909901519798969795969495939492939192909160006200010064010000000062000648810204565b60028054600160a060020a031916600160a060020a038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350604080517f47454e4552414c5f504152544e45525f524f4c4500000000000000000000000081528151908190036014018120600080516020620064da83398151915282529151908190036010019020620001b291906401000000006200064d810204565b604080517f4c494d495445445f504152544e45525f524f4c4500000000000000000000000081528151908190036014018120600080516020620064da833981519152825291519081900360100190206200021691906401000000006200064d810204565b604080517f535441525455505f5445414d5f524f4c4500000000000000000000000000000081528151908190036011018120600080516020620064da833981519152825291519081900360100190206200027a91906401000000006200064d810204565b604080517f504f4f4c5f5245474953545259000000000000000000000000000000000000008152815190819003600d018120600080516020620064da83398151915282529151908190036010019020620002de91906401000000006200064d810204565b604080517f52455455524e5f494e564553544d454e545f4c504152544e45520000000000008152815190819003601a018120600080516020620064da833981519152825291519081900360100190206200034291906401000000006200064d810204565b604080517f4f5241434c45000000000000000000000000000000000000000000000000000081528151908190036006018120600080516020620064da83398151915282529151908190036010019020620003a691906401000000006200064d810204565b620003ba3364010000000062000662810204565b601c8054600160a060020a03808d16600160a060020a031992831617909255601a8054868416908316179055601b8054888416908316179055601d849055600b80549284169290911691909117905560408051600080516020620064da8339815191528152905190819003601001902062000444903364010000000062001e5d620006b482021704565b5060408051600080516020620064da8339815191528152905190819003601001902062000480908a64010000000062001e5d620006b482021704565b5060408051600080516020620064da83398151915281529051908190036010019020620004bc908664010000000062001e5d620006b482021704565b50620004d564010000000062001ae4620007de82021704565b604080517f47454e4552414c5f504152544e45525f524f4c45000000000000000000000000815290519081900360140190206200051c90896401000000006200093a810204565b604080517f4c494d495445445f504152544e45525f524f4c45000000000000000000000000815290519081900360140190206200056390886401000000006200093a810204565b604080517f535441525455505f5445414d5f524f4c4500000000000000000000000000000081529051908190036011019020620005aa90876401000000006200093a810204565b604080517f504f4f4c5f5245474953545259000000000000000000000000000000000000008152905190819003600d019020620005f190866401000000006200093a810204565b604080517f52455455524e5f494e564553544d454e545f4c504152544e45520000000000008152905190819003601a0190206200063890856401000000006200093a810204565b5050505050505050505062000daf565b335b90565b60009182526020829052604090912060030155565b6200067d60038264010000000062004472620009e382021704565b604051600160a060020a038216907f3f5f1db80208f0d453083a86e16909cecc1e95e2618d5d927c93ace22b8200fc90600090a250565b6000620006c964010000000062000648810204565b600254600160a060020a039081169116146200073557604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201819052602482015260008051602062006498833981519152604482015290519081900360640190fd5b60025474010000000000000000000000000000000000000000900460ff1615620007c057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4d616e61676572526f6c653a20616c72656164792066696e616c697a65640000604482015290519081900360640190fd5b620007d58383640100000000620009ca810204565b50600192915050565b620007f164010000000062000648810204565b600254600160a060020a039081169116146200085d57604080517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201819052602482015260008051602062006498833981519152604482015290519081900360640190fd5b60025474010000000000000000000000000000000000000000900460ff1615620008e857604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f4d616e61676572526f6c653a20616c72656164792066696e616c697a65640000604482015290519081900360640190fd5b6002805460a060020a60ff021916740100000000000000000000000000000000000000001790556040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768190600090a1565b60008281526020819052604090206003015462000973906200096464010000000062000648810204565b64010000000062000ac0810204565b620009ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018062006469602f913960400191505060405180910390fd5b620009df828264010000000062000aef810204565b5050565b620009f8828264010000000062000baa810204565b1562000a6557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b600160a060020a03166000818152600183810160209081526040808420805460ff191684179055855492830186558584528184209092018054600160a060020a03191685179055845493835260029094019093529190912055565b600082815260208190526040812062000ae890836401000000006200452c62000c3082021704565b9392505050565b600082815260208190526040902062000b1790826401000000006200454162000c5082021704565b15620009df5760008281526001602081815260408320805492830181558352909120018054600160a060020a031916600160a060020a03831617905562000b6664010000000062000648810204565b600160a060020a031681600160a060020a0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000600160a060020a03821662000c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620064b86022913960400191505060405180910390fd5b50600160a060020a03166000908152600191909101602052604090205460ff1690565b600062000ae883600160a060020a03841664010000000062000c71810204565b600062000ae883600160a060020a0384168464010000000062000c89810204565b60009081526002919091016020526040902054151590565b600062000ca0848464010000000062000c71810204565b62000d0357508254600180820185556000858152602080822090930185905581860180548084018255908252838220018054600160a060020a031916600160a060020a038616179055855485825260028701909352604090209190915562000ae8565b5060009392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000d5057805160ff191683800117855562000d80565b8280016001018555821562000d80579182015b8281111562000d8057825182559160200191906001019062000d63565b5062000d8e92915062000d92565b5090565b6200064a91905b8082111562000d8e576000815560010162000d99565b6156aa8062000dbf6000396000f3fe6080604052600436106103b55760003560e060020a900480639010d07c116101eb578063d5c5e43411610111578063e89ec45f116100a4578063f66fdcca11610073578063f66fdcca14610ff9578063fd66c06714611094578063fe070e9d146110e9578063fedf51e9146110fe576103bc565b8063e89ec45f14610f35578063f14d218114610f6e578063f2fde38b14610f83578063f45efe6714610fb6576103bc565b8063d9a431b3116100e0578063d9a431b314610e69578063dae06b7214610e7e578063dca80c1914610ec1578063df5dd1a514610f02576103bc565b8063d5c5e43414610d54578063d69df4c714610db0578063d6d6878414610def578063d93f48b014610e22576103bc565b8063b463a75c11610189578063cb4ff7f211610158578063cb4ff7f214610c02578063cbc5906e14610c47578063d2f0d2a814610c5c578063d547741f14610d1b576103bc565b8063b463a75c14610b07578063bd8afbf814610b3a578063c1abd75714610bc3578063ca15c87314610bd8576103bc565b80639cf6cc70116101c55780639cf6cc701461099c5780639f2ac7f8146109c6578063a97e5c9314610a27578063b06fd88f14610a5a576103bc565b80639010d07c1461090957806391d148541461093957806394707a9514610972576103bc565b8063594ce4c7116102db5780637a99bb0a1161026e57806387ac828a1161023d57806387ac828a1461087957806389e52771146108ac5780638c533ba7146108c15780638da5cb5b146108f4576103bc565b80637a99bb0a146107c35780637d9f6db5146107ed5780637fdbc08b14610802578063878d9b7a14610845576103bc565b80636d8664e0116102aa5780636d8664e01461073d5780637330aba214610752578063770108a7146107675780637837efdc146107ae576103bc565b8063594ce4c7146106975780635ac8b005146106da5780636176dd9f146106ef5780636419bcdb14610704576103bc565b80632dc20f621161035357806338013f021161032257806338013f02146106095780633b0f0f2f1461061e5780634460bdd61461066d5780634bb278f314610682576103bc565b80632dc20f621461058b5780632f2ff15d146105b35780633049ea33146105ec5780633290ce2914610601576103bc565b8063248519141161038f57806324851914146104a4578063248a9ca3146104d7578063261fef02146105015780632726b50614610516576103bc565b8063052c09fd146103c157806316fb3c15146104265780631cda4a8d1461047d576103bc565b366103bc57005b600080fd5b3480156103cd57600080fd5b506103d661114b565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156104125781810151838201526020016103fa565b505050509050019250505060405180910390f35b34801561043257600080fd5b506104696004803603606081101561044957600080fd5b50600160a060020a0381358116916020810135909116906040013561126d565b604080519115158252519081900360200190f35b34801561048957600080fd5b50610492611477565b60408051918252519081900360200190f35b3480156104b057600080fd5b50610469600480360360208110156104c757600080fd5b5035600160a060020a031661149a565b3480156104e357600080fd5b50610492600480360360208110156104fa57600080fd5b50356114b3565b34801561050d57600080fd5b506104926114c8565b34801561052257600080fd5b5061054f6004803603604081101561053957600080fd5b50600160a060020a0381351690602001356114fd565b6040805196875260208701959095528585019390935290151560608501526080840152600160a060020a031660a0830152519081900360c00190f35b6105b1600480360360208110156105a157600080fd5b5035600160a060020a03166116a3565b005b3480156105bf57600080fd5b506105b1600480360360408110156105d657600080fd5b5080359060200135600160a060020a031661179e565b3480156105f857600080fd5b5061046961180d565b6104926118d1565b34801561061557600080fd5b50610492611a5c565b34801561062a57600080fd5b506106516004803603602081101561064157600080fd5b5035600160a060020a0316611a91565b60408051600160a060020a039092168252519081900360200190f35b34801561067957600080fd5b50610492611aaf565b34801561068e57600080fd5b506105b1611ae4565b3480156106a357600080fd5b50610469600480360360608110156106ba57600080fd5b50600160a060020a03813581169160208101359091169060400135611c24565b3480156106e657600080fd5b50610492611d69565b3480156106fb57600080fd5b50610469611d9e565b34801561071057600080fd5b506104696004803603604081101561072757600080fd5b5080359060200135600160a060020a0316611e5d565b34801561074957600080fd5b50610492611f52565b34801561075e57600080fd5b506103d6611f58565b34801561077357600080fd5b506105b16004803603608081101561078a57600080fd5b50600160a060020a0381351690602081013590604081013590606001351515611fbd565b3480156107ba57600080fd5b506105b1612515565b3480156107cf57600080fd5b50610492600480360360208110156107e657600080fd5b5035612520565b3480156107f957600080fd5b506106516125c3565b34801561080e57600080fd5b506104696004803603606081101561082557600080fd5b50600160a060020a038135811691602081013590911690604001356125d7565b6105b16004803603606081101561085b57600080fd5b50600160a060020a03813516906020810135906040013515156127b3565b34801561088557600080fd5b506104926004803603602081101561089c57600080fd5b5035600160a060020a0316612abd565b3480156108b857600080fd5b506103d6612ad8565b3480156108cd57600080fd5b506105b1600480360360208110156108e457600080fd5b5035600160a060020a0316612b3b565b34801561090057600080fd5b50610651612cc9565b34801561091557600080fd5b506106516004803603604081101561092c57600080fd5b5080359060200135612cd8565b34801561094557600080fd5b506104696004803603604081101561095c57600080fd5b5080359060200135600160a060020a0316612cf6565b34801561097e57600080fd5b506104696004803603602081101561099557600080fd5b5035612d14565b3480156109a857600080fd5b506103d6600480360360208110156109bf57600080fd5b5035612d88565b3480156109d257600080fd5b506109ff600480360360408110156109e957600080fd5b50600160a060020a038135169060200135612df4565b6040805194855260208501939093528383019190915215156060830152519081900360800190f35b348015610a3357600080fd5b5061046960048036036020811015610a4a57600080fd5b5035600160a060020a0316612ebd565b348015610a6657600080fd5b506104696004803603610100811015610a7e57600080fd5b810190602081018135640100000000811115610a9957600080fd5b820183602082011115610aab57600080fd5b80359060200191846001830284011164010000000083111715610acd57600080fd5b91935091508035151590600160a060020a036020820135169060408101359060608101359060808101359060a08101359060c00135612ed0565b348015610b1357600080fd5b506105b160048036036020811015610b2a57600080fd5b5035600160a060020a0316612f79565b348015610b4657600080fd5b5061046960048036036060811015610b5d57600080fd5b813591602081013591810190606081016040820135640100000000811115610b8457600080fd5b820183602082011115610b9657600080fd5b80359060200191846001830284011164010000000083111715610bb857600080fd5b509092509050612fcc565b348015610bcf57600080fd5b50610492613059565b348015610be457600080fd5b5061049260048036036020811015610bfb57600080fd5b503561307c565b348015610c0e57600080fd5b5061046960048036036060811015610c2557600080fd5b50600160a060020a038135811691602081013582169160409091013516613093565b348015610c5357600080fd5b50610492613283565b348015610c6857600080fd5b50610c716132a6565b60405180806020018615151515815260200185600160a060020a0316600160a060020a03168152602001848152602001838152602001828103825287818151815260200191508051906020019080838360005b83811015610cdc578181015183820152602001610cc4565b50505050905090810190601f168015610d095780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390f35b348015610d2757600080fd5b506105b160048036036040811015610d3e57600080fd5b5080359060200135600160a060020a0316613373565b348015610d6057600080fd5b50610d8760048036036020811015610d7757600080fd5b5035600160a060020a03166133d9565b6040805193151584526020840192909252600160a060020a031682820152519081900360600190f35b348015610dbc57600080fd5b5061046960048036036060811015610dd357600080fd5b50600160a060020a0381351690602081013590604001356136be565b348015610dfb57600080fd5b506105b160048036036020811015610e1257600080fd5b5035600160a060020a03166137a4565b348015610e2e57600080fd5b5061046960048036036080811015610e4557600080fd5b50600160a060020a0381358116916020810135916040820135916060013516613820565b348015610e7557600080fd5b506105b16139a5565b348015610e8a57600080fd5b50610ea860048036036020811015610ea157600080fd5b50356139f5565b6040805192835260208301919091528051918290030190f35b348015610ecd57600080fd5b506105b160048036036060811015610ee457600080fd5b50600160a060020a0381351690602081013590604001351515613a6e565b348015610f0e57600080fd5b506105b160048036036020811015610f2557600080fd5b5035600160a060020a0316613b04565b348015610f4157600080fd5b5061046960048036036040811015610f5857600080fd5b50600160a060020a038135169060200135613b54565b348015610f7a57600080fd5b50610469613d08565b348015610f8f57600080fd5b506105b160048036036020811015610fa657600080fd5b5035600160a060020a0316613f9b565b348015610fc257600080fd5b5061046960048036036060811015610fd957600080fd5b50600160a060020a038135811691602081013591604090910135166140ac565b34801561100557600080fd5b5061100e6142d1565b6040518084815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561105757818101518382015260200161103f565b50505050905090810190601f1680156110845780820380516001836020036101000a031916815260200191505b5094505050505060405180910390f35b3480156110a057600080fd5b506105b1600480360360c08110156110b757600080fd5b50600160a060020a0381351690602081013590604081013590606081013590608081013515159060a001351515614385565b3480156110f557600080fd5b50610492614431565b34801561110a57600080fd5b50611113614454565b604080519788526020880196909652868601949094526060860192909252608085015260a084015260c0830152519081900360e00190f35b6060600a60019054906101000a9004600160a060020a0316600160a060020a031663052c09fd6040518163ffffffff1660e060020a02815260040160006040518083038186803b15801561119e57600080fd5b505afa1580156111b2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156111db57600080fd5b81019080805160405193929190846401000000008211156111fb57600080fd5b90830190602082018581111561121057600080fd5b825186602082028301116401000000008211171561122d57600080fd5b82525081516020918201928201910280838360005b8381101561125a578181015183820152602001611242565b5050505090500160405250505090505b90565b6040805160008051602061531d8339815191528152905190819003600d01902060009061129a9033612cf6565b6112d85760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b60408051600080516020615528833981519152815290519081900360110190206113029085612cf6565b6113405760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b601a54604080517fe33d8221000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a0386811660248301528781166044830152606482018690529151919092169163e33d82219160848083019260209291908290030181600087803b1580156113bd57600080fd5b505af11580156113d1573d6000803e3d6000fd5b505050506040513d60208110156113e757600080fd5b50506040805160e060020a63a9059cbb028152600160a060020a0386811660048301526024820185905291519185169163a9059cbb916044808201926020929091908290030181600087803b15801561143f57600080fd5b505af1158015611453573d6000803e3d6000fd5b505050506040513d602081101561146957600080fd5b5060019150505b9392505050565b6040805160008051602061531d8339815191528152905190819003600d01902081565b60006114ad60038363ffffffff61455716565b92915050565b60009081526020819052604090206003015490565b604080517f52455455524e5f494e564553544d454e545f4c504152544e45520000000000008152905190819003601a01902081565b6000806000806000806018600089600160a060020a0316600160a060020a03168152602001908152602001600020878154811061153657fe5b60009182526020808320600690920290910154600160a060020a038b1683526018909152604090912080548990811061156b57fe5b906000526020600020906006020160010154601860008b600160a060020a0316600160a060020a0316815260200190815260200160002089815481106115ad57fe5b906000526020600020906006020160020154601860008c600160a060020a0316600160a060020a031681526020019081526020016000208a815481106115ef57fe5b6000918252602080832060036006909302019190910154600160a060020a038e16835260189091526040909120805460ff909216918c90811061162e57fe5b906000526020600020906006020160040154601860008e600160a060020a0316600160a060020a031681526020019081526020016000208c8154811061167057fe5b6000918252602090912060069091020160050154949d939c50919a5098509650600160a060020a03909116945092505050565b601454601e546116b89163ffffffff6145c416565b3410156116f95760405160e560020a62461bcd02815260040180806020018281038252602f8152602001806155b8602f913960400191505060405180910390fd5b600a54604080517f4f63d3ce000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152346024830152915161010090930490911691634f63d3ce9160448082019260009290919082900301818387803b15801561176c57600080fd5b505af1158015611780573d6000803e3d6000fd5b5050601654611798925090503463ffffffff61462016565b60165550565b6000828152602081905260409020600301546117c1906117bc61467d565b612cf6565b6117ff5760405160e560020a62461bcd02815260040180806020018281038252602f8152602001806152bb602f913960400191505060405180910390fd5b6118098282614681565b5050565b6040805160008051602061531d8339815191528152905190819003600d01902060009061183a9033612cf6565b6118785760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b600a5460ff16156118bd5760405160e560020a62461bcd02815260040180806020018281038252602d815260200180615548602d913960400191505060405180910390fd5b50600a805460ff1916600190811790915590565b600067016345785d8a0000341161191c5760405160e560020a62461bcd0281526004018080602001828103825260278152602001806155016027913960400191505060405180910390fd5b600080611928346139f5565b90925090508161196c5760405160e560020a62461bcd0281526004018080602001828103825260268152602001806153d56026913960400191505060405180910390fd5b61197d81600363ffffffff61472616565b82106119bd5760405160e560020a62461bcd02815260040180806020018281038252606381526020018061546f6063913960800191505060405180910390fd5b601c546040805160e060020a63a9059cbb028152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b158015611a1457600080fd5b505af1158015611a28573d6000803e3d6000fd5b505050506040513d6020811015611a3e57600080fd5b5050601f54611a53908363ffffffff61462016565b601f5550905090565b604080517f4f5241434c4500000000000000000000000000000000000000000000000000008152905190819003600601902081565b600160a060020a039081166000908152601960205260409020541690565b604080517f53555045525f41444d494e5f524f4c45000000000000000000000000000000008152905190819003601001902081565b611aec61467d565b600254600160a060020a03908116911614611b51576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60025474010000000000000000000000000000000000000000900460ff1615611bc4576040805160e560020a62461bcd02815260206004820152601e60248201527f4d616e61676572526f6c653a20616c72656164792066696e616c697a65640000604482015290519081900360640190fd5b6002805474ff00000000000000000000000000000000000000001916740100000000000000000000000000000000000000001790556040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768190600090a1565b6040805160008051602061531d8339815191528152905190819003600d019020600090611c519033612cf6565b611c8f5760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b6040805160008051602061552883398151915281529051908190036011019020611cb99085612cf6565b611cf75760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152306024830152604482018590529151918516916323b872dd916064808201926020929091908290030181600087803b15801561143f57600080fd5b604080517f524546455245525f524f4c4500000000000000000000000000000000000000008152905190819003600c01902081565b6040805160008051602061531d8339815191528152905190819003600d019020600090611dcb9033612cf6565b611e095760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b600a5460ff16611e4d5760405160e560020a62461bcd02815260040180806020018281038252602f8152602001806154d2602f913960400191505060405180910390fd5b50600a805460ff19169055600190565b6000611e6761467d565b600254600160a060020a03908116911614611ecc576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60025474010000000000000000000000000000000000000000900460ff1615611f3f576040805160e560020a62461bcd02815260206004820152601e60248201527f4d616e61676572526f6c653a20616c72656164792066696e616c697a65640000604482015290519081900360640190fd5b611f4983836117ff565b50600192915050565b601e5490565b60606006600001805480602002602001604051908101604052809291908181526020018280548015611fb357602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611f95575b5050505050905090565b600b54604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561203057600080fd5b505af1158015612044573d6000803e3d6000fd5b505050506040513d602081101561205a57600080fd5b5050600a54604080517f15b60639000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152602482018790526044820186905284151560648301523360848301529151600093849384938493610100909304909116916315b606399160a48082019260809290919082900301818787803b1580156120ee57600080fd5b505af1158015612102573d6000803e3d6000fd5b505050506040513d608081101561211857600080fd5b5080516020820151604083015160609093015191965094509092509050831561247357801561246e576000612169606461215d6012548a6145c490919063ffffffff16565b9063ffffffff61472616565b90506000612187606461215d6013548b6145c490919063ffffffff16565b9050600061219b898463ffffffff61476816565b33600090815260196020526040902054909150600160a060020a031615612325576121cc818363ffffffff61476816565b600b5433600090815260196020908152604080832054815160e060020a63a9059cbb028152600160a060020a0391821660048201526024810189905291519596509093169363a9059cbb93604480820194918390030190829087803b15801561223457600080fd5b505af1158015612248573d6000803e3d6000fd5b505050506040513d602081101561225e57600080fd5b5050600b546040805160008051602061538383398151915281529051908190036014019020600160a060020a039091169063a9059cbb906122a0906000612cd8565b856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156122f357600080fd5b505af1158015612307573d6000803e3d6000fd5b505050506040513d602081101561231d57600080fd5b506123e59050565b600b546040805160008051602061538383398151915281529051908190036014019020600160a060020a039091169063a9059cbb90612365906000612cd8565b856040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156123b857600080fd5b505af11580156123cc573d6000803e3d6000fd5b505050506040513d60208110156123e257600080fd5b50505b600b546040805160e060020a63a9059cbb028152600160a060020a038881166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b15801561243e57600080fd5b505af1158015612452573d6000803e3d6000fd5b505050506040513d602081101561246857600080fd5b50505050505b61250b565b6000831180156124805750805b1561250b57600b546040805160e060020a63a9059cbb028152600160a060020a038581166004830152602482018790529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156124de57600080fd5b505af11580156124f2573d6000803e3d6000fd5b505050506040513d602081101561250857600080fd5b50505b5050505050505050565b61251e336147aa565b565b600080600c60009054906101000a9004600160a060020a0316600160a060020a031663313ce5676040518163ffffffff1660e060020a02815260040160206040518083038186803b15801561257457600080fd5b505afa158015612588573d6000803e3d6000fd5b505050506040513d602081101561259e57600080fd5b5051600e549091506114709060ff8316600a0a9061215d90869063ffffffff6145c416565b600a546101009004600160a060020a031690565b6040805160008051602061531d8339815191528152905190819003600d0190206000906126049033612cf6565b6126425760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b604080517f53555045525f41444d494e5f524f4c45000000000000000000000000000000008152905190819003601001902061267e9085612cf6565b6126bc5760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b81156127a957600160a060020a03831661271057604051600160a060020a0385169083156108fc029084906000818181858888f19350505050158015612706573d6000803e3d6000fd5b5060019050611470565b82600160a060020a031663a9059cbb85846040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b15801561277357600080fd5b505af1158015612787573d6000803e3d6000fd5b505050506040513d602081101561279d57600080fd5b50600191506114709050565b5060009392505050565b600a54604080517f15b60639000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820186905234604483015284151560648301523360848301529151600093849384938493610100909304909116916315b606399160a48082019260809290919082900301818787803b15801561284457600080fd5b505af1158015612858573d6000803e3d6000fd5b505050506040513d608081101561286e57600080fd5b50805160208201516040830151606090930151919650945090925090508315612a6b5780612a665760006128b2606461215d601254346145c490919063ffffffff16565b905060006128d0606461215d601354346145c490919063ffffffff16565b905060006128e4348463ffffffff61476816565b33600090815260196020526040902054909150600160a060020a0316156129c657612915818363ffffffff61476816565b33600090815260196020526040808220549051929350600160a060020a03169184156108fc0291859190818181858888f1935050505015801561295c573d6000803e3d6000fd5b506040805160008051602061538383398151915281529051908190036014019020612988906000612cd8565b600160a060020a03166108fc849081150290604051600060405180830381858888f193505050501580156129c0573d6000803e3d6000fd5b50612a2b565b60408051600080516020615383833981519152815290519081900360140190206129f1906000612cd8565b600160a060020a03166108fc849081150290604051600060405180830381858888f19350505050158015612a29573d6000803e3d6000fd5b505b604051600160a060020a0386169082156108fc029083906000818181858888f19350505050158015612a61573d6000803e3d6000fd5b505050505b612ab4565b600083118015612a79575080155b15612ab457604051600160a060020a0383169084156108fc029085906000818181858888f1935050505015801561250b573d6000803e3d6000fd5b50505050505050565b600160a060020a031660009081526018602052604090205490565b60606003600001805480602002602001604051908101604052809291908181526020018280548015611fb357602002820191906000526020600020908154600160a060020a03168152600190910190602001808311611f95575050505050905090565b601454600090612b5a90670de0b6b3a76400009063ffffffff6145c416565b601c54604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018490529051929350600160a060020a03909116916323b872dd916064808201926020929091908290030181600087803b158015612bd057600080fd5b505af1158015612be4573d6000803e3d6000fd5b505050506040513d6020811015612bfa57600080fd5b5050601e54612c3090612c2190670de0b6b3a76400009061215d908563ffffffff6145c416565b6016549063ffffffff61462016565b601655600a54601e54610100909104600160a060020a031690634f63d3ce908490612c5b90856145c4565b6040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050600060405180830381600087803b158015612cad57600080fd5b505af1158015612cc1573d6000803e3d6000fd5b505050505050565b600254600160a060020a031690565b6000828152602081905260408120611470908363ffffffff6147f216565b6000828152602081905260408120611470908363ffffffff61452c16565b6040805160008051602061531d8339815191528152905190819003600d019020600090612d419033612cf6565b612d7f5760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b50600e55600190565b600081815260016020908152604091829020805483518184028101840190945280845260609392830182828015612de857602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311612dca575b50505050509050919050565b600080600080600a60019054906101000a9004600160a060020a0316600160a060020a0316639f2ac7f887876040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a031681526020018281526020019250505060806040518083038186803b158015612e7057600080fd5b505afa158015612e84573d6000803e3d6000fd5b505050506040513d6080811015612e9a57600080fd5b508051602082015160408301516060909301519199909850919650945092505050565b60006114ad60068363ffffffff61455716565b6040805160008051602061531d8339815191528152905190819003600d019020600090612efd9033612cf6565b612f3b5760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b612f4760098b8b615200565b5050600a805460ff191697151597909717909655600d9390935560129190915560135560145550601555506001919050565b612f823361149a565b612fc05760405160e560020a62461bcd02815260040180806020018281038252602c8152602001806155e7602c913960400191505060405180910390fd5b612fc9816147fe565b50565b6040805160008051602061531d8339815191528152905190819003600d019020600090612ff99033612cf6565b6130375760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b600f859055601084905561304d60118484615200565b50600195945050505050565b604080516000805160206153838339815191528152905190819003601401902081565b60008181526020819052604081206114ad90614846565b6040805160008051602061531d8339815191528152905190819003600d0190206000906130c09033612cf6565b6130fe5760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b6040805160008051602061538383398151915281529051908190036014019020849061312a9082612cf6565b8061316c5750604080517f53555045525f41444d494e5f524f4c45000000000000000000000000000000008152905190819003601001902061316c9082612cf6565b806132055750601b54604080517f24851914000000000000000000000000000000000000000000000000000000008152600160a060020a038481166004830152915191909216916324851914916024808301926020929190829003018186803b1580156131d857600080fd5b505afa1580156131ec573d6000803e3d6000fd5b505050506040513d602081101561320257600080fd5b50515b1561324157600160a060020a0384811660009081526019602052604090208054600160a060020a0319169185169190911790556001915061327b565b60405160e560020a62461bcd02815260040180806020018281038252602381526020018061542b6023913960400191505060405180910390fd5b509392505050565b604080516000805160206155288339815191528152905190819003601101902081565b600a54601c54600d54601d546009805460408051602060026101006001861615026000190190941693909304601f81018490048402820184019092528181526060976000978897889788979660ff90941695600160a060020a039093169491939092879183018282801561335b5780601f106133305761010080835404028352916020019161335b565b820191906000526020600020905b81548152906001019060200180831161333e57829003601f168201915b50505050509450945094509450945094509091929394565b600082815260208190526040902060030154613391906117bc61467d565b6133cf5760405160e560020a62461bcd0281526004018080602001828103825260308152602001806153fb6030913960400191505060405180910390fd5b6118098282614851565b600080600061340b604051808060008051602061531d833981519152815250600d019050604051809103902033612cf6565b6134495760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b6040805160008051602061533d833981519152815290519081900360140190206134739085612cf6565b6134b15760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b600080806134be87612abd565b90506000805b828110156136af57600160a060020a03891660009081526018602052604081208054839081106134f057fe5b60009182526020909120600690910201600381015490915060ff16156136a65760058101546004820154600160a060020a0390911695501561362557600160a060020a038516613591576004810154604051600160a060020a038c169180156108fc02916000818181858888f19350505050158015613573573d6000803e3d6000fd5b50600481015461358a90879063ffffffff61462016565b9550613625565b84600160a060020a031663a9059cbb8b83600401546040518363ffffffff1660e060020a0281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b1580156135f857600080fd5b505af115801561360c573d6000803e3d6000fd5b505050506040513d602081101561362257600080fd5b50505b600160a060020a038a16600090815260186020526040812080548490811061364957fe5b60009182526020808320600692909202909101600301805460ff191693151593909317909255600160a060020a038c16815260189091526040812080548490811061369057fe5b9060005260206000209060060201600401819055505b506001016134c4565b50979296509094509092505050565b6040805160008051602061531d8339815191528152905190819003600d0190206000906136eb9033612cf6565b6137295760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b6040805160008051602061533d833981519152815290519081900360140190206137539085612cf6565b6137915760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b61379c848484614941565b949350505050565b6137ad3361149a565b6137eb5760405160e560020a62461bcd02815260040180806020018281038252602c8152602001806155e7602c913960400191505060405180910390fd5b600a8054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b604080517f52455455524e5f494e564553544d454e545f4c504152544e45520000000000008152905190819003601a01902060009061385f9033612cf6565b61389d5760405160e560020a62461bcd02815260040180806020018281038252603e815260200180615637603e913960400191505060405180910390fd5b600160a060020a0385166000908152601860205260409020805460019190869081106138c557fe5b906000526020600020906006020160030160006101000a81548160ff021916908315150217905550826018600087600160a060020a0316600160a060020a03168152602001908152602001600020858154811061391e57fe5b906000526020600020906006020160040181905550816018600087600160a060020a0316600160a060020a03168152602001908152602001600020858154811061396457fe5b906000526020600020906006020160050160006101000a815481600160a060020a030219169083600160a060020a0316021790555060019050949350505050565b6139ae3361149a565b6139ec5760405160e560020a62461bcd02815260040180806020018281038252602c8152602001806155e7602c913960400191505060405180910390fd5b61251e33614c25565b6000806000613a11601f54601d5461476890919063ffffffff16565b90506000613a308261215d601d54601e546145c490919063ffffffff16565b9050613a4e8161215d87670de0b6b3a764000063ffffffff6145c416565b601f54601d54613a639163ffffffff61476816565b935093505050915091565b600a54604080517f9b58a9a8000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152602482018690523360448301528415156064830152915161010090930490911691639b58a9a89160848082019260009290919082900301818387803b158015613af057600080fd5b505af1158015612ab4573d6000803e3d6000fd5b613b0d3361149a565b613b4b5760405160e560020a62461bcd02815260040180806020018281038252602c8152602001806155e7602c913960400191505060405180910390fd5b612fc981614c6d565b6040805160008051602061531d8339815191528152905190819003600d019020600090613b819033612cf6565b613bbf5760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b6040805160008051602061552883398151915281529051908190036011019020613be99084612cf6565b613c275760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b601a54604080517f1208333a000000000000000000000000000000000000000000000000000000008152306004820152600160a060020a0386811660248301526044820186905291519190921691631208333a9160648083019260209291908290030181600087803b158015613c9c57600080fd5b505af1158015613cb0573d6000803e3d6000fd5b505050506040513d6020811015613cc657600080fd5b5050604051600160a060020a0384169083156108fc029084906000818181858888f19350505050158015613cfe573d6000803e3d6000fd5b5060019392505050565b6000806000601b60009054906101000a9004600160a060020a0316600160a060020a031663e3bbb5656040518163ffffffff1660e060020a02815260040160206040518083038186803b158015613d5e57600080fd5b505afa158015613d72573d6000803e3d6000fd5b505050506040513d6020811015613d8857600080fd5b5051604080517f8e15f4730000000000000000000000000000000000000000000000000000000081528151600160a060020a0390931692638e15f47392600480840193919291829003018186803b158015613de257600080fd5b505afa158015613df6573d6000803e3d6000fd5b505050506040513d6040811015613e0c57600080fd5b50805160209091015190925090506000613e3b33613e368560ff8616600a0a63ffffffff61472616565b612df4565b5091925060009150508115613f5357601c546040805160e060020a63a9059cbb028152336004820152602481018590529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b158015613ea157600080fd5b505af1158015613eb5573d6000803e3d6000fd5b505050506040513d6020811015613ecb57600080fd5b5050600a54604080517fbb7598060000000000000000000000000000000000000000000000000000000081523360048201529051610100909204600160a060020a03169163bb7598069160248082019260009290919082900301818387803b158015613f3657600080fd5b505af1158015613f4a573d6000803e3d6000fd5b50505050600190505b604080518381523360208201528215158183015290517f9d6ad47cb919b7aa19b4e438ceeaa7b16afb7e9a6afe89335044b64c3cb4adca9181900360600190a1935050505090565b613fa361467d565b600254600160a060020a03908116911614614008576040805160e560020a62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600160a060020a0381166140505760405160e560020a62461bcd02815260040180806020018281038252602681526020018061535d6026913960400191505060405180910390fd5b600254604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360028054600160a060020a031916600160a060020a0392909216919091179055565b6040805160008051602061531d8339815191528152905190819003600d0190206000906140d99033612cf6565b6141175760405160e560020a62461bcd0281526004018080602001828103825260328152602001806153a36032913960400191505060405180910390fd5b6040805160008051602061533d833981519152815290519081900360140190206141419085612cf6565b61417f5760405160e560020a62461bcd0281526004018080602001828103825260338152602001806152ea6033913960400191505060405180910390fd5b600061419b606461215d601254876145c490919063ffffffff16565b905060006141b9606461215d601354886145c490919063ffffffff16565b600160a060020a03878116600090815260196020526040812054929350911615614204576141fd826141f1888663ffffffff61476816565b9063ffffffff61476816565b9050614217565b614214868463ffffffff61476816565b90505b600160a060020a039687166000908152601860209081526040808320815160c08101835294855242858401908152600d5492860192835260608601858152608087018681529a8d1660a088019081528354600180820186559488529590962096516006909502909601938455518382015590516002830155925160038201805460ff1916911515919091179055955160048701555160059095018054600160a060020a031916959097169490941790955550909392505050565b6000806060600f546010546011808054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156143735780601f1061434857610100808354040283529160200191614373565b820191906000526020600020905b81548152906001019060200180831161435657829003601f168201915b50505050509050925092509250909192565b600a54604080517f854fe7ac000000000000000000000000000000000000000000000000000000008152600160a060020a03898116600483015260248201899052604482018890526064820187905285151560848301523360a483015284151560c483015291516101009093049091169163854fe7ac9160e48082019260009290919082900301818387803b15801561441d57600080fd5b505af1158015612508573d6000803e3d6000fd5b6040805160008051602061533d8339815191528152905190819003601401902081565b600e5460125460135460145460155460165460175490919293949596565b61447c8282614557565b156144d1576040805160e560020a62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b600160a060020a03166000818152600183810160209081526040808420805460ff191684179055855492830186558584528184209092018054600160a060020a03191685179055845493835260029094019093529190912055565b600061147083600160a060020a038416614cb4565b600061147083600160a060020a03841684614ccc565b6000600160a060020a0382166145a15760405160e560020a62461bcd0281526004018080602001828103825260228152602001806155966022913960400191505060405180910390fd5b50600160a060020a03166000908152600191909101602052604090205460ff1690565b6000826145d3575060006114ad565b828202828482816145e057fe5b04146114705760405160e560020a62461bcd0281526004018080602001828103825260218152602001806155756021913960400191505060405180910390fd5b600082820183811015611470576040805160e560020a62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b3390565b600082815260208190526040902061469f908263ffffffff61454116565b156118095760008281526001602081815260408320805492830181558352909120018054600160a060020a031916600160a060020a0383161790556146e261467d565b600160a060020a031681600160a060020a0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061147083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614d41565b600061147083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614de6565b6147bb60068263ffffffff614e4316565b604051600160a060020a038216907f9c8e7d83025bef8a04c664b2f753f64b8814bdb7e27291d7e50935f18cc3c71290600090a250565b60006114708383614f8b565b61480f60038263ffffffff61447216565b604051600160a060020a038216907f3f5f1db80208f0d453083a86e16909cecc1e95e2618d5d927c93ace22b8200fc90600090a250565b60006114ad82614ff2565b600082815260208190526040902061486f908263ffffffff614ff616565b156118095760005b6000838152600160205260409020548110156148f45760008381526001602052604090208054600160a060020a0384169190839081106148b357fe5b600091825260209091200154600160a060020a031614156148ec5760008381526001602052604090206148e790829061500b565b6148f4565b600101614877565b506148fd61467d565b600160a060020a031681600160a060020a0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600a5460009060ff166149885760405160e560020a62461bcd0281526004018080602001828103825260248152602001806156136024913960400191505060405180910390fd5b60408051600080516020615383833981519152815290519081900360140190206000906149b59082612cd8565b905060006149ea620186a06149de8661215d606461215d6012548c6145c490919063ffffffff16565b9063ffffffff6145c416565b90506000614a13620186a06149de8761215d606461215d6013548d6145c490919063ffffffff16565b600160a060020a03888116600090815260196020526040812054929350911615614ad157600160a060020a0380891660009081526019602052604080822054905192169184156108fc0291859190818181858888f19350505050158015614a7e573d6000803e3d6000fd5b50604051600160a060020a0385169084156108fc029085906000818181858888f19350505050158015614ab5573d6000803e3d6000fd5b50614aca826141f1898663ffffffff61476816565b9050614b1b565b604051600160a060020a0385169084156108fc029085906000818181858888f19350505050158015614b07573d6000803e3d6000fd5b50614b18878463ffffffff61476816565b90505b600160a060020a038881166000908152601860209081526040808320815160c08101835286815242818501908152600d54938201938452606082018681526080830187815260a08401888152855460018082018855968a529790982093516006909702909301958655905192850192909255915160028401555160038301805460ff1916911515919091179055516004820155905160059091018054600160a060020a03191691909216179055601654614bd59088614620565b601655604080518881529051600160a060020a038a16917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a2506001979650505050505050565b614c3660038263ffffffff614e4316565b604051600160a060020a038216907f26b6063d78aefcf96f02ff06bc9822b5a623278253add7fffa5fb453db39981090600090a250565b614c7e60068263ffffffff61447216565b604051600160a060020a038216907e47706786c922d17b39285dc59d696bafea72c0b003d3841ae1202076f4c2e490600090a250565b60009081526002919091016020526040902054151590565b6000614cd88484614cb4565b614d3957508254600180820185556000858152602080822090930185905581860180548084018255908252838220018054600160a060020a031916600160a060020a0386161790558554858252600287019093526040902091909155611470565b506000611470565b60008183614dd05760405160e560020a62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614d95578181015183820152602001614d7d565b50505050905090810190601f168015614dc25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581614ddc57fe5b0495945050505050565b60008184841115614e3b5760405160e560020a62461bcd028152602060048201818152835160248401528351909283926044909101919085019080838360008315614d95578181015183820152602001614d7d565b505050900390565b614e4d8282614557565b614e8b5760405160e560020a62461bcd02815260040180806020018281038252602181526020018061544e6021913960400191505060405180910390fd5b600160a060020a03811660009081526002830160205260409020548015614f665782546000198083019190810190600090869083908110614ec857fe5b6000918252602090912001548654600160a060020a0390911691508190879085908110614ef157fe5b60009182526020909120018054600160a060020a031916600160a060020a03929092169190911790558554869080614f2557fe5b6000828152602080822083016000199081018054600160a060020a0319169055909201909255600160a060020a038716825260028801905260408120555050505b50600160a060020a03166000908152600190910160205260409020805460ff19169055565b81546000908210614fd05760405160e560020a62461bcd0281526004018080602001828103825260228152602001806152996022913960400191505060405180910390fd5b826000018281548110614fdf57fe5b9060005260206000200154905092915050565b5490565b600061147083600160a060020a0384166150b5565b815b8154600019018110156150845781816001018154811061502957fe5b9060005260206000200160009054906101000a9004600160a060020a031682828154811061505357fe5b60009182526020909120018054600160a060020a031916600160a060020a039290921691909117905560010161500d565b508080548061508f57fe5b60008281526020902081016000199081018054600160a060020a03191690550190555050565b600081815260028301602052604081205480156151f657835460001980830191908101906000908790839081106150e857fe5b906000526020600020015490508087600001848154811061510557fe5b600091825260209091200155865487908061511c57fe5b60019003818190600052602060002001600090559055600087600101838154811061514357fe5b600091825260209091200154600189018054600160a060020a03909216925082918690811061516e57fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550876001018054806151a957fe5b6000828152602080822083016000199081018054600160a060020a031916905590920190925592815260028901909252506040808220600194850190558682528120555091506114ad9050565b60009150506114ad565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106152415782800160ff1982351617855561526e565b8280016001018555821561526e579182015b8281111561526e578235825591602001919060010190615253565b5061527a92915061527e565b5090565b61126a91905b8082111561527a576000815560010161528456fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e74496e766573746d656e74506f6f6c3a207468652073656e64657220646f6573206e6f742068617665207065726d697373696f6e504f4f4c5f5245474953545259000000000000000000000000000000000000004c494d495445445f504152544e45525f524f4c450000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737347454e4552414c5f504152544e45525f524f4c45000000000000000000000000526f6c65733a2063616c6c657220646f6573206e6f7420686176652074686520706f6f6c20726567797374727920726f6c65546f6b656e73616c65506f6f6c3a2077652063616e27742073656c6c203020746f6b656e732e416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f207265766f6b655468652073656e64657220646f6573206e6f742068617665207065726d697373696f6e526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65546f6b656e73616c65506f6f6c3a2077652063616e27742073656c6c206d6f7265207468616e203330252066726f6d206f6e65207472616e73616374696f6e2e20506c6561736520646563726561736520696e766573746d656e7420616d6f756e742e496e766573746d656e74506f6f6c3a2074686520706f6f6c20697320616c7265616479206465616374697661746564546f6b656e73616c65506f6f6c3a206d696e696d616c20707572636861736520302e31424e422e535441525455505f5445414d5f524f4c45000000000000000000000000000000496e766573746d656e74506f6f6c3a2074686520706f6f6c20697320616c726561647920616374697661746564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526f6c65733a206163636f756e7420697320746865207a65726f20616464726573734f70656e42695365613a20796f75206d7573742073656e64206d696e696d616c20616d6f756e74206f72206d6f72655465616d526f6c653a2063616c6c657220646f6573206e6f74206861766520746865205465616d20726f6c65496e766573746d656e74506f6f6c3a20706f6f6c206465706f73697420626c6f636b6564526f6c65733a2063616c6c657220646f6573206e6f742068617665207468652072657475726e20696e7665736d656e74206c706172746e657220726f6c65a26469706673582212202582e8c1b610cf4f38d2c76570828b9103035756d5b050bcb330ab52b6b1cb6264736f6c63430006080033416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e2061646d696e20746f206772616e744f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f206164647265737353555045525f41444d494e5f524f4c4500000000000000000000000000000000000000000000000000000000490dba6180b089d8e36ebb1e56a33f1ae9b96b87000000000000000000000000da22293aa75e005f7a6411a85f5ae053ebafd3a9000000000000000000000000027d865ef0b4d1372affe941272f47e013cac66900000000000000000000000068af405930877980147caa9fa942ddd087ef513f00000000000000000000000051b486692321af984bc75d105c54419e35d963b90000000000000000000000004eac987ccbb935348570fd9fe963fb4d17c6571a000000000000000000000000aba81bdbdbf45edca8498d90ab1deb9d85186930000000000000000000000000a5ca66874ca008d7bcd3f3f817a87f98bea75fd20000000000000000000000000000000000000000000001b1ae4d6e2ef5000000000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d56

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000490dba6180b089d8e36ebb1e56a33f1ae9b96b87000000000000000000000000da22293aa75e005f7a6411a85f5ae053ebafd3a9000000000000000000000000027d865ef0b4d1372affe941272f47e013cac66900000000000000000000000068af405930877980147caa9fa942ddd087ef513f00000000000000000000000051b486692321af984bc75d105c54419e35d963b90000000000000000000000004eac987ccbb935348570fd9fe963fb4d17c6571a000000000000000000000000aba81bdbdbf45edca8498d90ab1deb9d85186930000000000000000000000000a5ca66874ca008d7bcd3f3f817a87f98bea75fd20000000000000000000000000000000000000000000001b1ae4d6e2ef5000000000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d56

-----Decoded View---------------
Arg [0] : tokenForTokensale (address): 0x490dba6180b089d8e36ebb1e56a33f1ae9b96b87
Arg [1] : superAdmin (address): 0xda22293aa75e005f7a6411a85f5ae053ebafd3a9
Arg [2] : gPartner (address): 0x027d865ef0b4d1372affe941272f47e013cac669
Arg [3] : lPartner (address): 0x68af405930877980147caa9fa942ddd087ef513f
Arg [4] : team (address): 0x51b486692321af984bc75d105c54419e35d963b9
Arg [5] : poolRegistry (address): 0x4eac987ccbb935348570fd9fe963fb4d17c6571a
Arg [6] : returnInvestmentLpartner (address): 0xaba81bdbdbf45edca8498d90ab1deb9d85186930
Arg [7] : assetsManageTeam (address): 0xa5ca66874ca008d7bcd3f3f817a87f98bea75fd2
Arg [8] : initialBalance (uint256): 8000000000000000000000
Arg [9] : busdContract (address): 0xe9e7cea3dedca5984780bafc599bd69add087d56

-----Encoded View---------------
10 Constructor Arguments found :
Arg [0] : 000000000000000000000000490dba6180b089d8e36ebb1e56a33f1ae9b96b87
Arg [1] : 000000000000000000000000da22293aa75e005f7a6411a85f5ae053ebafd3a9
Arg [2] : 000000000000000000000000027d865ef0b4d1372affe941272f47e013cac669
Arg [3] : 00000000000000000000000068af405930877980147caa9fa942ddd087ef513f
Arg [4] : 00000000000000000000000051b486692321af984bc75d105c54419e35d963b9
Arg [5] : 0000000000000000000000004eac987ccbb935348570fd9fe963fb4d17c6571a
Arg [6] : 000000000000000000000000aba81bdbdbf45edca8498d90ab1deb9d85186930
Arg [7] : 000000000000000000000000a5ca66874ca008d7bcd3f3f817a87f98bea75fd2
Arg [8] : 0000000000000000000000000000000000000000000001b1ae4d6e2ef5000000
Arg [9] : 000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d56


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.