ETH Price: $2,066.74 (-3.35%)

Contract

0x7CCAAb4De1c6ac2aC054bC0dA3E7A8Bdb5B9A8d4
 

Overview

ETH Balance

0.006214794272939694 ETH

Eth Value

$12.84 (@ $2,066.74/ETH)

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer108247022020-09-09 1:56:562004 days ago1599616616IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.003918568
Transfer108246702020-09-09 1:51:282004 days ago1599616288IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.0039761269
Transfer107394882020-08-27 0:54:452017 days ago1598489685IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.0036871569
Release Stake107301212020-08-25 14:27:432018 days ago1598365663IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.00273164109
Release Stake107291402020-08-25 10:48:452019 days ago1598352525IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.0024810399
Release Stake107282672020-08-25 7:37:352019 days ago1598341055IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.0016790867
Release Stake107282172020-08-25 7:27:332019 days ago1598340453IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.00300732120
Release Stake107281652020-08-25 7:14:122019 days ago1598339652IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.0019046376
Release Stake107280512020-08-25 6:51:242019 days ago1598338284IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.00310756124
Release Stake107279892020-08-25 6:36:582019 days ago1598337418IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.00311508124.3
Stake Tokens107276562020-08-25 5:17:572019 days ago1598332677IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.006208250
Stake Tokens107276562020-08-25 5:17:572019 days ago1598332677IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.018301253
Release Stake107272712020-08-25 3:50:542019 days ago1598327454IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.0023807995
Release Stake107269782020-08-25 2:37:322019 days ago1598323052IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.0020299481
Stake Tokens107238922020-08-24 15:24:492019 days ago1598282689IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.00330265133
Stake Tokens107238902020-08-24 15:24:122019 days ago1598282652IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.00335232135
Stake Tokens107220462020-08-24 8:43:492020 days ago1598258629IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.0022111189
Stake Tokens107220282020-08-24 8:40:172020 days ago1598258417IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.0022359690
Release Stake107178412020-08-23 17:06:242020 days ago1598202384IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.0024309197
Reinvest106913772020-08-19 15:35:062024 days ago1597851306IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.0179673156
Release Stake106904372020-08-19 12:00:052024 days ago1597838405IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.00363384145
Release Stake106904332020-08-19 11:58:042024 days ago1597838284IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.00363384145
Transfer106902302020-08-19 11:12:532025 days ago1597835573IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.00995247117.70000023
Release Stake106830482020-08-18 9:04:112026 days ago1597741451IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.0027185111
Release Stake106830482020-08-18 9:04:112026 days ago1597741451IN
0x7CCAAb4D...db5B9A8d4
0 ETH0.00279197114
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-106902302020-08-19 11:12:532025 days ago1597835573
0x7CCAAb4D...db5B9A8d4
0.00626151 ETH
-106456492020-08-12 14:20:322031 days ago1597242032
0x7CCAAb4D...db5B9A8d4
 Contract Creation0 ETH
-106446512020-08-12 10:43:072032 days ago1597228987
0x7CCAAb4D...db5B9A8d4
0.02881999 ETH
-106439512020-08-12 8:17:302032 days ago1597220250
0x7CCAAb4D...db5B9A8d4
1.09587553 ETH
-106439422020-08-12 8:15:222032 days ago1597220122
0x7CCAAb4D...db5B9A8d4
0.0878563 ETH
-106439422020-08-12 8:15:222032 days ago1597220122
0x7CCAAb4D...db5B9A8d4
2.87891471 ETH
-106439282020-08-12 8:13:082032 days ago1597219988
0x7CCAAb4D...db5B9A8d4
1.25917745 ETH
-106439182020-08-12 8:10:092032 days ago1597219809
0x7CCAAb4D...db5B9A8d4
0.00000642 ETH
-106439172020-08-12 8:10:072032 days ago1597219807
0x7CCAAb4D...db5B9A8d4
0.4552696 ETH
-106439132020-08-12 8:08:232032 days ago1597219703
0x7CCAAb4D...db5B9A8d4
2.49120528 ETH
-106439112020-08-12 8:08:052032 days ago1597219685
0x7CCAAb4D...db5B9A8d4
18.02410889 ETH
-106439032020-08-12 8:06:182032 days ago1597219578
0x7CCAAb4D...db5B9A8d4
7.65902138 ETH
-106439022020-08-12 8:05:182032 days ago1597219518
0x7CCAAb4D...db5B9A8d4
0.14923746 ETH
-106439022020-08-12 8:05:182032 days ago1597219518
0x7CCAAb4D...db5B9A8d4
8.94825366 ETH
-106438922020-08-12 8:02:032032 days ago1597219323
0x7CCAAb4D...db5B9A8d4
40.06174616 ETH
-106438922020-08-12 8:02:032032 days ago1597219323
0x7CCAAb4D...db5B9A8d4
0.27654607 ETH
-106438872020-08-12 8:00:332032 days ago1597219233
0x7CCAAb4D...db5B9A8d4
0.42833008 ETH
-106438842020-08-12 8:00:092032 days ago1597219209
0x7CCAAb4D...db5B9A8d4
12.6272684 ETH
-106438822020-08-12 8:00:012032 days ago1597219201
0x7CCAAb4D...db5B9A8d4
17.39872122 ETH
-106438802020-08-12 7:59:412032 days ago1597219181
0x7CCAAb4D...db5B9A8d4
0.07153945 ETH
-106438762020-08-12 7:58:192032 days ago1597219099
0x7CCAAb4D...db5B9A8d4
10.25833942 ETH
-106438682020-08-12 7:56:542032 days ago1597219014
0x7CCAAb4D...db5B9A8d4
4.7888346 ETH
-106438672020-08-12 7:56:312032 days ago1597218991
0x7CCAAb4D...db5B9A8d4
1.74153801 ETH
-106438632020-08-12 7:54:582032 days ago1597218898
0x7CCAAb4D...db5B9A8d4
4.2250003 ETH
-106438602020-08-12 7:53:252032 days ago1597218805
0x7CCAAb4D...db5B9A8d4
8.92947742 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DLTS

Compiler Version
v0.4.20+commit.3155dd80

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-08-01
*/

