Contract 0x1b02817CC74076d8F8D5Ea7159524CC16e983785 1

 

Contract Overview

Balance:
925.5086846507680887 MATIC

MATIC Value:
$824.91 (@ $0.89/MATIC)

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xd4bda1c64462273ca55b7f4904f77c7ef0fc7ef6159a76d9e9e84383315edf48Deposit365492782022-12-07 19:47:536 hrs 54 mins ago0x66bc3025dd6459690eb6558dc6d6312c3c125f5a IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837857 MATIC0.00415014958844.66656896
0xb7dfb8691df7758ddbf46e784e048a50678c41132028313090bf42dadafb2430Deposit364825352022-12-06 4:41:271 day 22 hrs ago0x66bc3025dd6459690eb6558dc6d6312c3c125f5a IN  0x1b02817cc74076d8f8d5ea7159524cc16e98378510 MATIC0.00363046211333.000001029
0x380c5b347c59b47dbf1f6fcfc4b7240b3dcf7733464d476dffe8c4a05ae55654Deposit360694892022-11-26 0:19:2412 days 2 hrs ago0x66bc3025dd6459690eb6558dc6d6312c3c125f5a IN  0x1b02817cc74076d8f8d5ea7159524cc16e98378514 MATIC0.00614615100333.00000002
0xbd23945eb479b19334694dbc67d882e7f0ca250309fb123ea8932dd6a9e44eb7Compound360048082022-11-24 10:47:3513 days 15 hrs ago0x80c17147571d340b0538139f4221335103f83171 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.005624354576 42.500884695
0x57703f0b5b524d723ed07b2c6899ddc899ae2ea5fe1832c3a4f831199e6214f9Deposit360047112022-11-24 10:44:1313 days 15 hrs ago0xf2c579082fe10d57331d0cd66843c4d6777ea48a IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837855 MATIC0.005052800199 44.788769124
0xe5780762f5d7358f03f1c148a05a8c05409edca9c7f9498510192f5cb91ee4fbHarvest360046992022-11-24 10:43:4913 days 15 hrs ago0xf2c579082fe10d57331d0cd66843c4d6777ea48a IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.002647231547 47.232350479
0x8222af601e42967e7623faa3e07d2346fc663897bbadf9c7fbb1aa34cd29ab0cWithdraw359461072022-11-23 0:22:4515 days 2 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.0007966135833.001101137
0x5b91d2400b66bb2deb56ab756cb52d67819c5c34a312bb06ce5dddd2a4efc6b8Withdraw359387402022-11-22 20:09:0915 days 6 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.00080805296333.474997439
0x3f806aa41461e7bb48ced269953baf720eeae152b217fa209804fc1e12551be5Compound359366042022-11-22 18:51:3615 days 7 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.010454079813108.743743835
0x38f9ed89becf1cef6e10cdc3c15be1c7c03e4bfc098a1d012d0e7d06cd6d0a0eCompound359327942022-11-22 16:38:2815 days 10 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.013526125886140.699286278
0x505d2049591fad4c28e84b6fbe34099372eb6b6317c68452381c4f7099d85430Deposit359327752022-11-22 16:37:5015 days 10 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837851.1 MATIC0.012442326028133.912284782
0xa5de5f9313aa44a3fd86a52494bee26bb9818c4e1e20bd00e55c23d710df50acCompound358751382022-11-21 7:12:4116 days 19 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.00317299243933.005590464
0xc68b2457134915577dd11a0e3e3136cb57608f0bf18c18f808acd32ae5cf4092Deposit358751252022-11-21 7:12:1116 days 19 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850.1 MATIC0.0036311576433.006323201
0x310970d06428d4d4cd30a929d116ab7436a7d8c471b611b457f6ad3af6bd08b8Harvest358041312022-11-19 13:56:3618 days 12 hrs ago0x7e6eb2123463ca93bd0ef64bbcdde8db16d77c42 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.001741513972 30.001791183
0xf78912e10a6ceac5a4b0c2190546727cfaee69369da4422e6f36924823a159dfHarvest358039882022-11-19 13:51:4218 days 12 hrs ago0x7e6eb2123463ca93bd0ef64bbcdde8db16d77c42 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.002768124539 30.007745942
0xd6d8b152566ff48a8baa83721909f68392bad5526f4ea42fc2a413edd1c9c3f6Harvest356403012022-11-15 14:18:5822 days 12 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.00361504405764.50022406
0xe416d5513588c0ccbc3fbb44d478b202d281c084f46fcbab00fa698dd9a73fefWithdraw356402922022-11-15 14:18:4022 days 12 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.00401043082965.901418614
0x13dc27a083a0ad1c0dab6bb513a66f824732d4066d47d314976c8f4a5cd7a70eCompound356222562022-11-15 3:41:1422 days 23 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.00323733250433.674858321
0xd308d5dc4682098db8657c8fb94ba0012820d0fdd6271b513b6ab6b56ad6c27eCompound356222502022-11-15 3:41:0222 days 23 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.0032335272433.635275814
0x3933d72c9ffe86b3046dd199d37d13cbc4d013cafbad77b2ddad2238cacf55a4Deposit356221382022-11-15 3:37:1022 days 23 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850.3 MATIC0.00375632835234.144093955
0x1403ca3dc7665239547a16c3b77a1a2114f60392bcf2d974ebc3dd1a508dfda4Harvest355541732022-11-13 12:17:0724 days 14 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.00378097724167.460831824
0x25318e14eafa2bae5865bbbf68746c3eb9466374a587d13f292cef23ed397e52Withdraw355541642022-11-13 12:16:4924 days 14 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.00416568182368.412110547
0x756ea8ea82af78796f30bba7e806ebf289fabe3409c8b839368675dfd1808760Harvest355049352022-11-12 5:56:3125 days 20 hrs ago0x7343d1fa5b5ceb3cc6ed1b49b569f3edab38d0f0 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.017380958625 299.429059657
0xe4eda525e47e9a165f96ad64722283435267ba961b4ab92683fc18b9b8e861abWithdraw355049232022-11-12 5:56:0725 days 20 hrs ago0x7343d1fa5b5ceb3cc6ed1b49b569f3edab38d0f0 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.03171955859 521.026274914
0x92836415828ab3fd33c01914a9cc76acdde80519a46f87dc9b2d76a9167e052fCompound355041482022-11-12 5:24:0725 days 21 hrs ago0x8b7230f45209306aee243cb0fee41438f1e15f94 IN  0x1b02817cc74076d8f8d5ea7159524cc16e9837850 MATIC0.0064190950166.771675356
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xe5780762f5d7358f03f1c148a05a8c05409edca9c7f9498510192f5cb91ee4fb360046992022-11-24 10:43:4913 days 15 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850xf2c579082fe10d57331d0cd66843c4d6777ea48a6.146505061703995856 MATIC
0x310970d06428d4d4cd30a929d116ab7436a7d8c471b611b457f6ad3af6bd08b8358041312022-11-19 13:56:3618 days 12 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x7e6eb2123463ca93bd0ef64bbcdde8db16d77c420.000000271108260296 MATIC
0xf78912e10a6ceac5a4b0c2190546727cfaee69369da4422e6f36924823a159df358039882022-11-19 13:51:4218 days 12 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x7e6eb2123463ca93bd0ef64bbcdde8db16d77c420.004424766416603108 MATIC
0xd6d8b152566ff48a8baa83721909f68392bad5526f4ea42fc2a413edd1c9c3f6356403012022-11-15 14:18:5822 days 12 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x8b7230f45209306aee243cb0fee41438f1e15f940.251326541706211563 MATIC
0x1403ca3dc7665239547a16c3b77a1a2114f60392bcf2d974ebc3dd1a508dfda4355541732022-11-13 12:17:0724 days 14 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x8b7230f45209306aee243cb0fee41438f1e15f940.244770497590664407 MATIC
0x756ea8ea82af78796f30bba7e806ebf289fabe3409c8b839368675dfd1808760355049352022-11-12 5:56:3125 days 20 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x7343d1fa5b5ceb3cc6ed1b49b569f3edab38d0f041.750273271272140221 MATIC
0x9323f298ab21c7a16a5bfbc3fc2f81ec1e63280c2471ed5549e9bdf490a5995c353536352022-11-08 11:55:1929 days 14 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x7343d1fa5b5ceb3cc6ed1b49b569f3edab38d0f0489.278682419438151772 MATIC
0x1401ecee58b6c7c97bf6e5469ae7a4a7201473dfca702178351f5e5ad3757989352504232022-11-05 23:44:0132 days 2 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x8b7230f45209306aee243cb0fee41438f1e15f9410.643384582342184149 MATIC
0xba8890e8d044d6dca7d768c791f912e6346a02da2581805982fbe9753e7a5d80351242492022-11-02 21:48:5335 days 4 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x0edb17996dabd08ae5551bafca04085932a32b4b178.752288882208588014 MATIC
0x06c3c325709ee5199209be0b5a22d600469be56cf3a166511ef9f336ca4f64ca347095142022-10-23 17:55:5445 days 8 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x816b08a376f3dd25c5b28e230d8139aa74e72aef9.922763035829851199 MATIC
0x4a96b91e4f15c5c2f884b55c175de40d360e69f9c7fc995f98aa8fd93df08314345963972022-10-20 23:54:0048 days 2 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x199aa8cfbbf7f1690ff873f9fe5ed2ddd21ccc0a0.33421695840856812 MATIC
0x70704e1b970a959b1057155b8e94e45978d857cda4d53b0f9e46e65d1a6a443c343567802022-10-15 1:55:1354 days 47 mins ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x8b7230f45209306aee243cb0fee41438f1e15f9415.256535390101432202 MATIC
0x8834463fc78dccf05d66c123480b5863d9ddd7822352b20f9c2de598b4876b9d343539742022-10-15 0:18:0054 days 2 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x8b7230f45209306aee243cb0fee41438f1e15f9413.663946725637120143 MATIC
0xeb7bd47a7b17e8a054b0e217124fc5900832431dea4b22d8149d748aac12df9d343539022022-10-15 0:15:3254 days 2 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x8b7230f45209306aee243cb0fee41438f1e15f940.011346375227341391 MATIC
0xc45ec8b46806451947e44b1ead01fb9b1f6495c7e52e5a73fcdae3b2c6df942e343278482022-10-14 9:04:3354 days 17 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x8b7230f45209306aee243cb0fee41438f1e15f940.00708713669857254 MATIC
0x5fa298b3430f55e01fb49864dd9f3776bd7c1f76a8c51019e0223fea07a012d8342965172022-10-13 14:51:5755 days 11 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x199aa8cfbbf7f1690ff873f9fe5ed2ddd21ccc0a2.093046990272990213 MATIC
0x01d69d077fdfc83a6a6b22b75f54d76b958e1aaeb4e703377483d57586128215342957962022-10-13 14:27:0755 days 12 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x199aa8cfbbf7f1690ff873f9fe5ed2ddd21ccc0a0.00111900133221992 MATIC
0xaaa5de9e9dbe52e12b1d9bba3212d7a7335e4aa2872ccc870af611cba94b39a8342669842022-10-12 21:47:2456 days 4 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x199aa8cfbbf7f1690ff873f9fe5ed2ddd21ccc0a6.111515230761285121 MATIC
0x34645679b0eaf2ec6e9c54e063639affa1afbac6bb1cd0b77155f4171b562cf4340973172022-10-08 19:13:4360 days 7 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x8b7230f45209306aee243cb0fee41438f1e15f943.351711523826805292 MATIC
0x94d02c530f57792961da6ff85e8d94fbf815678b9df177060b1d8271510efc19336105162022-09-27 0:37:0572 days 2 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x816b08a376f3dd25c5b28e230d8139aa74e72aef20.480602400925397172 MATIC
0x951c2dd97c0f18fb3f15ec50e45c2def5a371f92f7d73fef91aa2b0e0d85d63b335959502022-09-26 16:05:2472 days 10 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x5c15fe8c349d46006dbdec40e249cceea29637482.025159320501110311 MATIC
0x9a68554402390bb635292de18e0c45f2ace419546c55c9a50dd107984860bb06334497442022-09-23 2:58:0575 days 23 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x816b08a376f3dd25c5b28e230d8139aa74e72aef59.827591792541082588 MATIC
0xd5dd124cf4ea975694c2ffa0766a8952e8844742b0df4ff828e31c366597ca6c333878392022-09-21 15:11:3577 days 11 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x80c17147571d340b0538139f4221335103f8317122.060827068728186644 MATIC
0xe98c75be1c938f62c0ef88afcdce5c1a3564f4e4c2a83aa20e6ad961400aa0f4332104122022-09-17 7:33:5381 days 19 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850xf2c579082fe10d57331d0cd66843c4d6777ea48a270.98515518099822304 MATIC
0x4904e626b724544adbf5af331de33454d72fde2edd2f4f446bd614c2a17b7312331776302022-09-16 12:18:1382 days 14 hrs ago 0x1b02817cc74076d8f8d5ea7159524cc16e9837850x52af411f863fd97419b6e4decb3a68ffa9246806812.529968105422992348 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
StronghandsVault

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at polygonscan.com on 2022-08-21
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.6.12;

