Token Axia (axiaprotocol.io)

 

Overview ERC-20

Price
$0.00 @ 0.000000 MATIC
Fully Diluted Market Cap
Total Supply:
4,100,000 AXIA

Holders:
194 addresses

Transfers:
-

Contract:
0x49690541e3f6e933a9aa3cffee6010a7bb5b72d70x49690541E3f6E933A9aa3cFFEe6010a7BB5B72d7

Decimals:
18

Social Profiles:
Not Available, Update ?

 
Loading
[ Download CSV Export  ] 
Loading
[ Download CSV Export  ] 
Loading

Click here to update the token ICO / general information
# Exchange Pair Price  24H Volume % Volume
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
AXIATOKEN

Compiler Version
v0.6.4+commit.1dca32f3

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-08
*/

pragma solidity 0.6.4;
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
 
    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

//ERC20 Interface
interface ERC20 {
    function totalSupply() external view returns (uint);
    function balanceOf(address account) external view returns (uint);
    function transfer(address, uint) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint);
    function approve(address, uint) external returns (bool);
    function transferFrom(address, address, uint) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint value);
    event Approval(address indexed owner, address indexed spender, uint value);
    }
    
interface ASP {
    
   function scaledToken(uint amount) external returns(bool);
   function totalFrozen() external view returns (uint256);
 }

interface OSP {
    
   function scaledToken(uint amount) external returns(bool);
   function totalFrozen() external view returns (uint256);
 }
 
interface DSP {
    
   function scaledToken(uint amount) external returns(bool);
   function totalFrozen() external view returns (uint256);
 }

interface USP {
    
   function scaledToken(uint amount) external returns(bool);
   function totalFrozen() external view returns (uint256);
 }
 
interface NFT {
    
   function ActivateNFT(address NFTOwner, uint cardType) external returns(bool);
   function DeactivateNFT(address NFTOwner, uint cardType) external returns (bool);
   
 }
    