pragma solidity ^0.4.20;

 /**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function percent(uint value,uint numerator, uint denominator, uint precision) internal pure  returns(uint quotient) {
        uint _numerator  = numerator * 10 ** (precision+1);
        uint _quotient =  ((_numerator / denominator) + 5) / 10;
        return (value*_quotient/1000000000000000000);
    }
    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) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        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 ERC20 {
    function totalSupply() public constant returns (uint);
    function balanceOf(address tokenOwner) public constant returns (uint balance);
    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);
    function transfer(address to, uint tokens) public returns (bool success);
    function approve(address spender, uint tokens) public returns (bool success);
    function transferFrom(address from, address to, uint tokens) public returns (bool success);
    event Transfer(address indexed from, address indexed to, uint tokens);
    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);
}

contract Receiver {
    function sendFundsTo(address tracker, uint256 amount, address receiver) public returns (bool) {
        return ERC20(tracker).transfer(receiver, amount);
    }
}

contract DLTS {
    
    /*=====================================
    =            CONFIGURABLES            =
    =====================================*/
    
    string public name                                      = "DLTS";
    string public symbol                                    = "DLTS";
    uint8 constant public decimals                          = 18;
    uint8 constant internal dividendFee_                    = 5;
    uint8 constant internal referralPer_                    = 20;
    uint8 constant internal developerFee_                   = 5;
   
	uint256 internal stakePer_                              = 250000000000000000;
    uint256 constant internal tokenPriceInitial_            = 0.00001 ether;
    uint256 constant internal tokenPriceIncremental_        = 0.000001 ether;
    uint256 constant internal tokenPriceDecremental_        = 0.000001 ether;
    uint256 constant internal dltxPrice_                    = 0.004 ether;
    uint256 constant internal magnitude                     = 2**64;
    
   
    uint256 public stakingRequirement                       = 1e18;
    
    // Ambassador program
    mapping(address => bool) internal ambassadors_;
    uint256 constant internal ambassadorMaxPurchase_        = 1 ether;
    uint256 constant internal ambassadorQuota_              = 1 ether;
    
   /*================================
    =            DATASETS            =
    ================================*/
    
    mapping(address => uint256) internal tokenBalanceLedger_;
    mapping(address => uint256) internal stakeBalanceLedger_;
    mapping(address => uint256) internal stakingTime_;
    mapping(address => uint256) internal referralBalance_;
    mapping(address => uint256) public DLTXbuying_;
    mapping(address => uint256) public DLTXbuyingETHamt_;
    mapping(address => address) public receiversMap;
    
    mapping(address => address) internal referralLevel1Address;
    mapping(address => address) internal referralLevel2Address;
    mapping(address => address) internal referralLevel3Address;
    mapping(address => address) internal referralLevel4Address;
    mapping(address => address) internal referralLevel5Address;
    mapping(address => address) internal referralLevel6Address;
    mapping(address => address) internal referralLevel7Address;
    mapping(address => address) internal referralLevel8Address;
    mapping(address => address) internal referralLevel9Address;
    mapping(address => address) internal referralLevel10Address;
    
    mapping(address => int256) internal payoutsTo_;
    mapping(address => uint256) internal ambassadorAccumulatedQuota_;
    uint256 internal tokenSupply_                           = 0;
    uint256 internal developerBalance                       = 0;
   
    uint256 internal profitPerShare_;
    
  
    mapping(bytes32 => bool) public administrators;
    
    bool public onlyAmbassadors = false;
    
    /*=================================
    =            MODIFIERS            =
    =================================*/
    
     // Only people with tokens
    modifier onlybelievers () {
        require(myTokens() > 0);
        _;
    }
    
    // Only people with profits
    modifier onlyhodler() {
        require(myDividends(true) > 0);
        _;
    }
    
    // Only admin
    modifier onlyAdministrator(){
        address _customerAddress = msg.sender;
        require(administrators[keccak256(_customerAddress)]);
        _;
    }
	 
    
    modifier antiEarlyWhale(uint256 _amountOfEthereum){
        address _customerAddress = msg.sender;
        if( onlyAmbassadors && ((totalEthereumBalance() - _amountOfEthereum) <= ambassadorQuota_ )){
            require(
                // is the customer in the ambassador list?
                ambassadors_[_customerAddress] == true &&
                // does the customer purchase exceed the max ambassador quota?
                (ambassadorAccumulatedQuota_[_customerAddress] + _amountOfEthereum) <= ambassadorMaxPurchase_
            );
            // updated the accumulated quota    
            ambassadorAccumulatedQuota_[_customerAddress] = SafeMath.add(ambassadorAccumulatedQuota_[_customerAddress], _amountOfEthereum);
            _;
        } else {
            // in case the ether count drops low, the ambassador phase won't reinitiate
            onlyAmbassadors = false;
            _;    
        }
    }
    
    /*==============================
    =            EVENTS            =
    ==============================*/
    
    event onTokenPurchase(
        address indexed customerAddress,
        uint256 incomingEthereum,
        uint256 tokensMinted,
        address indexed referredBy
    );
    
    event onTokenSell(
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 ethereumEarned
    );
    
    event onReinvestment(
        address indexed customerAddress,
        uint256 ethereumReinvested,
        uint256 tokensMinted
    );
    
    event onWithdraw(
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );
    
    event Transfer(
        address indexed from,
        address indexed to,
        uint256 tokens
    );
    
    /*=======================================
    =            PUBLIC FUNCTIONS            =
    =======================================*/
    /*
    * -- APPLICATION ENTRY POINTS --  
    */
    function DLTS() public {
        // add administrators here
        administrators[0x95f233c215d38f05b6c5285c46abeb4e0f6a3a9d4fe0334fdd4d480a515d9f59] = true;
        
        ambassadors_[0x0000000000000000000000000000000000000000] = true;
    }
     
    /**
     * BUY
     */
    function buy(address _referredBy) public payable returns(uint256) {
        purchaseTokens(msg.value, _referredBy);
    }
    
    function() payable public {
        purchaseTokens(msg.value, 0x0);
    }
    
    /**
     * REINVEST
     */
    function reinvest() onlyhodler() public {
        
        uint256 _dividends                  = myDividends(false); // retrieve ref. bonus later in the code
        
        address _customerAddress            = msg.sender;
        payoutsTo_[_customerAddress]        +=  (int256) (_dividends * magnitude);
        
        _dividends                          += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress]  = 0;
        
        uint256 _tokens                     = purchaseTokens(_dividends, 0x0);
        // fire event
        onReinvestment(_customerAddress, _dividends, _tokens);
    }
    
    /**
     * EXIT
     */
    function exit() public {
        
        address _customerAddress            = msg.sender;
        uint256 _tokens                     = tokenBalanceLedger_[_customerAddress];
        if(_tokens > 0) sell(_tokens);
        withdraw();
    }

    /**
     * WITHDRAW
     */
    function withdraw() onlyhodler() public {
        
        address _customerAddress            = msg.sender;
        uint256 _dividends                  = myDividends(false); // get ref. bonus later in the code
        
        payoutsTo_[_customerAddress]        +=  (int256) (_dividends * magnitude);
        
        _dividends                          += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress]  = 0;
        
        _customerAddress.transfer(_dividends);
        // fire event
        onWithdraw(_customerAddress, _dividends);
    }
    
    /**
     * SELL
     */
    function sell(uint256 _amountOfTokens) onlybelievers () public {
        address _customerAddress            = msg.sender;
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens                     = _amountOfTokens;
        uint256 _ethereum                   = tokensToEthereum_(_tokens);
        uint256 _dividends                  = myDividends(false);
        uint256 _taxedEthereum              = _ethereum;
        
        tokenSupply_                        = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);
        
        int256 _updatedPayouts              = (int256) (profitPerShare_ * _tokens + (_taxedEthereum * magnitude));
        payoutsTo_[_customerAddress]        -= _updatedPayouts;       
        
        if (tokenSupply_ > 0) {
        
            profitPerShare_                 = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }
        
        onTokenSell(_customerAddress, _tokens, _taxedEthereum);
    }
    
    /**
     * TRANSFER
     */
    function transfer(address _toAddress, uint256 _amountOfTokens) onlybelievers () public returns(bool) {
        address _customerAddress            = msg.sender;
        
        require(!onlyAmbassadors && _amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        
        if(myDividends(true) > 0) withdraw();
       
       
        uint256 _taxedTokens                = _amountOfTokens;
        uint256 _dividends                  = myDividends(false);
        
        tokenSupply_                        = tokenSupply_;
        
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress]     = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens);
       
        payoutsTo_[_customerAddress]        -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress]              += (int256) (profitPerShare_ * _taxedTokens);
       
        profitPerShare_                     = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
       
        Transfer(_customerAddress, _toAddress, _taxedTokens);
        return true;
    }
    
    /*----------  ADMINISTRATOR ONLY FUNCTIONS  ----------*/
    
    function disableInitialStage() onlyAdministrator() public {
        onlyAmbassadors                     = false;
    }
    
     function changeStakePercent(uint256 stakePercent) onlyAdministrator() public {
        stakePer_                           = stakePercent;
    }
    
    function setAdministrator(bytes32 _identifier, bool _status) onlyAdministrator() public {
        administrators[_identifier]         = _status;
    }
    
    function setStakingRequirement(uint256 _amountOfTokens) onlyAdministrator() public {
        stakingRequirement                  = _amountOfTokens;
    }
    
    function setName(string _name) onlyAdministrator() public {
        name                                = _name;
    }
    
    function setSymbol(string _symbol) onlyAdministrator() public {
        symbol                              = _symbol;
    }
    
      
    function withdrawDeveloperFees() external onlyAdministrator {
        address _adminAddress   = msg.sender;
        _adminAddress.transfer(developerBalance);
        developerBalance        = 0;
    }
	
	
    
    /*---------- CALCULATORS  ----------*/
    
    function totalEthereumBalance() public view returns(uint) {
        return this.balance;
    }
   
    function totalDeveloperBalance() public view returns(uint) {
        return developerBalance;
    }
   
	
    
    function totalSupply() public view returns(uint256) {
        return tokenSupply_;
    }
    
    
    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 _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ;
    }
    
   
    function balanceOf(address _customerAddress) view public returns(uint256) {
        return tokenBalanceLedger_[_customerAddress];
    }
	

    function dividendsOf(address _customerAddress) view public returns(uint256) {
        return (uint256) ((int256)(profitPerShare_ * (tokenBalanceLedger_[_customerAddress] + stakeBalanceLedger_[_customerAddress])) - payoutsTo_[_customerAddress]) / magnitude;
    }
    
   
    function sellPrice() public view returns(uint256) {
        if(tokenSupply_ == 0){
            return tokenPriceInitial_       - tokenPriceDecremental_;
        } else {
            uint256 _ethereum               = tokensToEthereum_(1e18);
            uint256 _taxedEthereum          = _ethereum;
            return _taxedEthereum;
        }
    }
    
   
    function buyPrice() public view returns(uint256) {
        if(tokenSupply_ == 0){
            return tokenPriceInitial_       + tokenPriceIncremental_;
        } else {
            uint256 _ethereum               = tokensToEthereum_(1e18);
            uint256 untotalDeduct           = developerFee_ + referralPer_ + dividendFee_ ;
            uint256 totalDeduct             = SafeMath.percent(_ethereum,untotalDeduct,100,18);
            uint256 _taxedEthereum          = SafeMath.add(_ethereum, totalDeduct);
            return _taxedEthereum;
        }
    }
   
    function calculateTokensReceived(uint256 _ethereumToSpend) public view returns(uint256) {
        uint256 untotalDeduct               = developerFee_ + referralPer_ + dividendFee_ ;
        uint256 totalDeduct                 = SafeMath.percent(_ethereumToSpend,untotalDeduct,100,18);
        uint256 _taxedEthereum              = SafeMath.sub(_ethereumToSpend, totalDeduct);
        uint256 _amountOfTokens             = ethereumToTokens_(_taxedEthereum);
        return _amountOfTokens;
    }
   
    function calculateEthereumReceived(uint256 _tokensToSell) public view returns(uint256) {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ethereum                   = tokensToEthereum_(_tokensToSell);
        uint256 _taxedEthereum              = _ethereum;
        return _taxedEthereum;
    }
    
    function stakeTokens(uint256 _amountOfTokens) onlybelievers () public returns(bool){
        address _customerAddress            = msg.sender;
      
        require(!onlyAmbassadors && _amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _amountOfTokensWith1Token   = SafeMath.sub(_amountOfTokens, 1e18);
        stakingTime_[_customerAddress]      = now;
        stakeBalanceLedger_[_customerAddress] = SafeMath.add(stakeBalanceLedger_[_customerAddress], _amountOfTokensWith1Token);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokensWith1Token);
    }
    
    
    function stakeTokensBalance(address _customerAddress) public view returns(uint256){
       uint256 timediff                    = SafeMath.sub(now, stakingTime_[_customerAddress]);
        uint256 dayscount                   = SafeMath.div(timediff, 86400); //86400 Sec for 1 Day
        uint256 roiPercent                  = SafeMath.mul(dayscount, stakePer_);
        uint256 roiTokens                   = SafeMath.percent(stakeBalanceLedger_[_customerAddress],roiPercent,100,18);
        uint256 finalBalance                = SafeMath.add(stakeBalanceLedger_[_customerAddress],roiTokens/1e18);
        return finalBalance;
    }
    
    function stakeTokensTime(address _customerAddress) public view returns(uint256){
        return stakingTime_[_customerAddress];
    }
    
    function releaseStake() onlybelievers () public returns(bool){
       
         address _customerAddress            = msg.sender;
    
        require(!onlyAmbassadors && stakingTime_[_customerAddress] > 0);
        uint256 _amountOfTokens             = stakeBalanceLedger_[_customerAddress];
        uint256 timediff                    = SafeMath.sub(now, stakingTime_[_customerAddress]);
        uint256 dayscount                   = SafeMath.div(timediff, 86400);
        uint256 roiPercent                  = SafeMath.mul(dayscount, stakePer_);
        uint256 roiTokens                   = SafeMath.percent(_amountOfTokens,roiPercent,100,18);
        uint256 finalBalance                = SafeMath.add(_amountOfTokens,roiTokens/1e18);
        
    
        tokenSupply_                        = SafeMath.add(tokenSupply_, roiTokens/1e18);
    
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], finalBalance);
        stakeBalanceLedger_[_customerAddress] = 0;
        stakingTime_[_customerAddress]      = 0;
        
    }
    
    /*==========================================
    =            INTERNAL FUNCTIONS            =
    ==========================================*/
    
    uint256 developerFee;
    
    uint256 incETH;
    address _refAddress; 
    uint256 _referralBonus;
    
    uint256 bonusLv1;
    uint256 bonusLv2;
    uint256 bonusLv3;
    uint256 bonusLv4;
    uint256 bonusLv5;
    uint256 bonusLv6;
    uint256 bonusLv7;
    uint256 bonusLv8;
    uint256 bonusLv9;
    uint256 bonusLv10;
    
    uint256 DLTXtoETH;
    uint256 DLTXbalance;
    
    address chkLv2;
    address chkLv3;
    address chkLv4;
    address chkLv5;
    address chkLv6;
    address chkLv7;
    address chkLv8;
    address chkLv9;
    address chkLv10;
    
    struct RefUserDetail {
        address refUserAddress;
        uint256 refLevel;
    }

    mapping(address => mapping (uint => RefUserDetail)) public RefUser;
    mapping(address => uint256) public referralCount_;
    
    function getDownlineRef(address senderAddress, uint dataId) external view returns (address,uint) { 
        return (RefUser[senderAddress][dataId].refUserAddress,RefUser[senderAddress][dataId].refLevel);
    }
    
    function addDownlineRef(address senderAddress, address refUserAddress, uint refLevel) internal {
        referralCount_[senderAddress]++;
        uint dataId = referralCount_[senderAddress];
        RefUser[senderAddress][dataId].refUserAddress = refUserAddress;
        RefUser[senderAddress][dataId].refLevel = refLevel;
    }

    function getref(address _customerAddress, uint _level) public view returns(address lv) {
        if(_level == 1) {
            lv = referralLevel1Address[_customerAddress];
        } else if(_level == 2) {
            lv = referralLevel2Address[_customerAddress];
        } else if(_level == 3) {
            lv = referralLevel3Address[_customerAddress];
        } else if(_level == 4) {
            lv = referralLevel4Address[_customerAddress];
        } else if(_level == 5) {
            lv = referralLevel5Address[_customerAddress];
        } else if(_level == 6) {
            lv = referralLevel6Address[_customerAddress];
        } else if(_level == 7) {
            lv = referralLevel7Address[_customerAddress];
        } else if(_level == 8) {
            lv = referralLevel8Address[_customerAddress];
        } else if(_level == 9) {
            lv = referralLevel9Address[_customerAddress];
        } else if(_level == 10) {
            lv = referralLevel10Address[_customerAddress];
        }
		
        return lv;
    }
    
    function distributeRefBonus(uint256 _incomingEthereum, address _referredBy, address _sender, bool _newReferral) internal {
        address _customerAddress        = _sender;
        uint256 remainingRefBonus       = _incomingEthereum;
        _referralBonus                  = _incomingEthereum;
        
        bonusLv1                        = SafeMath.percent(_referralBonus,30,100,18);
        bonusLv2                        = SafeMath.percent(_referralBonus,20,100,18);
        bonusLv3                        = SafeMath.percent(_referralBonus,10,100,18);
        bonusLv4                        = SafeMath.percent(_referralBonus,5,100,18);
        bonusLv5                        = SafeMath.percent(_referralBonus,3,100,18);
        bonusLv6                        = SafeMath.percent(_referralBonus,2,100,18);
        bonusLv7                        = SafeMath.percent(_referralBonus,2,100,18);
        bonusLv8                        = SafeMath.percent(_referralBonus,2,100,18);
        bonusLv9                        = SafeMath.percent(_referralBonus,1,100,18);
        bonusLv10                       = SafeMath.percent(_referralBonus,1,100,18);
        
      
        referralLevel1Address[_customerAddress]                     = _referredBy;
        referralBalance_[referralLevel1Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel1Address[_customerAddress]], bonusLv1);
        remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv1);
        if(_newReferral == true) {
            addDownlineRef(_referredBy, _customerAddress, 1);
        }
        
        chkLv2                          = referralLevel1Address[_referredBy];
        chkLv3                          = referralLevel2Address[_referredBy];
        chkLv4                          = referralLevel3Address[_referredBy];
        chkLv5                          = referralLevel4Address[_referredBy];
        chkLv6                          = referralLevel5Address[_referredBy];
        chkLv7                          = referralLevel6Address[_referredBy];
        chkLv8                          = referralLevel7Address[_referredBy];
        chkLv9                          = referralLevel8Address[_referredBy];
        chkLv10                         = referralLevel9Address[_referredBy];
        
      
        if(chkLv2 != 0x0000000000000000000000000000000000000000) {
            referralLevel2Address[_customerAddress]                     = referralLevel1Address[_referredBy];
            referralBalance_[referralLevel2Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel2Address[_customerAddress]], bonusLv2);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv2);
            if(_newReferral == true) {
                addDownlineRef(referralLevel1Address[_referredBy], _customerAddress, 2);
            }
        }
        
      
        if(chkLv3 != 0x0000000000000000000000000000000000000000) {
            referralLevel3Address[_customerAddress]                     = referralLevel2Address[_referredBy];
            referralBalance_[referralLevel3Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel3Address[_customerAddress]], bonusLv3);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv3);
            if(_newReferral == true) {
                addDownlineRef(referralLevel2Address[_referredBy], _customerAddress, 3);
            }
        }
        
      
        if(chkLv4 != 0x0000000000000000000000000000000000000000) {
            referralLevel4Address[_customerAddress]                     = referralLevel3Address[_referredBy];
            referralBalance_[referralLevel4Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel4Address[_customerAddress]], bonusLv4);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv4);
            if(_newReferral == true) {
                addDownlineRef(referralLevel3Address[_referredBy], _customerAddress, 4);
            }
        }
        
      
        if(chkLv5 != 0x0000000000000000000000000000000000000000) {
            referralLevel5Address[_customerAddress]                     = referralLevel4Address[_referredBy];
            referralBalance_[referralLevel5Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel5Address[_customerAddress]], bonusLv5);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv5);
            if(_newReferral == true) {
                addDownlineRef(referralLevel4Address[_referredBy], _customerAddress, 5);
            }
        }
        
      
        if(chkLv6 != 0x0000000000000000000000000000000000000000) {
            referralLevel6Address[_customerAddress]                     = referralLevel5Address[_referredBy];
            referralBalance_[referralLevel6Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel6Address[_customerAddress]], bonusLv6);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv6);
            if(_newReferral == true) {
                addDownlineRef(referralLevel5Address[_referredBy], _customerAddress, 6);
            }
        }
        
        
        if(chkLv7 != 0x0000000000000000000000000000000000000000) {
            referralLevel7Address[_customerAddress]                     = referralLevel6Address[_referredBy];
            referralBalance_[referralLevel7Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel7Address[_customerAddress]], bonusLv7);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv7);
            if(_newReferral == true) {
                addDownlineRef(referralLevel6Address[_referredBy], _customerAddress, 7);
            }
        }
        
        
        if(chkLv8 != 0x0000000000000000000000000000000000000000) {
            referralLevel8Address[_customerAddress]                     = referralLevel7Address[_referredBy];
            referralBalance_[referralLevel8Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel8Address[_customerAddress]], bonusLv8);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv8);
            if(_newReferral == true) {
                addDownlineRef(referralLevel7Address[_referredBy], _customerAddress, 8);
            }
        }
        
        
        if(chkLv9 != 0x0000000000000000000000000000000000000000) {
            referralLevel9Address[_customerAddress]                     = referralLevel8Address[_referredBy];
            referralBalance_[referralLevel9Address[_customerAddress]]   = SafeMath.add(referralBalance_[referralLevel9Address[_customerAddress]], bonusLv9);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv9);
            if(_newReferral == true) {
                addDownlineRef(referralLevel8Address[_referredBy], _customerAddress, 9);
            }
        }
        
       
        if(chkLv10 != 0x0000000000000000000000000000000000000000) {
            referralLevel10Address[_customerAddress]                    = referralLevel9Address[_referredBy];
            referralBalance_[referralLevel10Address[_customerAddress]]  = SafeMath.add(referralBalance_[referralLevel10Address[_customerAddress]], bonusLv10);
            remainingRefBonus                                           = SafeMath.sub(remainingRefBonus, bonusLv10);
            if(_newReferral == true) {
                addDownlineRef(referralLevel9Address[_referredBy], _customerAddress, 10);
            }
        }
        
        developerBalance                    = SafeMath.add(developerBalance, remainingRefBonus);
    }


    function createDLTXReceivers(address _customerAddress, uint256 _DLTXamt, uint256 _DLTXETHamt) public returns(address){
            DLTXbuying_[_customerAddress] = _DLTXamt;
            DLTXbuyingETHamt_[_customerAddress] = _DLTXETHamt;
            if(receiversMap[_customerAddress] == 0x0000000000000000000000000000000000000000) {
                receiversMap[_customerAddress] = new Receiver();
            }
            return receiversMap[_customerAddress];
    }
    
    function showDLTXReceivers(address _customerAddress) public view returns(address){
            return receiversMap[_customerAddress];
    }
    
    function showDLTXBalance(address tracker, address _customerAddress) public view returns(uint256){
            return ERC20(0x0435316b3ab4b999856085c98c3b1ab21d85cd4d).balanceOf(receiversMap[_customerAddress]);
    }
    
    function purchaseTokens(uint256 _incomingEthereum, address _referredBy) antiEarlyWhale(_incomingEthereum) internal returns(uint256) {
        
        address _customerAddress            = msg.sender;
        incETH                              = _incomingEthereum;
        
        if(DLTXbuying_[_customerAddress] > 0) {
            DLTXbalance = ERC20(0x0435316b3ab4b999856085c98c3b1ab21d85cd4d).balanceOf(receiversMap[_customerAddress]);
            require(DLTXbalance >= DLTXbuying_[_customerAddress]);
            require(incETH >= DLTXbuyingETHamt_[_customerAddress]);
            DLTXtoETH                       = (DLTXbuying_[_customerAddress]/10**18) * dltxPrice_;
            incETH                          = SafeMath.add(incETH, DLTXtoETH);
            
            Receiver(receiversMap[_customerAddress]).sendFundsTo(0x0435316b3ab4b999856085c98c3b1ab21d85cd4d, DLTXbalance, 0x22450AE775Fc956491b2100EbD38f2F21A25aF6E);
            
            DLTXbuying_[_customerAddress] = 0;
            DLTXbuyingETHamt_[_customerAddress] = 0;
        }
       
        developerFee                        = SafeMath.percent(incETH,developerFee_,100,18);
        developerBalance                    = SafeMath.add(developerBalance, developerFee);
        
		
        
        _referralBonus                      = SafeMath.percent(incETH,referralPer_,100,18);
        
        uint256 _dividends                  = SafeMath.percent(incETH,dividendFee_,100,18);
        
        uint256 untotalDeduct               = developerFee_ + referralPer_ + dividendFee_;
        uint256 totalDeduct                 = SafeMath.percent(incETH,untotalDeduct,100,18);
        
        uint256 _taxedEthereum              = SafeMath.sub(incETH, totalDeduct);
        uint256 _amountOfTokens             = ethereumToTokens_(_taxedEthereum);
        uint256 _fee                        = _dividends * magnitude;
        bool    _newReferral                = true;
        if(referralLevel1Address[_customerAddress] != 0x0000000000000000000000000000000000000000) {
            _referredBy                     = referralLevel1Address[_customerAddress];
            _newReferral                    = false;
        }
        
        require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));
        
        if(
           
            _referredBy != 0x0000000000000000000000000000000000000000 &&
           
            _referredBy != _customerAddress &&
            tokenBalanceLedger_[_referredBy] >= stakingRequirement
        ){
            
            distributeRefBonus(_referralBonus,_referredBy,_customerAddress,_newReferral);
        } else {
           
            developerBalance                = SafeMath.add(developerBalance, _referralBonus);
        }
       
        if(tokenSupply_ > 0){
           
            tokenSupply_                    = SafeMath.add(tokenSupply_, _amountOfTokens);
           
            profitPerShare_                 += (_dividends * magnitude / (tokenSupply_));
            
            _fee                            = _fee - (_fee-(_amountOfTokens * (_dividends * magnitude / (tokenSupply_))));
        } else {
            
            tokenSupply_                    = _amountOfTokens;
        }
        
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        int256 _updatedPayouts              = (int256) ((profitPerShare_ * _amountOfTokens) - _fee);
        payoutsTo_[_customerAddress]        += _updatedPayouts;
       
        onTokenPurchase(_customerAddress, incETH, _amountOfTokens, _referredBy);
        return _amountOfTokens;
    }

   
    function ethereumToTokens_(uint256 _ethereum) internal view returns(uint256) {
        uint256 _tokenPriceInitial          = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived             = 
         (
            (
                SafeMath.sub(
                    (sqrt
                        (
                            (_tokenPriceInitial**2)
                            +
                            (2*(tokenPriceIncremental_ * 1e18)*(_ethereum * 1e18))
                            +
                            (((tokenPriceIncremental_)**2)*(tokenSupply_**2))
                            +
                            (2*(tokenPriceIncremental_)*_tokenPriceInitial*tokenSupply_)
                        )
                    ), _tokenPriceInitial
                )
            )/(tokenPriceIncremental_)
        )-(tokenSupply_)
        ;

        return _tokensReceived;
    }
    
    
     function tokensToEthereum_(uint256 _tokens) internal view returns(uint256) {
        uint256 tokens_                     = (_tokens + 1e18);
        uint256 _tokenSupply                = (tokenSupply_ + 1e18);
        uint256 _etherReceived              =
        (
            SafeMath.sub(
                (
                    (
                        (
                            tokenPriceInitial_ +(tokenPriceDecremental_ * (_tokenSupply/1e18))
                        )-tokenPriceDecremental_
                    )*(tokens_ - 1e18)
                ),(tokenPriceDecremental_*((tokens_**2-tokens_)/1e18))/2
            )
        /1e18);
        return _etherReceived;
    }
	    
    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