library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {return 0;}
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a / b;
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

contract StronghandsVault {
    struct UserData {
        uint256 deposited;
        uint256 withdrawn;
        uint256 compounded;
        uint256 harvested;
        
        uint256 xDeposited;
        uint256 xWithdrawn;
        uint256 xCompounded;
        uint256 xHarvested;
    }
    
    /*=================================
    =            MODIFIERS            =
    =================================*/
    // only people with tokens
    modifier onlyHolders() {
        require(myTokens() > 0);
        _;
    }
    
    // only people with profits
    modifier onlyStronghands() {
        require(myDividends(true) > 0);
        _;
    }
    
    /*==============================
    =            EVENTS            =
    ==============================*/
    
    // Normal Events
    event onTokenPurchase(address indexed customerAddress, uint256 incomingBase, uint256 tokensMinted, address indexed referredBy);
    event onTokenSell(address indexed customerAddress, uint256 tokensBurned, uint256 baseEarned);
    event onReinvestment(address indexed customerAddress, uint256 baseReinvested, uint256 tokensMinted);
    event onWithdraw(address indexed customerAddress, uint256 baseWithdrawn);
    
    // ERC20 Events
    event Transfer(address indexed from, address indexed to, uint256 tokens);
    
    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    
    string public name = "Stronghands MATIC3D";
    string public symbol = "MATIC3D";
    
    uint8 constant public decimals = 18;
    uint8 constant internal dividendFee_ = 10;
    
    uint256 constant internal tokenPriceInitial_ = 0.0000001 ether;
    uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether;
    uint256 constant internal magnitude = 2**64;
    
   /*================================
    =            DATASETS            =
    ================================*/
    // amount of shares for each address (scaled number)
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => int256) internal payoutsTo_;
    
    mapping(address => address) internal referrerOf;
    mapping(address => uint256) internal referralsOf_;
    mapping(address => uint256) internal referralEarningsOf_;
    
    mapping(address => UserData) internal userData_;
    
    uint256 internal players;
    uint256 internal tokenSupply_ = 0;
    uint256 internal profitPerShare_;
    
    uint256 internal totalDeposited_;
    uint256 internal totalWithdrawn_;
    uint256 internal totalCompounded_;
    uint256 internal totalHarvested_;
    
    /*=======================================
    =            PUBLIC FUNCTIONS           =
    =======================================*/

    constructor() public {

    }
    
    // Fallback function
    receive() payable external {
        deposit(address(0));
    }
     
    // Converts all incoming base to tokens for the caller, and passes down the referral addy (if any)
    function deposit(address _referredBy) public payable returns (uint256) {

        // If the deposits of msgSender = 0, this is their first deposit.
        if (userData_[msg.sender].deposited == 0) {
            players += 1;
        }
        
        // Deposit Base to the contract, create the tokens.
        purchaseTokens(msg.value, _referredBy);
        
        // Count the referral
        referralsOf_[_referredBy] += 1;
        
        userData_[msg.sender].deposited += msg.value;
        userData_[msg.sender].xDeposited += 1;
        
        totalDeposited_ += msg.value;
        referrerOf[msg.sender] = _referredBy;
    }
    
    // Liquifies tokens to Base.
    function withdraw(uint256 _amountOfTokens) onlyHolders() public {
        
        address _customerAddress = msg.sender;
        
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _base = tokensToBase_(_tokens);
        uint256 _dividends = SafeMath.div(_base, dividendFee_);
        uint256 _taxedBase = SafeMath.sub(_base, _dividends);
        
        // burn the sold tokens
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);
        
        // update dividends tracker
        int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedBase * magnitude));
        payoutsTo_[_customerAddress] -= _updatedPayouts;       
        
        if (tokenSupply_ > 0) {
            profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }
        
        // Update Stats
        userData_[msg.sender].withdrawn += _dividends;
        userData_[msg.sender].xWithdrawn += 1;
        
        totalWithdrawn_ += _dividends;
        
        // fire event
        emit onTokenSell(_customerAddress, _tokens, _taxedBase);
    }
    
    // Converts all of caller's dividends to tokens.
    function compound() onlyStronghands() public {
        // fetch dividends
        uint256 _dividends = myDividends(false); // retrieve ref. bonus later in the code
        
        // pay out the dividends virtually
        address _customerAddress = msg.sender;
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        
        // retrieve ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        
        // dispatch a buy order with the virtualized "withdrawn dividends"
        uint256 _tokens = purchaseTokens(_dividends, referrerOf[_customerAddress]);
        
        // Update stats...
        userData_[msg.sender].deposited += _dividends;
        userData_[msg.sender].compounded += _dividends;
        userData_[msg.sender].xCompounded += 1;
        
        totalCompounded_ += _dividends;
        
        // fire event
        emit onReinvestment(_customerAddress, _dividends, _tokens);
    }

    // Withdraws all of the callers earnings.
    function harvest() onlyStronghands() public {
        // setup data
        address payable _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false); // get ref. bonus later in the code
        
        // update dividend tracker
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        
        // add ref. bonus
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        
        // lambo delivery service
        _customerAddress.transfer(_dividends);
        
        // 
        userData_[msg.sender].harvested += _dividends;
        userData_[msg.sender].xHarvested += 1;
        
        totalHarvested_ += _dividends;
        
        // fire event
        emit onWithdraw(_customerAddress, _dividends);
    }
    
    // Transfer token to a different address. No fees.
    function transfer(address _toAddress, uint256 _amountOfTokens) onlyHolders() public returns (bool) {
        // cant send to 0 address
        require(_toAddress != address(0));
        // setup
        address _customerAddress = msg.sender;

        // make sure we have the requested tokens
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);

        // withdraw all outstanding dividends first
        if(myDividends(true) > 0) harvest();

        // exchange tokens
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _amountOfTokens);

        // update dividend trackers
        payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _amountOfTokens);

        // fire event
        emit Transfer(_customerAddress, _toAddress, _amountOfTokens);
        return true;
    }
        
    // Alias of sell() and withdraw()
    function exit() public {
        // get token count for caller & sell them all
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if(_tokens > 0) withdraw(_tokens);
        
        // lambo delivery service
        harvest();
    }
    
    /*----------  HELPERS AND CALCULATORS  ----------*/
    
    function myReferrals() public view returns (uint256) {
        return referralsOf(msg.sender);
    }

    function referralsOf(address _user) public view returns (uint256) {
        return referralsOf_[_user];
    }
    
    function myTotalRefEarnings() public view returns (uint256) {
        return totalRefEarningsOf(msg.sender);
    }

    function totalRefEarningsOf(address _user) public view returns (uint256) {
        return referralEarningsOf_[_user];
    }
    
    function contractStats() public view returns (uint256 _totalDeposited, uint256 _totalWithdrawn, uint256 _totalCompounded, uint256 _totalHarvested) {
        return (totalDeposited_, totalWithdrawn_, totalCompounded_, totalHarvested_);
    }
    
    function getAmountStatsOf(address _user) public view returns (uint256 _deposited, uint256 _withdrawn, uint256 _compounded, uint256 _harvested) {
        return (
            userData_[_user].deposited,
            userData_[_user].withdrawn,
            userData_[_user].compounded,
            userData_[_user].harvested
        );
    }
    
    function getRepeatStatsOf(address _user) public view returns (uint256 _xDeposited, uint256 _xWithdrawn, uint256 _xCompounded, uint256 _xHarvested) {
        return (
            userData_[_user].xDeposited,
            userData_[_user].xWithdrawn,
            userData_[_user].xCompounded,
            userData_[_user].xHarvested
        );
    }
    
    //////////////////////////////////////////////////////////////////////////////////////////
    
    // View the current Base stored in the contract
    function totalBaseBalance() public view returns(uint) {
        return address(this).balance;
    }
    
    // Retrieve the total token supply.
    function totalSupply() public view returns(uint256) {
        return tokenSupply_;
    }
    
    // Retrieve the tokens owned by the caller.
    function myTokens() public view returns(uint256) {
        address _customerAddress = msg.sender;
        return balanceOf(_customerAddress);
    }

    function myDividends(bool _includeReferralBonus) public view returns(uint256) {
        address _customerAddress = msg.sender;
        return dividendsOf(_customerAddress,_includeReferralBonus);
    }
    
    // Retrieve the token balance of any single address.
    function balanceOf(address _customerAddress) view public returns(uint256) {
        return tokenBalanceLedger_[_customerAddress];
    }
    
    // Retrieve the dividend balance of any single address.
    function dividendsOf(address _customerAddress,bool _includeReferralBonus) view public returns(uint256) {
        uint256 regularDividends = (uint256) ((int256)(profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
        if (_includeReferralBonus){
            return regularDividends + referralBalance_[_customerAddress];
        } else {
            return regularDividends;
        }
    }
    
    
    // Return the buy price of 1 individual token.
    function sellPrice() public view returns(uint256) {
        // our calculation relies on the token supply, so we need supply. Doh.
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _base = tokensToBase_(1e18);
            uint256 _dividends = SafeMath.div(_base, dividendFee_  );
            uint256 _taxedBase = SafeMath.sub(_base, _dividends);
            return _taxedBase;
        }
    }
    
    // Return the sell price of 1 individual token.
    function buyPrice() public view returns(uint256) {
        // our calculation relies on the token supply, so we need supply. Doh.
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ + tokenPriceIncremental_;
        } else {
            uint256 _base = tokensToBase_(1e18);
            uint256 _dividends = SafeMath.div(_base, dividendFee_  );
            uint256 _taxedBase = SafeMath.add(_base, _dividends);
            return _taxedBase;
        }
    }
    
    // Function for the frontend to dynamically retrieve the price scaling of buy orders.
    function calculateTokensReceived(uint256 _baseToSpend) public view returns(uint256) {
        uint256 _dividends = SafeMath.div(_baseToSpend, dividendFee_);
        uint256 _taxedBase = SafeMath.sub(_baseToSpend, _dividends);
        uint256 _amountOfTokens = baseToTokens_(_taxedBase);
        
        return _amountOfTokens;
    }
    
    // Function for the frontend to dynamically retrieve the price scaling of sell orders.
    function calculateBaseReceived(uint256 _tokensToSell) public view returns(uint256) {
        require(_tokensToSell <= tokenSupply_);
        uint256 _base = tokensToBase_(_tokensToSell);
        uint256 _dividends = SafeMath.div(_base, dividendFee_);
        uint256 _taxedBase = SafeMath.sub(_base, _dividends);
        return _taxedBase;
    }
    
    
    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/
    
    // Deposit tokens into the contract and issue the correct amount of tokens to the depositor
    function purchaseTokens(uint256 _incomingBase, address _referredBy) internal returns(uint256) {
        // data setup
        address _customerAddress = msg.sender;
        uint256 _undividedDividends = SafeMath.div(_incomingBase, dividendFee_);
        uint256 _referralBonus = SafeMath.div(_undividedDividends, 3);
        uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus);
        uint256 _taxedBase = SafeMath.sub(_incomingBase, _undividedDividends);
        uint256 _amountOfTokens = baseToTokens_(_taxedBase);
        uint256 _fee = _dividends * magnitude;
 
        // prevents overflow
        require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));
        
        if(
            // is this a referred purchase?
            _referredBy != 0x0000000000000000000000000000000000000000
        ){
            // wealth redistribution
            referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus);
        } else {
            // no ref purchase
            // add the referral bonus back to the global dividends cake
            _dividends = SafeMath.add(_dividends, _referralBonus);
            _fee = _dividends * magnitude;
        }
        
        // we can't give people infinite Base
        if(tokenSupply_ > 0){
            
            // add tokens to the pool
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
 
            // take the amount of dividends gained through this transaction, and allocates them evenly to each participant
            profitPerShare_ += (_dividends * magnitude / (tokenSupply_));
            
            // calculate the amount of tokens the customer receives over his purchase 
            _fee = _fee - (_fee-(_amountOfTokens * (_dividends * magnitude / (tokenSupply_))));
        
        } else {
            // add tokens to the pool
            tokenSupply_ = _amountOfTokens;
        }
        
        // update circulating supply & the ledger address for the customer
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        
        // Tells the contract that the buyer doesn't deserve dividends for the tokens before they owned them;
        // really i know you think you do but you don't
        int256 _updatedPayouts = (int256) ((profitPerShare_ * _amountOfTokens) - _fee);
        payoutsTo_[_customerAddress] += _updatedPayouts;
        
        referralEarningsOf_[_referredBy] += (_referralBonus);
        
        // fire event
        emit onTokenPurchase(_customerAddress, _incomingBase, _amountOfTokens, _referredBy);
        return _amountOfTokens;
    }

    // Calculate Token price based on an amount of incoming Base | Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
    function baseToTokens_(uint256 _base) internal view returns(uint256) {
        uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived = 
         (
            (
                // underflow attempts BTFO
                SafeMath.sub(
                    (sqrt
                        (
                            (_tokenPriceInitial**2)
                            +(2*(tokenPriceIncremental_ * 1e18)*(_base * 1e18))
                            +(((tokenPriceIncremental_)**2)*(tokenSupply_**2))
                            +(2*(tokenPriceIncremental_)*_tokenPriceInitial*tokenSupply_)
                        )
                    ), _tokenPriceInitial
                )
            )/(tokenPriceIncremental_)
        )-(tokenSupply_)
        ;
  
        return _tokensReceived;
    }
    
    // Calculate token sell value | Some conversions occurred to prevent decimal errors or underflows / overflows in solidity code.
    function tokensToBase_(uint256 _tokens) internal view returns(uint256) {
        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (tokenSupply_ + 1e18);
        uint256 _baseReceived =
        (
            // underflow attempts BTFO
            SafeMath.sub(
                (
                    (
                        (
                            tokenPriceInitial_ +(tokenPriceIncremental_ * (_tokenSupply/1e18))
                        )-tokenPriceIncremental_
                    )*(tokens_ - 1e18)
                ),(tokenPriceIncremental_*((tokens_**2-tokens_)/1e18))/2
            )
        /1e18);
        return _baseReceived;
    }
    
    // SQUARE ROOT!
    function sqrt(uint x) internal pure returns (uint y) {
        uint z = (x + 1) / 2;
        y = x;
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"baseReinvested","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"incomingBase","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensMinted","type":"uint256"},{"indexed":true,"internalType":"address","name":"referredBy","type":"address"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokensBurned","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"baseEarned","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"customerAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"baseWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokensToSell","type":"uint256"}],"name":"calculateBaseReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_baseToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"compound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractStats","outputs":[{"internalType":"uint256","name":"_totalDeposited","type":"uint256"},{"internalType":"uint256","name":"_totalWithdrawn","type":"uint256"},{"internalType":"uint256","name":"_totalCompounded","type":"uint256"},{"internalType":"uint256","name":"_totalHarvested","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_referredBy","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_customerAddress","type":"address"},{"internalType":"bool","name":"_includeReferralBonus","type":"bool"}],"name":"dividendsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getAmountStatsOf","outputs":[{"internalType":"uint256","name":"_deposited","type":"uint256"},{"internalType":"uint256","name":"_withdrawn","type":"uint256"},{"internalType":"uint256","name":"_compounded","type":"uint256"},{"internalType":"uint256","name":"_harvested","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getRepeatStatsOf","outputs":[{"internalType":"uint256","name":"_xDeposited","type":"uint256"},{"internalType":"uint256","name":"_xWithdrawn","type":"uint256"},{"internalType":"uint256","name":"_xCompounded","type":"uint256"},{"internalType":"uint256","name":"_xHarvested","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"myReferrals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"myTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"myTotalRefEarnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"referralsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBaseBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"totalRefEarningsOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_toAddress","type":"address"},{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfTokens","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280601381526020017f5374726f6e6768616e6473204d415449433344000000000000000000000000008152506000908051906020019062000051929190620000b9565b506040518060400160405280600781526020017f4d41544943334400000000000000000000000000000000000000000000000000815250600190805190602001906200009f929190620000b9565b506000600a55348015620000b257600080fd5b506200015f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620000fc57805160ff19168380011785556200012d565b828001600101855582156200012d579182015b828111156200012c5782518255916020019190600101906200010f565b5b5090506200013c919062000140565b5090565b5b808211156200015b57600081600090555060010162000141565b5090565b6122eb806200016f6000396000f3fe6080604052600436106101855760003560e01c806374a76816116100d1578063a38ebdeb1161008a578063d0ad8bc211610064578063d0ad8bc214610872578063e9fad8ee1461089d578063f340fa01146108b4578063f69e20461461090c57610197565b8063a38ebdeb1461075c578063a9059cbb146107d6578063b99b2f811461084757610197565b806374a7681614610526578063831aba43146105975780638620410b146105fc5780638e5f4a0214610627578063949e8acd146106a157806395d89b41146106cc57610197565b80633b68a8bd1161013e5780634b750334116101185780634b750334146103e05780635dd677501461040b578063688abbf71461047057806370a08231146104c157610197565b80633b68a8bd1461033a5780634147ccd21461037a5780634641257d146103c957610197565b806306fdde031461019c57806310d0ffdd1461022c57806318160ddd1461027b57806328315088146102a65780632e1a7d4d146102d1578063313ce5671461030c57610197565b36610197576101946000610923565b50005b600080fd5b3480156101a857600080fd5b506101b1610b0e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f15780820151818401526020810190506101d6565b50505050905090810190601f16801561021e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023857600080fd5b506102656004803603602081101561024f57600080fd5b8101908080359060200190929190505050610bac565b6040518082815260200191505060405180910390f35b34801561028757600080fd5b50610290610be5565b6040518082815260200191505060405180910390f35b3480156102b257600080fd5b506102bb610bef565b6040518082815260200191505060405180910390f35b3480156102dd57600080fd5b5061030a600480360360208110156102f457600080fd5b8101908080359060200190929190505050610bf7565b005b34801561031857600080fd5b50610321610ed3565b604051808260ff16815260200191505060405180910390f35b34801561034657600080fd5b5061034f610ed8565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b34801561038657600080fd5b506103b36004803603602081101561039d57600080fd5b8101908080359060200190929190505050610ef8565b6040518082815260200191505060405180910390f35b3480156103d557600080fd5b506103de610f41565b005b3480156103ec57600080fd5b506103f5611195565b6040518082815260200191505060405180910390f35b34801561041757600080fd5b5061045a6004803603602081101561042e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111f4565b6040518082815260200191505060405180910390f35b34801561047c57600080fd5b506104ab6004803603602081101561049357600080fd5b8101908080351515906020019092919050505061123d565b6040518082815260200191505060405180910390f35b3480156104cd57600080fd5b50610510600480360360208110156104e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611255565b6040518082815260200191505060405180910390f35b34801561053257600080fd5b506105816004803603604081101561054957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061129e565b6040518082815260200191505060405180910390f35b3480156105a357600080fd5b506105e6600480360360208110156105ba57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611395565b6040518082815260200191505060405180910390f35b34801561060857600080fd5b506106116113de565b6040518082815260200191505060405180910390f35b34801561063357600080fd5b506106766004803603602081101561064a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061143d565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b3480156106ad57600080fd5b506106b661155e565b6040518082815260200191505060405180910390f35b3480156106d857600080fd5b506106e1611573565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610721578082015181840152602081019050610706565b50505050905090810190601f16801561074e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561076857600080fd5b506107ab6004803603602081101561077f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611611565b6040518085815260200184815260200183815260200182815260200194505050505060405180910390f35b3480156107e257600080fd5b5061082f600480360360408110156107f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611732565b60405180821515815260200191505060405180910390f35b34801561085357600080fd5b5061085c611a17565b6040518082815260200191505060405180910390f35b34801561087e57600080fd5b50610887611a27565b6040518082815260200191505060405180910390f35b3480156108a957600080fd5b506108b2611a37565b005b6108f6600480360360208110156108ca57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610923565b6040518082815260200191505060405180910390f35b34801561091857600080fd5b50610921611a9f565b005b600080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015414156109815760016009600082825401925050819055505b61098b3483611d72565b506001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555034600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600001600082825401925050819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206004016000828254019250508190555034600c6000828254019250508190555081600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550919050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ba45780601f10610b7957610100808354040283529160200191610ba4565b820191906000526020600020905b815481529060010190602001808311610b8757829003601f168201915b505050505081565b600080610bbd83600a60ff166120f5565b90506000610bcb848361210e565b90506000610bd882612125565b9050809350505050919050565b6000600a54905090565b600047905090565b6000610c0161155e565b11610c0b57600080fd5b6000339050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115610c5c57600080fd5b60008290506000610c6c826121b0565b90506000610c7e82600a60ff166120f5565b90506000610c8c838361210e565b9050610c9a600a548561210e565b600a81905550610ce9600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548561210e565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600068010000000000000000820285600b540201905080600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506000600a541115610dc357610dbc600b54600a5468010000000000000000860281610db657fe5b04612254565b600b819055505b82600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101600082825401925050819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005016000828254019250508190555082600d600082825401925050819055508573ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398684604051808381526020018281526020019250505060405180910390a250505050505050565b601281565b600080600080600c54600d54600e54600f54935093509350935090919293565b6000600a54821115610f0957600080fd5b6000610f14836121b0565b90506000610f2682600a60ff166120f5565b90506000610f34838361210e565b9050809350505050919050565b6000610f4d600161123d565b11610f5757600080fd5b60003390506000610f68600061123d565b9050680100000000000000008102600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611091573d6000803e3d6000fd5b5080600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600301600082825401925050819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007016000828254019250508190555080600f600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b600080600a5414156111b5576402540be40064174876e8000390506111f1565b60006111c8670de0b6b3a76400006121b0565b905060006111da82600a60ff166120f5565b905060006111e8838361210e565b90508093505050505b90565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008033905061124d818461129e565b915050919050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008068010000000000000000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600b5402038161133757fe5b049050821561138a57600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810191505061138f565b809150505b92915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080600a5414156113fe576402540be40064174876e80001905061143a565b6000611411670de0b6b3a76400006121b0565b9050600061142382600a60ff166120f5565b905060006114318383612254565b90508093505050505b90565b600080600080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060040154600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060050154600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060060154600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206007015493509350935093509193509193565b60008033905061156d81611255565b91505090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116095780601f106115de57610100808354040283529160200191611609565b820191906000526020600020905b8154815290600101906020018083116115ec57829003601f168201915b505050505081565b600080600080600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000154600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010154600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060020154600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206003015493509350935093509193509193565b60008061173d61155e565b1161174757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561178157600080fd5b6000339050600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548311156117d257600080fd5b60006117de600161123d565b11156117ed576117ec610f41565b5b611836600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461210e565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118c2600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484612254565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555082600b5402600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555082600b5402600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040518082815260200191505060405180910390a3600191505092915050565b6000611a2233611395565b905090565b6000611a32336111f4565b905090565b60003390506000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611a9357611a9281610bf7565b5b611a9b610f41565b5050565b6000611aab600161123d565b11611ab557600080fd5b6000611ac1600061123d565b90506000339050680100000000000000008202600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600360008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054820191506000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611c1483600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611d72565b905082600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000016000828254019250508190555082600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600201600082825401925050819055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206006016000828254019250508190555082600e600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b6000803390506000611d8885600a60ff166120f5565b90506000611d978260036120f5565b90506000611da5838361210e565b90506000611db3888561210e565b90506000611dc082612125565b905060006801000000000000000084029050600082118015611dee5750600a54611dec83600a54612254565b115b611df757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614611ebc57611e74600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205486612254565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ed7565b611ec68486612254565b935068010000000000000000840290505b6000600a541115611f3e57611eee600a5483612254565b600a81905550600a5468010000000000000000850281611f0a57fe5b04600b60008282540192505081905550600a5468010000000000000000850281611f3057fe5b048202810381039050611f46565b81600a819055505b611f8f600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483612254565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008183600b540203905080600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555085600760008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508973ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58d86604051808381526020018281526020019250505060405180910390a3829850505050505050505092915050565b60008082848161210157fe5b0490508091505092915050565b60008282111561211a57fe5b818303905092915050565b600080670de0b6b3a764000064174876e8000290506000600a546402540be40061219b612195600a54866402540be40060020202026002600a540a60026402540be4000a02670de0b6b3a76400008a02670de0b6b3a76400006402540be40002600202026002890a010101612270565b8561210e565b816121a257fe5b040390508092505050919050565b600080670de0b6b3a7640000830190506000670de0b6b3a7640000600a540190506000670de0b6b3a764000061223f670de0b6b3a764000085036402540be400670de0b6b3a7640000868161220157fe5b046402540be4000264174876e8000103026002670de0b6b3a7640000876002890a038161222a57fe5b046402540be400028161223957fe5b0461210e565b8161224657fe5b049050809350505050919050565b60008082840190508381101561226657fe5b8091505092915050565b6000806002600184018161228057fe5b0490508291505b818110156122af5780915060028182858161229e57fe5b0401816122a757fe5b049050612287565b5091905056fea26469706673582212200ee9a045ecfa4cae58c26e046d85c4c5cdb671b49732934a280de9e90c37a91664736f6c634300060c0033

Deployed ByteCode Sourcemap

691:18869:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3705:19;3721:1;3705:7;:19::i;:::-;;691:18869;;;;;2189:42;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13645:339;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11200:90;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11046:101;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4553:1308;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2283:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9915:242;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14088:351;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7007:844;;;;;;;;;;;;;:::i;:::-;;12510:484;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9778:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11509:203;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11782:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11992:448;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9531:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13059:483;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10526:353;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11351:150;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2238:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10169:345;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7919:1063;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9421:102;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9654:116;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9037:309;;;;;;;;;;;;;:::i;:::-;;3849:658;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5927:1025;;;;;;;;;;;;;:::i;:::-;;3849:658;3911:7;4047:1;4012:9;:21;4022:10;4012:21;;;;;;;;;;;;;;;:31;;;:36;4008:81;;;4076:1;4065:7;;:12;;;;;;;;;;;4008:81;4170:38;4185:9;4196:11;4170:14;:38::i;:::-;;4289:1;4260:12;:25;4273:11;4260:25;;;;;;;;;;;;;;;;:30;;;;;;;;;;;4346:9;4311;:21;4321:10;4311:21;;;;;;;;;;;;;;;:31;;;:44;;;;;;;;;;;4402:1;4366:9;:21;4376:10;4366:21;;;;;;;;;;;;;;;:32;;;:37;;;;;;;;;;;4443:9;4424:15;;:28;;;;;;;;;;;4488:11;4463:10;:22;4474:10;4463:22;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;3849:658;;;:::o;2189:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13645:339::-;13720:7;13740:18;13761:40;13774:12;2364:2;13761:40;;:12;:40::i;:::-;13740:61;;13812:18;13833:38;13846:12;13860:10;13833:12;:38::i;:::-;13812:59;;13882:23;13908:25;13922:10;13908:13;:25::i;:::-;13882:51;;13961:15;13954:22;;;;;13645:339;;;:::o;11200:90::-;11243:7;11270:12;;11263:19;;11200:90;:::o;11046:101::-;11094:4;11118:21;11111:28;;11046:101;:::o;4553:1308::-;1210:1;1197:10;:8;:10::i;:::-;:14;1189:23;;;;;;4638:24:::1;4665:10;4638:37;;4723:19;:37;4743:16;4723:37;;;;;;;;;;;;;;;;4704:15;:56;;4696:65;;;::::0;::::1;;4772:15;4790;4772:33;;4816:13;4832:22;4846:7;4832:13;:22::i;:::-;4816:38;;4865:18;4886:33;4899:5;2364:2;4886:33;;:12;:33::i;:::-;4865:54;;4930:18;4951:31;4964:5;4971:10;4951:12;:31::i;:::-;4930:52;;5051:35;5064:12;;5078:7;5051:12;:35::i;:::-;5036:12;:50;;;;5137:60;5150:19;:37;5170:16;5150:37;;;;;;;;;;;;;;;;5189:7;5137:12;:60::i;:::-;5097:19;:37;5117:16;5097:37;;;;;;;;;;;;;;;:100;;;;5255:22;2560:5;5319:10;:22;5308:7;5290:15;;:25;:52;5255:88;;5386:15;5354:10;:28;5365:16;5354:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;5448:1;5433:12;;:16;5429:137;;;5484:70;5497:15;;5541:12;;2560:5;5515:10;:22;5514:39;;;;;;5484:12;:70::i;:::-;5466:15;:88;;;;5429:137;5646:10;5611:9;:21;5621:10;5611:21;;;;;;;;;;;;;;;:31;;;:45;;;;;;;;;;;5703:1;5667:9;:21;5677:10;5667:21;;;;;;;;;;;;;;;:32;;;:37;;;;;;;;;;;5744:10;5725:15;;:29;;;;;;;;;;;5815:16;5803:50;;;5833:7;5842:10;5803:50;;;;;;;;;;;;;;;;;;;;;;;;1223:1;;;;;;4553:1308:::0;:::o;2283:35::-;2316:2;2283:35;:::o;9915:242::-;9961:23;9986;10011:24;10037:23;10081:15;;10098;;10115:16;;10133:15;;10073:76;;;;;;;;9915:242;;;;:::o;14088:351::-;14162:7;14207:12;;14190:13;:29;;14182:38;;;;;;14231:13;14247:28;14261:13;14247;:28::i;:::-;14231:44;;14286:18;14307:33;14320:5;2364:2;14307:33;;:12;:33::i;:::-;14286:54;;14351:18;14372:31;14385:5;14392:10;14372:12;:31::i;:::-;14351:52;;14421:10;14414:17;;;;;14088:351;;;:::o;7007:844::-;1343:1;1323:17;1335:4;1323:11;:17::i;:::-;:21;1315:30;;;;;;7085:32:::1;7120:10;7085:45;;7141:18;7162;7174:5;7162:11;:18::i;:::-;7141:39;;2560:5;7316:10;:22;7273:10;:28;7284:16;7273:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;7401:16;:34;7418:16;7401:34;;;;;;;;;;;;;;;;7387:48;;;;7483:1;7446:16;:34;7463:16;7446:34;;;;;;;;;;;;;;;:38;;;;7540:16;:25;;:37;7566:10;7540:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;7646:10;7611:9;:21;7621:10;7611:21;;;;;;;;;;;;;;;:31;;;:45;;;;;;;;;;;7703:1;7667:9;:21;7677:10;7667:21;;;;;;;;;;;;;;;:32;;;:37;;;;;;;;;;;7744:10;7725:15;;:29;;;;;;;;;;;7814:16;7803:40;;;7832:10;7803:40;;;;;;;;;;;;;;;;;;1356:1;;7007:844::o:0;12510:484::-;12551:7;12670:1;12654:12;;:17;12651:336;;;2499:16;2426:15;12694:43;12687:50;;;;12651:336;12770:13;12786:19;12800:4;12786:13;:19::i;:::-;12770:35;;12820:18;12841:35;12854:5;2364:2;12841:35;;:12;:35::i;:::-;12820:56;;12891:18;12912:31;12925:5;12932:10;12912:12;:31::i;:::-;12891:52;;12965:10;12958:17;;;;;12510:484;;:::o;9778:125::-;9842:7;9869:19;:26;9889:5;9869:26;;;;;;;;;;;;;;;;9862:33;;9778:125;;;:::o;11509:203::-;11578:7;11598:24;11625:10;11598:37;;11653:51;11665:16;11682:21;11653:11;:51::i;:::-;11646:58;;;11509:203;;;:::o;11782:137::-;11847:7;11874:19;:37;11894:16;11874:37;;;;;;;;;;;;;;;;11867:44;;11782:137;;;:::o;11992:448::-;12086:7;12106:24;2560:5;12212:10;:28;12223:16;12212:28;;;;;;;;;;;;;;;;12171:19;:37;12191:16;12171:37;;;;;;;;;;;;;;;;12153:15;;:55;12144:96;12133:120;;;;;;12106:147;;12268:21;12264:169;;;12331:16;:34;12348:16;12331:34;;;;;;;;;;;;;;;;12312:16;:53;12305:60;;;;;12264:169;12405:16;12398:23;;;11992:448;;;;;:::o;9531:111::-;9588:7;9615:12;:19;9628:5;9615:19;;;;;;;;;;;;;;;;9608:26;;9531:111;;;:::o;13059:483::-;13099:7;13218:1;13202:12;;:17;13199:336;;;2499:16;2426:15;13242:43;13235:50;;;;13199:336;13318:13;13334:19;13348:4;13334:13;:19::i;:::-;13318:35;;13368:18;13389:35;13402:5;2364:2;13389:35;;:12;:35::i;:::-;13368:56;;13439:18;13460:31;13473:5;13480:10;13460:12;:31::i;:::-;13439:52;;13513:10;13506:17;;;;;13059:483;;:::o;10526:353::-;10588:19;10609;10630:20;10652:19;10706:9;:16;10716:5;10706:16;;;;;;;;;;;;;;;:27;;;10748:9;:16;10758:5;10748:16;;;;;;;;;;;;;;;:27;;;10790:9;:16;10800:5;10790:16;;;;;;;;;;;;;;;:28;;;10833:9;:16;10843:5;10833:16;;;;;;;;;;;;;;;:27;;;10684:187;;;;;;;;10526:353;;;;;:::o;11351:150::-;11391:7;11411:24;11438:10;11411:37;;11466:27;11476:16;11466:9;:27::i;:::-;11459:34;;;11351:150;:::o;2238:32::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;10169:345::-;10231:18;10251;10271:19;10292:18;10345:9;:16;10355:5;10345:16;;;;;;;;;;;;;;;:26;;;10386:9;:16;10396:5;10386:16;;;;;;;;;;;;;;;:26;;;10427:9;:16;10437:5;10427:16;;;;;;;;;;;;;;;:27;;;10469:9;:16;10479:5;10469:16;;;;;;;;;;;;;;;:26;;;10323:183;;;;;;;;10169:345;;;;;:::o;7919:1063::-;8012:4;1210:1;1197:10;:8;:10::i;:::-;:14;1189:23;;;;;;8094:1:::1;8072:24;;:10;:24;;;;8064:33;;;::::0;::::1;;8126:24;8153:10;8126:37;;8254:19;:37;8274:16;8254:37;;;;;;;;;;;;;;;;8235:15;:56;;8227:65;;;::::0;::::1;;8381:1;8361:17;8373:4;8361:11;:17::i;:::-;:21;8358:35;;;8384:9;:7;:9::i;:::-;8358:35;8474:68;8487:19;:37;8507:16;8487:37;;;;;;;;;;;;;;;;8526:15;8474:12;:68::i;:::-;8434:19;:37;8454:16;8434:37;;;;;;;;;;;;;;;:108;;;;8587:62;8600:19;:31;8620:10;8600:31;;;;;;;;;;;;;;;;8633:15;8587:12;:62::i;:::-;8553:19;:31;8573:10;8553:31;;;;;;;;;;;;;;;:96;;;;8759:15;8741;;:33;8699:10;:28;8710:16;8699:28;;;;;;;;;;;;;;;;:76;;;;;;;;;;;8840:15;8822;;:33;8786:10;:22;8797:10;8786:22;;;;;;;;;;;;;;;;:70;;;;;;;;;;;8924:10;8897:55;;8906:16;8897:55;;;8936:15;8897:55;;;;;;;;;;;;;;;;;;8970:4;8963:11;;;7919:1063:::0;;;;:::o;9421:102::-;9465:7;9492:23;9504:10;9492:11;:23::i;:::-;9485:30;;9421:102;:::o;9654:116::-;9705:7;9732:30;9751:10;9732:18;:30::i;:::-;9725:37;;9654:116;:::o;9037:309::-;9126:24;9153:10;9126:37;;9174:15;9192:19;:37;9212:16;9192:37;;;;;;;;;;;;;;;;9174:55;;9253:1;9243:7;:11;9240:33;;;9256:17;9265:7;9256:8;:17::i;:::-;9240:33;9329:9;:7;:9::i;:::-;9037:309;;:::o;5927:1025::-;1343:1;1323:17;1335:4;1323:11;:17::i;:::-;:21;1315:30;;;;;;6011:18:::1;6032;6044:5;6032:11;:18::i;:::-;6011:39;;6156:24;6183:10;6156:37;;2560:5;6247:10;:22;6204:10;:28;6215:16;6204:28;;;;;;;;;;;;;;;;:66;;;;;;;;;;;6337:16;:34;6354:16;6337:34;;;;;;;;;;;;;;;;6323:48;;;;6419:1;6382:16;:34;6399:16;6382:34;;;;;;;;;;;;;;;:38;;;;6517:15;6535:56;6550:10;6562;:28;6573:16;6562:28;;;;;;;;;;;;;;;;;;;;;;;;;6535:14;:56::i;:::-;6517:74;;6675:10;6640:9;:21;6650:10;6640:21;;;;;;;;;;;;;;;:31;;;:45;;;;;;;;;;;6732:10;6696:9;:21;6706:10;6696:21;;;;;;;;;;;;;;;:32;;;:46;;;;;;;;;;;6790:1;6753:9;:21;6763:10;6753:21;;;;;;;;;;;;;;;:33;;;:38;;;;;;;;;;;6832:10;6812:16;;:30;;;;;;;;;;;6906:16;6891:53;;;6924:10;6936:7;6891:53;;;;;;;;;;;;;;;;;;;;;;;;1356:1;;;5927:1025::o:0;14710:2775::-;14795:7;14838:24;14865:10;14838:37;;14886:27;14916:41;14929:13;2364:2;14916:41;;:12;:41::i;:::-;14886:71;;14968:22;14993:36;15006:19;15027:1;14993:12;:36::i;:::-;14968:61;;15040:18;15061:49;15074:19;15095:14;15061:12;:49::i;:::-;15040:70;;15121:18;15142:48;15155:13;15170:19;15142:12;:48::i;:::-;15121:69;;15201:23;15227:25;15241:10;15227:13;:25::i;:::-;15201:51;;15263:12;2560:5;15278:10;:22;15263:37;;15370:1;15352:15;:19;:82;;;;;15421:12;;15376:42;15389:15;15405:12;;15376;:42::i;:::-;:57;15352:82;15344:91;;;;;;15533:42;15518:57;;:11;:57;;;15456:521;;15671:59;15684:16;:29;15701:11;15684:29;;;;;;;;;;;;;;;;15715:14;15671:12;:59::i;:::-;15639:16;:29;15656:11;15639:29;;;;;;;;;;;;;;;:91;;;;15456:521;;;15881:40;15894:10;15906:14;15881:12;:40::i;:::-;15868:53;;2560:5;15943:10;:22;15936:29;;15456:521;16062:1;16047:12;;:16;16044:671;;;16147:43;16160:12;;16174:15;16147:12;:43::i;:::-;16132:12;:58;;;;16378:12;;2560:5;16352:10;:22;:39;;;;;;16332:15;;:60;;;;;;;;;;;16575:12;;2560:5;16549:10;:22;:39;;;;;;16530:15;:59;16524:4;:66;16516:4;:75;16509:82;;16044:671;;;16688:15;16673:12;:30;;;;16044:671;16851:68;16864:19;:37;16884:16;16864:37;;;;;;;;;;;;;;;;16903:15;16851:12;:68::i;:::-;16811:19;:37;16831:16;16811:37;;;;;;;;;;;;;;;:108;;;;17108:22;17181:4;17162:15;17144;;:33;17143:42;17108:78;;17229:15;17197:10;:28;17208:16;17197:28;;;;;;;;;;;;;;;;:47;;;;;;;;;;;17302:14;17265:19;:32;17285:11;17265:32;;;;;;;;;;;;;;;;:52;;;;;;;;;;;17432:11;17366:78;;17382:16;17366:78;;;17400:13;17415:15;17366:78;;;;;;;;;;;;;;;;;;;;;;;;17462:15;17455:22;;;;;;;;;;14710:2775;;;;:::o;276:122::-;334:7;354:9;370:1;366;:5;;;;;;354:17;;389:1;382:8;;;276:122;;;;:::o;406:123::-;464:7;496:1;491;:6;;484:14;;;;520:1;516;:5;509:12;;406:123;;;;:::o;17657:842::-;17717:7;17737:26;17787:4;2426:15;17766:25;17737:54;;17802:23;18431:12;;2499:16;17917:461;17953:363;18276:12;;18257:18;2499:16;18230:1;:26;:45;:58;18195:1;18181:12;;:15;18177:1;2499:16;18151:27;18150:47;18112:4;18104:5;:12;18097:4;2499:16;18072:29;18069:1;:33;:48;18035:1;18015:18;:21;18014:104;:184;:275;17953:4;:363::i;:::-;18341:18;17917:12;:461::i;:::-;17854:564;;;;;;17839:605;17802:642;;18476:15;18469:22;;;;17657:842;;;:::o;18644:682::-;18706:7;18726:15;18755:4;18745:7;:14;18726:34;;18771:20;18810:4;18795:12;;:19;18771:44;;18826:21;19282:4;18914:357;19177:4;19167:7;:14;2499:16;19086:4;19073:12;:17;;;;;;2499:16;19047:44;2426:15;19026:66;18995:147;18968:214;19255:1;19248:4;19239:7;19237:1;19228:7;:10;:18;19227:25;;;;;;2499:16;19203:50;19202:54;;;;;;18914:12;:357::i;:::-;:372;;;;;;18826:461;;19305:13;19298:20;;;;;18644:682;;;:::o;537:147::-;595:7;615:9;631:1;627;:5;615:17;;655:1;650;:6;;643:14;;;;675:1;668:8;;;537:147;;;;:::o;19359:198::-;19404:6;19423;19442:1;19437;19433;:5;19432:11;;;;;;19423:20;;19458:1;19454:5;;19470:80;19481:1;19477;:5;19470:80;;;19503:1;19499:5;;19537:1;19532;19528;19524;:5;;;;;;:9;19523:15;;;;;;19519:19;;19470:80;;;19359:198;;;;:::o

Swarm Source

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