//======================================AXIA CONTRACT=========================================//
contract AXIATOKEN is ERC20 {
    
    using SafeMath for uint256;
    
//======================================AXIA EVENTS=========================================//

    event NewEpoch(uint epoch, uint emission, uint nextepoch);
    event NewDay(uint epoch, uint day, uint nextday);
    event BurnEvent(address indexed pool, address indexed burnaddress, uint amount);
    event emissions(address indexed root, address indexed pool, uint value);
    event TrigRewardEvent(address indexed root, address indexed receiver, uint value);
    event BasisPointAdded(uint value);
    
    
    event ActivateCard(address indexed staker, address indexed pool, uint amount);
    event DeactivateCard(address indexed NFTOwner, address indexed pool, uint amount);
    event RewardEvent(address indexed staker, address indexed pool, uint amount);
    event RewardNFTOwner(address indexed NFTOwner, address indexed pool, uint amount);
    
   // ERC-20 Parameters
    string public name; 
    string public symbol;
    uint public decimals; 
    uint public startdecimal;
    uint public override totalSupply;
    uint public initialsupply;
    
     //======================================STAKING POOLS=========================================//
    
    address public lonePool;
    address public swapPool;
    address public DefiPool;
    address public OraclePool;
    
    address public burningPool;
    
    uint public pool1Amount;
    uint public pool2Amount;
    uint public pool3Amount;
    uint public pool4Amount;
    uint public NFTPoolAmount;
    
    uint public basisAmount;
    uint public poolAmountTrig;
    
    
    uint public TrigAmount;
    
    
    // ERC-20 Mappings
    mapping(address => uint) private tokenbalanceOf;
    mapping(address => mapping(address => uint)) public override allowance;
    
    
    // Public Parameters
    uint crypto; 
    uint startcrypto;
    uint public emission;
    uint public currentEpoch; 
    uint public currentDay;
    uint public daysPerEpoch; 
    uint public secondsPerDay;
    uint public genesis;
    uint public nextEpochTime; 
    uint public nextDayTime;
    uint public amountToEmit;
    uint public BPE = 99990000000000000000000;
    
    //======================================BASIS POINT VARIABLES=========================================//
    uint public bpValue;
    uint public actualValue;
    uint public TrigReward;
    uint public burnAmount;
    address administrator;
    uint totalEmitted;
    
    uint256 public pool1percentage = 9000;
    uint256 public pool2percentage = 500;
    uint256 public pool3percentage = 0;
    uint256 public pool4percentage = 0;
    uint256 public NFTPoolpercentage = 500;
    
    uint256 public basispercentage = 500;
    uint256 public trigRewardpercentage = 20;
    
    
    address public messagesender;
     
    // Public Mappings
    
    mapping(address=>bool) public emission_Whitelisted;
    

    //=====================================CREATION=========================================//
    // Constructor
    constructor() public {
        name = "Axia (axiaprotocol.io)"; 
        symbol = "AXIA"; 
        decimals = 18; 
        startdecimal = 16;
        crypto = 1*10**decimals; 
        startcrypto =  1*10**startdecimal; 
        totalSupply =  4100000*crypto;                                 
        initialsupply = 150000000*startcrypto;
        emission = 1800*crypto; 
        currentEpoch = 3; 
        currentDay = 395;                             
        genesis = now;
        
        daysPerEpoch = 180; 
        secondsPerDay = 86400; 
       
        administrator = msg.sender;
        tokenbalanceOf[administrator] = initialsupply; 
        emit Transfer(address(this), administrator, initialsupply);                                
        //nextEpochTime = genesis + (secondsPerDay * daysPerEpoch);
        nextEpochTime = 1648941898;
        //nextDayTime = genesis + secondsPerDay; 
        nextDayTime = 1636413898;
                      
        
        emission_Whitelisted[administrator] = true;
        
        
        
    }
    
//========================================CONFIGURATIONS=========================================//
    
    function poolconfigs(address _axia, address _swap, address _defi, address _oracle) public onlyAdministrator returns (bool success) {
        
        lonePool = _axia;
        swapPool = _swap;
        DefiPool = _defi;
        OraclePool = _oracle;
        
        
        
        return true;
    }
    
    
    
    function burningPoolconfigs(address _pooladdress) public onlyAdministrator returns (bool success) {
           
        burningPool = _pooladdress;
        
        return true;
    }
    
    modifier onlyNFT() {
        require(msg.sender == NFTaddress, "Administration: caller is not permitted");
        _;
    }
    
    modifier onlyAdministrator() {
        require(msg.sender == administrator, "Ownable: caller is not the owner");
        _;
    }
    
    modifier onlyBurningPool() {
        require(msg.sender == burningPool, "Authorization: Only the pool that allows burn can call on this");
        _;
    }
    
    function secondAndDay(uint _secondsperday, uint _daysperepoch) public onlyAdministrator returns (bool success) {
       secondsPerDay = _secondsperday;
       daysPerEpoch = _daysperepoch;
        return true;
    }
    
    function nextEpoch(uint _nextepoch) public onlyAdministrator returns (bool success) {
       nextEpochTime = _nextepoch;
       
        return true;
    }
    
    function whitelistOnEmission(address _address) public onlyAdministrator returns (bool success) {
       emission_Whitelisted[_address] = true;
        return true;
    }
    
    function unwhitelistOnEmission(address _address) public onlyAdministrator returns (bool success) {
       emission_Whitelisted[_address] = false;
        return true;
    }
    
    
    function supplyeffect(uint _amount) public onlyBurningPool returns (bool success) {
       totalSupply -= _amount;
       emit BurnEvent(burningPool, address(0x0), _amount);
        return true;
    }
    
    function poolpercentages(uint _p1, uint _p2, uint _p3, uint _p4, uint _basispercent, uint trigRe) public onlyAdministrator returns (bool success) {
       
       pool1percentage = _p1;
       pool2percentage = _p2;
       pool3percentage = _p3;
       pool4percentage = _p4;
       basispercentage = _basispercent;
       trigRewardpercentage = trigRe;
       
       return true;
    }
    
    function Burn(uint _amount) public returns (bool success) {
       
       require(tokenbalanceOf[msg.sender] >= _amount, "You do not have the amount of tokens you wanna burn in your wallet");
       tokenbalanceOf[msg.sender] -= _amount;
       totalSupply -= _amount;
       emit BurnEvent(msg.sender, address(0x0), _amount);
       return true;
       
    }
    
    
   
     
      uint256 public cardAreward; //Diamond Cards
      uint256 public cardBreward; //Platinum Cards
      uint256 public cardCreward; //Gold Cards
      
    
      
    
      uint CardAShare = 2000;
      uint CardBShare = 3000;
      uint CardCShare = 5000;
      
    
      address NFTaddress = 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4;
     
     
    function balanceOf(address _user) public view override returns(uint256) {        
         (uint256 a, uint256 b, uint256 c) = dividendsOf(_user);
        return tokenbalanceOf[_user] + (a+b+c);       
    }
    
    function NFTCardsRewardPercentages(uint _cardA, uint _cardB, uint _cardC) public onlyAdministrator returns (bool success) {
        
        CardAShare = _cardA;
        CardBShare = _cardB;
        CardCShare = _cardC;
        
        return true;
    }
    
     function toggleNFTAddress(address _NFTaddress) public onlyAdministrator {
         
        NFTaddress = _NFTaddress;
    }
    
    
    
    //////////////////////////////////////////////////////////////////////
    
    uint256 constant private FLOAT_SCALAR = 2**64;
    uint256 public MINIMUM_STAKE = 1000000000000000000; // 1 minimum

	
	
    
    
    //>>>>>>>>>   ---CARDHOLDER DATA TYPE A----  <<<<<<<<<<<<<<<<<<///
    uint public infocheckA;
    struct UserA {
		uint256 balance;
		uint256 frozen;
		int256 scaledPayout;  
		uint256 staketime;
	}

	struct InfoA {
	    
		uint256 totalFrozen;
		mapping(address => UserA) users;
		uint256 scaledPayoutPerToken;
		address admin;
	}
	
	InfoA private infoA;
	
	
	 //>>>>>>>>>   ---CARDHOLDER DATA TYPE B----   <<<<<<<<<<<<<<<<<<///
	uint public infocheckB;
    struct UserB {
		uint256 balance;
		uint256 frozen;
		int256 scaledPayout;  
		uint256 staketime;
	}

	struct InfoB {
	    
		uint256 totalFrozen;
		mapping(address => UserA) users;
		uint256 scaledPayoutPerToken;
		address admin;
	}
	
	InfoB private infoB;
	
	//>>>>>>>>>   ---CARDHOLDER DATA TYPE C----   <<<<<<<<<<<<<<<<<<///
	
	uint public infocheckC;
    struct UserC {
		uint256 balance;
		uint256 frozen;
		int256 scaledPayout;  
		uint256 staketime;
	}

	struct InfoC {
	    
		uint256 totalFrozen;
		mapping(address => UserA) users;
		uint256 scaledPayoutPerToken;
		address admin;
	}
	
	InfoC private infoC;
	
	
	
	
	function dividendsOf(address NFTowner) internal view returns (uint256 a, uint256 b, uint256 c) {
	    
	   
	   if(infoA.users[NFTowner].frozen > 0){
	       
           a =  uint256(int256(infoA.scaledPayoutPerToken * infoA.users[NFTowner].frozen) - infoA.users[NFTowner].scaledPayout) / FLOAT_SCALAR; 
	   }
	   
	   if(infoB.users[NFTowner].frozen > 0){
	       
           b =  uint256(int256(infoB.scaledPayoutPerToken * infoB.users[NFTowner].frozen) - infoB.users[NFTowner].scaledPayout) / FLOAT_SCALAR; 
	   }
	   
	   if(infoC.users[NFTowner].frozen > 0){
	       
           c =  uint256(int256(infoC.scaledPayoutPerToken * infoC.users[NFTowner].frozen) - infoC.users[NFTowner].scaledPayout) / FLOAT_SCALAR; 
	   }
	   
	   return(a, b, c);
	   
	}
	

    //---------------------USERDATA SET TYPE A----------------------
    function totalFrozenA() public view returns (uint256) {
		return infoA.totalFrozen;
	}
	
    function frozenOfA(address _user) public view returns (uint256) {
		return infoA.users[_user].frozen;
	}
	
	
	//---------------------USERDATA SET TYPE B----------------------
	function totalFrozenB() public view returns (uint256) {
		return infoB.totalFrozen;
	}
	
    function frozenOfB(address _user) public view returns (uint256) {
		return infoB.users[_user].frozen;
	}
	
	
	
	//---------------------USERDATA SET TYPE C----------------------
	function totalFrozenC() public view returns (uint256) {
		return infoC.totalFrozen;
	}
	
    function frozenOfC(address _user) public view returns (uint256) {
		return infoC.users[_user].frozen;
	}
    //>>>>>>>>>>>>>>>>>>>>>>>USERDATA SET TYPE ENDS<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    
    
    
    
    
	function userDataA(address _user) public view 
	returns (
	
	uint256 totalTokensFrozenA, uint256 userFrozenA, 
	uint256 userDividendsA, uint256 userStaketimeA, int256 scaledPayoutA 
	

	) {
 	    (uint a, ,) = dividendsOf(_user);
		return (

 		    totalFrozenA(), frozenOfA(_user), a, infoA.users[_user].staketime, infoA.users[_user].scaledPayout
		    
		    
		    );
	
	    
	}
	
	function userDataB(address _user) public view 
	returns (
	
    uint256 totalTokensFrozenB, uint256 userFrozenB, 
 	uint256 userDividendsB, uint256 userStaketimeB, int256 scaledPayoutB

	) {
 	    (, uint b,) = dividendsOf(_user);
		return (
		    
		    totalFrozenB(), frozenOfB(_user), b, infoB.users[_user].staketime, infoB.users[_user].scaledPayout
		    
		    
		    
		    );
	
	    
	}
	
    function userDataC(address _user) public view 
	returns (
	
	uint256 totalTokensFrozenC, uint256 userFrozenC, 
 	uint256 userDividendsC, uint256 userStaketimeC, int256 scaledPayoutC
	) {
 	    (, , uint c) = dividendsOf(_user);
 		return (
		    
 		    totalFrozenC(), frozenOfC(_user), c, infoC.users[_user].staketime, infoC.users[_user].scaledPayout
		    
		    
		    
 		    );
	
	    
	}
	
	function scaledNFTToken(uint _amount) private returns(bool){
            
            cardAreward = mulDiv(_amount, CardAShare, 10000); 
            cardBreward = mulDiv(_amount, CardBShare, 10000); 
            cardCreward = mulDiv(_amount, CardCShare, 10000);
            
            //This is for card Type A
    		infoA.scaledPayoutPerToken += cardAreward * FLOAT_SCALAR / infoA.totalFrozen;
    		infocheckA = infoA.scaledPayoutPerToken;
    	
    		
    		//This is for card Type B
    		infoB.scaledPayoutPerToken += cardBreward * FLOAT_SCALAR / infoB.totalFrozen;
    		infocheckB = infoB.scaledPayoutPerToken;
    		
    		
    		//This is for card Type C
    		infoC.scaledPayoutPerToken += cardCreward * FLOAT_SCALAR / infoC.totalFrozen;
    		infocheckC = infoC.scaledPayoutPerToken;
            
            return true;
    }
	
	
    function ActivateNFT(address NFTowner, uint256 cardType) public onlyNFT {
        
            TakeDividends(NFTowner);
            
            uint _amount = 1000000000000000000;
            if(cardType == 1){
                
            infoA.users[NFTowner].staketime = now;
    		infoA.totalFrozen += _amount;
    		infoA.users[NFTowner].frozen += _amount;
    		
    		infoA.users[NFTowner].scaledPayout += int256(_amount * infoA.scaledPayoutPerToken);
            emit ActivateCard(address(this), NFTowner, (_amount.div(10**18)));
                
            }else if(cardType == 2){
                
            infoB.users[NFTowner].staketime = now;
    		infoB.totalFrozen += _amount;
    		infoB.users[NFTowner].frozen += _amount;
    		
    		infoB.users[NFTowner].scaledPayout += int256(_amount * infoB.scaledPayoutPerToken);
    		emit ActivateCard(address(this), NFTowner, (_amount.div(10**18)));
                
            }else if(cardType == 3){
                
            infoC.users[NFTowner].staketime = now;
    		infoC.totalFrozen += _amount;
    		infoC.users[NFTowner].frozen += _amount;
    		
    		infoC.users[NFTowner].scaledPayout += int256(_amount * infoC.scaledPayoutPerToken);
    		emit ActivateCard(address(this), NFTowner, (_amount.div(10**18)));
    		
            }
            
            
        } 
       
    function TakeDividends(address NFTowner) internal {
		    
		(uint256 a, uint256 b, uint256 c) = dividendsOf(NFTowner);
		if(a > 0){
		    
		    infoA.users[NFTowner].scaledPayout += int256(a * FLOAT_SCALAR);
		    tokenbalanceOf[NFTowner] += a;
		    emit Transfer(address(this), NFTowner, (a));
		}
		
		if(b > 0){
		    
		    infoB.users[NFTowner].scaledPayout += int256(b * FLOAT_SCALAR);  
		    tokenbalanceOf[NFTowner] += b;
		    emit Transfer(address(this), NFTowner, (b));
		}
		
		if(c > 0){
		    
		    infoC.users[NFTowner].scaledPayout += int256(c * FLOAT_SCALAR);  
		    tokenbalanceOf[NFTowner] += c;
		    emit Transfer(address(this), NFTowner, (c));
		}
		
		
		
	}
	
	
	function DeactivateNFT(address NFTowner, uint256 cardType) public onlyNFT {
	    
	    TakeDividends(NFTowner);
	    uint256 _amount = 1000000000000000000;
	                      
	    if(cardType == 1){
	        
	     require(frozenOfA(NFTowner) >= _amount, "You currently do not have any Card Incubating");
	     infoA.totalFrozen -= _amount;
		 infoA.users[NFTowner].frozen -= _amount;
		 infoA.users[NFTowner].scaledPayout -= int256(_amount * infoA.scaledPayoutPerToken);
		
	 	 emit DeactivateCard(NFTowner, address(this), (_amount.div(10**18)));
	     
	    }
	    
	    if(cardType == 2){
	        
	     require(frozenOfB(NFTowner) >= _amount, "You currently do not have any Card Incubating");
	     infoB.totalFrozen -= _amount;
		 infoB.users[NFTowner].frozen -= _amount;
		 infoB.users[NFTowner].scaledPayout -= int256(_amount * infoB.scaledPayoutPerToken);
		
	 	 emit DeactivateCard(NFTowner, address(this), (_amount.div(10**18)));
	     
	    }
	    
	    if(cardType == 3){
	        
	     require(frozenOfC(NFTowner) >= _amount, "You currently do not have any Card Incubating");
	     infoC.totalFrozen -= _amount;
		 infoC.users[NFTowner].frozen -= _amount;
		 infoC.users[NFTowner].scaledPayout -= int256(_amount * infoC.scaledPayoutPerToken);
		
	 	 emit DeactivateCard(NFTowner, address(this), (_amount.div(10**18)));
	     
	    }
		
		
		
	}
       
    
    
   //========================================ERC20=========================================//
    // ERC20 Transfer function
    function transfer(address to, uint value) public override returns (bool success) {
        
        _transfer(msg.sender, to, value);
        return true;
    }
    // ERC20 Approve function
    function approve(address spender, uint value) public override returns (bool success) {
        TakeDividends(msg.sender);
        allowance[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);
        return true;
    }
    // ERC20 TransferFrom function
    function transferFrom(address from, address to, uint value) public override returns (bool success) {
        
        require(value <= allowance[from][msg.sender], 'Must not send more than allowance');
        allowance[from][msg.sender] -= value;
        _transfer(from, to, value);
        return true;
    }
    
  
    
    // Internal transfer function which includes the Fee
    function _transfer(address _from, address _to, uint _value) private {
        
        TakeDividends(_from);
        messagesender = msg.sender; //this is the person actually making the call on this function
        
        
        require(tokenbalanceOf[_from] >= _value, 'Must not send more than balance');
        require(tokenbalanceOf[_to] + _value >= tokenbalanceOf[_to], 'Balance overflow');
        
        tokenbalanceOf[_from] -= _value;
        
        
        if(emission_Whitelisted[messagesender] == false){ 
          
                if(now >= nextDayTime){
                
                amountToEmit = emittingAmount();
                
                
                uint basisAmountQuota = mulDiv(amountToEmit, basispercentage, 10000);
                amountToEmit = amountToEmit - basisAmountQuota;
                basisAmount = basisAmountQuota;
                
                pool1Amount = mulDiv(amountToEmit, pool1percentage, 10000);
                pool2Amount = mulDiv(amountToEmit, pool2percentage, 10000);
                pool3Amount = mulDiv(amountToEmit, pool3percentage, 10000);
                pool4Amount = mulDiv(amountToEmit, pool4percentage, 10000);
                NFTPoolAmount = mulDiv(amountToEmit, NFTPoolpercentage, 10000);
                
                
                
                poolAmountTrig = mulDiv(amountToEmit, trigRewardpercentage, 10000);
                TrigAmount = poolAmountTrig.div(2);
                
                pool1Amount = pool1Amount.sub(TrigAmount);
                pool2Amount = pool2Amount.sub(TrigAmount);
                
                TrigReward = poolAmountTrig;
                
                uint Ofrozenamount = ospfrozen();
                uint Dfrozenamount = dspfrozen();
                uint Ufrozenamount = uspfrozen();
                uint Afrozenamount = aspfrozen();
                
                tokenbalanceOf[address(this)] += basisAmount;
                emit Transfer(address(this), address(this), basisAmount);
                BPE += basisAmount;
                
                
                if(Ofrozenamount > 0){
                    
                OSP(OraclePool).scaledToken(pool4Amount);
                tokenbalanceOf[OraclePool] += pool4Amount;
                emit Transfer(address(this), OraclePool, pool4Amount);
                
                
                    
                }else{
                  
                 tokenbalanceOf[address(this)] += pool4Amount; 
                 emit Transfer(address(this), address(this), pool4Amount);
                 
                 BPE += pool4Amount;
                    
                }
                
                if(Dfrozenamount > 0){
                    
                DSP(DefiPool).scaledToken(pool3Amount);
                tokenbalanceOf[DefiPool] += pool3Amount;
                emit Transfer(address(this), DefiPool, pool3Amount);
                
                
                    
                }else{
                  
                 tokenbalanceOf[address(this)] += pool3Amount; 
                 emit Transfer(address(this), address(this), pool3Amount);
                 BPE += pool3Amount;
                    
                }
                
                if(Ufrozenamount > 0){
                    
                USP(swapPool).scaledToken(pool2Amount);
                tokenbalanceOf[swapPool] += pool2Amount;
                emit Transfer(address(this), swapPool, pool2Amount);
                
                    
                }else{
                  
                 tokenbalanceOf[address(this)] += pool2Amount; 
                 emit Transfer(address(this), address(this), pool2Amount);
                 BPE += pool2Amount;
                    
                }
                
                if(Afrozenamount > 0){
                    
                 ASP(lonePool).scaledToken(pool1Amount);
                 tokenbalanceOf[lonePool] += pool1Amount;
                 emit Transfer(address(this), lonePool, pool1Amount);
                
                }else{
                  
                 tokenbalanceOf[address(this)] += pool1Amount; 
                 emit Transfer(address(this), address(this), pool1Amount);
                 BPE += pool1Amount;
                    
                }
                
                if(NFTPoolAmount > 0){
                    
                  scaledNFTToken(NFTPoolAmount);  
                }
                
                
                nextDayTime += secondsPerDay;
                currentDay += 1; 
                emit NewDay(currentEpoch, currentDay, nextDayTime);
                
                //reward the wallet that triggered the EMISSION
                tokenbalanceOf[_from] += TrigReward; //this is rewardig the person that triggered the emission
                emit Transfer(address(this), _from, TrigReward);
                emit TrigRewardEvent(address(this), msg.sender, TrigReward);
                
            }
        
            
        }
       
       tokenbalanceOf[_to] += _value;
       emit Transfer(_from, _to, _value);
    }
    
    

    
   
    //======================================EMISSION========================================//
    // Internal - Update emission function
    
    function emittingAmount() internal returns(uint){
       
        if(now >= nextEpochTime){
            
            currentEpoch += 1;
            
            if(currentEpoch > 10){
            
               emission = BPE;
               BPE -= emission.div(2);
               tokenbalanceOf[address(this)] -= emission.div(2);
            
               
            }
            emission = emission/2;
            nextEpochTime += (secondsPerDay * daysPerEpoch);
            emit NewEpoch(currentEpoch, emission, nextEpochTime);
          
        }
        
        return emission;
        
        
    }
  
  
    function ospfrozen() public view returns(uint){
        
        return OSP(OraclePool).totalFrozen();
       
    }
    
    function dspfrozen() public view returns(uint){
        
        return DSP(DefiPool).totalFrozen();
       
    }
    
    function uspfrozen() public view returns(uint){
        
        return USP(swapPool).totalFrozen();
       
    } 
    
    function aspfrozen() public view returns(uint){
        
        return ASP(lonePool).totalFrozen();
       
    }
    
     function mulDiv (uint x, uint y, uint z) public pure returns (uint) {
          (uint l, uint h) = fullMul (x, y);
          assert (h < z);
          uint mm = mulmod (x, y, z);
          if (mm > l) h -= 1;
          l -= mm;
          uint pow2 = z & -z;
          z /= pow2;
          l /= pow2;
          l += h * ((-pow2) / pow2 + 1);
          uint r = 1;
          r *= 2 - z * r;
          r *= 2 - z * r;
          r *= 2 - z * r;
          r *= 2 - z * r;
          r *= 2 - z * r;
          r *= 2 - z * r;
          r *= 2 - z * r;
          r *= 2 - z * r;
          return l * r;
    }
    
     function fullMul (uint x, uint y) private pure returns (uint l, uint h) {
          uint mm = mulmod (x, y, uint (-1));
          l = x * y;
          h = mm - l;
          if (mm < l) h -= 1;
    }
    
   
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ActivateCard","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"BasisPointAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":true,"internalType":"address","name":"burnaddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BurnEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"NFTOwner","type":"address"},{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DeactivateCard","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"day","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nextday","type":"uint256"}],"name":"NewDay","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"emission","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"nextepoch","type":"uint256"}],"name":"NewEpoch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"NFTOwner","type":"address"},{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardNFTOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"root","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TrigRewardEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"root","type":"address"},{"indexed":true,"internalType":"address","name":"pool","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"emissions","type":"event"},{"inputs":[{"internalType":"address","name":"NFTowner","type":"address"},{"internalType":"uint256","name":"cardType","type":"uint256"}],"name":"ActivateNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"BPE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Burn","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"NFTowner","type":"address"},{"internalType":"uint256","name":"cardType","type":"uint256"}],"name":"DeactivateNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"DefiPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_STAKE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_cardA","type":"uint256"},{"internalType":"uint256","name":"_cardB","type":"uint256"},{"internalType":"uint256","name":"_cardC","type":"uint256"}],"name":"NFTCardsRewardPercentages","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"NFTPoolAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NFTPoolpercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OraclePool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TrigAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TrigReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"actualValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountToEmit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"aspfrozen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"basisAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"basispercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bpValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burningPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pooladdress","type":"address"}],"name":"burningPoolconfigs","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cardAreward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cardBreward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cardCreward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"daysPerEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dspfrozen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emission","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"emission_Whitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"frozenOfA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"frozenOfB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"frozenOfC","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"infocheckA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"infocheckB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"infocheckC","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialsupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lonePool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"messagesender","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"},{"internalType":"uint256","name":"z","type":"uint256"}],"name":"mulDiv","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextDayTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_nextepoch","type":"uint256"}],"name":"nextEpoch","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"nextEpochTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ospfrozen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool1Amount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool1percentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool2Amount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool2percentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool3Amount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool3percentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool4Amount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pool4percentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolAmountTrig","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_axia","type":"address"},{"internalType":"address","name":"_swap","type":"address"},{"internalType":"address","name":"_defi","type":"address"},{"internalType":"address","name":"_oracle","type":"address"}],"name":"poolconfigs","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_p1","type":"uint256"},{"internalType":"uint256","name":"_p2","type":"uint256"},{"internalType":"uint256","name":"_p3","type":"uint256"},{"internalType":"uint256","name":"_p4","type":"uint256"},{"internalType":"uint256","name":"_basispercent","type":"uint256"},{"internalType":"uint256","name":"trigRe","type":"uint256"}],"name":"poolpercentages","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_secondsperday","type":"uint256"},{"internalType":"uint256","name":"_daysperepoch","type":"uint256"}],"name":"secondAndDay","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secondsPerDay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startdecimal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"supplyeffect","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapPool","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_NFTaddress","type":"address"}],"name":"toggleNFTAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalFrozenA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFrozenB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFrozenC","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"trigRewardpercentage","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"unwhitelistOnEmission","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"userDataA","outputs":[{"internalType":"uint256","name":"totalTokensFrozenA","type":"uint256"},{"internalType":"uint256","name":"userFrozenA","type":"uint256"},{"internalType":"uint256","name":"userDividendsA","type":"uint256"},{"internalType":"uint256","name":"userStaketimeA","type":"uint256"},{"internalType":"int256","name":"scaledPayoutA","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"userDataB","outputs":[{"internalType":"uint256","name":"totalTokensFrozenB","type":"uint256"},{"internalType":"uint256","name":"userFrozenB","type":"uint256"},{"internalType":"uint256","name":"userDividendsB","type":"uint256"},{"internalType":"uint256","name":"userStaketimeB","type":"uint256"},{"internalType":"int256","name":"scaledPayoutB","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"userDataC","outputs":[{"internalType":"uint256","name":"totalTokensFrozenC","type":"uint256"},{"internalType":"uint256","name":"userFrozenC","type":"uint256"},{"internalType":"uint256","name":"userDividendsC","type":"uint256"},{"internalType":"uint256","name":"userStaketimeC","type":"uint256"},{"internalType":"int256","name":"scaledPayoutC","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uspfrozen","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"whitelistOnEmission","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405269152c7800be466c9800006020556123286027556101f4602881905560006029819055602a55602b819055602c556014602d556107d0603355610bb8603455611388603555603680546001600160a01b031916735b38da6a701c568545dcfcb03fcb875f56beddc4179055670de0b6b3a76400006037553480156200008857600080fd5b506040805180820190915260168082527f4178696120286178696170726f746f636f6c2e696f29000000000000000000006020909201918252620000cf916000916200020f565b50604080518082019091526004808252634158494160e01b6020909201918252620000fd916001916200020f565b50601260025560106003908155670de0b6b3a7640000601555662386f26fc100006016556a036435720315017a8000006004556a013da329b63364718000006005819055686194049f30f720000060175560189190915561018b60195542601c5560b4601a5562015180601b55602580546001600160a01b03191633178082556001600160a01b0390811660009081526013602090815260409182902085905592548151948552905191169230927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3636248db4a601d55636189b1ca601e556025546001600160a01b03166000908152602f60205260409020805460ff19166001179055620002b4565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200025257805160ff191683800117855562000282565b8280016001018555821562000282579182015b828111156200028257825182559160200191906001019062000265565b506200029092915062000294565b5090565b620002b191905b808211156200029057600081556001016200029b565b90565b612c4080620002c46000396000f3fe608060405234801561001057600080fd5b506004361061048a5760003560e01c806370a0823111610262578063b8acb20011610151578063cbd9a63c116100ce578063dd62ed3e11610092578063dd62ed3e14610af6578063e466409614610b24578063f31e1c9f14610b2c578063f497455414610b34578063f63082da14610b3c578063fee05d6214610b445761048a565b8063cbd9a63c14610a8f578063ce9b468f14610a97578063d36fe2d514610a9f578063d762fcc314610aa7578063d9fd333514610ad05761048a565b8063c35f6d3e11610115578063c35f6d3e14610a49578063c592871d14610a51578063c6ae69a214610a77578063c96781de14610a7f578063ca34857d14610a875761048a565b8063b8acb200146109d9578063b90306ad146109e1578063b97ec182146109fe578063be640d8314610a39578063bf1805ed14610a415761048a565b80639d379bdb116101df578063aa9a0912116101a3578063aa9a09121461096c578063acbc8bb914610995578063ae0074c61461099d578063af124298146109a5578063b7f8d693146109d15761048a565b80639d379bdb146108e4578063a1646a0a1461090a578063a2663d7414610930578063a7f0b3de14610938578063a9059cbb146109405761048a565b8063849853e111610226578063849853e114610880578063951758ee146108a657806395d89b41146108cc57806396f4ee05146108d4578063982697dd146108dc5761048a565b806370a082311461083a57806376671808146108605780637ba8a704146108685780638056af3114610870578063827c049e146108785761048a565b806326fabc7b1161037e578063468c3b30116102fb5780635c9302c9116102bf5780635c9302c914610812578063638099531461081a5780636960a842146108225780636aed63231461082a5780636b13518d146108325761048a565b8063468c3b30146107965780634747b94d1461079e578063486a7e6b146107a6578063529d8cd3146107ae57806353695267146107ec5761048a565b80633f83b190116103425780633f83b1901461072a57806341bc18b11461073257806343306a961461075857806343dbef5d1461076057806345a15d54146107685761048a565b806326fabc7b146106d25780632c034132146106da578063313ce567146106e2578063342a7b01146106ea5780633a70fd30146107075761048a565b8063180004fd1161040c578063204e5e58116103d0578063204e5e581461062d57806322344b051461065357806323b872dd1461065b57806323fd97c81461069157806326796dd5146106b55761048a565b8063180004fd146105e757806318160ddd146105ef578063197322fe146105f75780631b02b6e01461061d5780631da56eb3146106255761048a565b8063095ea7b311610453578063095ea7b31461053e5780630ab4afe21461057e5780630c294ae8146105865780631429baba1461058e57806314c7d247146105965761048a565b8062383d2f1461048f57806301f85ed9146104a957806306fdde03146104b15780630833ce881461052e57806308dbbb0314610536575b600080fd5b610497610b4c565b60408051918252519081900360200190f35b610497610bc2565b6104b9610bc8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104f35781810151838201526020016104db565b50505050905090810190601f1680156105205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610497610c56565b610497610c9b565b61056a6004803603604081101561055457600080fd5b506001600160a01b038135169060200135610ca1565b604080519115158252519081900360200190f35b610497610d13565b610497610d19565b610497610d1f565b6105bc600480360360208110156105ac57600080fd5b50356001600160a01b0316610d25565b6040805195865260208601949094528484019290925260608401526080830152519081900360a00190f35b610497610d7f565b610497610d85565b61056a6004803603602081101561060d57600080fd5b50356001600160a01b0316610d8b565b610497610e04565b610497610e0a565b6105bc6004803603602081101561064357600080fd5b50356001600160a01b0316610e10565b610497610e6a565b61056a6004803603606081101561067157600080fd5b506001600160a01b03813581169160208101359091169060400135610eaf565b610699610f50565b604080516001600160a01b039092168252519081900360200190f35b61056a600480360360208110156106cb57600080fd5b5035610f5f565b610497611000565b610497611045565b61049761104b565b61056a6004803603602081101561070057600080fd5b5035611051565b61056a6004803603604081101561071d57600080fd5b50803590602001356110aa565b610497611109565b61056a6004803603602081101561074857600080fd5b50356001600160a01b031661110f565b610699611184565b610497611193565b6107946004803603604081101561077e57600080fd5b506001600160a01b038135169060200135611199565b005b61049761139f565b6104976113a5565b6104976113ab565b61056a600480360360808110156107c457600080fd5b506001600160a01b0381358116916020810135821691604082013581169160600135166113b1565b6104976004803603602081101561080257600080fd5b50356001600160a01b0316611455565b610497611473565b610497611479565b61049761147f565b610699611485565b610497611494565b6104976004803603602081101561085057600080fd5b50356001600160a01b031661149a565b6104976114d2565b6104976114d8565b6104976114de565b6104976114e4565b6104976004803603602081101561089657600080fd5b50356001600160a01b03166114ea565b6105bc600480360360208110156108bc57600080fd5b50356001600160a01b0316611508565b6104b9611562565b6104976115bc565b6106996115c2565b61056a600480360360208110156108fa57600080fd5b50356001600160a01b03166115d1565b61056a6004803603602081101561092057600080fd5b50356001600160a01b03166115e6565b61069961165b565b61049761166a565b61056a6004803603604081101561095657600080fd5b506001600160a01b038135169060200135611670565b6104976004803603606081101561098257600080fd5b5080359060208101359060400135611686565b61049761173a565b610497611740565b610794600480360360408110156109bb57600080fd5b506001600160a01b038135169060200135611746565b610497611a21565b610497611a27565b61056a600480360360208110156109f757600080fd5b5035611a2d565b61056a600480360360c0811015610a1457600080fd5b5080359060208101359060408101359060608101359060808101359060a00135611ada565b610497611b4b565b610497611b51565b610497611b57565b61049760048036036020811015610a6757600080fd5b50356001600160a01b0316611b5d565b610497611b7b565b610497611b81565b610497611b87565b610497611b8d565b610699611b93565b610497611ba2565b61056a60048036036060811015610abd57600080fd5b5080359060208101359060400135611ba8565b61079460048036036020811015610ae657600080fd5b50356001600160a01b0316611c0a565b61049760048036036040811015610b0c57600080fd5b506001600160a01b0381358116916020013516611c79565b610497611c96565b610497611c9c565b610497611ca2565b610497611ca8565b610497611cae565b6009546040805163079fe1ef60e21b815290516000926001600160a01b031691631e7f87bc916004808301926020929190829003018186803b158015610b9157600080fd5b505afa158015610ba5573d6000803e3d6000fd5b505050506040513d6020811015610bbb57600080fd5b5051905090565b60385481565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c4e5780601f10610c2357610100808354040283529160200191610c4e565b820191906000526020600020905b815481529060010190602001808311610c3157829003601f168201915b505050505081565b6006546040805163079fe1ef60e21b815290516000926001600160a01b031691631e7f87bc916004808301926020929190829003018186803b158015610b9157600080fd5b60375481565b6000610cac33611cb4565b3360008181526014602090815260408083206001600160a01b03881680855290835292819020869055805186815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a350600192915050565b603d5481565b600e5481565b60055481565b600080600080600080610d3787611dec565b50915050610d43611b7b565b610d4c88611b5d565b6001600160a01b03989098166000908152603f602052604090206003810154600290910154919992975095509350915050565b60235481565b60045481565b6025546000906001600160a01b03163314610ddb576040805162461bcd60e51b81526020600482018190526024820152600080516020612b24833981519152604482015290519081900360640190fd5b506001600160a01b03166000908152602f60205260409020805460ff1916600190811790915590565b60285481565b601d5481565b600080600080600080610e2287611dec565b92505050610e2e611ca8565b610e3788611455565b6001600160a01b039890981660009081526044602052604090206003810154600290910154919992975095509350915050565b6007546040805163079fe1ef60e21b815290516000926001600160a01b031691631e7f87bc916004808301926020929190829003018186803b158015610b9157600080fd5b6001600160a01b0383166000908152601460209081526040808320338452909152812054821115610f115760405162461bcd60e51b8152600401808060200182810382526021815260200180612b036021913960400191505060405180910390fd5b6001600160a01b0384166000908152601460209081526040808320338452909152902080548390039055610f46848484611ef3565b5060019392505050565b602e546001600160a01b031681565b600a546000906001600160a01b03163314610fab5760405162461bcd60e51b815260040180806020018281038252603e815260200180612ba6603e913960400191505060405180910390fd5b600480548390039055600a546040805184815290516000926001600160a01b0316917fe0deda1dd123aa6cdd7f4460830c05edf058ceb3c302f94e81a4fda7cfc42371919081900360200190a3506001919050565b6008546040805163079fe1ef60e21b815290516000926001600160a01b031691631e7f87bc916004808301926020929190829003018186803b158015610b9157600080fd5b600b5481565b60025481565b6025546000906001600160a01b031633146110a1576040805162461bcd60e51b81526020600482018190526024820152600080516020612b24833981519152604482015290519081900360640190fd5b50601d55600190565b6025546000906001600160a01b031633146110fa576040805162461bcd60e51b81526020600482018190526024820152600080516020612b24833981519152604482015290519081900360640190fd5b50601b91909155601a55600190565b60315481565b6025546000906001600160a01b0316331461115f576040805162461bcd60e51b81526020600482018190526024820152600080516020612b24833981519152604482015290519081900360640190fd5b506001600160a01b03166000908152602f60205260409020805460ff19169055600190565b6006546001600160a01b031681565b60425481565b6036546001600160a01b031633146111e25760405162461bcd60e51b8152600401808060200182810382526027815260200180612be46027913960400191505060405180910390fd5b6111eb82611cb4565b670de0b6b3a76400006001821415611289576001600160a01b0383166000818152603a60205260409020426003820155603980548401905560018101805484019055603b54600290910180549184029091019055307f156c663762cde90f366ade20d0ac3c40c1bcb72b0d0bda2e6763c667155af49d61127384670de0b6b3a764000061278f565b60408051918252519081900360200190a361139a565b8160021415611309576001600160a01b0383166000818152603f602052604090819020426003820155603e805485019055600181018054850190559054600290910180549184029091019055307f156c663762cde90f366ade20d0ac3c40c1bcb72b0d0bda2e6763c667155af49d61127384670de0b6b3a764000061278f565b816003141561139a576001600160a01b0383166000818152604460205260409020426003820155604380548401905560018101805484019055604554600290910180549184029091019055307f156c663762cde90f366ade20d0ac3c40c1bcb72b0d0bda2e6763c667155af49d61138884670de0b6b3a764000061278f565b60408051918252519081900360200190a35b505050565b60305481565b60125481565b60245481565b6025546000906001600160a01b03163314611401576040805162461bcd60e51b81526020600482018190526024820152600080516020612b24833981519152604482015290519081900360640190fd5b50600680546001600160a01b03199081166001600160a01b03968716179091556007805482169486169490941790935560088054841692851692909217909155600980549092169216919091179055600190565b6001600160a01b031660009081526044602052604090206001015490565b60195481565b601b5481565b601a5481565b6009546001600160a01b031681565b600d5481565b6000806000806114a985611dec565b6001600160a01b0388166000908152601360205260409020549290910101019350505050919050565b60185481565b60035481565b60395490565b60175481565b6001600160a01b03166000908152603a602052604090206001015490565b60008060008060008061151a87611dec565b505090506115266114de565b61152f886114ea565b6001600160a01b03989098166000908152603a602052604090206003810154600290910154919992975095509350915050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610c4e5780601f10610c2357610100808354040283529160200191610c4e565b602d5481565b6007546001600160a01b031681565b602f6020526000908152604090205460ff1681565b6025546000906001600160a01b03163314611636576040805162461bcd60e51b81526020600482018190526024820152600080516020612b24833981519152604482015290519081900360640190fd5b50600a80546001600160a01b0383166001600160a01b03199091161790556001919050565b6008546001600160a01b031681565b601c5481565b600061167d338484611ef3565b50600192915050565b600080600061169586866127d8565b915091508381106116a257fe5b600084806116ac57fe5b8688099050828111156116c0576001820391505b9182900391600085900385168086816116d557fe5b0495508084816116e157fe5b0493508081600003816116f057fe5b046001019290920292909201600285810380870282030280870282030280870282030280870282030280870282030280870282030295860290039094029390930295945050505050565b60325481565b601f5481565b6036546001600160a01b0316331461178f5760405162461bcd60e51b8152600401808060200182810382526027815260200180612be46027913960400191505060405180910390fd5b61179882611cb4565b670de0b6b3a7640000600182141561187c57806117b4846114ea565b10156117f15760405162461bcd60e51b815260040180806020018281038252602d815260200180612ad6602d913960400191505060405180910390fd5b6039805482900390556001600160a01b0383166000818152603a602052604090206001810180548490039055603b5460029091018054918402909103905530907f242901a30a9ba298090f9ee9acb78dc3f3bb98e91dd24b05e719218f131857de61186a84670de0b6b3a764000063ffffffff61278f16565b60408051918252519081900360200190a35b8160021415611958578061188f84611b5d565b10156118cc5760405162461bcd60e51b815260040180806020018281038252602d815260200180612ad6602d913960400191505060405180910390fd5b603e805482900390556001600160a01b0383166000818152603f6020526040908190206001810180548590039055905460029091018054918402909103905530907f242901a30a9ba298090f9ee9acb78dc3f3bb98e91dd24b05e719218f131857de61194684670de0b6b3a764000063ffffffff61278f16565b60408051918252519081900360200190a35b816003141561139a578061196b84611455565b10156119a85760405162461bcd60e51b815260040180806020018281038252602d815260200180612ad6602d913960400191505060405180910390fd5b6043805482900390556001600160a01b0383166000818152604460205260409020600181018054849003905560455460029091018054918402909103905530907f242901a30a9ba298090f9ee9acb78dc3f3bb98e91dd24b05e719218f131857de61138884670de0b6b3a764000063ffffffff61278f16565b602b5481565b602c5481565b33600090815260136020526040812054821115611a7b5760405162461bcd60e51b8152600401808060200182810382526042815260200180612b646042913960600191505060405180910390fd5b33600081815260136020908152604080832080548790039055600480548790039055805186815290519293927fe0deda1dd123aa6cdd7f4460830c05edf058ceb3c302f94e81a4fda7cfc42371929181900390910190a3506001919050565b6025546000906001600160a01b03163314611b2a576040805162461bcd60e51b81526020600482018190526024820152600080516020612b24833981519152604482015290519081900360640190fd5b50602795909555602893909355602991909155602a55602c55602d55600190565b602a5481565b60105481565b60115481565b6001600160a01b03166000908152603f602052604090206001015490565b603e5490565b600c5481565b60295481565b600f5481565b600a546001600160a01b031681565b60215481565b6025546000906001600160a01b03163314611bf8576040805162461bcd60e51b81526020600482018190526024820152600080516020612b24833981519152604482015290519081900360640190fd5b50603392909255603455603555600190565b6025546001600160a01b03163314611c57576040805162461bcd60e51b81526020600482018190526024820152600080516020612b24833981519152604482015290519081900360640190fd5b603680546001600160a01b0319166001600160a01b0392909216919091179055565b601460209081526000928352604080842090915290825290205481565b60225481565b60205481565b60275481565b60435490565b601e5481565b6000806000611cc284611dec565b919450925090508215611d28576001600160a01b0384166000818152603a602090815260408083206002018054600160401b89020190556013825291829020805487019055815186815291513092600080516020612b4483398151915292908290030190a35b8115611d87576001600160a01b0384166000818152603f602090815260408083206002018054600160401b88020190556013825291829020805486019055815185815291513092600080516020612b4483398151915292908290030190a35b8015611de6576001600160a01b03841660008181526044602090815260408083206002018054600160401b87020190556013825291829020805485019055815184815291513092600080516020612b4483398151915292908290030190a35b50505050565b6001600160a01b0381166000908152603a60205260408120600101548190819015611e44576001600160a01b0384166000908152603a602052604090206002810154600190910154603b54600160401b929102030492505b6001600160a01b0384166000908152603f602052604090206001015415611e98576001600160a01b0384166000908152603f60205260409081902060028101546001909101549154600160401b9202030491505b6001600160a01b03841660009081526044602052604090206001015415611eec576001600160a01b03841660009081526044602052604090206002810154600190910154604554600160401b929102030490505b9193909250565b611efc83611cb4565b602e80546001600160a01b031916331790556001600160a01b038316600090815260136020526040902054811115611f7b576040805162461bcd60e51b815260206004820152601f60248201527f4d757374206e6f742073656e64206d6f7265207468616e2062616c616e636500604482015290519081900360640190fd5b6001600160a01b0382166000908152601360205260409020548181011015611fdd576040805162461bcd60e51b815260206004820152601060248201526f42616c616e6365206f766572666c6f7760801b604482015290519081900360640190fd5b6001600160a01b03808416600090815260136020908152604080832080548690039055602e549093168252602f9052205460ff1661274357601e54421061274357612026612805565b601f819055602c5460009161203d91612710611686565b601f805482900390819055601082905560275491925061205f91612710611686565b600b55601f546028546120759190612710611686565b600c55601f5460295461208b9190612710611686565b600d55601f54602a546120a19190612710611686565b600e55601f54602b546120b79190612710611686565b600f55601f54602d546120cd9190612710611686565b60118190556120e390600263ffffffff61278f16565b6012819055600b546120fa9163ffffffff6128e416565b600b55601254600c546121129163ffffffff6128e416565b600c556011546023556000612125610b4c565b90506000612131611000565b9050600061213d610e6a565b90506000612149610c56565b60108054306000818152601360209081526040918290208054909401909355925483519081529251939450928392600080516020612b4483398151915292908290030190a3601054602080549091019055831561227557600954600e5460408051633b2065cf60e11b81526004810192909252516001600160a01b0390921691637640cb9e916024808201926020929091908290030181600087803b1580156121f157600080fd5b505af1158015612205573d6000803e3d6000fd5b505050506040513d602081101561221b57600080fd5b5050600e8054600980546001600160a01b03908116600090815260136020908152604091829020805490950190945591549354825190815291519316923092600080516020612b44833981519152928290030190a36122c5565b600e805430600081815260136020908152604091829020805490940190935592548351908152925190928392600080516020612b4483398151915292918290030190a3600e546020805490910190555b82156123a057600854600d5460408051633b2065cf60e11b81526004810192909252516001600160a01b0390921691637640cb9e916024808201926020929091908290030181600087803b15801561231c57600080fd5b505af1158015612330573d6000803e3d6000fd5b505050506040513d602081101561234657600080fd5b5050600d8054600880546001600160a01b03908116600090815260136020908152604091829020805490950190945591549354825190815291519316923092600080516020612b44833981519152928290030190a36123f0565b600d805430600081815260136020908152604091829020805490940190935592548351908152925190928392600080516020612b4483398151915292918290030190a3600d546020805490910190555b81156124cb57600754600c5460408051633b2065cf60e11b81526004810192909252516001600160a01b0390921691637640cb9e916024808201926020929091908290030181600087803b15801561244757600080fd5b505af115801561245b573d6000803e3d6000fd5b505050506040513d602081101561247157600080fd5b5050600c8054600780546001600160a01b03908116600090815260136020908152604091829020805490950190945591549354825190815291519316923092600080516020612b44833981519152928290030190a361251b565b600c805430600081815260136020908152604091829020805490940190935592548351908152925190928392600080516020612b4483398151915292918290030190a3600c546020805490910190555b80156125f657600654600b5460408051633b2065cf60e11b81526004810192909252516001600160a01b0390921691637640cb9e916024808201926020929091908290030181600087803b15801561257257600080fd5b505af1158015612586573d6000803e3d6000fd5b505050506040513d602081101561259c57600080fd5b5050600b8054600680546001600160a01b03908116600090815260136020908152604091829020805490950190945591549354825190815291519316923092600080516020612b44833981519152928290030190a3612646565b600b805430600081815260136020908152604091829020805490940190935592548351908152925190928392600080516020612b4483398151915292918290030190a3600b546020805490910190555b600f541561265b57612659600f54612926565b505b601b54601e805490910190819055601980546001019081905560185460408051918252602082019290925280820192909252517f80fb1b49fb696967f7276660614bc3eda9d5de84b0589b1ba3c8a3997831b9bd9181900360600190a1602380546001600160a01b038a16600081815260136020908152604091829020805490940190935592548351908152925190923092600080516020612b4483398151915292918290030190a36023546040805191825251339130917f92552527fa5ab3e91b9034146b3c83686e459ada0cd31509670b0743d301b4379181900360200190a350505050505b6001600160a01b03808316600081815260136020908152604091829020805486019055815185815291519293871692600080516020612b448339815191529281900390910190a3505050565b60006127d183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129d9565b9392505050565b60008080600019848609905083850292508281039150828110156127fd576001820391505b509250929050565b6000601d5442106128dd576018805460010190819055600a101561287257602054601781905561283c90600263ffffffff61278f16565b6020805491909103905560175461285a90600263ffffffff61278f16565b30600090815260136020526040902080549190910390555b60026017548161287e57fe5b046017819055601a54601b54601d80549190920201908190556018546040805191825260208201939093528083019190915290517f3bb7b347508b7c148ec2094ac60d2e3d8b7595421025643f08b45cb78b326b589181900360600190a15b5060175490565b60006127d183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612a7b565b600061293782603354612710611686565b60305560345461294b908390612710611686565b60315560355461295f908390612710611686565b603255603954603054600160401b028161297557fe5b603b80549290910490910190819055603855603e54603154600160401b028161299a57fe5b604080549290910490910190819055603d55604354603254600160401b02816129bf57fe5b604580549290910490910190819055604255506001919050565b60008183612a655760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612a2a578181015183820152602001612a12565b50505050905090810190601f168015612a575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581612a7157fe5b0495945050505050565b60008184841115612acd5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315612a2a578181015183820152602001612a12565b50505090039056fe596f752063757272656e746c7920646f206e6f74206861766520616e79204361726420496e6375626174696e674d757374206e6f742073656e64206d6f7265207468616e20616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef596f7520646f206e6f7420686176652074686520616d6f756e74206f6620746f6b656e7320796f752077616e6e61206275726e20696e20796f75722077616c6c6574417574686f72697a6174696f6e3a204f6e6c792074686520706f6f6c207468617420616c6c6f7773206275726e2063616e2063616c6c206f6e207468697341646d696e697374726174696f6e3a2063616c6c6572206973206e6f74207065726d6974746564a264697066735822122013ee32c079b01eae182da2139da2cd1e841e3445e50143c414a68a2ef9a9294764736f6c63430006040033

Deployed ByteCode Sourcemap

6280:25430:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;6280:25430:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;30336:120:0;;;:::i;:::-;;;;;;;;;;;;;;;;14719:22;;;:::i;7255:18::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7255:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30729:118;;;:::i;14557:50::-;;;:::i;23525:252::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;23525:252:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;15100:22;;;:::i;7810:23::-;;;:::i;7406:25::-;;;:::i;17939:411::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17939:411:0;-1:-1:-1;;;;;17939:411:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8721:22;;;:::i;7367:32::-;;;:::i;12003:172::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12003:172:0;-1:-1:-1;;;;;12003:172:0;;:::i;8881:36::-;;;:::i;8407:25::-;;;:::i;18359:410::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;18359:410:0;-1:-1:-1;;;;;18359:410:0;;:::i;30598:118::-;;;:::i;23819:316::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;23819:316:0;;;;;;;;;;;;;;;;;:::i;9159:28::-;;;:::i;:::-;;;;-1:-1:-1;;;;;9159:28:0;;;;;;;;;;;;;;12380:204;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12380:204:0;;:::i;30468:118::-;;;:::i;7720:23::-;;;:::i;7308:20::-;;;:::i;11832:159::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11832:159:0;;:::i;11601:219::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;11601:219:0;;;;;;;:::i;13457:26::-;;;:::i;12187:175::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;12187:175:0;-1:-1:-1;;;;;12187:175:0;;:::i;7553:23::-;;;:::i;15480:22::-;;;:::i;19648:1380::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;19648:1380:0;;;;;;;;:::i;:::-;;13406:26;;;:::i;7953:22::-;;;:::i;8750:::-;;;:::i;10612:313::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;;;;;;10612:313:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;17312:106::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17312:106:0;-1:-1:-1;;;;;17312:106:0;;:::i;8288:22::-;;;:::i;8349:25::-;;;:::i;8317:24::-;;;:::i;7643:25::-;;;:::i;7780:23::-;;;:::i;13776:210::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;13776:210:0;-1:-1:-1;;;;;13776:210:0;;:::i;8256:24::-;;;:::i;7336:::-;;;:::i;16654:88::-;;;:::i;8229:20::-;;;:::i;16751:106::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;16751:106:0;-1:-1:-1;;;;;16751:106:0;;:::i;17535:398::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17535:398:0;-1:-1:-1;;;;;17535:398:0;;:::i;7281:20::-;;;:::i;9100:40::-;;;:::i;7583:23::-;;;:::i;9231:50::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;9231:50:0;-1:-1:-1;;;;;9231:50:0;;:::i;10949:188::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;10949:188:0;-1:-1:-1;;;;;10949:188:0;;:::i;7613:23::-;;;:::i;8381:19::-;;;:::i;23324:164::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;23324:164:0;;;;;;;;:::i;30860:620::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30860:620:0;;;;;;;;;;;;:::i;13509:26::-;;;:::i;8470:24::-;;;:::i;21766:1404::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;21766:1404:0;;;;;;;;:::i;9006:38::-;;;:::i;9057:36::-;;;:::i;13005:369::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;13005:369:0;;:::i;12596:397::-;;;;;;15:3:-1;10;7:12;4:2;;;32:1;29;22:12;4:2;-1:-1;12596:397:0;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8965:34::-;;;:::i;7878:23::-;;;:::i;7908:26::-;;;:::i;17030:106::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;17030:106:0;-1:-1:-1;;;;;17030:106:0;;:::i;16933:88::-;;;:::i;7750:23::-;;;:::i;8924:34::-;;;:::i;7840:25::-;;;:::i;7681:26::-;;;:::i;8665:19::-;;;:::i;13998:262::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;13998:262:0;;;;;;;;;;;;:::i;14273:126::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;14273:126:0;-1:-1:-1;;;;;14273:126:0;;:::i;8072:70::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;;;;;8072:70:0;;;;;;;;;;:::i;8691:23::-;;;:::i;8501:41::-;;;:::i;8837:37::-;;;:::i;17215:88::-;;;:::i;8440:23::-;;;:::i;30336:120::-;30414:10;;30410:29;;;-1:-1:-1;;;30410:29:0;;;;30377:4;;-1:-1:-1;;;;;30414:10:0;;30410:27;;:29;;;;;;;;;;;;;;30414:10;30410:29;;;2:2:-1;;;;27:1;24;17:12;2:2;30410:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30410:29:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;30410:29:0;;-1:-1:-1;30336:120:0;:::o;14719:22::-;;;;:::o;7255:18::-;;;;;;;;;;;;;;;-1:-1:-1;;7255:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;30729:118::-;30807:8;;30803:27;;;-1:-1:-1;;;30803:27:0;;;;30770:4;;-1:-1:-1;;;;;30807:8:0;;30803:25;;:27;;;;;;;;;;;;;;30807:8;30803:27;;;2:2:-1;;;;27:1;24;17:12;14557:50:0;;;;:::o;23525:252::-;23596:12;23621:25;23635:10;23621:13;:25::i;:::-;23667:10;23657:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;23657:30:0;;;;;;;;;;;;:38;;;23711:36;;;;;;;23657:30;;23667:10;23711:36;;;;;;;;;;;-1:-1:-1;23765:4:0;23525:252;;;;:::o;15100:22::-;;;;:::o;7810:23::-;;;;:::o;7406:25::-;;;;:::o;17939:411::-;18006:26;18034:19;18059:22;18083;18107:20;18146:6;18157:18;18169:5;18157:11;:18::i;:::-;18143:32;;;;18204:14;:12;:14::i;:::-;18220:16;18230:5;18220:9;:16::i;:::-;-1:-1:-1;;;;;18241:18:0;;;;;;;;:11;:18;;;;;:28;;;;18271:31;;;;;18180:155;;18238:1;;-1:-1:-1;18241:28:0;-1:-1:-1;18271:31:0;-1:-1:-1;17939:411:0;-1:-1:-1;;17939:411:0:o;8721:22::-;;;;:::o;7367:32::-;;;;:::o;12003:172::-;11349:13;;12084:12;;-1:-1:-1;;;;;11349:13:0;11335:10;:27;11327:72;;;;;-1:-1:-1;;;11327:72:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11327:72:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12108:30:0::1;;::::0;;;:20:::1;:30;::::0;;;;:37;;-1:-1:-1;;12108:37:0::1;12141:4;12108:37:::0;;::::1;::::0;;;12141:4;12003:172::o;8881:36::-;;;;:::o;8407:25::-;;;;:::o;18359:410::-;18423:26;18451:19;18476:22;18500;18524:20;18563:6;18573:18;18585:5;18573:11;:18::i;:::-;18558:33;;;;18622:14;:12;:14::i;:::-;18638:16;18648:5;18638:9;:16::i;:::-;-1:-1:-1;;;;;18659:18:0;;;;;;;;:11;:18;;;;;:28;;;;18689:31;;;;;18597:157;;18656:1;;-1:-1:-1;18659:28:0;-1:-1:-1;18689:31:0;-1:-1:-1;18359:410:0;-1:-1:-1;;18359:410:0:o;30598:118::-;30676:8;;30672:27;;;-1:-1:-1;;;30672:27:0;;;;30639:4;;-1:-1:-1;;;;;30676:8:0;;30672:25;;:27;;;;;;;;;;;;;;30676:8;30672:27;;;2:2:-1;;;;27:1;24;17:12;23819:316:0;-1:-1:-1;;;;;23956:15:0;;23904:12;23956:15;;;:9;:15;;;;;;;;23972:10;23956:27;;;;;;;;23947:36;;;23939:82;;;;-1:-1:-1;;;23939:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24032:15:0;;;;;;:9;:15;;;;;;;;24048:10;24032:27;;;;;;;:36;;;;;;;24079:26;24042:4;24095:2;24063:5;24079:9;:26::i;:::-;-1:-1:-1;24123:4:0;23819:316;;;;;:::o;9159:28::-;;;-1:-1:-1;;;;;9159:28:0;;:::o;12380:204::-;11491:11;;12448:12;;-1:-1:-1;;;;;11491:11:0;11477:10;:25;11469:100;;;;-1:-1:-1;;;11469:100:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12472:11:::1;:22:::0;;;;::::1;::::0;;12519:11:::1;::::0;12509:45:::1;::::0;;;;;;;12472:11:::1;::::0;-1:-1:-1;;;;;12519:11:0::1;::::0;12509:45:::1;::::0;;;;;::::1;::::0;;::::1;-1:-1:-1::0;12572:4:0::1;12380:204:::0;;;:::o;30468:118::-;30546:8;;30542:27;;;-1:-1:-1;;;30542:27:0;;;;30509:4;;-1:-1:-1;;;;;30546:8:0;;30542:25;;:27;;;;;;;;;;;;;;30546:8;30542:27;;;2:2:-1;;;;27:1;24;17:12;7720:23:0;;;;:::o;7308:20::-;;;;:::o;11832:159::-;11349:13;;11902:12;;-1:-1:-1;;;;;11349:13:0;11335:10;:27;11327:72;;;;;-1:-1:-1;;;11327:72:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11327:72:0;;;;;;;;;;;;;;;-1:-1:-1;11926:13:0::1;:26:::0;11979:4:::1;::::0;11832:159::o;11601:219::-;11349:13;;11698:12;;-1:-1:-1;;;;;11349:13:0;11335:10;:27;11327:72;;;;;-1:-1:-1;;;11327:72:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11327:72:0;;;;;;;;;;;;;;;-1:-1:-1;11722:13:0::1;:30:::0;;;;11762:12:::1;:28:::0;-1:-1:-1;;11601:219:0:o;13457:26::-;;;;:::o;12187:175::-;11349:13;;12270:12;;-1:-1:-1;;;;;11349:13:0;11335:10;:27;11327:72;;;;;-1:-1:-1;;;11327:72:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11327:72:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12294:30:0::1;12327:5;12294:30:::0;;;:20:::1;:30;::::0;;;;:38;;-1:-1:-1;;12294:38:0::1;::::0;;-1:-1:-1;;12187:175:0:o;7553:23::-;;;-1:-1:-1;;;;;7553:23:0;;:::o;15480:22::-;;;;:::o;19648:1380::-;11201:10;;-1:-1:-1;;;;;11201:10:0;11187;:24;11179:76;;;;-1:-1:-1;;;11179:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19745:23:::1;19759:8;19745:13;:23::i;:::-;19812:19;19861:1;19849:13:::0;::::1;19846:1143;;;-1:-1:-1::0;;;;;19896:21:0;::::1;;::::0;;;:11;:21:::1;::::0;;;;19930:3:::1;19896:31;::::0;::::1;:37:::0;:5:::1;19942:28:::0;;;::::1;::::0;;-1:-1:-1;19979:28:0;::::1;:39:::0;;;::::1;::::0;;20090:26;;::::1;20035:34:::0;;::::1;:82:::0;;20080:36;;::::1;20035:82:::0;;::::1;::::0;;20158:4:::1;20137:60;20176:19;19942:28:::0;20188:6:::1;20176:11;:19::i;:::-;20137:60;::::0;;;;;;;;;;::::1;::::0;;::::1;19846:1143;;;20239:8;20251:1;20239:13;20236:753;;;-1:-1:-1::0;;;;;20286:21:0;::::1;;::::0;;;:11;:21:::1;::::0;;;;;;20320:3:::1;20286:31;::::0;::::1;:37:::0;:5:::1;20332:28:::0;;;::::1;::::0;;-1:-1:-1;20369:28:0;::::1;:39:::0;;;::::1;::::0;;20480:26;;::::1;20425:34:::0;;::::1;:82:::0;;20470:36;;::::1;20425:82:::0;;::::1;::::0;;20542:4:::1;20521:60;20560:19;20332:28:::0;20572:6:::1;20560:11;:19::i;20236:753::-;20623:8;20635:1;20623:13;20620:369;;;-1:-1:-1::0;;;;;20670:21:0;::::1;;::::0;;;:11;:21:::1;::::0;;;;20704:3:::1;20670:31;::::0;::::1;:37:::0;:5:::1;20716:28:::0;;;::::1;::::0;;-1:-1:-1;20753:28:0;::::1;:39:::0;;;::::1;::::0;;20864:26;;::::1;20809:34:::0;;::::1;:82:::0;;20854:36;;::::1;20809:82:::0;;::::1;::::0;;20926:4:::1;20905:60;20944:19;20716:28:::0;20956:6:::1;20944:11;:19::i;:::-;20905:60;::::0;;;;;;;;;;::::1;::::0;;::::1;20620:369;11266:1;19648:1380:::0;;:::o;13406:26::-;;;;:::o;7953:22::-;;;;:::o;8750:::-;;;;:::o;10612:313::-;11349:13;;10729:12;;-1:-1:-1;;;;;11349:13:0;11335:10;:27;11327:72;;;;;-1:-1:-1;;;11327:72:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11327:72:0;;;;;;;;;;;;;;;-1:-1:-1;10764:8:0::1;:16:::0;;-1:-1:-1;;;;;;10764:16:0;;::::1;-1:-1:-1::0;;;;;10764:16:0;;::::1;;::::0;;;10791:8:::1;:16:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;10818:8:::1;:16:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;10845:10:::1;:20:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;-1:-1:-1;;10612:313:0:o;17312:106::-;-1:-1:-1;;;;;17388:18:0;17367:7;17388:18;;;:11;:18;;;;;:11;:25;;;17312:106::o;8288:22::-;;;;:::o;8349:25::-;;;;:::o;8317:24::-;;;;:::o;7643:25::-;;;-1:-1:-1;;;;;7643:25:0;;:::o;7780:23::-;;;;:::o;13776:210::-;13839:7;13869:9;13880;13891;13904:18;13916:5;13904:11;:18::i;:::-;-1:-1:-1;;;;;13940:21:0;;;;;;:14;:21;;;;;;13965:3;;;;:5;13940:31;;-1:-1:-1;;;;13776:210:0;;;:::o;8256:24::-;;;;:::o;7336:::-;;;;:::o;16654:88::-;16720:5;:17;16654:88;:::o;8229:20::-;;;;:::o;16751:106::-;-1:-1:-1;;;;;16827:18:0;16806:7;16827:18;;;:11;:18;;;;;:11;:25;;;16751:106::o;17535:398::-;17599:26;17627:19;17651:22;17675;17699:20;17740:6;17753:18;17765:5;17753:11;:18::i;:::-;17739:32;;;;17795:14;:12;:14::i;:::-;17811:16;17821:5;17811:9;:16::i;:::-;-1:-1:-1;;;;;17832:18:0;;;;;;;;:11;:18;;;;;:28;;;;17862:31;;;;;17776:142;;17829:1;;-1:-1:-1;17832:28:0;-1:-1:-1;17862:31:0;-1:-1:-1;17535:398:0;-1:-1:-1;;17535:398:0:o;7281:20::-;;;;;;;;;;;;;;;-1:-1:-1;;7281:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9100:40;;;;:::o;7583:23::-;;;-1:-1:-1;;;;;7583:23:0;;:::o;9231:50::-;;;;;;;;;;;;;;;:::o;10949:188::-;11349:13;;11033:12;;-1:-1:-1;;;;;11349:13:0;11335:10;:27;11327:72;;;;;-1:-1:-1;;;11327:72:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11327:72:0;;;;;;;;;;;;;;;-1:-1:-1;11071:11:0::1;:26:::0;;-1:-1:-1;;;;;11071:26:0;::::1;-1:-1:-1::0;;;;;;11071:26:0;;::::1;;::::0;;;10949:188;;;:::o;7613:23::-;;;-1:-1:-1;;;;;7613:23:0;;:::o;8381:19::-;;;;:::o;23324:164::-;23391:12;23426:32;23436:10;23448:2;23452:5;23426:9;:32::i;:::-;-1:-1:-1;23476:4:0;23324:164;;;;:::o;30860:620::-;30922:4;30942:6;30950;30960:14;30969:1;30972;30960:7;:14::i;:::-;30941:33;;;;30999:1;30995;:5;30987:14;;;;31014:7;31038:1;31024:16;;;;;31035:1;31032;31024:16;31014:26;;31062:1;31057:2;:6;31053:18;;;31070:1;31065:6;;;;31053:18;31084:7;;;;;31104:9;31120:2;;;31116:6;;;31121:1;31116:6;31135:9;;;;;;;31162:4;31157:9;;;;;;;;;31199:4;31191;31190:5;;31189:14;;;;;;31206:1;31189:18;31184:24;;;;31179:29;;;;31249:1;:9;;;31280:5;;;31276:9;;31271:14;31307:5;;;31303:9;;31298:14;31334:5;;;31330:9;;31325:14;31361:5;;;31357:9;;31352:14;31388:5;;;31384:9;;31379:14;31415:5;;;31411:9;;31406:14;31442:5;;;31438:9;;31433:14;;;31467:5;;;;;30860:620;-1:-1:-1;;;;;30860:620:0:o;13509:26::-;;;;:::o;8470:24::-;;;;:::o;21766:1404::-;11201:10;;-1:-1:-1;;;;;11201:10:0;11187;:24;11179:76;;;;-1:-1:-1;;;11179:76:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21855:23:::1;21869:8;21855:13;:23::i;:::-;21904:19;21971:1;21959:13:::0;::::1;21956:390;;;22024:7;22001:19;22011:8;22001:9;:19::i;:::-;:30;;21993:88;;;;-1:-1:-1::0;;;21993:88:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22090:5;:28:::0;;;;::::1;::::0;;-1:-1:-1;;;;;22124:21:0;::::1;22090:17;22124:21:::0;;;:11;:21:::1;::::0;;;;-1:-1:-1;22124:28:0;::::1;:39:::0;;;;::::1;::::0;;22224:26;;::::1;22169:34:::0;;::::1;:82:::0;;22214:36;;::::1;22169:82:::0;;::::1;::::0;;22300:4:::1;::::0;22267:62:::1;22308:19;22111:7:::0;22320:6:::1;22308:19;:11;:19;:::i;:::-;22267:62;::::0;;;;;;;;;;::::1;::::0;;::::1;21956:390;22363:8;22375:1;22363:13;22360:390;;;22428:7;22405:19;22415:8;22405:9;:19::i;:::-;:30;;22397:88;;;;-1:-1:-1::0;;;22397:88:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22494:5;:28:::0;;;;::::1;::::0;;-1:-1:-1;;;;;22528:21:0;::::1;22494:17;22528:21:::0;;;:11;:21:::1;::::0;;;;;;-1:-1:-1;22528:28:0;::::1;:39:::0;;;;::::1;::::0;;22628:26;;::::1;22573:34:::0;;::::1;:82:::0;;22618:36;;::::1;22573:82:::0;;::::1;::::0;;22704:4:::1;::::0;22671:62:::1;22712:19;22515:7:::0;22724:6:::1;22712:19;:11;:19;:::i;:::-;22671:62;::::0;;;;;;;;;;::::1;::::0;;::::1;22360:390;22767:8;22779:1;22767:13;22764:390;;;22832:7;22809:19;22819:8;22809:9;:19::i;:::-;:30;;22801:88;;;;-1:-1:-1::0;;;22801:88:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22898:5;:28:::0;;;;::::1;::::0;;-1:-1:-1;;;;;22932:21:0;::::1;22898:17;22932:21:::0;;;:11;:21:::1;::::0;;;;-1:-1:-1;22932:28:0;::::1;:39:::0;;;;::::1;::::0;;23032:26;;::::1;22977:34:::0;;::::1;:82:::0;;23022:36;;::::1;22977:82:::0;;::::1;::::0;;23108:4:::1;::::0;23075:62:::1;23116:19;22919:7:::0;23128:6:::1;23116:19;:11;:19;:::i;9006:38::-:0;;;;:::o;9057:36::-;;;;:::o;13005:369::-;13105:10;13049:12;13090:26;;;:14;:26;;;;;;:37;-1:-1:-1;13090:37:0;13082:116;;;;-1:-1:-1;;;13082:116:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13223:10;13208:26;;;;:14;:26;;;;;;;;:37;;;;;;;13255:11;:22;;;;;;;13292:44;;;;;;;13208:26;;13223:10;13292:44;;;;;;;;;;;-1:-1:-1;13353:4:0;13005:369;;;:::o;12596:397::-;11349:13;;12728:12;;-1:-1:-1;;;;;11349:13:0;11335:10;:27;11327:72;;;;;-1:-1:-1;;;11327:72:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11327:72:0;;;;;;;;;;;;;;;-1:-1:-1;12761:15:0::1;:21:::0;;;;12792:15:::1;:21:::0;;;;12823:15:::1;:21:::0;;;;12854:15:::1;:21:::0;12885:15:::1;:31:::0;12926:20:::1;:29:::0;12981:4:::1;::::0;12596:397::o;8965:34::-;;;;:::o;7878:23::-;;;;:::o;7908:26::-;;;;:::o;17030:106::-;-1:-1:-1;;;;;17106:18:0;17085:7;17106:18;;;:11;:18;;;;;:11;:25;;;17030:106::o;16933:88::-;16999:5;:17;16933:88;:::o;7750:23::-;;;;:::o;8924:34::-;;;;:::o;7840:25::-;;;;:::o;7681:26::-;;;-1:-1:-1;;;;;7681:26:0;;:::o;8665:19::-;;;;:::o;13998:262::-;11349:13;;14106:12;;-1:-1:-1;;;;;11349:13:0;11335:10;:27;11327:72;;;;;-1:-1:-1;;;11327:72:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11327:72:0;;;;;;;;;;;;;;;-1:-1:-1;14141:10:0::1;:19:::0;;;;14171:10:::1;:19:::0;14201:10:::1;:19:::0;14248:4:::1;::::0;13998:262::o;14273:126::-;11349:13;;-1:-1:-1;;;;;11349:13:0;11335:10;:27;11327:72;;;;;-1:-1:-1;;;11327:72:0;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11327:72:0;;;;;;;;;;;;;;;14367:10:::1;:24:::0;;-1:-1:-1;;;;;;14367:24:0::1;-1:-1:-1::0;;;;;14367:24:0;;;::::1;::::0;;;::::1;::::0;;14273:126::o;8072:70::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;8691:23::-;;;;:::o;8501:41::-;;;;:::o;8837:37::-;;;;:::o;17215:88::-;17281:5;:17;17215:88;:::o;8440:23::-;;;;:::o;21044:713::-;21108:9;21119;21130;21143:21;21155:8;21143:11;:21::i;:::-;21107:57;;-1:-1:-1;21107:57:0;-1:-1:-1;21107:57:0;-1:-1:-1;21172:5:0;;21169:184;;-1:-1:-1;;;;;21195:21:0;;;;;;:11;:21;;;;;;;;:34;;:62;;-1:-1:-1;;;21240:16:0;;21195:62;;;21266:14;:24;;;;;;:29;;;;;;21309:38;;;;;;;21326:4;;-1:-1:-1;;;;;;;;;;;21309:38:0;;;;;;;;21169:184;21364:5;;21361:186;;-1:-1:-1;;;;;21387:21:0;;;;;;:11;:21;;;;;;;;:34;;:62;;-1:-1:-1;;;21432:16:0;;21387:62;;;21460:14;:24;;;;;;:29;;;;;;21503:38;;;;;;;21520:4;;-1:-1:-1;;;;;;;;;;;21503:38:0;;;;;;;;21361:186;21558:5;;21555:186;;-1:-1:-1;;;;;21581:21:0;;;;;;:11;:21;;;;;;;;:34;;:62;;-1:-1:-1;;;21626:16:0;;21581:62;;;21654:14;:24;;;;;;:29;;;;;;21697:38;;;;;;;21714:4;;-1:-1:-1;;;;;;;;;;;21697:38:0;;;;;;;;21555:186;21044:713;;;;:::o;15796:777::-;-1:-1:-1;;;;;15914:21:0;;15858:9;15914:21;;;:11;:21;;;;;:11;:28;;15858:9;;;;15914:32;15911:200;;-1:-1:-1;;;;;16052:21:0;;;;;;:11;:21;;;;;:34;;;;:11;16020:28;;;;15991:26;;-1:-1:-1;;;14545:5:0;15991:57;;15984:102;15976:126;15971:131;;15911:200;-1:-1:-1;;;;;16126:21:0;;16157:1;16126:21;;;:11;:21;;;;;:11;:28;;:32;16123:200;;-1:-1:-1;;;;;16264:21:0;;;;;;:11;:21;;;;;;;:34;;;;:11;16232:28;;;;16203:26;;-1:-1:-1;;;14545:5:0;16203:57;16196:102;16188:126;16183:131;;16123:200;-1:-1:-1;;;;;16338:21:0;;16369:1;16338:21;;;:11;:21;;;;;:11;:28;;:32;16335:200;;-1:-1:-1;;;;;16476:21:0;;;;;;:11;:21;;;;;:34;;;;:11;16444:28;;;;16415:26;;-1:-1:-1;;;14545:5:0;16415:57;;16408:102;16400:126;16395:131;;16335:200;15796:777;;;;;:::o;24215:5292::-;24304:20;24318:5;24304:13;:20::i;:::-;24335:13;:26;;-1:-1:-1;;;;;;24335:26:0;24351:10;24335:26;;;-1:-1:-1;;;;;24463:21:0;;24335:13;24463:21;;;:14;:21;;;;;;:31;-1:-1:-1;24463:31:0;24455:75;;;;;-1:-1:-1;;;24455:75:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24581:19:0;;;;;;:14;:19;;;;;;24549:28;;;:51;;24541:80;;;;;-1:-1:-1;;;24541:80:0;;;;;;;;;;;;-1:-1:-1;;;24541:80:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;24642:21:0;;;;;;;:14;:21;;;;;;;;:31;;;;;;;24728:13;;;;;24707:35;;:20;:35;;;;;;24704:4705;;24794:11;;24787:3;:18;24784:4590;;24858:16;:14;:16::i;:::-;24843:12;:31;;;24974:15;;24929:21;;24953:44;;24991:5;24953:6;:44::i;:::-;25031:12;;;:31;;;25016:46;;;;25081:11;:30;;;25183:15;;24929:68;;-1:-1:-1;25162:44:0;;25200:5;25162:6;:44::i;:::-;25148:11;:58;25246:12;;25260:15;;25239:44;;25246:12;25277:5;25239:6;:44::i;:::-;25225:11;:58;25323:12;;25337:15;;25316:44;;25323:12;25354:5;25316:6;:44::i;:::-;25302:11;:58;25400:12;;25414:15;;25393:44;;25400:12;25431:5;25393:6;:44::i;:::-;25379:11;:58;25479:12;;25493:17;;25472:46;;25479:12;25512:5;25472:6;:46::i;:::-;25456:13;:62;25615:12;;25629:20;;25608:49;;25615:12;25651:5;25608:6;:49::i;:::-;25591:14;:66;;;25689:21;;25708:1;25689:21;:18;:21;:::i;:::-;25676:10;:34;;;25761:11;;:27;;;:15;:27;:::i;:::-;25747:11;:41;25837:10;;25821:11;;:27;;;:15;:27;:::i;:::-;25807:11;:41;25898:14;;25885:10;:27;-1:-1:-1;25970:11:0;:9;:11::i;:::-;25949:32;;26000:18;26021:11;:9;:11::i;:::-;26000:32;;26051:18;26072:11;:9;:11::i;:::-;26051:32;;26102:18;26123:11;:9;:11::i;:::-;26204;;;26194:4;26171:29;;;;:14;:29;;;;;;;;;:44;;;;;;;;26278:11;;26239:51;;;;;;;26102:32;;-1:-1:-1;26194:4:0;;;-1:-1:-1;;;;;;;;;;;26239:51:0;;;;;;;;26316:11;;26309:3;:18;;;;;;;26385:17;;26382:576;;26448:10;;26472:11;;26444:40;;;-1:-1:-1;;;26444:40:0;;;;;;;;;;-1:-1:-1;;;;;26448:10:0;;;;26444:27;;:40;;;;;;;;;;;;;;;26448:10;;26444:40;;;2:2:-1;;;;27:1;24;17:12;2:2;26444:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;26444:40:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;26533:11:0;;;26518:10;;;-1:-1:-1;;;;;26518:10:0;;;26503:26;;;;:14;26444:40;26503:26;;;;;;;;:41;;;;;;;;26592:10;;26604:11;;26568:48;;;;;;;26592:10;;;26585:4;;-1:-1:-1;;;;;;;;;;;26568:48:0;;;;;;;26382:576;;;26771:11;;;26761:4;26738:29;;;;:14;:29;;;;;;;;;:44;;;;;;;;26847:11;;26808:51;;;;;;;26761:4;;;;-1:-1:-1;;;;;;;;;;;26808:51:0;;;;;;;;26905:11;;26898:3;:18;;;;;;;26382:576;26997:17;;26994:551;;27060:8;;27082:11;;27056:38;;;-1:-1:-1;;;27056:38:0;;;;;;;;;;-1:-1:-1;;;;;27060:8:0;;;;27056:25;;:38;;;;;;;;;;;;;;;27060:8;;27056:38;;;2:2:-1;;;;27:1;24;17:12;2:2;27056:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27056:38:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;27141:11:0;;;27128:8;;;-1:-1:-1;;;;;27128:8:0;;;27113:24;;;;:14;27056:38;27113:24;;;;;;;;:39;;;;;;;;27200:8;;27210:11;;27176:46;;;;;;;27200:8;;;27193:4;;-1:-1:-1;;;;;;;;;;;27176:46:0;;;;;;;26994:551;;;27377:11;;;27367:4;27344:29;;;;:14;:29;;;;;;;;;:44;;;;;;;;27453:11;;27414:51;;;;;;;27367:4;;;;-1:-1:-1;;;;;;;;;;;27414:51:0;;;;;;;;27492:11;;27485:3;:18;;;;;;;26994:551;27584:17;;27581:533;;27647:8;;27669:11;;27643:38;;;-1:-1:-1;;;27643:38:0;;;;;;;;;;-1:-1:-1;;;;;27647:8:0;;;;27643:25;;:38;;;;;;;;;;;;;;;27647:8;;27643:38;;;2:2:-1;;;;27:1;24;17:12;2:2;27643:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27643:38:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;27728:11:0;;;27715:8;;;-1:-1:-1;;;;;27715:8:0;;;27700:24;;;;:14;27643:38;27700:24;;;;;;;;:39;;;;;;;;27787:8;;27797:11;;27763:46;;;;;;;27787:8;;;27780:4;;-1:-1:-1;;;;;;;;;;;27763:46:0;;;;;;;27581:533;;;27946:11;;;27936:4;27913:29;;;;:14;:29;;;;;;;;;:44;;;;;;;;28022:11;;27983:51;;;;;;;27936:4;;;;-1:-1:-1;;;;;;;;;;;27983:51:0;;;;;;;;28061:11;;28054:3;:18;;;;;;;27581:533;28153:17;;28150:514;;28217:8;;28239:11;;28213:38;;;-1:-1:-1;;;28213:38:0;;;;;;;;;;-1:-1:-1;;;;;28217:8:0;;;;28213:25;;:38;;;;;;;;;;;;;;;28217:8;;28213:38;;;2:2:-1;;;;27:1;24;17:12;2:2;28213:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28213:38:0;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;;28299:11:0;;;28286:8;;;-1:-1:-1;;;;;28286:8:0;;;28271:24;;;;:14;28213:38;28271:24;;;;;;;;:39;;;;;;;;28359:8;;28369:11;;28335:46;;;;;;;28359:8;;;28352:4;;-1:-1:-1;;;;;;;;;;;28335:46:0;;;;;;;28150:514;;;28496:11;;;28486:4;28463:29;;;;:14;:29;;;;;;;;;:44;;;;;;;;28572:11;;28533:51;;;;;;;28486:4;;;;-1:-1:-1;;;;;;;;;;;28533:51:0;;;;;;;;28611:11;;28604:3;:18;;;;;;;28150:514;28703:13;;:17;28700:115;;28764:29;28779:13;;28764:14;:29::i;:::-;;28700:115;28884:13;;28869:11;:28;;;;;;;;;28916:10;:15;;-1:-1:-1;28916:15:0;;;;;28963:12;;28956:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29128:10;;;-1:-1:-1;;;;;29103:21:0;;;;;;:14;:21;;;;;;;;;:35;;;;;;;;29251:10;;29220:42;;;;;;;29103:21;;29237:4;;-1:-1:-1;;;;;;;;;;;29220:42:0;;;;;;;;29329:10;;29286:54;;;;;;;29317:10;;29310:4;;29286:54;;;;;;;;;24784:4590;;;;;;-1:-1:-1;;;;;29427:19:0;;;;;;;:14;:19;;;;;;;;;:29;;;;;;29471:28;;;;;;;29427:19;;29471:28;;;-1:-1:-1;;;;;;;;;;;29471:28:0;;;;;;;;;24215:5292;;;:::o;2589:132::-;2647:7;2674:39;2678:1;2681;2674:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2667:46;2589:132;-1:-1:-1;;;2589:132:0:o;31493:203::-;31549:6;;;-1:-1:-1;;31599:1:0;31596;31588:24;31578:34;;31633:1;31629;:5;31625:9;;31656:1;31651:2;:6;31647:10;;31679:1;31674:2;:6;31670:18;;;31687:1;31682:6;;;;31670:18;31493:203;;;;;;:::o;29684:638::-;29727:4;29762:13;;29755:3;:20;29752:507;;29805:12;:17;;29821:1;29805:17;;;;;29869:2;-1:-1:-1;29851:220:0;;;29915:3;;29904:8;:14;;;29943:15;;29956:1;29943:15;:12;:15;:::i;:::-;29936:3;:22;;;;;;;;30009:8;;:15;;30022:1;30009:15;:12;:15;:::i;:::-;29999:4;29976:29;;;;:14;:29;;;;;:48;;;;;;;;29851:220;30105:1;30096:8;;:10;;;;;;30085:8;:21;;;30155:12;;30139:13;;30121;:47;;30139:28;;;;30121:47;;;;;30197:12;;30188:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29752:507;-1:-1:-1;30286:8:0;;29684:638;:::o;752:136::-;810:7;837:43;841:1;844;837:43;;;;;;;;;;;;;;;;;:3;:43::i;18775:861::-;18829:4;18877:34;18884:7;18893:10;;18905:5;18877:6;:34::i;:::-;18863:11;:48;18957:10;;18941:34;;18948:7;;18969:5;18941:6;:34::i;:::-;18927:11;:48;19021:10;;19005:34;;19012:7;;19033:5;19005:6;:34::i;:::-;18991:11;:48;19160:5;:17;19131:11;;-1:-1:-1;;;19131:26:0;19160:17;19131:46;;;;19101:26;:76;;19131:46;;;;19101:76;;;;;;;19186:10;:39;19341:5;:17;19312:11;;-1:-1:-1;;;19312:26:0;19341:17;19312:46;;;;19282:26;:76;;19312:46;;;;19282:76;;;;;;;19367:10;:39;19523:5;:17;19494:11;;-1:-1:-1;;;19494:26:0;19523:17;19494:46;;;;19464:26;:76;;19494:46;;;;19464:76;;;;;;;19549:10;:39;-1:-1:-1;;;18775:861:0;-1:-1:-1;18775:861:0:o;3217:278::-;3303:7;3338:12;3331:5;3323:28;;;;-1:-1:-1;;;3323:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3323:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3362:9;3378:1;3374;:5;;;;;;;3217:278;-1:-1:-1;;;;;3217:278:0:o;1191:192::-;1277:7;1313:12;1305:6;;;;1297:29;;;;-1:-1:-1;;;1297:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1297:29:0;-1:-1:-1;;;1349:5:0;;;1191:192::o

Swarm Source

ipfs://13ee32c079b01eae182da2139da2cd1e841e3445e50143c414a68a2ef9a92947
Loading