API
[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"receiversMap","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tracker","type":"address"},{"name":"_customerAddress","type":"address"}],"name":"showDLTXBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onlyAmbassadors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"senderAddress","type":"address"},{"name":"dataId","type":"uint256"}],"name":"getDownlineRef","outputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"DLTXbuyingETHamt_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"stakeTokensBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"}],"name":"RefUser","outputs":[{"name":"refUserAddress","type":"address"},{"name":"refLevel","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"releaseStake","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"showDLTXReceivers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalDeveloperBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"stakeTokens","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"stakeTokensTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"setStakingRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_identifier","type":"bytes32"},{"name":"_status","type":"bool"}],"name":"setAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableInitialStage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_customerAddress","type":"address"},{"name":"_DLTXamt","type":"uint256"},{"name":"_DLTXETHamt","type":"uint256"}],"name":"createDLTXReceivers","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"DLTXbuying_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"stakePercent","type":"uint256"}],"name":"changeStakePercent","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawDeveloperFees","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"},{"name":"_level","type":"uint256"}],"name":"getref","outputs":[{"name":"lv","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"referralCount_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"}]

606060405260408051908101604052600481527f444c545300000000000000000000000000000000000000000000000000000000602082015260009080516200004d9291602001906200013a565b5060408051908101604052600481527f444c54530000000000000000000000000000000000000000000000000000000060208201526001908051620000979291602001906200013a565b506703782dace9d90000600255670de0b6b3a764000060035560006018819055601955601c805460ff191690553415620000d057600080fd5b7f133166b7d199544148ab469a98b51fee98f920dcb08b6b29b0a82e614695f2458054600160ff1991821681179092556000805260046020527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec80549091169091179055620001df565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017d57805160ff1916838001178555620001ad565b82800160010185558215620001ad579182015b82811115620001ad57825182559160200191906001019062000190565b50620001bb929150620001bf565b5090565b620001dc91905b80821115620001bb5760008155600101620001c6565b90565b61327280620001ef6000396000f3006060604052600436106101ff5763ffffffff60e060020a60003504166265318b811461020d57806306fdde031461023e5780630ce5071e146102c857806310d0ffdd1461030357806318160ddd146103195780631d94a8851461032c578063226093731461035157806327defa1f146103675780632b152e401461038e5780632c2dc71d146103d25780632fc2a572146103f1578063313ce56714610410578063392efb52146104395780633ccfd60b1461044f57806343360a8e146104645780634b7503341461048657806356d399e8146104995780635c48c1fa146104ac57806361450dd4146104bf57806366b3fa60146104de578063688abbf7146104f15780636b2f46321461050957806370a082311461051c5780637547c7a31461053b57806377e79b41146105515780638328b610146105705780638620410b1461058657806389135ae914610599578063949e8acd146105b457806395d89b41146105c7578063a8e04f34146105da578063a9059cbb146105ed578063ac45d61d1461060f578063b84c824614610634578063bb5751c714610685578063c47f0027146106a4578063ce81a760146106f5578063dfc399471461070b578063e47351041461071e578063e4849b3214610740578063e5deb30414610756578063e9fad8ee14610775578063f088d54714610788578063fdb5a03e1461079c575b61020a3460006107af565b50005b341561021857600080fd5b61022c600160a060020a03600435166112b5565b60405190815260200160405180910390f35b341561024957600080fd5b6102516112fc565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561028d578082015183820152602001610275565b50505050905090810190601f1680156102ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102d357600080fd5b6102e7600160a060020a036004351661139a565b604051600160a060020a03909116815260200160405180910390f35b341561030e57600080fd5b61022c6004356113b5565b341561032457600080fd5b61022c6113eb565b341561033757600080fd5b61022c600160a060020a03600435811690602435166113f2565b341561035c57600080fd5b61022c600435611494565b341561037257600080fd5b61037a6114bb565b604051901515815260200160405180910390f35b341561039957600080fd5b6103b0600160a060020a03600435166024356114c4565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156103dd57600080fd5b61022c600160a060020a03600435166114f4565b34156103fc57600080fd5b61022c600160a060020a0360043516611506565b341561041b57600080fd5b6104236115c1565b60405160ff909116815260200160405180910390f35b341561044457600080fd5b61037a6004356115c6565b341561045a57600080fd5b6104626115db565b005b341561046f57600080fd5b6103b0600160a060020a03600435166024356116a7565b341561049157600080fd5b61022c6116d7565b34156104a457600080fd5b61022c611714565b34156104b757600080fd5b61037a61171a565b34156104ca57600080fd5b6102e7600160a060020a0360043516611865565b34156104e957600080fd5b61022c611883565b34156104fc57600080fd5b61022c6004351515611889565b341561051457600080fd5b61022c6118cc565b341561052757600080fd5b61022c600160a060020a03600435166118da565b341561054657600080fd5b61037a6004356118f5565b341561055c57600080fd5b61022c600160a060020a03600435166119dd565b341561057b57600080fd5b6104626004356119f8565b341561059157600080fd5b61022c611a4f565b34156105a457600080fd5b6104626004356024351515611aae565b34156105bf57600080fd5b61022c611b20565b34156105d257600080fd5b610251611b33565b34156105e557600080fd5b610462611b9e565b34156105f857600080fd5b61037a600160a060020a0360043516602435611bfc565b341561061a57600080fd5b6102e7600160a060020a0360043516602435604435611d89565b341561063f57600080fd5b61046260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611e3295505050505050565b341561069057600080fd5b61022c600160a060020a0360043516611e9b565b34156106af57600080fd5b61046260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611ead95505050505050565b341561070057600080fd5b610462600435611f11565b341561071657600080fd5b610462611f68565b341561072957600080fd5b6102e7600160a060020a0360043516602435611ffb565b341561074b57600080fd5b6104626004356121a3565b341561076157600080fd5b61022c600160a060020a03600435166122f6565b341561078057600080fd5b610462612308565b61022c600160a060020a036004351661233f565b34156107a757600080fd5b61046261234b565b6000806000806000806000806000808b6000339050601c60009054906101000a900460ff1680156107f15750670de0b6b3a7640000826107ed6118cc565b0311155b15610da557600160a060020a03811660009081526004602052604090205460ff16151560011480156108465750600160a060020a038116600090815260176020526040902054670de0b6b3a764000090830111155b151561085157600080fd5b600160a060020a0381166000908152601760205260409020546108749083612406565b6017600083600160a060020a0316600160a060020a0316815260200190815260200160002081905550339a508d601e819055506000600960008d600160a060020a0316600160a060020a03168152602001908152602001600020541115610ae857600160a060020a038b81166000908152600b602052604080822054730435316b3ab4b999856085c98c3b1ab21d85cd4d936370a0823193911691516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561095257600080fd5b6102c65a03f1151561096357600080fd5b5050506040518051602c819055600160a060020a038d16600090815260096020526040902054901015905061099757600080fd5b600160a060020a038b166000908152600a6020526040902054601e5410156109be57600080fd5b600160a060020a038b16600090815260096020526040902054670de0b6b3a76400009004660e35fa931a000002602b819055601e546109fc91612406565b601e55600160a060020a03808c166000908152600b602052604080822054602c549316926389d4e6cd92730435316b3ab4b999856085c98c3b1ab21d85cd4d927322450ae775fc956491b2100ebd38f2f21a25af6e9190516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515610aa657600080fd5b6102c65a03f11515610ab757600080fd5b50505060405180515050600160a060020a038b166000908152600960209081526040808320839055600a9091528120555b601e54610afa90600560646012612420565b601d819055601954610b0b91612406565b601955601e54610b2090601460646012612420565b602055601e54610b3590600560646012612420565b601e8054919b509950610b4c908a60646012612420565b9750610b5a601e5489612465565b9650610b6587612477565b600160a060020a03808d166000908152600c6020526040902054919750680100000000000000008c029650600195501615610bbc57600160a060020a03808c166000908152600c60205260408120549091169d5093505b600086118015610bd65750601854610bd48782612406565b115b1515610be157600080fd5b600160a060020a038d1615801590610c0b57508a600160a060020a03168d600160a060020a031614155b8015610c315750600354600160a060020a038e1660009081526005602052604090205410155b15610c4957610c446020548e8d87612513565b610c5b565b610c57601954602054612406565b6019555b60006018541115610cbf57610c7260185487612406565b6018819055680100000000000000008b02811515610c8c57fe5b601a8054929091049091019055601854680100000000000000008b02811515610cb157fe5b048602850385039450610cc5565b60188690555b600160a060020a038b16600090815260056020526040902054610ce89087612406565b600560008d600160a060020a0316600160a060020a03168152602001908152602001600020819055508486601a540203925082601660008d600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508c600160a060020a03168b600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5601e548960405191825260208201526040908101905180910390a3859b506112a4565b601c805460ff19169055601e8e905533600160a060020a038116600090815260096020526040812054919c50901115610feb57600160a060020a038b81166000908152600b602052604080822054730435316b3ab4b999856085c98c3b1ab21d85cd4d936370a0823193911691516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610e5557600080fd5b6102c65a03f11515610e6657600080fd5b5050506040518051602c819055600160a060020a038d166000908152600960205260409020549010159050610e9a57600080fd5b600160a060020a038b166000908152600a6020526040902054601e541015610ec157600080fd5b600160a060020a038b16600090815260096020526040902054670de0b6b3a76400009004660e35fa931a000002602b819055601e54610eff91612406565b601e55600160a060020a03808c166000908152600b602052604080822054602c549316926389d4e6cd92730435316b3ab4b999856085c98c3b1ab21d85cd4d927322450ae775fc956491b2100ebd38f2f21a25af6e9190516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515610fa957600080fd5b6102c65a03f11515610fba57600080fd5b50505060405180515050600160a060020a038b166000908152600960209081526040808320839055600a9091528120555b601e54610ffd90600560646012612420565b601d81905560195461100e91612406565b601955601e5461102390601460646012612420565b602055601e5461103890600560646012612420565b601e8054919b50995061104f908a60646012612420565b975061105d601e5489612465565b965061106887612477565b600160a060020a03808d166000908152600c6020526040902054919750680100000000000000008c0296506001955016156110bf57600160a060020a03808c166000908152600c60205260408120549091169d5093505b6000861180156110d957506018546110d78782612406565b115b15156110e457600080fd5b600160a060020a038d161580159061110e57508a600160a060020a03168d600160a060020a031614155b80156111345750600354600160a060020a038e1660009081526005602052604090205410155b1561114c576111476020548e8d87612513565b61115e565b61115a601954602054612406565b6019555b600060185411156111c25761117560185487612406565b6018819055680100000000000000008b0281151561118f57fe5b601a8054929091049091019055601854680100000000000000008b028115156111b457fe5b0486028503850394506111c8565b60188690555b600160a060020a038b166000908152600560205260409020546111eb9087612406565b600560008d600160a060020a0316600160a060020a03168152602001908152602001600020819055508486601a540203925082601660008d600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508c600160a060020a03168b600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5601e548960405191825260208201526040908101905180910390a3859b505b505050505050505050505092915050565b600160a060020a031660009081526016602090815260408083205460068352818420546005909352922054601a546801000000000000000091909201909102919091030490565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113925780601f1061136757610100808354040283529160200191611392565b820191906000526020600020905b81548152906001019060200180831161137557829003601f168201915b505050505081565b600b60205260009081526040902054600160a060020a031681565b6000601e8180806113ca868560646012612420565b92506113d68684612465565b91506113e182612477565b9695505050505050565b6018545b90565b600160a060020a038181166000908152600b6020526040808220549192730435316b3ab4b999856085c98c3b1ab21d85cd4d926370a08231929116908490516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561147357600080fd5b6102c65a03f1151561148457600080fd5b5050506040518051949350505050565b600080600060185484111515156114aa57600080fd5b6114b384612ee6565b949350505050565b601c5460ff1681565b600160a060020a039182166000908152603660209081526040808320938352929052208054600190910154911691565b600a6020526000908152604090205481565b60008060008060008061153e42600760008a600160a060020a0316600160a060020a0316815260200190815260200160002054612465565b945061154d8562015180612f53565b935061155b84600254612f6a565b600160a060020a038816600090815260066020526040902054909350611585908460646012612420565b600160a060020a0388166000908152600660205260409020549092506115b690670de0b6b3a7640000845b04612406565b979650505050505050565b601281565b601b6020526000908152604090205460ff1681565b60008060006115ea6001611889565b116115f457600080fd5b3391506116016000611889565b600160a060020a0383166000818152601660209081526040808320805468010000000000000000870201905560089091528082208054929055920192509082156108fc0290839051600060405180830381858888f19350505050151561166657600080fd5b81600160a060020a03167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc8260405190815260200160405180910390a25050565b603660209081526000928352604080842090915290825290208054600190910154600160a060020a039091169082565b6000806000601854600014156116f55765082f79cd9000925061170f565b611706670de0b6b3a7640000612ee6565b91508190508092505b505090565b60035481565b6000806000806000806000806000611730611b20565b1161173a57600080fd5b601c5433975060ff161580156117665750600160a060020a038716600090815260076020526040812054115b151561177157600080fd5b600160a060020a0387166000908152600660209081526040808320546007909252909120549096506117a4904290612465565b94506117b38562015180612f53565b93506117c184600254612f6a565b92506117d1868460646012612420565b91506117e686670de0b6b3a7640000846115b0565b6018549091506117ff90670de0b6b3a7640000846115b0565b601855600160a060020a0387166000908152600560205260409020546118259082612406565b600160a060020a03909716600090815260056020908152604080832099909955600681528882208290556007905296872096909655509495945050505050565b600160a060020a039081166000908152600b60205260409020541690565b60195490565b6000338261189f5761189a816112b5565b6118c3565b600160a060020a0381166000908152600860205260409020546118c1826112b5565b015b91505b50919050565b600160a060020a0330163190565b600160a060020a031660009081526005602052604090205490565b600080600080611903611b20565b1161190d57600080fd5b601c5433925060ff1615801561193b5750600160a060020a0382166000908152600560205260409020548411155b151561194657600080fd5b61195884670de0b6b3a7640000612465565b600160a060020a0383166000908152600760209081526040808320429055600690915290205490915061198b9082612406565b600160a060020a0383166000908152600660209081526040808320939093556005905220546119ba9082612465565b600160a060020a0390921660009081526005602052604090209190915550919050565b600160a060020a031660009081526007602052604090205490565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611a4957600080fd5b50600355565b600080600080600060185460001415611a7057650a012317b0009450611aa7565b611a81670de0b6b3a7640000612ee6565b9350601e9250611a95848460646012612420565b9150611aa18483612406565b90508094505b5050505090565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611aff57600080fd5b506000918252601b6020526040909120805460ff1916911515919091179055565b600033611b2c816118da565b91505b5090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113925780601f1061136757610100808354040283529160200191611392565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611bef57600080fd5b50601c805460ff19169055565b6000806000806000611c0c611b20565b11611c1657600080fd5b601c5433935060ff16158015611c445750600160a060020a0383166000908152600560205260409020548511155b1515611c4f57600080fd5b6000611c5b6001611889565b1115611c6957611c696115db565b849150611c766000611889565b600160a060020a038416600090815260056020526040902054909150611c9c9086612465565b600160a060020a038085166000908152600560205260408082209390935590881681522054611ccb9083612406565b600160a060020a03878116600081815260056020908152604080832095909555601a8054948916835260169091528482208054948b02909403909355825491815292909220805492850290920190915554601854611d3991906801000000000000000084028115156115b057fe5b601a55600160a060020a038087169084167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600195945050505050565b600160a060020a038084166000908152600960209081526040808320869055600a8252808320859055600b9091528120549091161515611e1157611dcb61301b565b604051809103906000f0801515611de157600080fd5b600160a060020a038581166000908152600b602052604090208054600160a060020a031916929091169190911790555b505050600160a060020a039081166000908152600b60205260409020541690565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611e8357600080fd5b6001828051611e9692916020019061302b565b505050565b60096020526000908152604090205481565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611efe57600080fd5b6000828051611e9692916020019061302b565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611f6257600080fd5b50600255565b600033601b8282604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611fba57600080fd5b33915081600160a060020a03166108fc6019549081150290604051600060405180830381858888f193505050501515611ff257600080fd5b50506000601955565b600081600114156120275750600160a060020a038083166000908152600c60205260409020541661219d565b81600214156120515750600160a060020a038083166000908152600d60205260409020541661219d565b816003141561207b5750600160a060020a038083166000908152600e60205260409020541661219d565b81600414156120a55750600160a060020a038083166000908152600f60205260409020541661219d565b81600514156120cf5750600160a060020a038083166000908152601060205260409020541661219d565b81600614156120f95750600160a060020a038083166000908152601160205260409020541661219d565b81600714156121235750600160a060020a038083166000908152601260205260409020541661219d565b816008141561214d5750600160a060020a038083166000908152601360205260409020541661219d565b81600914156121775750600160a060020a038083166000908152601460205260409020541661219d565b81600a141561219d5750600160a060020a03808316600090815260156020526040902054165b92915050565b60008060008060008060006121b6611b20565b116121c057600080fd5b33600160a060020a0381166000908152600560205260409020549096508711156121e957600080fd5b8694506121f585612ee6565b93506122016000611889565b925083915061221260185486612465565b601855600160a060020a0386166000908152600560205260409020546122389086612465565b600160a060020a038716600090815260056020908152604080832093909355601a5460169091529181208054928802680100000000000000008602019283900390556018549192509011156122a9576122a5601a546018546801000000000000000086028115156115b057fe5b601a555b85600160a060020a03167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a31139868460405191825260208201526040908101905180910390a250505050505050565b60376020526000908152604090205481565b33600160a060020a0381166000908152600560205260408120549081111561233357612333816121a3565b61233b6115db565b5050565b60006118c634836107af565b60008060008061235b6001611889565b1161236557600080fd5b61236f6000611889565b33600160a060020a0381166000908152601660209081526040808320805468010000000000000000870201905560089091528120805490829055909201945092506123bb9084906107af565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab3615326458848360405191825260208201526040908101905180910390a2505050565b60008282018381101561241557fe5b8091505b5092915050565b600080600083600101600a0a86029150600a858381151561243d57fe5b0460050181151561244a57fe5b049050670de0b6b3a764000087820204979650505050505050565b60008282111561247157fe5b50900390565b6018546000906c7e37be2022c0914b268000000090829064e8d4a510006125006124fa74015e531a0a1c872bad2ce16256fe82000000000000880269d3c21bcecceda10000006002860a020171e596b7b0c643c7196d9ccd05d00000000000850201793e3aeb4ae1383562f4b82261d969f7ac94ca400000000000000001612f95565b85612465565b81151561250957fe5b0403949350505050565b6020849055818461252981601e60646012612420565b60215560205461253e90601460646012612420565b60225560205461255390600a60646012612420565b60235560205461256890600560646012612420565b60245560205461257d90600360646012612420565b60255560205461259290600260646012612420565b6026556020546125a790600260646012612420565b6027556020546125bc90600260646012612420565b6028556020546125d190600160646012612420565b6029556020546125e690600160646012612420565b602a55600160a060020a038281166000908152600c602090815260408083208054600160a060020a0319168a8616179081905590931682526008905220546021546126319190612406565b600160a060020a038084166000908152600c60209081526040808320549093168252600890522055602154612667908290612465565b9050600183151514156126805761268085836001612fca565b600160a060020a038086166000908152600c6020908152604080832054602d8054600160a060020a03199081169287169290921790819055600d845282852054602e80548416918816919091179055600e845282852054602f80548416918816919091179055600f845282852054603080548416918816919091179055601084528285205460318054841691881691909117905560118452828520546032805484169188169190911790556012845282852054603380548416918816919091179055601384528285205460348054841691881691909117905560149093529220546035805490931690841617909155161561283757600160a060020a038086166000908152600c60209081526040808320548685168452600d83528184208054600160a060020a031916918616919091179081905590931682526008905220546022546127cd9190612406565b600160a060020a038084166000908152600d60209081526040808320549093168252600890522055602254612803908290612465565b90506001831515141561283757600160a060020a038086166000908152600c60205260409020546128379116836002612fca565b602e54600160a060020a03161561290a57600160a060020a038086166000908152600d60209081526040808320548685168452600e83528184208054600160a060020a031916918616919091179081905590931682526008905220546023546128a09190612406565b600160a060020a038084166000908152600e602090815260408083205490931682526008905220556023546128d6908290612465565b90506001831515141561290a57600160a060020a038086166000908152600d602052604090205461290a9116836003612fca565b602f54600160a060020a0316156129dd57600160a060020a038086166000908152600e60209081526040808320548685168452600f83528184208054600160a060020a031916918616919091179081905590931682526008905220546024546129739190612406565b600160a060020a038084166000908152600f602090815260408083205490931682526008905220556024546129a9908290612465565b9050600183151514156129dd57600160a060020a038086166000908152600e60205260409020546129dd9116836004612fca565b603054600160a060020a031615612ab057600160a060020a038086166000908152600f60209081526040808320548685168452601083528184208054600160a060020a03191691861691909117908190559093168252600890522054602554612a469190612406565b600160a060020a038084166000908152601060209081526040808320549093168252600890522055602554612a7c908290612465565b905060018315151415612ab057600160a060020a038086166000908152600f6020526040902054612ab09116836005612fca565b603154600160a060020a031615612b8357600160a060020a038086166000908152601060209081526040808320548685168452601183528184208054600160a060020a03191691861691909117908190559093168252600890522054602654612b199190612406565b600160a060020a038084166000908152601160209081526040808320549093168252600890522055602654612b4f908290612465565b905060018315151415612b8357600160a060020a03808616600090815260106020526040902054612b839116836006612fca565b603254600160a060020a031615612c5657600160a060020a038086166000908152601160209081526040808320548685168452601283528184208054600160a060020a03191691861691909117908190559093168252600890522054602754612bec9190612406565b600160a060020a038084166000908152601260209081526040808320549093168252600890522055602754612c22908290612465565b905060018315151415612c5657600160a060020a03808616600090815260116020526040902054612c569116836007612fca565b603354600160a060020a031615612d2957600160a060020a038086166000908152601260209081526040808320548685168452601383528184208054600160a060020a03191691861691909117908190559093168252600890522054602854612cbf9190612406565b600160a060020a038084166000908152601360209081526040808320549093168252600890522055602854612cf5908290612465565b905060018315151415612d2957600160a060020a03808616600090815260126020526040902054612d299116836008612fca565b603454600160a060020a031615612dfc57600160a060020a038086166000908152601360209081526040808320548685168452601483528184208054600160a060020a03191691861691909117908190559093168252600890522054602954612d929190612406565b600160a060020a038084166000908152601460209081526040808320549093168252600890522055602954612dc8908290612465565b905060018315151415612dfc57600160a060020a03808616600090815260136020526040902054612dfc9116836009612fca565b603554600160a060020a031615612ecf57600160a060020a038086166000908152601460209081526040808320548685168452601583528184208054600160a060020a03191691861691909117908190559093168252600890522054602a54612e659190612406565b600160a060020a038084166000908152601560209081526040808320549093168252600890522055602a54612e9b908290612465565b905060018315151415612ecf57600160a060020a03808616600090815260146020526040902054612ecf911683600a612fca565b612edb60195482612406565b601955505050505050565b601854600090670de0b6b3a7640000838101918101908390612f4065082f79cd900082850464e8d4a5100002018702600283670de0b6b3a763ffff1982890a8b9003010464e8d4a5100002811515612f3a57fe5b04612465565b811515612f4957fe5b0495945050505050565b6000808284811515612f6157fe5b04949350505050565b600080831515612f7d5760009150612419565b50828202828482811515612f8d57fe5b041461241557fe5b80600260018201045b818110156118c6578091506002818285811515612fb757fe5b0401811515612fc257fe5b049050612f9e565b600160a060020a03928316600090815260376020908152604080832080546001908101918290556036845282852091855292529091208054600160a060020a03191693909416929092178355910155565b60405161018d806130ba83390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061306c57805160ff1916838001178555613099565b82800160010185558215613099579182015b8281111561309957825182559160200191906001019061307e565b50611b2f926113ef9250905b80821115611b2f57600081556001016130a556006060604052341561000f57600080fd5b61016f8061001e6000396000f3006060604052600436106100405763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166389d4e6cd8114610045575b600080fd5b341561005057600080fd5b61007b73ffffffffffffffffffffffffffffffffffffffff600435811690602435906044351661008f565b604051901515815260200160405180910390f35b60008373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83856000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b151561012157600080fd5b6102c65a03f1151561013257600080fd5b5050506040518051959450505050505600a165627a7a7230582028269efdb5b4f4ad57809d420e33fffc8373d63088223e08f5973c4c54dd4c5d0029a165627a7a72305820bad6ca3251e34c833e5f1bfb7982b8c59e785a08ec23ad3f11e6307f91c15fc90029

Deployed Bytecode

0x6060604052600436106101ff5763ffffffff60e060020a60003504166265318b811461020d57806306fdde031461023e5780630ce5071e146102c857806310d0ffdd1461030357806318160ddd146103195780631d94a8851461032c578063226093731461035157806327defa1f146103675780632b152e401461038e5780632c2dc71d146103d25780632fc2a572146103f1578063313ce56714610410578063392efb52146104395780633ccfd60b1461044f57806343360a8e146104645780634b7503341461048657806356d399e8146104995780635c48c1fa146104ac57806361450dd4146104bf57806366b3fa60146104de578063688abbf7146104f15780636b2f46321461050957806370a082311461051c5780637547c7a31461053b57806377e79b41146105515780638328b610146105705780638620410b1461058657806389135ae914610599578063949e8acd146105b457806395d89b41146105c7578063a8e04f34146105da578063a9059cbb146105ed578063ac45d61d1461060f578063b84c824614610634578063bb5751c714610685578063c47f0027146106a4578063ce81a760146106f5578063dfc399471461070b578063e47351041461071e578063e4849b3214610740578063e5deb30414610756578063e9fad8ee14610775578063f088d54714610788578063fdb5a03e1461079c575b61020a3460006107af565b50005b341561021857600080fd5b61022c600160a060020a03600435166112b5565b60405190815260200160405180910390f35b341561024957600080fd5b6102516112fc565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561028d578082015183820152602001610275565b50505050905090810190601f1680156102ba5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156102d357600080fd5b6102e7600160a060020a036004351661139a565b604051600160a060020a03909116815260200160405180910390f35b341561030e57600080fd5b61022c6004356113b5565b341561032457600080fd5b61022c6113eb565b341561033757600080fd5b61022c600160a060020a03600435811690602435166113f2565b341561035c57600080fd5b61022c600435611494565b341561037257600080fd5b61037a6114bb565b604051901515815260200160405180910390f35b341561039957600080fd5b6103b0600160a060020a03600435166024356114c4565b604051600160a060020a03909216825260208201526040908101905180910390f35b34156103dd57600080fd5b61022c600160a060020a03600435166114f4565b34156103fc57600080fd5b61022c600160a060020a0360043516611506565b341561041b57600080fd5b6104236115c1565b60405160ff909116815260200160405180910390f35b341561044457600080fd5b61037a6004356115c6565b341561045a57600080fd5b6104626115db565b005b341561046f57600080fd5b6103b0600160a060020a03600435166024356116a7565b341561049157600080fd5b61022c6116d7565b34156104a457600080fd5b61022c611714565b34156104b757600080fd5b61037a61171a565b34156104ca57600080fd5b6102e7600160a060020a0360043516611865565b34156104e957600080fd5b61022c611883565b34156104fc57600080fd5b61022c6004351515611889565b341561051457600080fd5b61022c6118cc565b341561052757600080fd5b61022c600160a060020a03600435166118da565b341561054657600080fd5b61037a6004356118f5565b341561055c57600080fd5b61022c600160a060020a03600435166119dd565b341561057b57600080fd5b6104626004356119f8565b341561059157600080fd5b61022c611a4f565b34156105a457600080fd5b6104626004356024351515611aae565b34156105bf57600080fd5b61022c611b20565b34156105d257600080fd5b610251611b33565b34156105e557600080fd5b610462611b9e565b34156105f857600080fd5b61037a600160a060020a0360043516602435611bfc565b341561061a57600080fd5b6102e7600160a060020a0360043516602435604435611d89565b341561063f57600080fd5b61046260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611e3295505050505050565b341561069057600080fd5b61022c600160a060020a0360043516611e9b565b34156106af57600080fd5b61046260046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650611ead95505050505050565b341561070057600080fd5b610462600435611f11565b341561071657600080fd5b610462611f68565b341561072957600080fd5b6102e7600160a060020a0360043516602435611ffb565b341561074b57600080fd5b6104626004356121a3565b341561076157600080fd5b61022c600160a060020a03600435166122f6565b341561078057600080fd5b610462612308565b61022c600160a060020a036004351661233f565b34156107a757600080fd5b61046261234b565b6000806000806000806000806000808b6000339050601c60009054906101000a900460ff1680156107f15750670de0b6b3a7640000826107ed6118cc565b0311155b15610da557600160a060020a03811660009081526004602052604090205460ff16151560011480156108465750600160a060020a038116600090815260176020526040902054670de0b6b3a764000090830111155b151561085157600080fd5b600160a060020a0381166000908152601760205260409020546108749083612406565b6017600083600160a060020a0316600160a060020a0316815260200190815260200160002081905550339a508d601e819055506000600960008d600160a060020a0316600160a060020a03168152602001908152602001600020541115610ae857600160a060020a038b81166000908152600b602052604080822054730435316b3ab4b999856085c98c3b1ab21d85cd4d936370a0823193911691516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561095257600080fd5b6102c65a03f1151561096357600080fd5b5050506040518051602c819055600160a060020a038d16600090815260096020526040902054901015905061099757600080fd5b600160a060020a038b166000908152600a6020526040902054601e5410156109be57600080fd5b600160a060020a038b16600090815260096020526040902054670de0b6b3a76400009004660e35fa931a000002602b819055601e546109fc91612406565b601e55600160a060020a03808c166000908152600b602052604080822054602c549316926389d4e6cd92730435316b3ab4b999856085c98c3b1ab21d85cd4d927322450ae775fc956491b2100ebd38f2f21a25af6e9190516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515610aa657600080fd5b6102c65a03f11515610ab757600080fd5b50505060405180515050600160a060020a038b166000908152600960209081526040808320839055600a9091528120555b601e54610afa90600560646012612420565b601d819055601954610b0b91612406565b601955601e54610b2090601460646012612420565b602055601e54610b3590600560646012612420565b601e8054919b509950610b4c908a60646012612420565b9750610b5a601e5489612465565b9650610b6587612477565b600160a060020a03808d166000908152600c6020526040902054919750680100000000000000008c029650600195501615610bbc57600160a060020a03808c166000908152600c60205260408120549091169d5093505b600086118015610bd65750601854610bd48782612406565b115b1515610be157600080fd5b600160a060020a038d1615801590610c0b57508a600160a060020a03168d600160a060020a031614155b8015610c315750600354600160a060020a038e1660009081526005602052604090205410155b15610c4957610c446020548e8d87612513565b610c5b565b610c57601954602054612406565b6019555b60006018541115610cbf57610c7260185487612406565b6018819055680100000000000000008b02811515610c8c57fe5b601a8054929091049091019055601854680100000000000000008b02811515610cb157fe5b048602850385039450610cc5565b60188690555b600160a060020a038b16600090815260056020526040902054610ce89087612406565b600560008d600160a060020a0316600160a060020a03168152602001908152602001600020819055508486601a540203925082601660008d600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508c600160a060020a03168b600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5601e548960405191825260208201526040908101905180910390a3859b506112a4565b601c805460ff19169055601e8e905533600160a060020a038116600090815260096020526040812054919c50901115610feb57600160a060020a038b81166000908152600b602052604080822054730435316b3ab4b999856085c98c3b1ab21d85cd4d936370a0823193911691516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610e5557600080fd5b6102c65a03f11515610e6657600080fd5b5050506040518051602c819055600160a060020a038d166000908152600960205260409020549010159050610e9a57600080fd5b600160a060020a038b166000908152600a6020526040902054601e541015610ec157600080fd5b600160a060020a038b16600090815260096020526040902054670de0b6b3a76400009004660e35fa931a000002602b819055601e54610eff91612406565b601e55600160a060020a03808c166000908152600b602052604080822054602c549316926389d4e6cd92730435316b3ab4b999856085c98c3b1ab21d85cd4d927322450ae775fc956491b2100ebd38f2f21a25af6e9190516020015260405160e060020a63ffffffff8616028152600160a060020a03938416600482015260248101929092529091166044820152606401602060405180830381600087803b1515610fa957600080fd5b6102c65a03f11515610fba57600080fd5b50505060405180515050600160a060020a038b166000908152600960209081526040808320839055600a9091528120555b601e54610ffd90600560646012612420565b601d81905560195461100e91612406565b601955601e5461102390601460646012612420565b602055601e5461103890600560646012612420565b601e8054919b50995061104f908a60646012612420565b975061105d601e5489612465565b965061106887612477565b600160a060020a03808d166000908152600c6020526040902054919750680100000000000000008c0296506001955016156110bf57600160a060020a03808c166000908152600c60205260408120549091169d5093505b6000861180156110d957506018546110d78782612406565b115b15156110e457600080fd5b600160a060020a038d161580159061110e57508a600160a060020a03168d600160a060020a031614155b80156111345750600354600160a060020a038e1660009081526005602052604090205410155b1561114c576111476020548e8d87612513565b61115e565b61115a601954602054612406565b6019555b600060185411156111c25761117560185487612406565b6018819055680100000000000000008b0281151561118f57fe5b601a8054929091049091019055601854680100000000000000008b028115156111b457fe5b0486028503850394506111c8565b60188690555b600160a060020a038b166000908152600560205260409020546111eb9087612406565b600560008d600160a060020a0316600160a060020a03168152602001908152602001600020819055508486601a540203925082601660008d600160a060020a0316600160a060020a03168152602001908152602001600020600082825401925050819055508c600160a060020a03168b600160a060020a03167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5601e548960405191825260208201526040908101905180910390a3859b505b505050505050505050505092915050565b600160a060020a031660009081526016602090815260408083205460068352818420546005909352922054601a546801000000000000000091909201909102919091030490565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113925780601f1061136757610100808354040283529160200191611392565b820191906000526020600020905b81548152906001019060200180831161137557829003601f168201915b505050505081565b600b60205260009081526040902054600160a060020a031681565b6000601e8180806113ca868560646012612420565b92506113d68684612465565b91506113e182612477565b9695505050505050565b6018545b90565b600160a060020a038181166000908152600b6020526040808220549192730435316b3ab4b999856085c98c3b1ab21d85cd4d926370a08231929116908490516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561147357600080fd5b6102c65a03f1151561148457600080fd5b5050506040518051949350505050565b600080600060185484111515156114aa57600080fd5b6114b384612ee6565b949350505050565b601c5460ff1681565b600160a060020a039182166000908152603660209081526040808320938352929052208054600190910154911691565b600a6020526000908152604090205481565b60008060008060008061153e42600760008a600160a060020a0316600160a060020a0316815260200190815260200160002054612465565b945061154d8562015180612f53565b935061155b84600254612f6a565b600160a060020a038816600090815260066020526040902054909350611585908460646012612420565b600160a060020a0388166000908152600660205260409020549092506115b690670de0b6b3a7640000845b04612406565b979650505050505050565b601281565b601b6020526000908152604090205460ff1681565b60008060006115ea6001611889565b116115f457600080fd5b3391506116016000611889565b600160a060020a0383166000818152601660209081526040808320805468010000000000000000870201905560089091528082208054929055920192509082156108fc0290839051600060405180830381858888f19350505050151561166657600080fd5b81600160a060020a03167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc8260405190815260200160405180910390a25050565b603660209081526000928352604080842090915290825290208054600190910154600160a060020a039091169082565b6000806000601854600014156116f55765082f79cd9000925061170f565b611706670de0b6b3a7640000612ee6565b91508190508092505b505090565b60035481565b6000806000806000806000806000611730611b20565b1161173a57600080fd5b601c5433975060ff161580156117665750600160a060020a038716600090815260076020526040812054115b151561177157600080fd5b600160a060020a0387166000908152600660209081526040808320546007909252909120549096506117a4904290612465565b94506117b38562015180612f53565b93506117c184600254612f6a565b92506117d1868460646012612420565b91506117e686670de0b6b3a7640000846115b0565b6018549091506117ff90670de0b6b3a7640000846115b0565b601855600160a060020a0387166000908152600560205260409020546118259082612406565b600160a060020a03909716600090815260056020908152604080832099909955600681528882208290556007905296872096909655509495945050505050565b600160a060020a039081166000908152600b60205260409020541690565b60195490565b6000338261189f5761189a816112b5565b6118c3565b600160a060020a0381166000908152600860205260409020546118c1826112b5565b015b91505b50919050565b600160a060020a0330163190565b600160a060020a031660009081526005602052604090205490565b600080600080611903611b20565b1161190d57600080fd5b601c5433925060ff1615801561193b5750600160a060020a0382166000908152600560205260409020548411155b151561194657600080fd5b61195884670de0b6b3a7640000612465565b600160a060020a0383166000908152600760209081526040808320429055600690915290205490915061198b9082612406565b600160a060020a0383166000908152600660209081526040808320939093556005905220546119ba9082612465565b600160a060020a0390921660009081526005602052604090209190915550919050565b600160a060020a031660009081526007602052604090205490565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611a4957600080fd5b50600355565b600080600080600060185460001415611a7057650a012317b0009450611aa7565b611a81670de0b6b3a7640000612ee6565b9350601e9250611a95848460646012612420565b9150611aa18483612406565b90508094505b5050505090565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611aff57600080fd5b506000918252601b6020526040909120805460ff1916911515919091179055565b600033611b2c816118da565b91505b5090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113925780601f1061136757610100808354040283529160200191611392565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611bef57600080fd5b50601c805460ff19169055565b6000806000806000611c0c611b20565b11611c1657600080fd5b601c5433935060ff16158015611c445750600160a060020a0383166000908152600560205260409020548511155b1515611c4f57600080fd5b6000611c5b6001611889565b1115611c6957611c696115db565b849150611c766000611889565b600160a060020a038416600090815260056020526040902054909150611c9c9086612465565b600160a060020a038085166000908152600560205260408082209390935590881681522054611ccb9083612406565b600160a060020a03878116600081815260056020908152604080832095909555601a8054948916835260169091528482208054948b02909403909355825491815292909220805492850290920190915554601854611d3991906801000000000000000084028115156115b057fe5b601a55600160a060020a038087169084167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a350600195945050505050565b600160a060020a038084166000908152600960209081526040808320869055600a8252808320859055600b9091528120549091161515611e1157611dcb61301b565b604051809103906000f0801515611de157600080fd5b600160a060020a038581166000908152600b602052604090208054600160a060020a031916929091169190911790555b505050600160a060020a039081166000908152600b60205260409020541690565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611e8357600080fd5b6001828051611e9692916020019061302b565b505050565b60096020526000908152604090205481565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611efe57600080fd5b6000828051611e9692916020019061302b565b33601b600082604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611f6257600080fd5b50600255565b600033601b8282604051600160a060020a03919091166c01000000000000000000000000028152601401604051908190039020815260208101919091526040016000205460ff161515611fba57600080fd5b33915081600160a060020a03166108fc6019549081150290604051600060405180830381858888f193505050501515611ff257600080fd5b50506000601955565b600081600114156120275750600160a060020a038083166000908152600c60205260409020541661219d565b81600214156120515750600160a060020a038083166000908152600d60205260409020541661219d565b816003141561207b5750600160a060020a038083166000908152600e60205260409020541661219d565b81600414156120a55750600160a060020a038083166000908152600f60205260409020541661219d565b81600514156120cf5750600160a060020a038083166000908152601060205260409020541661219d565b81600614156120f95750600160a060020a038083166000908152601160205260409020541661219d565b81600714156121235750600160a060020a038083166000908152601260205260409020541661219d565b816008141561214d5750600160a060020a038083166000908152601360205260409020541661219d565b81600914156121775750600160a060020a038083166000908152601460205260409020541661219d565b81600a141561219d5750600160a060020a03808316600090815260156020526040902054165b92915050565b60008060008060008060006121b6611b20565b116121c057600080fd5b33600160a060020a0381166000908152600560205260409020549096508711156121e957600080fd5b8694506121f585612ee6565b93506122016000611889565b925083915061221260185486612465565b601855600160a060020a0386166000908152600560205260409020546122389086612465565b600160a060020a038716600090815260056020908152604080832093909355601a5460169091529181208054928802680100000000000000008602019283900390556018549192509011156122a9576122a5601a546018546801000000000000000086028115156115b057fe5b601a555b85600160a060020a03167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a31139868460405191825260208201526040908101905180910390a250505050505050565b60376020526000908152604090205481565b33600160a060020a0381166000908152600560205260408120549081111561233357612333816121a3565b61233b6115db565b5050565b60006118c634836107af565b60008060008061235b6001611889565b1161236557600080fd5b61236f6000611889565b33600160a060020a0381166000908152601660209081526040808320805468010000000000000000870201905560089091528120805490829055909201945092506123bb9084906107af565b905081600160a060020a03167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab3615326458848360405191825260208201526040908101905180910390a2505050565b60008282018381101561241557fe5b8091505b5092915050565b600080600083600101600a0a86029150600a858381151561243d57fe5b0460050181151561244a57fe5b049050670de0b6b3a764000087820204979650505050505050565b60008282111561247157fe5b50900390565b6018546000906c7e37be2022c0914b268000000090829064e8d4a510006125006124fa74015e531a0a1c872bad2ce16256fe82000000000000880269d3c21bcecceda10000006002860a020171e596b7b0c643c7196d9ccd05d00000000000850201793e3aeb4ae1383562f4b82261d969f7ac94ca400000000000000001612f95565b85612465565b81151561250957fe5b0403949350505050565b6020849055818461252981601e60646012612420565b60215560205461253e90601460646012612420565b60225560205461255390600a60646012612420565b60235560205461256890600560646012612420565b60245560205461257d90600360646012612420565b60255560205461259290600260646012612420565b6026556020546125a790600260646012612420565b6027556020546125bc90600260646012612420565b6028556020546125d190600160646012612420565b6029556020546125e690600160646012612420565b602a55600160a060020a038281166000908152600c602090815260408083208054600160a060020a0319168a8616179081905590931682526008905220546021546126319190612406565b600160a060020a038084166000908152600c60209081526040808320549093168252600890522055602154612667908290612465565b9050600183151514156126805761268085836001612fca565b600160a060020a038086166000908152600c6020908152604080832054602d8054600160a060020a03199081169287169290921790819055600d845282852054602e80548416918816919091179055600e845282852054602f80548416918816919091179055600f845282852054603080548416918816919091179055601084528285205460318054841691881691909117905560118452828520546032805484169188169190911790556012845282852054603380548416918816919091179055601384528285205460348054841691881691909117905560149093529220546035805490931690841617909155161561283757600160a060020a038086166000908152600c60209081526040808320548685168452600d83528184208054600160a060020a031916918616919091179081905590931682526008905220546022546127cd9190612406565b600160a060020a038084166000908152600d60209081526040808320549093168252600890522055602254612803908290612465565b90506001831515141561283757600160a060020a038086166000908152600c60205260409020546128379116836002612fca565b602e54600160a060020a03161561290a57600160a060020a038086166000908152600d60209081526040808320548685168452600e83528184208054600160a060020a031916918616919091179081905590931682526008905220546023546128a09190612406565b600160a060020a038084166000908152600e602090815260408083205490931682526008905220556023546128d6908290612465565b90506001831515141561290a57600160a060020a038086166000908152600d602052604090205461290a9116836003612fca565b602f54600160a060020a0316156129dd57600160a060020a038086166000908152600e60209081526040808320548685168452600f83528184208054600160a060020a031916918616919091179081905590931682526008905220546024546129739190612406565b600160a060020a038084166000908152600f602090815260408083205490931682526008905220556024546129a9908290612465565b9050600183151514156129dd57600160a060020a038086166000908152600e60205260409020546129dd9116836004612fca565b603054600160a060020a031615612ab057600160a060020a038086166000908152600f60209081526040808320548685168452601083528184208054600160a060020a03191691861691909117908190559093168252600890522054602554612a469190612406565b600160a060020a038084166000908152601060209081526040808320549093168252600890522055602554612a7c908290612465565b905060018315151415612ab057600160a060020a038086166000908152600f6020526040902054612ab09116836005612fca565b603154600160a060020a031615612b8357600160a060020a038086166000908152601060209081526040808320548685168452601183528184208054600160a060020a03191691861691909117908190559093168252600890522054602654612b199190612406565b600160a060020a038084166000908152601160209081526040808320549093168252600890522055602654612b4f908290612465565b905060018315151415612b8357600160a060020a03808616600090815260106020526040902054612b839116836006612fca565b603254600160a060020a031615612c5657600160a060020a038086166000908152601160209081526040808320548685168452601283528184208054600160a060020a03191691861691909117908190559093168252600890522054602754612bec9190612406565b600160a060020a038084166000908152601260209081526040808320549093168252600890522055602754612c22908290612465565b905060018315151415612c5657600160a060020a03808616600090815260116020526040902054612c569116836007612fca565b603354600160a060020a031615612d2957600160a060020a038086166000908152601260209081526040808320548685168452601383528184208054600160a060020a03191691861691909117908190559093168252600890522054602854612cbf9190612406565b600160a060020a038084166000908152601360209081526040808320549093168252600890522055602854612cf5908290612465565b905060018315151415612d2957600160a060020a03808616600090815260126020526040902054612d299116836008612fca565b603454600160a060020a031615612dfc57600160a060020a038086166000908152601360209081526040808320548685168452601483528184208054600160a060020a03191691861691909117908190559093168252600890522054602954612d929190612406565b600160a060020a038084166000908152601460209081526040808320549093168252600890522055602954612dc8908290612465565b905060018315151415612dfc57600160a060020a03808616600090815260136020526040902054612dfc9116836009612fca565b603554600160a060020a031615612ecf57600160a060020a038086166000908152601460209081526040808320548685168452601583528184208054600160a060020a03191691861691909117908190559093168252600890522054602a54612e659190612406565b600160a060020a038084166000908152601560209081526040808320549093168252600890522055602a54612e9b908290612465565b905060018315151415612ecf57600160a060020a03808616600090815260146020526040902054612ecf911683600a612fca565b612edb60195482612406565b601955505050505050565b601854600090670de0b6b3a7640000838101918101908390612f4065082f79cd900082850464e8d4a5100002018702600283670de0b6b3a763ffff1982890a8b9003010464e8d4a5100002811515612f3a57fe5b04612465565b811515612f4957fe5b0495945050505050565b6000808284811515612f6157fe5b04949350505050565b600080831515612f7d5760009150612419565b50828202828482811515612f8d57fe5b041461241557fe5b80600260018201045b818110156118c6578091506002818285811515612fb757fe5b0401811515612fc257fe5b049050612f9e565b600160a060020a03928316600090815260376020908152604080832080546001908101918290556036845282852091855292529091208054600160a060020a03191693909416929092178355910155565b60405161018d806130ba83390190565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061306c57805160ff1916838001178555613099565b82800160010185558215613099579182015b8281111561309957825182559160200191906001019061307e565b50611b2f926113ef9250905b80821115611b2f57600081556001016130a556006060604052341561000f57600080fd5b61016f8061001e6000396000f3006060604052600436106100405763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166389d4e6cd8114610045575b600080fd5b341561005057600080fd5b61007b73ffffffffffffffffffffffffffffffffffffffff600435811690602435906044351661008f565b604051901515815260200160405180910390f35b60008373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83856000604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff851602815273ffffffffffffffffffffffffffffffffffffffff90921660048301526024820152604401602060405180830381600087803b151561012157600080fd5b6102c65a03f1151561013257600080fd5b5050506040518051959450505050505600a165627a7a7230582028269efdb5b4f4ad57809d420e33fffc8373d63088223e08f5973c4c54dd4c5d0029a165627a7a72305820bad6ca3251e34c833e5f1bfb7982b8c59e785a08ec23ad3f11e6307f91c15fc90029

Deployed Bytecode Sourcemap

2135:34223:0:-;;;;;;;;;-1:-1:-1;;;2135:34223:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8130:30;8145:9;8156:3;8130:14;:30::i;:::-;;2135:34223;14421:264;;;;;;;;;;-1:-1:-1;;;;;14421:264:0;;;;;;;;;;;;;;;;;;;;2303:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2303:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3973:47;;;;;;;;;;-1:-1:-1;;;;;3973:47:0;;;;;;;;-1:-1:-1;;;;;3973:47:0;;;;;;;;;;;;;;15658:500;;;;;;;;;;;;;;13683:90;;;;;;;;;;;;30499:217;;;;;;;;;;-1:-1:-1;;;;;30499:217:0;;;;;;;;;;16169:315;;;;;;;;;;;;;;5059:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20060:211;;;;;;;;;;-1:-1:-1;;;;;20060:211:0;;;;;;;;;;-1:-1:-1;;;;;20060:211:0;;;;;;;;;;;;;;;;;;;;3914:52;;;;;;;;;;-1:-1:-1;;;;;3914:52:0;;;;;17162:637;;;;;;;;;;-1:-1:-1;;;;;17162:637:0;;;;;2445:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5000:46;;;;;;;;;;;;;;9188:590;;;;;;;;;;;;;;19925:66;;;;;;;;;;-1:-1:-1;;;;;19925:66:0;;;;;;;14702:356;;;;;;;;;;;;3189:62;;;;;;;;;;;;17958:1097;;;;;;;;;;;;30346:141;;;;;;;;;;-1:-1:-1;;;;;30346:141:0;;;;;13562:101;;;;;;;;;;;;13970:286;;;;;;;;;;;;;;;;13455:96;;;;;;;;;;;;14273:137;;;;;;;;;;-1:-1:-1;;;;;14273:137:0;;;;;16496:648;;;;;;;;;;;;;;17811:135;;;;;;;;;;-1:-1:-1;;;;;17811:135:0;;;;;12738:155;;;;;;;;;;;;;;15075:572;;;;;;;;;;;;12574:152;;;;;;;;;;;;;;;;;;13791:161;;;;;;;;;;;;2374:64;;;;;;;;;;;;12283:120;;;;;;;;;;;;10999:1204;;;;;;;;;;-1:-1:-1;;;;;10999:1204:0;;;;;;;29861:473;;;;;;;;;;-1:-1:-1;;;;;29861:473:0;;;;;;;;;13037:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13037:126:0;;-1:-1:-1;13037:126:0;;-1:-1:-1;;;;;;13037:126:0;3861:46;;;;;;;;;;-1:-1:-1;;;;;3861:46:0;;;;;12905:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12905:120:0;;-1:-1:-1;12905:120:0;;-1:-1:-1;;;;;;12905:120:0;12416:146;;;;;;;;;;;;;;13183:204;;;;;;;;;;;;20624:1055;;;;;;;;;;-1:-1:-1;;;;;20624:1055:0;;;;;;;9821:1131;;;;;;;;;;;;;;19998:49;;;;;;;;;;-1:-1:-1;;;;;19998:49:0;;;;;8898:247;;;;;;;;;;;;7958:123;;-1:-1:-1;;;;;7958:123:0;;;;;8215:640;;;;;;;;;;;;30728:3763;30851:7;30881:24;32134:18;32237:21;32329:19;32433:22;32515:23;32597:12;32668:20;34203:22;30815:17;5744:24;5771:10;5744:37;;5796:15;;;;;;;;;;;:86;;;;;3474:7;5842:17;5817:22;:20;:22::i;:::-;:42;5816:64;;5796:86;5792:823;;;-1:-1:-1;;;;;5984:30:0;;;;;;:12;:30;;;;;;;;:38;;:30;:38;:232;;;;-1:-1:-1;;;;;;6124:45:0;;;;;;:27;:45;;;;;;3402:7;6124:65;;;6123:93;;5984:232;5898:333;;;;;;;;-1:-1:-1;;;;;6357:45:0;;;;;;:27;:45;;;;;;6344:78;;6404:17;6344:12;:78::i;:::-;6296:27;:45;6324:16;-1:-1:-1;;;;;6296:45:0;-1:-1:-1;;;;;6296:45:0;;;;;;;;;;;;:126;;;;30919:10;30881:48;;30978:17;30940:6;:55;;;;31051:1;31019:11;:29;31031:16;-1:-1:-1;;;;;31019:29:0;-1:-1:-1;;;;;31019:29:0;;;;;;;;;;;;;:33;31016:785;;;-1:-1:-1;;;;;31143:30:0;;;;;;;:12;:30;;;;;;;31089:42;;31083:59;;31143:30;;;31083:91;;;;;;-1:-1:-1;;;31083:91:0;;;;;;-1:-1:-1;;;;;31083:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31069:11;:105;;;-1:-1:-1;;;;;31212:29:0;;;;;;:11;:29;;;;;;31197:44;;;;-1:-1:-1;31189:53:0;;;;;;-1:-1:-1;;;;;31275:35:0;;;;;;:17;:35;;;;;;31265:6;;:45;;31257:54;;;;;;-1:-1:-1;;;;;31361:29:0;;;;;;:11;:29;;;;;;31391:6;31361:36;;3090:11;31360:51;31326:9;:85;;;31473:6;;31460:31;;:12;:31::i;:::-;31426:6;:65;-1:-1:-1;;;;;31529:30:0;;;;;;;:12;:30;;;;;;;31617:11;;31529:30;;;31520:52;;31573:42;;31630;;31529:30;31520:153;;;;;;-1:-1:-1;;;31520:153:0;;;;;;-1:-1:-1;;;;;31520:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;31702:29:0;;31734:1;31702:29;;;:11;:29;;;;;;;;:33;;;31750:17;:35;;;;;:39;31016:785;31875:6;;31858:45;;2703:1;31896:3;31900:2;31858:16;:45::i;:::-;31820:12;:83;;;31965:16;;31952:44;;:12;:44::i;:::-;31914:16;:82;32086:6;;32069:44;;2636:2;32106:3;32110:2;32069:16;:44::i;:::-;32031:14;:82;32189:6;;32172:44;;2570:1;32209:3;32213:2;32172:16;:44::i;:::-;32275:43;32384:6;;32134:82;;-1:-1:-1;32275:43:0;-1:-1:-1;32367:45:0;;32275:43;32405:3;32409:2;32367:16;:45::i;:::-;32329:83;;32471:33;32484:6;;32492:11;32471:12;:33::i;:::-;32433:71;;32553:33;32571:14;32553:17;:33::i;:::-;-1:-1:-1;;;;;32724:39:0;;;;;;;:21;:39;;;;;;32515:71;;-1:-1:-1;3166:5:0;32635:22;;;-1:-1:-1;32706:4:0;;-1:-1:-1;32724:39:0;:85;32721:244;;-1:-1:-1;;;;;32860:39:0;;;;;;;:21;:39;;;;;;;;;;-1:-1:-1;32860:39:0;-1:-1:-1;32721:244:0;33011:1;32993:15;:19;:82;;;;-1:-1:-1;33062:12:0;;33017:42;33030:15;33062:12;33017;:42::i;:::-;:57;32993:82;32985:91;;;;;;;;-1:-1:-1;;;;;33127:57:0;;;;;;:118;;;33229:16;-1:-1:-1;;;;;33214:31:0;:11;-1:-1:-1;;;;;33214:31:0;;;33127:118;:189;;;;-1:-1:-1;33298:18:0;;-1:-1:-1;;;;;33262:32:0;;;;;;:19;:32;;;;;;:54;;33127:189;33097:473;;;33356:76;33375:14;;33390:11;33402:16;33419:12;33356:18;:76::i;:::-;33097:473;;;33512:46;33525:16;;33543:14;;33512:12;:46::i;:::-;33478:16;:80;33097:473;33607:1;33592:12;;:16;33589:475;;;33671:43;33684:12;;33698:15;33671:12;:43::i;:::-;33637:12;:77;;;3166:5;33778:22;;:39;;;;;;;33742:15;:76;;33778:39;;;;33742:76;;;;;33940:12;;3166:5;33914:22;;:39;;;;;;;;33895:15;:59;33889:4;:66;33881:4;:75;33847:109;;33589:475;;;34003:12;:49;;;33589:475;-1:-1:-1;;;;;34137:37:0;;;;;;:19;:37;;;;;;34124:68;;34176:15;34124:12;:68::i;:::-;34084:19;:37;34104:16;-1:-1:-1;;;;;34084:37:0;-1:-1:-1;;;;;34084:37:0;;;;;;;;;;;;:108;;;;34289:4;34270:15;34252;;:33;34251:42;34203:91;;34344:15;34305:10;:28;34316:16;-1:-1:-1;;;;;34305:28:0;-1:-1:-1;;;;;34305:28:0;;;;;;;;;;;;;:54;;;;;;;;;;;34438:11;-1:-1:-1;;;;;34379:71:0;34395:16;-1:-1:-1;;;;;34379:71:0;;34413:6;;34421:15;34379:71;;;;;;;;;;;;;;;;;;;;34468:15;34461:22;;5792:823;;;6560:15;:23;;-1:-1:-1;;6560:23:0;;;30940:6;:55;;;30919:10;-1:-1:-1;;;;;31019:29:0;;-1:-1:-1;31019:29:0;;;:11;:29;;;;;;30919:10;;-1:-1:-1;31019:33:0;;31016:785;;;-1:-1:-1;;;;;31143:30:0;;;;;;;:12;:30;;;;;;;31089:42;;31083:59;;31143:30;;;31083:91;;;;;;-1:-1:-1;;;31083:91:0;;;;;;-1:-1:-1;;;;;31083:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31069:11;:105;;;-1:-1:-1;;;;;31212:29:0;;;;;;:11;:29;;;;;;31197:44;;;;-1:-1:-1;31189:53:0;;;;;;-1:-1:-1;;;;;31275:35:0;;;;;;:17;:35;;;;;;31265:6;;:45;;31257:54;;;;;;-1:-1:-1;;;;;31361:29:0;;;;;;:11;:29;;;;;;31391:6;31361:36;;3090:11;31360:51;31326:9;:85;;;31473:6;;31460:31;;:12;:31::i;:::-;31426:6;:65;-1:-1:-1;;;;;31529:30:0;;;;;;;:12;:30;;;;;;;31617:11;;31529:30;;;31520:52;;31573:42;;31630;;31529:30;31520:153;;;;;;-1:-1:-1;;;31520:153:0;;;;;;-1:-1:-1;;;;;31520:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;31702:29:0;;31734:1;31702:29;;;:11;:29;;;;;;;;:33;;;31750:17;:35;;;;;:39;31016:785;31875:6;;31858:45;;2703:1;31896:3;31900:2;31858:16;:45::i;:::-;31820:12;:83;;;31965:16;;31952:44;;:12;:44::i;:::-;31914:16;:82;32086:6;;32069:44;;2636:2;32106:3;32110:2;32069:16;:44::i;:::-;32031:14;:82;32189:6;;32172:44;;2570:1;32209:3;32213:2;32172:16;:44::i;:::-;32275:43;32384:6;;32134:82;;-1:-1:-1;32275:43:0;-1:-1:-1;32367:45:0;;32275:43;32405:3;32409:2;32367:16;:45::i;:::-;32329:83;;32471:33;32484:6;;32492:11;32471:12;:33::i;:::-;32433:71;;32553:33;32571:14;32553:17;:33::i;:::-;-1:-1:-1;;;;;32724:39:0;;;;;;;:21;:39;;;;;;32515:71;;-1:-1:-1;3166:5:0;32635:22;;;-1:-1:-1;32706:4:0;;-1:-1:-1;32724:39:0;:85;32721:244;;-1:-1:-1;;;;;32860:39:0;;;;;;;:21;:39;;;;;;;;;;-1:-1:-1;32860:39:0;-1:-1:-1;32721:244:0;33011:1;32993:15;:19;:82;;;;-1:-1:-1;33062:12:0;;33017:42;33030:15;33062:12;33017;:42::i;:::-;:57;32993:82;32985:91;;;;;;;;-1:-1:-1;;;;;33127:57:0;;;;;;:118;;;33229:16;-1:-1:-1;;;;;33214:31:0;:11;-1:-1:-1;;;;;33214:31:0;;;33127:118;:189;;;;-1:-1:-1;33298:18:0;;-1:-1:-1;;;;;33262:32:0;;;;;;:19;:32;;;;;;:54;;33127:189;33097:473;;;33356:76;33375:14;;33390:11;33402:16;33419:12;33356:18;:76::i;:::-;33097:473;;;33512:46;33525:16;;33543:14;;33512:12;:46::i;:::-;33478:16;:80;33097:473;33607:1;33592:12;;:16;33589:475;;;33671:43;33684:12;;33698:15;33671:12;:43::i;:::-;33637:12;:77;;;3166:5;33778:22;;:39;;;;;;;33742:15;:76;;33778:39;;;;33742:76;;;;;33940:12;;3166:5;33914:22;;:39;;;;;;;;33895:15;:59;33889:4;:66;33881:4;:75;33847:109;;33589:475;;;34003:12;:49;;;33589:475;-1:-1:-1;;;;;34137:37:0;;;;;;:19;:37;;;;;;34124:68;;34176:15;34124:12;:68::i;:::-;34084:19;:37;34104:16;-1:-1:-1;;;;;34084:37:0;-1:-1:-1;;;;;34084:37:0;;;;;;;;;;;;:108;;;;34289:4;34270:15;34252;;:33;34251:42;34203:91;;34344:15;34305:10;:28;34316:16;-1:-1:-1;;;;;34305:28:0;-1:-1:-1;;;;;34305:28:0;;;;;;;;;;;;;:54;;;;;;;;;;;34438:11;-1:-1:-1;;;;;34379:71:0;34395:16;-1:-1:-1;;;;;34379:71:0;;34413:6;;34421:15;34379:71;;;;;;;;;;;;;;;;;;;;34468:15;34461:22;;6598:1;30728:3763;;;;;;;;;;;;;;;:::o;14421:264::-;-1:-1:-1;;;;;14636:28:0;14488:7;14636:28;;;:10;:28;;;;;;;;;14594:19;:37;;;;;;14554:19;:37;;;;;;14535:15;;3166:5;14554:77;;;;14535:97;;;14526:138;;;;14515:162;;14421:264::o;2303:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3973:47::-;;;;;;;;;;;;-1:-1:-1;;;;;3973:47:0;;:::o;15658:500::-;15737:7;15795:43;15737:7;;;15888:55;15905:16;15795:43;15936:3;15940:2;15888:16;:55::i;:::-;15850:93;;15992:43;16005:16;16023:11;15992:12;:43::i;:::-;15954:81;;16084:33;16102:14;16084:17;:33::i;:::-;16046:71;15658:500;-1:-1:-1;;;;;;15658:500:0:o;13683:90::-;13753:12;;13683:90;;:::o;30499:217::-;-1:-1:-1;;;;;30677:30:0;;;30587:7;30677:30;;;:12;:30;;;;;;;30587:7;;30623:42;;30617:59;;30677:30;;;30587:7;;30617:91;;;;;;-1:-1:-1;;;30617:91:0;;;;;;-1:-1:-1;;;;;30617:91:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30499:217;-1:-1:-1;;;;30499:217:0:o;16169:315::-;16247:7;16316:17;16397:22;16292:12;;16275:13;:29;;16267:38;;;;;;;;16354:32;16372:13;16354:17;:32::i;:::-;16316:70;16169:315;-1:-1:-1;;;;16169:315:0:o;5059:35::-;;;;;;:::o;20060:211::-;-1:-1:-1;;;;;20177:22:0;;;20143:7;20177:22;;;:7;:22;;;;;;;;:30;;;;;;;:45;;;20223:39;;;;20177:45;;;20060:211::o;3914:52::-;;;;;;;;;;;;;:::o;17162:637::-;17236:7;17254:16;17352:17;17452:18;17535:17;17657:20;17292:49;17305:3;17310:12;:30;17323:16;-1:-1:-1;;;;;17310:30:0;-1:-1:-1;;;;;17310:30:0;;;;;;;;;;;;;17292:12;:49::i;:::-;17254:87;;17390:29;17403:8;17413:5;17390:12;:29::i;:::-;17352:67;;17490:34;17503:9;17514;;17490:12;:34::i;:::-;-1:-1:-1;;;;;17590:37:0;;;;;;:19;:37;;;;;;17452:72;;-1:-1:-1;17573:73:0;;17452:72;17639:3;17643:2;17573:16;:73::i;:::-;-1:-1:-1;;;;;17708:37:0;;;;;;:19;:37;;;;;;17535:111;;-1:-1:-1;17695:66:0;;17756:4;17535:111;17746:14;;17695:12;:66::i;:::-;17657:104;17162:637;-1:-1:-1;;;;;;;17162:637:0:o;2445:60::-;2503:2;2445:60;:::o;5000:46::-;;;;;;;;;;;;;;;:::o;9188:590::-;9249:24;9308:18;5455:1;5435:17;5447:4;5435:11;:17::i;:::-;:21;5427:30;;;;;;9287:10;9249:48;;9346:18;9358:5;9346:11;:18::i;:::-;-1:-1:-1;;;;;9421:28:0;;;;;;:10;:28;;;;;;;;:73;;3166:5;9471:22;;9421:73;;;9554:16;:34;;;;;;;;9599:39;;;9515:73;;;-1:-1:-1;9421:28:0;9659:37;;;;;9515:73;;9659:37;;;;;;;;;;;;;;;;;;;;;;;;;9741:16;-1:-1:-1;;;;;9730:40:0;;9759:10;9730:40;;;;;;;;;;;;;;9188:590;;:::o;19925:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19925:66:0;;;;;:::o;14702:356::-;14743:7;14888:17;14960:22;14766:12;;14782:1;14766:17;14763:288;;;14806:49;;-1:-1:-1;14799:56:0;;14763:288;14922:23;14940:4;14922:17;:23::i;:::-;14888:57;;14994:9;14960:43;;15025:14;15018:21;;14763:288;14702:356;;;:::o;3189:62::-;;;;:::o;17958:1097::-;18014:4;18040:24;18179:23;18265:16;18363:17;18441:18;18524:17;18624:20;5327:1;5314:10;:8;:10::i;:::-;:14;5306:23;;;;;;18114:15;;18078:10;;-1:-1:-1;18114:15:0;;18113:16;:54;;;;-1:-1:-1;;;;;;18133:30:0;;18166:1;18133:30;;;:12;:30;;;;;;:34;18113:54;18105:63;;;;;;;;-1:-1:-1;;;;;18217:37:0;;;;;;:19;:37;;;;;;;;;18321:12;:30;;;;;;;18217:37;;-1:-1:-1;18303:49:0;;18316:3;;18303:12;:49::i;:::-;18265:87;;18401:29;18414:8;18424:5;18401:12;:29::i;:::-;18363:67;;18479:34;18492:9;18503;;18479:12;:34::i;:::-;18441:72;;18562:51;18579:15;18595:10;18606:3;18610:2;18562:16;:51::i;:::-;18524:89;-1:-1:-1;18662:44:0;18675:15;18701:4;18524:89;18691:14;;18662:44;18784:12;;18624:82;;-1:-1:-1;18771:42:0;;18808:4;18798:9;:14;;18771:42;18733:12;:80;-1:-1:-1;;;;;18883:37:0;;;;;;:19;:37;;;;;;18870:65;;18922:12;18870;:65::i;:::-;-1:-1:-1;;;;;18830:37:0;;;;;;;:19;:37;;;;;;;;:105;;;;18946:19;:37;;;;;:41;;;18998:12;:30;;;;;:39;;;;-1:-1:-1;17958:1097:0;;;-1:-1:-1;;;;;17958:1097:0:o;30346:141::-;-1:-1:-1;;;;;30449:30:0;;;30419:7;30449:30;;;:12;:30;;;;;;;;30346:141::o;13562:101::-;13639:16;;13562:101;:::o;13970:286::-;14039:7;14097:10;14125:21;:122;;14218:29;14230:16;14218:11;:29::i;:::-;14125:122;;;-1:-1:-1;;;;;14181:34:0;;;;;;:16;:34;;;;;;14149:29;14198:16;14149:11;:29::i;:::-;:66;14125:122;14118:129;;13970:286;;;;;:::o;13455:96::-;-1:-1:-1;;;;;13531:4:0;:12;;13455:96;:::o;14273:137::-;-1:-1:-1;;;;;14365:37:0;14338:7;14365:37;;;:19;:37;;;;;;;14273:137::o;16496:648::-;16574:4;16590:24;16753:33;5327:1;5314:10;:8;:10::i;:::-;:14;5306:23;;;;;;16666:15;;16628:10;;-1:-1:-1;16666:15:0;;16665:16;:76;;;;-1:-1:-1;;;;;;16704:37:0;;;;;;:19;:37;;;;;;16685:56;;;16665:76;16657:85;;;;;;;;16791:35;16804:15;16821:4;16791:12;:35::i;:::-;-1:-1:-1;;;;;16837:30:0;;;;;;:12;:30;;;;;;;;16875:3;16837:41;;16942:19;:37;;;;;;16753:73;;-1:-1:-1;16929:78:0;;16753:73;16929:12;:78::i;:::-;-1:-1:-1;;;;;16889:37:0;;;;;;:19;:37;;;;;;;;:118;;;;17071:19;:37;;;;17058:78;;17110:25;17058:12;:78::i;:::-;-1:-1:-1;;;;;17018:37:0;;;;;;;:19;:37;;;;;:118;;;;-1:-1:-1;16496:648:0;;-1:-1:-1;16496:648:0:o;17811:135::-;-1:-1:-1;;;;;17908:30:0;17882:7;17908:30;;;:12;:30;;;;;;;17811:135::o;12738:155::-;5574:10;5603:14;5547:24;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;-1:-1:-1;12832:18:0;:53;12738:155::o;15075:572::-;15115:7;15260:17;15332:21;15425:19;15522:22;15138:12;;15154:1;15138:17;15135:505;;;15178:49;;-1:-1:-1;15171:56:0;;15135:505;15294:23;15312:4;15294:17;:23::i;:::-;15260:57;-1:-1:-1;15366:43:0;;-1:-1:-1;15459:48:0;15260:57;15366:43;15500:3;15504:2;15459:16;:48::i;:::-;15425:82;;15556:36;15569:9;15580:11;15556:12;:36::i;:::-;15522:70;;15614:14;15607:21;;15135:505;15075:572;;;;;:::o;12574:152::-;5574:10;5603:14;5547:24;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;-1:-1:-1;12673:27:0;;;;:14;:27;;;;;;:45;;-1:-1:-1;;12673:45:0;;;;;;;;;;12574:152::o;13791:161::-;13831:7;13889:10;13917:27;13889:10;13917:9;:27::i;:::-;13910:34;;13791:161;;;:::o;2374:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12283:120;5574:10;5603:14;5547:24;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;-1:-1:-1;12352:15:0;:43;;-1:-1:-1;;12352:43:0;;;12283:120::o;10999:1204::-;11094:4;11111:24;11351:20;11415:18;5327:1;5314:10;:8;:10::i;:::-;:14;5306:23;;;;;;11189:15;;11149:10;;-1:-1:-1;11189:15:0;;11188:16;:76;;;;-1:-1:-1;;;;;;11227:37:0;;;;;;:19;:37;;;;;;11208:56;;;11188:76;11180:85;;;;;;;;11309:1;11289:17;11301:4;11289:11;:17::i;:::-;:21;11286:36;;;11312:10;:8;:10::i;:::-;11389:15;11351:53;;11453:18;11465:5;11453:11;:18::i;:::-;-1:-1:-1;;;;;11616:37:0;;;;;;:19;:37;;;;;;11415:56;;-1:-1:-1;11603:68:0;;11655:15;11603:12;:68::i;:::-;-1:-1:-1;;;;;11563:37:0;;;;;;;:19;:37;;;;;;:108;;;;11733:31;;;;;;;11720:59;;11766:12;11720;:59::i;:::-;-1:-1:-1;;;;;11682:31:0;;;;;;;:19;:31;;;;;;;;:97;;;;11848:15;;;11799:28;;;;;:10;:28;;;;;;:83;;11848:33;;;11799:83;;;;;;11942:15;;11893:22;;;;;;;:80;;11942:30;;;11893:80;;;;;;12044:15;12088:12;;12031:70;;12044:15;3166:5;12062:22;;12061:39;;;;;;12031:70;11993:15;:108;-1:-1:-1;;;;;12121:52:0;;;;;;;12160:12;12121:52;;;;;;;;;;;;;;-1:-1:-1;12191:4:0;;10999:1204;-1:-1:-1;;;;;10999:1204:0:o;29861:473::-;-1:-1:-1;;;;;29993:29:0;;;29970:7;29993:29;;;:11;:29;;;;;;;;:40;;;30048:17;:35;;;;;:49;;;30115:12;:30;;;;;;29970:7;;30115:30;:76;30112:163;;;30245:14;;:::i;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;30212:30:0;;;;;;;:12;:30;;;;;:47;;-1:-1:-1;;;;;;30212:47:0;;;;;;;;;;;30112:163;-1:-1:-1;;;;;;;;30296:30:0;;;;;;;:12;:30;;;;;;;;29861:473::o;13037:126::-;5574:10;5603:14;5547:24;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;13110:6;13148:7;;13110:45;;;;;;;;:::i;:::-;;13037:126;;:::o;3861:46::-;;;;;;;;;;;;;:::o;12905:120::-;5574:10;5603:14;5547:24;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;12974:4;13012:5;;12974:43;;;;;;;;:::i;12416:146::-;5574:10;5603:14;5547:24;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;-1:-1:-1;12504:9:0;:50;12416:146::o;13183:204::-;13254:21;5574:10;5603:14;13254:21;5574:10;5618:27;;-1:-1:-1;;;;;5618:27:0;;;;;;;;;;;;;;;;;;5603:43;;;;;;;;;;;;;;;;5595:52;;;;;;;;13280:10;13254:36;;13301:13;-1:-1:-1;;;;;13301:22:0;:40;13324:16;;13301:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;13378:1:0;13352:16;:27;13183:204::o;20624:1055::-;20699:10;20725:6;20735:1;20725:11;20722:926;;;-1:-1:-1;;;;;;20758:39:0;;;;;;;:21;:39;;;;;;;20722:926;;;20818:6;20828:1;20818:11;20815:833;;;-1:-1:-1;;;;;;20851:39:0;;;;;;;:21;:39;;;;;;;20815:833;;;20911:6;20921:1;20911:11;20908:740;;;-1:-1:-1;;;;;;20944:39:0;;;;;;;:21;:39;;;;;;;20908:740;;;21004:6;21014:1;21004:11;21001:647;;;-1:-1:-1;;;;;;21037:39:0;;;;;;;:21;:39;;;;;;;21001:647;;;21097:6;21107:1;21097:11;21094:554;;;-1:-1:-1;;;;;;21130:39:0;;;;;;;:21;:39;;;;;;;21094:554;;;21190:6;21200:1;21190:11;21187:461;;;-1:-1:-1;;;;;;21223:39:0;;;;;;;:21;:39;;;;;;;21187:461;;;21283:6;21293:1;21283:11;21280:368;;;-1:-1:-1;;;;;;21316:39:0;;;;;;;:21;:39;;;;;;;21280:368;;;21376:6;21386:1;21376:11;21373:275;;;-1:-1:-1;;;;;;21409:39:0;;;;;;;:21;:39;;;;;;;21373:275;;;21469:6;21479:1;21469:11;21466:182;;;-1:-1:-1;;;;;;21502:39:0;;;;;;;:21;:39;;;;;;;21466:182;;;21562:6;21572:2;21562:12;21559:89;;;-1:-1:-1;;;;;;21596:40:0;;;;;;;:22;:40;;;;;;;21559:89;20624:1055;;;;:::o;9821:1131::-;9895:24;10030:15;10094:17;10169:18;10236:22;10509;5327:1;5314:10;:8;:10::i;:::-;:14;5306:23;;;;;;9933:10;-1:-1:-1;;;;;9981:37:0;;;;;;:19;:37;;;;;;9933:10;;-1:-1:-1;9962:56:0;;;9954:65;;;;;;10068:15;10030:53;;10132:26;10150:7;10132:17;:26::i;:::-;10094:64;;10207:18;10219:5;10207:11;:18::i;:::-;10169:56;;10274:9;10236:47;;10342:35;10355:12;;10369:7;10342:12;:35::i;:::-;10304:12;:73;-1:-1:-1;;;;;10441:37:0;;;;;;:19;:37;;;;;;10428:60;;10480:7;10428:12;:60::i;:::-;-1:-1:-1;;;;;10388:37:0;;;;;;:19;:37;;;;;;;;:100;;;;10557:15;;10625:10;:28;;;;;;:54;;10557:25;;;3166:5;10586:26;;10557:56;10625:54;;;;;;10711:12;;10557:56;;-1:-1:-1;10711:16:0;;10707:163;;;10788:70;10801:15;;10845:12;;3166:5;10819:10;:22;10818:39;;;;;;10788:70;10754:15;:104;10707:163;10902:16;-1:-1:-1;;;;;10890:54:0;;10920:7;10929:14;10890:54;;;;;;;;;;;;;;;;;;;;9821:1131;;;;;;;:::o;19998:49::-;;;;;;;;;;;;;:::o;8898:247::-;8980:10;-1:-1:-1;;;;;9039:37:0;;8942:24;9039:37;;;:19;:37;;;;;;;9090:11;;9087:29;;;9103:13;9108:7;9103:4;:13::i;:::-;9127:10;:8;:10::i;:::-;8898:247;;:::o;7958:123::-;8015:7;8035:38;8050:9;8061:11;8035:14;:38::i;8215:640::-;8276:18;8394:24;8691:15;5455:1;5435:17;5447:4;5435:11;:17::i;:::-;:21;5427:30;;;;;;8314:18;8326:5;8314:11;:18::i;:::-;8432:10;-1:-1:-1;;;;;8453:28:0;;;;;;:10;:28;;;;;;;;:73;;3166:5;8503:22;;8453:73;;;8586:16;:34;;;;;;;8631:39;;;;8547:73;;;;-1:-1:-1;8432:10:0;-1:-1:-1;8729:31:0;;8547:73;;8729:14;:31::i;:::-;8691:69;;8809:16;-1:-1:-1;;;;;8794:53:0;;8827:10;8839:7;8794:53;;;;;;;;;;;;;;;;;;;;8215:640;;;:::o;1096:147::-;1154:7;1186:5;;;1209:6;;;;1202:14;;;;1234:1;1227:8;;1096:147;;;;;;:::o;147:306::-;248:13;274:15;335:14;312:9;322:1;312:11;305:2;:19;293:9;:31;274:50;;388:2;368:11;355:10;:24;;;;;;;;383:1;354:30;353:37;;;;;;;;;-1:-1:-1;425:19:0;409:15;;;:35;;147:306;-1:-1:-1;;;;;;;147:306:0:o;967:123::-;1025:7;1052:6;;;;1045:14;;;;-1:-1:-1;1077:5:0;;;967:123::o;34504:919::-;35357:12;;34572:7;;34630:25;;34572:7;;2932:14;34749:555;34785:457;34931:52;;;35047:27;35156:1;35077:15;;35046:47;34846:248;35156:45;:58;;34846:369;34847:21;34846:369;34785:4;:457::i;:::-;35267:18;34749:12;:555::i;:::-;34730:614;;;;;;;;34715:655;;34504:919;-1:-1:-1;;;;34504:919:0:o;21691:8160::-;21937:14;:51;;;21857:7;21909:17;22043:42;21909:17;22075:2;22078:3;22082:2;22043:16;:42::i;:::-;22009:8;:76;22147:14;;22130:42;;22162:2;22165:3;22169:2;22130:16;:42::i;:::-;22096:8;:76;22234:14;;22217:42;;22249:2;22252:3;22256:2;22217:16;:42::i;:::-;22183:8;:76;22321:14;;22304:41;;22336:1;22338:3;22342:2;22304:16;:41::i;:::-;22270:8;:75;22407:14;;22390:41;;22422:1;22424:3;22428:2;22390:16;:41::i;:::-;22356:8;:75;22493:14;;22476:41;;22508:1;22510:3;22514:2;22476:16;:41::i;:::-;22442:8;:75;22579:14;;22562:41;;22594:1;22596:3;22600:2;22562:16;:41::i;:::-;22528:8;:75;22665:14;;22648:41;;22680:1;22682:3;22686:2;22648:16;:41::i;:::-;22614:8;:75;22751:14;;22734:41;;22766:1;22768:3;22772:2;22734:16;:41::i;:::-;22700:8;:75;22837:14;;22820:41;;22852:1;22854:3;22858:2;22820:16;:41::i;:::-;22786:9;:75;-1:-1:-1;;;;;22890:39:0;;;;;;;:21;:39;;;;;;;;:73;;-1:-1:-1;;;;;;22890:73:0;;;;;;;;;23066:39;;;23049:57;;:16;:57;;;;23108:8;;23036:81;;23049:57;23036:12;:81::i;:::-;-1:-1:-1;;;;;22991:39:0;;;22974:57;22991:39;;;:21;:39;;;;;;;;;;;;22974:57;;:16;:57;;;:143;23222:8;;23190:41;;23203:17;;23190:12;:41::i;:::-;23128:103;-1:-1:-1;23261:4:0;23245:20;;;;23242:100;;;23282:48;23297:11;23310:16;23328:1;23282:14;:48::i;:::-;-1:-1:-1;;;;;23396:34:0;;;;;;;:21;:34;;;;;;;;;23362:6;:68;;-1:-1:-1;;;;;;23362:68:0;;;23396:34;;;23362:68;;;;;;;;23475:21;:34;;;;;;23441:6;:68;;;;23475:34;;;23441:68;;;;;;23554:21;:34;;;;;;23520:6;:68;;;;23554:34;;;23520:68;;;;;;23633:21;:34;;;;;;23599:6;:68;;;;23633:34;;;23599:68;;;;;;23712:21;:34;;;;;;23678:6;:68;;;;23712:34;;;23678:68;;;;;;23791:21;:34;;;;;;23757:6;:68;;;;23791:34;;;23757:68;;;;;;23870:21;:34;;;;;;23836:6;:68;;;;23870:34;;;23836:68;;;;;;23949:21;:34;;;;;;23915:6;:68;;;;23949:34;;;23915:68;;;;;;24028:21;:34;;;;;;23994:7;:68;;;;;24028:34;;;23994:68;;;;24094:6;:52;24091:601;;-1:-1:-1;;;;;24225:34:0;;;;;;;:21;:34;;;;;;;;;24163:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;24163:96:0;24225:34;;;24163:96;;;;;;;;24366:39;;;24349:57;;:16;:57;;;;24408:8;;24336:81;;24349:57;24336:12;:81::i;:::-;-1:-1:-1;;;;;24291:39:0;;;24274:57;24291:39;;;:21;:39;;;;;;;;;;;;24274:57;;:16;:57;;;:143;24526:8;;24494:41;;24507:17;;24494:12;:41::i;:::-;24432:103;-1:-1:-1;24569:4:0;24553:20;;;;24550:131;;;-1:-1:-1;;;;;24609:34:0;;;;;;;:21;:34;;;;;;24594:71;;24609:34;24645:16;24663:1;24594:14;:71::i;:::-;24723:6;;-1:-1:-1;;;;;24723:6:0;:52;24720:601;;-1:-1:-1;;;;;24854:34:0;;;;;;;:21;:34;;;;;;;;;24792:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;24792:96:0;24854:34;;;24792:96;;;;;;;;24995:39;;;24978:57;;:16;:57;;;;25037:8;;24965:81;;24978:57;24965:12;:81::i;:::-;-1:-1:-1;;;;;24920:39:0;;;24903:57;24920:39;;;:21;:39;;;;;;;;;;;;24903:57;;:16;:57;;;:143;25155:8;;25123:41;;25136:17;;25123:12;:41::i;:::-;25061:103;-1:-1:-1;25198:4:0;25182:20;;;;25179:131;;;-1:-1:-1;;;;;25238:34:0;;;;;;;:21;:34;;;;;;25223:71;;25238:34;25274:16;25292:1;25223:14;:71::i;:::-;25352:6;;-1:-1:-1;;;;;25352:6:0;:52;25349:601;;-1:-1:-1;;;;;25483:34:0;;;;;;;:21;:34;;;;;;;;;25421:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;25421:96:0;25483:34;;;25421:96;;;;;;;;25624:39;;;25607:57;;:16;:57;;;;25666:8;;25594:81;;25607:57;25594:12;:81::i;:::-;-1:-1:-1;;;;;25549:39:0;;;25532:57;25549:39;;;:21;:39;;;;;;;;;;;;25532:57;;:16;:57;;;:143;25784:8;;25752:41;;25765:17;;25752:12;:41::i;:::-;25690:103;-1:-1:-1;25827:4:0;25811:20;;;;25808:131;;;-1:-1:-1;;;;;25867:34:0;;;;;;;:21;:34;;;;;;25852:71;;25867:34;25903:16;25921:1;25852:14;:71::i;:::-;25981:6;;-1:-1:-1;;;;;25981:6:0;:52;25978:601;;-1:-1:-1;;;;;26112:34:0;;;;;;;:21;:34;;;;;;;;;26050:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;26050:96:0;26112:34;;;26050:96;;;;;;;;26253:39;;;26236:57;;:16;:57;;;;26295:8;;26223:81;;26236:57;26223:12;:81::i;:::-;-1:-1:-1;;;;;26178:39:0;;;26161:57;26178:39;;;:21;:39;;;;;;;;;;;;26161:57;;:16;:57;;;:143;26413:8;;26381:41;;26394:17;;26381:12;:41::i;:::-;26319:103;-1:-1:-1;26456:4:0;26440:20;;;;26437:131;;;-1:-1:-1;;;;;26496:34:0;;;;;;;:21;:34;;;;;;26481:71;;26496:34;26532:16;26550:1;26481:14;:71::i;:::-;26610:6;;-1:-1:-1;;;;;26610:6:0;:52;26607:601;;-1:-1:-1;;;;;26741:34:0;;;;;;;:21;:34;;;;;;;;;26679:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;26679:96:0;26741:34;;;26679:96;;;;;;;;26882:39;;;26865:57;;:16;:57;;;;26924:8;;26852:81;;26865:57;26852:12;:81::i;:::-;-1:-1:-1;;;;;26807:39:0;;;26790:57;26807:39;;;:21;:39;;;;;;;;;;;;26790:57;;:16;:57;;;:143;27042:8;;27010:41;;27023:17;;27010:12;:41::i;:::-;26948:103;-1:-1:-1;27085:4:0;27069:20;;;;27066:131;;;-1:-1:-1;;;;;27125:34:0;;;;;;;:21;:34;;;;;;27110:71;;27125:34;27161:16;27179:1;27110:14;:71::i;:::-;27241:6;;-1:-1:-1;;;;;27241:6:0;:52;27238:601;;-1:-1:-1;;;;;27372:34:0;;;;;;;:21;:34;;;;;;;;;27310:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;27310:96:0;27372:34;;;27310:96;;;;;;;;27513:39;;;27496:57;;:16;:57;;;;27555:8;;27483:81;;27496:57;27483:12;:81::i;:::-;-1:-1:-1;;;;;27438:39:0;;;27421:57;27438:39;;;:21;:39;;;;;;;;;;;;27421:57;;:16;:57;;;:143;27673:8;;27641:41;;27654:17;;27641:12;:41::i;:::-;27579:103;-1:-1:-1;27716:4:0;27700:20;;;;27697:131;;;-1:-1:-1;;;;;27756:34:0;;;;;;;:21;:34;;;;;;27741:71;;27756:34;27792:16;27810:1;27741:14;:71::i;:::-;27872:6;;-1:-1:-1;;;;;27872:6:0;:52;27869:601;;-1:-1:-1;;;;;28003:34:0;;;;;;;:21;:34;;;;;;;;;27941:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;27941:96:0;28003:34;;;27941:96;;;;;;;;28144:39;;;28127:57;;:16;:57;;;;28186:8;;28114:81;;28127:57;28114:12;:81::i;:::-;-1:-1:-1;;;;;28069:39:0;;;28052:57;28069:39;;;:21;:39;;;;;;;;;;;;28052:57;;:16;:57;;;:143;28304:8;;28272:41;;28285:17;;28272:12;:41::i;:::-;28210:103;-1:-1:-1;28347:4:0;28331:20;;;;28328:131;;;-1:-1:-1;;;;;28387:34:0;;;;;;;:21;:34;;;;;;28372:71;;28387:34;28423:16;28441:1;28372:14;:71::i;:::-;28503:6;;-1:-1:-1;;;;;28503:6:0;:52;28500:601;;-1:-1:-1;;;;;28634:34:0;;;;;;;:21;:34;;;;;;;;;28572:39;;;;;:21;:39;;;;;:96;;-1:-1:-1;;;;;;28572:96:0;28634:34;;;28572:96;;;;;;;;28775:39;;;28758:57;;:16;:57;;;;28817:8;;28745:81;;28758:57;28745:12;:81::i;:::-;-1:-1:-1;;;;;28700:39:0;;;28683:57;28700:39;;;:21;:39;;;;;;;;;;;;28683:57;;:16;:57;;;:143;28935:8;;28903:41;;28916:17;;28903:12;:41::i;:::-;28841:103;-1:-1:-1;28978:4:0;28962:20;;;;28959:131;;;-1:-1:-1;;;;;29018:34:0;;;;;;;:21;:34;;;;;;29003:71;;29018:34;29054:16;29072:1;29003:14;:71::i;:::-;29133:7;;-1:-1:-1;;;;;29133:7:0;:53;29130:606;;-1:-1:-1;;;;;29265:34:0;;;;;;;:21;:34;;;;;;;;;29203:40;;;;;:22;:40;;;;;:96;;-1:-1:-1;;;;;;29203:96:0;29265:34;;;29203:96;;;;;;;;29406:40;;;29389:58;;:16;:58;;;;29449:9;;29376:83;;29389:58;29376:12;:83::i;:::-;-1:-1:-1;;;;;29331:40:0;;;29314:58;29331:40;;;:22;:40;;;;;;;;;;;;29314:58;;:16;:58;;;:145;29568:9;;29536:42;;29549:17;;29536:12;:42::i;:::-;29474:104;-1:-1:-1;29612:4:0;29596:20;;;;29593:132;;;-1:-1:-1;;;;;29652:34:0;;;;;;;:21;:34;;;;;;29637:72;;29652:34;29688:16;29706:2;29637:14;:72::i;:::-;29794:49;29807:16;;29825:17;29794:12;:49::i;:::-;29756:16;:87;-1:-1:-1;;;;;;21691:8160:0:o;35442:696::-;35632:12;;35508:7;;35577:4;35567:14;;;;35632:19;;;35508:7;;35725:357;35806:147;35884:17;;;3011:14;35858:44;35806:147;35779:214;;36066:1;35577:4;-1:-1:-1;;36039:10:0;;;:18;;;;36038:25;3011:14;36014:50;36013:54;;;;;;;;35725:12;:357::i;:::-;:372;;;;;;;;;35442:696;-1:-1:-1;;;;;35442:696:0:o;673:288::-;731:7;830:9;846:1;842;:5;;;;;;;;;673:288;-1:-1:-1;;;;673:288:0:o;459:208::-;517:7;;541:6;;537:47;;;571:1;564:8;;;;537:47;-1:-1:-1;606:5:0;;;610:1;606;:5;629;;;;;;;;:10;622:18;;;36151:198;36225:5;36234:1;36229;36225:5;;36224:11;36262:80;36273:1;36269;:5;36262:80;;;36295:1;36291:5;;36329:1;36324;36320;36316;:5;;;;;;;;:9;36315:15;;;;;;;;36311:19;;36262:80;;20283:333;-1:-1:-1;;;;;20389:29:0;;;20431:11;20389:29;;;:14;:29;;;;;;;;:31;;;;;;;;;;20485:7;:22;;;;;:30;;;;;;;;:62;;-1:-1:-1;;;;;;20485:62:0;;;;;;;;;;;20558:39;;:50;20283:333::o;2135:34223::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2135:34223:0;;;;-1:-1:-1;2135:34223:0;;;;;;;;;;;;;;

Swarm Source

bzzr://bad6ca3251e34c833e5f1bfb7982b8c59e785a08ec23ad3f11e6307f91c15fc9

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.