Contract 0x43bce59375ef8293abffd5a9b1cc7f3b22de80e3

Txn Hash Method
Block
From
To
Value [Txn Fee]
0xb387b31a28fce910768421522030b22a14b71e7834ea491c9dc9f7591229ed5e0x60606040113267222021-12-30 14:23:18177 days 18 hrs ago0x1adc94c6e7393e16ff4157e8c9acfb7b6bde5369 IN  Create: _0xEthereumToken0 HT0.00548101 2.5
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
_0xEthereumToken

Compiler Version
v0.4.19+commit.c4cbbb05

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at hecoinfo.com on 2021-12-30
*/

pragma solidity ^0.4.18;


// ----------------------------------------------------------------------------

// '0xEthereum Token' contract

// Mineable Token

//

// Symbol      : 0xETH2

// Name        : 0xEthereum Token

// Decimals    : 18

//


// ----------------------------------------------------------------------------



// ----------------------------------------------------------------------------

// Safe maths

// ----------------------------------------------------------------------------

library SafeMath {

    function add(uint a, uint b) internal pure returns (uint c) {

        c = a + b;

        require(c >= a);

    }

    function sub(uint a, uint b) internal pure returns (uint c) {

        require(b <= a);

        c = a - b;

    }

    function mul(uint a, uint b) internal pure returns (uint c) {

        c = a * b;

        require(a == 0 || c / a == b);

    }

    function div(uint a, uint b) internal pure returns (uint c) {

        require(b > 0);

        c = a / b;

    }

}



library ExtendedMath {


    function limitLessThan(uint a, uint b) internal pure returns (uint c) {

        if(a > b) return b;

        return a;

    }
}

contract ERC20Interface {

    function totalSupply() public constant returns (uint);

    function balanceOf(address tokenOwner) public constant returns (uint balance);

    function allowance(address tokenOwner, address spender) public constant returns (uint remaining);

    function transfer(address to, uint tokens) public returns (bool success);

    function approve(address spender, uint tokens) public returns (bool success);

    function transferFrom(address from, address to, uint tokens) public returns (bool success);


    event Transfer(address indexed from, address indexed to, uint tokens);

    event Approval(address indexed tokenOwner, address indexed spender, uint tokens);

}

contract ApproveAndCallFallBack {

    function receiveApproval(address from, uint256 tokens, address token, bytes data) public;

}

contract Owned {

    address public owner;

    address public newOwner;


    event OwnershipTransferred(address indexed _from, address indexed _to);


    function Owned() public {

        owner = msg.sender;

    }


    modifier onlyOwner {

        require(msg.sender == owner);

        _;

    }


    function transferOwnership(address _newOwner) public onlyOwner {

        newOwner = _newOwner;

    }

    function acceptOwnership() public {

        require(msg.sender == newOwner);

        OwnershipTransferred(owner, newOwner);

        owner = newOwner;

        newOwner = address(0);

    }

}

contract _0xEthereumToken is ERC20Interface, Owned {

    using SafeMath for uint;
    using ExtendedMath for uint;


    string public symbol;

    string public  name;

    uint8 public decimals;

    uint public _totalSupply;



     uint public latestDifficultyPeriodStarted;



    uint public epochCount;


    uint public _BLOCKS_PER_READJUSTMENT = 1024;


    uint public  _MINIMUM_TARGET = 2**16;


    uint public  _MAXIMUM_TARGET = 2**234;


    uint public miningTarget;

    bytes32 public challengeNumber;   



    uint public rewardEra;
    uint public maxSupplyForEra;


    address public lastRewardTo;
    uint public lastRewardAmount;
    uint public lastRewardEthBlockNumber;

    bool locked = false;

    mapping(bytes32 => bytes32) solutionForChallenge;

    uint public tokensMinted;

    mapping(address => uint) balances;


    mapping(address => mapping(address => uint)) allowed;


    event Mint(address indexed from, uint reward_amount, uint epochCount, bytes32 newChallengeNumber);

    function _0xEthereumToken() public onlyOwner{



        symbol = "0xETH2";

        name = "0xEthereum Token";

        decimals = 18;

        _totalSupply = 18000000 * 10**uint(decimals);

        if(locked) revert();
        locked = true;

        tokensMinted = 0;

        rewardEra = 0;
        maxSupplyForEra = _totalSupply.div(2);

        miningTarget = _MAXIMUM_TARGET;

        latestDifficultyPeriodStarted = block.number;

        _startNewMiningEpoch();

    }




        function mint(uint256 nonce, bytes32 challenge_digest) public returns (bool success) {


            bytes32 digest =  keccak256(challengeNumber, msg.sender, nonce );

            if (digest != challenge_digest) revert();

            if(uint256(digest) > miningTarget) revert();


             bytes32 solution = solutionForChallenge[challengeNumber];
             solutionForChallenge[challengeNumber] = digest;
             if(solution != 0x0) revert(); 


            uint reward_amount = getMiningReward();

            balances[msg.sender] = balances[msg.sender].add(reward_amount);

            tokensMinted = tokensMinted.add(reward_amount);


            assert(tokensMinted <= maxSupplyForEra);

            lastRewardTo = msg.sender;
            lastRewardAmount = reward_amount;
            lastRewardEthBlockNumber = block.number;


             _startNewMiningEpoch();

              Mint(msg.sender, reward_amount, epochCount, challengeNumber );

           return true;

        }


    function _startNewMiningEpoch() internal {

      if( tokensMinted.add(getMiningReward()) > maxSupplyForEra && rewardEra < 39)
      {
        rewardEra = rewardEra + 1;
      }

      maxSupplyForEra = _totalSupply - _totalSupply.div( 2**(rewardEra + 1));

      epochCount = epochCount.add(1);

      if(epochCount % _BLOCKS_PER_READJUSTMENT == 0)
      {
        _reAdjustDifficulty();
      }

      challengeNumber = block.blockhash(block.number - 1);






    }


    function _reAdjustDifficulty() internal {


        uint ethBlocksSinceLastDifficultyPeriod = block.number - latestDifficultyPeriodStarted;

        uint epochsMined = _BLOCKS_PER_READJUSTMENT; 

        uint targetEthBlocksPerDiffPeriod = epochsMined * 60; 
        if( ethBlocksSinceLastDifficultyPeriod < targetEthBlocksPerDiffPeriod )
        {
          uint excess_block_pct = (targetEthBlocksPerDiffPeriod.mul(100)).div( ethBlocksSinceLastDifficultyPeriod );

          uint excess_block_pct_extra = excess_block_pct.sub(100).limitLessThan(1000);

          miningTarget = miningTarget.sub(miningTarget.div(2000).mul(excess_block_pct_extra));   
          uint shortage_block_pct = (ethBlocksSinceLastDifficultyPeriod.mul(100)).div( targetEthBlocksPerDiffPeriod );

          uint shortage_block_pct_extra = shortage_block_pct.sub(100).limitLessThan(1000); 

          miningTarget = miningTarget.add(miningTarget.div(2000).mul(shortage_block_pct_extra)); 
        }



        latestDifficultyPeriodStarted = block.number;

        if(miningTarget < _MINIMUM_TARGET) 
        {
          miningTarget = _MINIMUM_TARGET;
        }

        if(miningTarget > _MAXIMUM_TARGET) 
        {
          miningTarget = _MAXIMUM_TARGET;
        }
    }


    function getChallengeNumber() public constant returns (bytes32) {
        return challengeNumber;
    }

     function getMiningDifficulty() public constant returns (uint) {
        return _MAXIMUM_TARGET.div(miningTarget);
    }

    function getMiningTarget() public constant returns (uint) {
       return miningTarget;
   }



    function getMiningReward() public constant returns (uint) {


         return (50 * 10**uint(decimals) ).div( 2**rewardEra ) ;

    }

    function getMintDigest(uint256 nonce, bytes32 challenge_digest, bytes32 challenge_number) public view returns (bytes32 digesttest) {

        bytes32 digest = keccak256(challenge_number,msg.sender,nonce);

        return digest;

      }

      function checkMintSolution(uint256 nonce, bytes32 challenge_digest, bytes32 challenge_number, uint testTarget) public view returns (bool success) {

          bytes32 digest = keccak256(challenge_number,msg.sender,nonce);

          if(uint256(digest) > testTarget) revert();

          return (digest == challenge_digest);

        }

    function totalSupply() public constant returns (uint) {

        return _totalSupply  - balances[address(0)];

    }

    function balanceOf(address tokenOwner) public constant returns (uint balance) {

        return balances[tokenOwner];

    }

    function transfer(address to, uint tokens) public returns (bool success) {

        balances[msg.sender] = balances[msg.sender].sub(tokens);

        balances[to] = balances[to].add(tokens);

        Transfer(msg.sender, to, tokens);

        return true;

    }

    function approve(address spender, uint tokens) public returns (bool success) {

        allowed[msg.sender][spender] = tokens;

        Approval(msg.sender, spender, tokens);

        return true;

    }

    function transferFrom(address from, address to, uint tokens) public returns (bool success) {

        balances[from] = balances[from].sub(tokens);

        allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens);

        balances[to] = balances[to].add(tokens);

        Transfer(from, to, tokens);

        return true;

    }

    function allowance(address tokenOwner, address spender) public constant returns (uint remaining) {

        return allowed[tokenOwner][spender];

    }

    function approveAndCall(address spender, uint tokens, bytes data) public returns (bool success) {

        allowed[msg.sender][spender] = tokens;

        Approval(msg.sender, spender, tokens);

        ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, this, data);

        return true;

    }

    function () public payable {

        revert();

    }

    function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) {

        return ERC20Interface(tokenAddress).transfer(owner, tokens); //do not transfer others ERC20/HRC20

    }

    // ------------------------------------------------------------------------
    // Decentralized and secure 
    // Staking 32 unit to become a full validator
    // NO LOCKING PERIOD
    // ------------------------------------------------------------------------

}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lastRewardEthBlockNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMiningDifficulty","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"nonce","type":"uint256"},{"name":"challenge_digest","type":"bytes32"}],"name":"mint","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rewardEra","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMiningTarget","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getMiningReward","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getChallengeNumber","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxSupplyForEra","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokensMinted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastRewardTo","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"nonce","type":"uint256"},{"name":"challenge_digest","type":"bytes32"},{"name":"challenge_number","type":"bytes32"},{"name":"testTarget","type":"uint256"}],"name":"checkMintSolution","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"epochCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_MAXIMUM_TARGET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"miningTarget","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"challengeNumber","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"nonce","type":"uint256"},{"name":"challenge_digest","type":"bytes32"},{"name":"challenge_number","type":"bytes32"}],"name":"getMintDigest","outputs":[{"name":"digesttest","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_BLOCKS_PER_READJUSTMENT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastRewardAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"latestDifficultyPeriodStarted","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"_MINIMUM_TARGET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":false,"name":"reward_amount","type":"uint256"},{"indexed":false,"name":"epochCount","type":"uint256"},{"indexed":false,"name":"newChallengeNumber","type":"bytes32"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]

6060604052610400600855620100006009557d040000000000000000000000000000000000000000000000000000000000600a556000601260006101000a81548160ff02191690831515021790555034156200005a57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515620000f657600080fd5b6040805190810160405280600681526020017f30784554483200000000000000000000000000000000000000000000000000008152506002908051906020019062000143929190620006f3565b506040805190810160405280601081526020017f3078457468657265756d20546f6b656e000000000000000000000000000000008152506003908051906020019062000191929190620006f3565b506012600460006101000a81548160ff021916908360ff160217905550600460009054906101000a900460ff1660ff16600a0a630112a88002600581905550601260009054906101000a900460ff1615620001eb57600080fd5b6001601260006101000a81548160ff02191690831515021790555060006014819055506000600d819055506200023c6002600554620002766401000000000262001d69179091906401000000009004565b600e81905550600a54600b8190555043600681905550620002706200029c6401000000000262001da9176401000000009004565b620007a2565b600080821115156200028757600080fd5b81838115156200029357fe5b04905092915050565b600e54620002e1620002c1620003b16401000000000262001290176401000000009004565b601454620003f86401000000000262001d8d179091906401000000009004565b118015620002f157506027600d54105b1562000304576001600d5401600d819055505b620003316001600d540160020a600554620002766401000000000262001d69179091906401000000009004565b60055403600e81905550620003616001600754620003f86401000000000262001d8d179091906401000000009004565b60078190555060006008546007548115156200037957fe5b061415620003a0576200039f620004156401000000000262001e7a176401000000009004565b5b6001430340600c8160001916905550565b6000620003f3600d5460020a600460009054906101000a900460ff1660ff16600a0a603202620002766401000000000262001d69179091906401000000009004565b905090565b600081830190508281101515156200040f57600080fd5b92915050565b6000806000806000806000600654430396506008549550603c86029450848710156200064657620004818762000464606488620006846401000000000262002006179091906401000000009004565b620002766401000000000262001d69179091906401000000009004565b9350620004cb6103e8620004ae606487620006b86401000000000262001e5e179091906401000000009004565b620006d56401000000000262002037179091906401000000009004565b92506200053a6200051a84620004fd6107d0600b54620002766401000000000262001d69179091906401000000009004565b620006846401000000000262002006179091906401000000009004565b600b54620006b86401000000000262001e5e179091906401000000009004565b600b8190555062000586856200056960648a620006846401000000000262002006179091906401000000009004565b620002766401000000000262001d69179091906401000000009004565b9150620005d06103e8620005b3606485620006b86401000000000262001e5e179091906401000000009004565b620006d56401000000000262002037179091906401000000009004565b90506200063f6200061f82620006026107d0600b54620002766401000000000262001d69179091906401000000009004565b620006846401000000000262002006179091906401000000009004565b600b54620003f86401000000000262001d8d179091906401000000009004565b600b819055505b43600681905550600954600b5410156200066457600954600b819055505b600a54600b5411156200067b57600a54600b819055505b50505050505050565b600081830290506000831480620006a65750818382811515620006a357fe5b04145b1515620006b257600080fd5b92915050565b6000828211151515620006ca57600080fd5b818303905092915050565b600081831115620006e957819050620006ed565b8290505b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200073657805160ff191683800117855562000767565b8280016001018555821562000767579182015b828111156200076657825182559160200191906001019062000749565b5b5090506200077691906200077a565b5090565b6200079f91905b808211156200079b57600081600090555060010162000781565b5090565b90565b61207f80620007b26000396000f3006060604052600436106101c2576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde03146101c7578063095ea7b314610255578063163aa00d146102af57806317da485f146102d85780631801fbe51461030157806318160ddd1461034957806323b872dd146103725780632d38bf7a146103eb578063313ce5671461041457806332e99708146104435780633eaaf86b1461046c578063490203a7146104955780634ef37628146104be5780634fa972e1146104ef5780636de9f32b146105185780636fd396d61461054157806370a082311461059657806379ba5097146105e357806381269a56146105f8578063829965cc1461065657806387a2a9d61461067f5780638a769d35146106a85780638ae0368b146106d15780638da5cb5b1461070257806395d89b411461075757806397566aa0146107e5578063a9059cbb1461083e578063b5ade81b14610898578063bafedcaa146108c1578063cae9ca51146108ea578063cb9ae70714610987578063d4ee1d90146109b0578063dc39d06d14610a05578063dc6e9cf914610a5f578063dd62ed3e14610a88578063f2fde38b14610af4575b600080fd5b34156101d257600080fd5b6101da610b2d565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561021a5780820151818401526020810190506101ff565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561026057600080fd5b610295600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610bcb565b604051808215151515815260200191505060405180910390f35b34156102ba57600080fd5b6102c2610cbd565b6040518082815260200191505060405180910390f35b34156102e357600080fd5b6102eb610cc3565b6040518082815260200191505060405180910390f35b341561030c57600080fd5b61032f600480803590602001909190803560001916906020019091905050610ce1565b604051808215151515815260200191505060405180910390f35b341561035457600080fd5b61035c610f71565b6040518082815260200191505060405180910390f35b341561037d57600080fd5b6103d1600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050610fbc565b604051808215151515815260200191505060405180910390f35b34156103f657600080fd5b6103fe611267565b6040518082815260200191505060405180910390f35b341561041f57600080fd5b61042761126d565b604051808260ff1660ff16815260200191505060405180910390f35b341561044e57600080fd5b610456611280565b6040518082815260200191505060405180910390f35b341561047757600080fd5b61047f61128a565b6040518082815260200191505060405180910390f35b34156104a057600080fd5b6104a8611290565b6040518082815260200191505060405180910390f35b34156104c957600080fd5b6104d16112c7565b60405180826000191660001916815260200191505060405180910390f35b34156104fa57600080fd5b6105026112d1565b6040518082815260200191505060405180910390f35b341561052357600080fd5b61052b6112d7565b6040518082815260200191505060405180910390f35b341561054c57600080fd5b6105546112dd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156105a157600080fd5b6105cd600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611303565b6040518082815260200191505060405180910390f35b34156105ee57600080fd5b6105f661134c565b005b341561060357600080fd5b61063c600480803590602001909190803560001916906020019091908035600019169060200190919080359060200190919050506114eb565b604051808215151515815260200191505060405180910390f35b341561066157600080fd5b610669611580565b6040518082815260200191505060405180910390f35b341561068a57600080fd5b610692611586565b6040518082815260200191505060405180910390f35b34156106b357600080fd5b6106bb61158c565b6040518082815260200191505060405180910390f35b34156106dc57600080fd5b6106e4611592565b60405180826000191660001916815260200191505060405180910390f35b341561070d57600080fd5b610715611598565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561076257600080fd5b61076a6115bd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107aa57808201518184015260208101905061078f565b50505050905090810190601f1680156107d75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156107f057600080fd5b6108206004808035906020019091908035600019169060200190919080356000191690602001909190505061165b565b60405180826000191660001916815260200191505060405180910390f35b341561084957600080fd5b61087e600480803573ffffffffffffffffffffffffffffffffffffffff169060200190919080359060200190919050506116d4565b604051808215151515815260200191505060405180910390f35b34156108a357600080fd5b6108ab61186f565b6040518082815260200191505060405180910390f35b34156108cc57600080fd5b6108d4611875565b6040518082815260200191505060405180910390f35b34156108f557600080fd5b61096d600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061187b565b604051808215151515815260200191505060405180910390f35b341561099257600080fd5b61099a611ac5565b6040518082815260200191505060405180910390f35b34156109bb57600080fd5b6109c3611acb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3415610a1057600080fd5b610a45600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611af1565b604051808215151515815260200191505060405180910390f35b3415610a6a57600080fd5b610a72611c3d565b6040518082815260200191505060405180910390f35b3415610a9357600080fd5b610ade600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611c43565b6040518082815260200191505060405180910390f35b3415610aff57600080fd5b610b2b600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611cca565b005b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bc35780601f10610b9857610100808354040283529160200191610bc3565b820191906000526020600020905b815481529060010190602001808311610ba657829003601f168201915b505050505081565b600081601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60115481565b6000610cdc600b54600a54611d6990919063ffffffff16565b905090565b600080600080600c5433876040518084600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140182815260200193505050506040518091039020925084600019168360001916141515610d6a57600080fd5b600b5483600190041115610d7d57600080fd5b60136000600c54600019166000191681526020019081526020016000205491508260136000600c5460001916600019168152602001908152602001600020816000191690555060006001028260001916141515610dd957600080fd5b610de1611290565b9050610e3581601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8d90919063ffffffff16565b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e8d81601454611d8d90919063ffffffff16565b601481905550600e5460145411151515610ea357fe5b33600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060108190555043601181905550610efa611da9565b3373ffffffffffffffffffffffffffffffffffffffff167fcf6fbb9dcea7d07263ab4f5c3a92f53af33dffc421d9d121e1c74b307e68189d82600754600c54604051808481526020018381526020018260001916600019168152602001935050505060405180910390a26001935050505092915050565b6000601560008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055403905090565b600061101082601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e5e90919063ffffffff16565b601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110e282601660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e5e90919063ffffffff16565b601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111b482601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8d90919063ffffffff16565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600d5481565b600460009054906101000a900460ff1681565b6000600b54905090565b60055481565b60006112c2600d5460020a600460009054906101000a900460ff1660ff16600a0a603202611d6990919063ffffffff16565b905090565b6000600c54905090565b600e5481565b60145481565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156113a857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000808333876040518084600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001935050505060405180910390209050828160019004111561156a57600080fd5b8460001916816000191614915050949350505050565b60075481565b600a5481565b600b5481565b600c5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116535780601f1061162857610100808354040283529160200191611653565b820191906000526020600020905b81548152906001019060200180831161163657829003601f168201915b505050505081565b6000808233866040518084600019166000191681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c01000000000000000000000000028152601401828152602001935050505060405180910390209050809150509392505050565b600061172882601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e5e90919063ffffffff16565b601560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506117bd82601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8d90919063ffffffff16565b601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b60085481565b60105481565b600082601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611a58578082015181840152602081019050611a3d565b50505050905090810190601f168015611a855780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1515611aa657600080fd5b6102c65a03f11515611ab757600080fd5b505050600190509392505050565b60065481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b4e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1515611c1a57600080fd5b6102c65a03f11515611c2b57600080fd5b50505060405180519050905092915050565b60095481565b6000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d2557600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008082111515611d7957600080fd5b8183811515611d8457fe5b04905092915050565b60008183019050828110151515611da357600080fd5b92915050565b600e54611dc8611db7611290565b601454611d8d90919063ffffffff16565b118015611dd757506027600d54105b15611de9576001600d5401600d819055505b611e066001600d540160020a600554611d6990919063ffffffff16565b60055403600e81905550611e266001600754611d8d90919063ffffffff16565b6007819055506000600854600754811515611e3d57fe5b061415611e4d57611e4c611e7a565b5b6001430340600c8160001916905550565b6000828211151515611e6f57600080fd5b818303905092915050565b6000806000806000806000600654430396506008549550603c8602945084871015611fca57611ec587611eb760648861200690919063ffffffff16565b611d6990919063ffffffff16565b9350611eef6103e8611ee1606487611e5e90919063ffffffff16565b61203790919063ffffffff16565b9250611f2e611f1d84611f0f6107d0600b54611d6990919063ffffffff16565b61200690919063ffffffff16565b600b54611e5e90919063ffffffff16565b600b81905550611f5a85611f4c60648a61200690919063ffffffff16565b611d6990919063ffffffff16565b9150611f846103e8611f76606485611e5e90919063ffffffff16565b61203790919063ffffffff16565b9050611fc3611fb282611fa46107d0600b54611d6990919063ffffffff16565b61200690919063ffffffff16565b600b54611d8d90919063ffffffff16565b600b819055505b43600681905550600954600b541015611fe757600954600b819055505b600a54600b541115611ffd57600a54600b819055505b50505050505050565b600081830290506000831480612026575081838281151561202357fe5b04145b151561203157600080fd5b92915050565b6000818311156120495781905061204d565b8290505b929150505600a165627a7a72305820c9b8c2081fd19b021a88a8b99a7cf5f4d3ddb8f75c45fc3ee624938bce9fc8520029

Deployed ByteCode Sourcemap

2787:7720:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9976:8;;;2944:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8866:211:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3490:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7338:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4387:1031;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8322:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9085:350;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3355:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2972;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7467:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3002:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7573:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7224:105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3383:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3620:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3421:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8450:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2577:201;;;;;;;;;;;;;;7972:342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3094:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3228:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3276:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3309:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2150:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2915;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7719:243:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8586:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3127:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3455:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9606:322;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3040:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2179:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10002:225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3181:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9443:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2463:106;;;;;;;;;;;;;;;;;;;;;;;;;;;;2944:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8866:211::-;8929:12;8987:6;8956:7;:19;8964:10;8956:19;;;;;;;;;;;;;;;:28;8976:7;8956:28;;;;;;;;;;;;;;;:37;;;;9027:7;9006:37;;9015:10;9006:37;;;9036:6;9006:37;;;;;;;;;;;;;;;;;;9063:4;9056:11;;8866:211;;;;:::o;3490:36::-;;;;:::o;7338:121::-;7394:4;7418:33;7438:12;;7418:15;;:19;;:33;;;;:::i;:::-;7411:40;;7338:121;:::o;4387:1031::-;4458:12;4491:14;4692:16;4874:18;4519:15;;4536:10;4548:5;4509:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4491:64;;4586:16;4576:26;;;:6;:26;;;;;4572:40;;;4604:8;;;4572:40;4650:12;;4640:6;4632:15;;;:30;4629:43;;;4664:8;;;4629:43;4711:20;:37;4732:15;;4711:37;;;;;;;;;;;;;;;;;;4692:56;;4804:6;4764:20;:37;4785:15;;4764:37;;;;;;;;;;;;;;;;;:46;;;;;;;4841:3;4829:15;;:8;:15;;;;;4826:28;;;4846:8;;;4826:28;4895:17;:15;:17::i;:::-;4874:38;;4952:39;4977:13;4952:8;:20;4961:10;4952:20;;;;;;;;;;;;;;;;:24;;:39;;;;:::i;:::-;4929:8;:20;4938:10;4929:20;;;;;;;;;;;;;;;:62;;;;5023:31;5040:13;5023:12;;:16;;:31;;;;:::i;:::-;5008:12;:46;;;;5096:15;;5080:12;;:31;;5073:39;;;;;;5144:10;5129:12;;:25;;;;;;;;;;;;;;;;;;5188:13;5169:16;:32;;;;5243:12;5216:24;:39;;;;5275:22;:20;:22::i;:::-;5321:10;5316:61;;;5333:13;5348:10;;5360:15;;5316:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5400:4;5393:11;;4387:1031;;;;;;;:::o;8322:120::-;8370:4;8412:8;:20;8429:1;8412:20;;;;;;;;;;;;;;;;8396:12;;:36;8389:43;;8322:120;:::o;9085:350::-;9162:12;9206:26;9225:6;9206:8;:14;9215:4;9206:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;9189:8;:14;9198:4;9189:14;;;;;;;;;;;;;;;:43;;;;9273:37;9303:6;9273:7;:13;9281:4;9273:13;;;;;;;;;;;;;;;:25;9287:10;9273:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;9245:7;:13;9253:4;9245:13;;;;;;;;;;;;;;;:25;9259:10;9245:25;;;;;;;;;;;;;;;:65;;;;9338:24;9355:6;9338:8;:12;9347:2;9338:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;9323:8;:12;9332:2;9323:12;;;;;;;;;;;;;;;:39;;;;9390:2;9375:26;;9384:4;9375:26;;;9394:6;9375:26;;;;;;;;;;;;;;;;;;9421:4;9414:11;;9085:350;;;;;:::o;3355:21::-;;;;:::o;2972:::-;;;;;;;;;;;;;:::o;7467:94::-;7519:4;7542:12;;7535:19;;7467:94;:::o;3002:24::-;;;;:::o;7573:138::-;7625:4;7654:46;7689:9;;7686:1;:12;7669:8;;;;;;;;;;;7664:14;;7660:2;:18;7655:2;:23;7654:30;;:46;;;;:::i;:::-;7647:53;;7573:138;:::o;7224:105::-;7279:7;7306:15;;7299:22;;7224:105;:::o;3383:27::-;;;;:::o;3620:24::-;;;;:::o;3421:27::-;;;;;;;;;;;;;:::o;8450:128::-;8514:12;8548:8;:20;8557:10;8548:20;;;;;;;;;;;;;;;;8541:27;;8450:128;;;:::o;2577:201::-;2646:8;;;;;;;;;;;2632:22;;:10;:22;;;2624:31;;;;;;;;2696:8;;;;;;;;;;;2668:37;;2689:5;;;;;;;;;;;2668:37;;;;;;;;;;;;2726:8;;;;;;;;;;;2718:5;;:16;;;;;;;;;;;;;;;;;;2766:1;2747:8;;:21;;;;;;;;;;;;;;;;;;2577:201::o;7972:342::-;8104:12;8133:14;8160:16;8177:10;8188:5;8150:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8133:61;;8230:10;8220:6;8212:15;;;:28;8209:41;;;8242:8;;;8209:41;8283:16;8273:26;;;:6;:26;;;;8265:35;;7972:342;;;;;;;:::o;3094:22::-;;;;:::o;3228:37::-;;;;:::o;3276:24::-;;;;:::o;3309:30::-;;;;:::o;2150:20::-;;;;;;;;;;;;;:::o;2915:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7719:243::-;7830:18;7863:14;7890:16;7907:10;7918:5;7880:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7863:61;;7944:6;7937:13;;7719:243;;;;;;:::o;8586:272::-;8645:12;8695:32;8720:6;8695:8;:20;8704:10;8695:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8672:8;:20;8681:10;8672:20;;;;;;;;;;;;;;;:55;;;;8755:24;8772:6;8755:8;:12;8764:2;8755:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;8740:8;:12;8749:2;8740:12;;;;;;;;;;;;;;;:39;;;;8813:2;8792:32;;8801:10;8792:32;;;8817:6;8792:32;;;;;;;;;;;;;;;;;;8844:4;8837:11;;8586:272;;;;:::o;3127:43::-;;;;:::o;3455:28::-;;;;:::o;9606:322::-;9688:12;9746:6;9715:7;:19;9723:10;9715:19;;;;;;;;;;;;;;;:28;9735:7;9715:28;;;;;;;;;;;;;;;:37;;;;9786:7;9765:37;;9774:10;9765:37;;;9795:6;9765:37;;;;;;;;;;;;;;;;;;9838:7;9815:47;;;9863:10;9875:6;9883:4;9889;9815:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:2;8:100;;;99:1;94:3;90;84:5;80:1;75:3;71;64:6;52:2;49:1;45:3;40:15;;8:100;;;12:14;3:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9914:4:0;9907:11;;9606:322;;;;;:::o;3040:41::-;;;;:::o;2179:23::-;;;;;;;;;;;;;:::o;10002:225::-;10094:12;2423:5;;;;;;;;;;;2409:19;;:10;:19;;;2401:28;;;;;;;;10143:12;10128:37;;;10166:5;;;;;;;;;;;10173:6;10128:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10121:59;;10002:225;;;;:::o;3181:36::-;;;;:::o;9443:155::-;9524:14;9560:7;:19;9568:10;9560:19;;;;;;;;;;;;;;;:28;9580:7;9560:28;;;;;;;;;;;;;;;;9553:35;;9443:155;;;;:::o;2463:106::-;2423:5;;;;;;;;;;;2409:19;;:10;:19;;;2401:28;;;;;;;;2550:9;2539:8;;:20;;;;;;;;;;;;;;;;;;2463:106;:::o;963:119::-;1015:6;1048:1;1044;:5;1036:14;;;;;;;;1071:1;1067;:5;;;;;;;;1063:9;;963:119;;;;:::o;565:120::-;617:6;646:1;642;:5;638:9;;673:1;668;:6;;660:15;;;;;;;;565:120;;;;:::o;5428:491::-;5522:15;;5484:35;5501:17;:15;:17::i;:::-;5484:12;;:16;;:35;;;;:::i;:::-;:53;:71;;;;;5553:2;5541:9;;:14;5484:71;5480:130;;;5599:1;5587:9;;:13;5575:9;:25;;;;5480:130;5653:37;5687:1;5675:9;;:13;5671:1;:18;5653:12;;:16;;:37;;;;:::i;:::-;5638:12;;:52;5620:15;:70;;;;5714:17;5729:1;5714:10;;:14;;:17;;;;:::i;:::-;5701:10;:30;;;;5786:1;5758:24;;5745:10;;:37;;;;;;;;:42;5742:96;;;5807:21;:19;:21::i;:::-;5742:96;5897:1;5882:12;:16;5866:33;5848:15;:51;;;;;;;5428:491::o;693:120::-;745:6;779:1;774;:6;;766:15;;;;;;;;802:1;798;:5;794:9;;693:120;;;;:::o;5929:1285::-;5984:39;6083:16;6140:33;6298:21;6418:27;6607:23;6729:29;6041;;6026:12;:44;5984:86;;6102:24;;6083:43;;6190:2;6176:11;:16;6140:52;;6245:28;6208:34;:65;6204:718;;;6322:81;6367:34;6323:37;6356:3;6323:28;:32;;:37;;;;:::i;:::-;6322:43;;:81;;;;:::i;:::-;6298:105;;6448:45;6488:4;6448:25;6469:3;6448:16;:20;;:25;;;;:::i;:::-;:39;;:45;;;;:::i;:::-;6418:75;;6523:68;6540:50;6567:22;6540;6557:4;6540:12;;:16;;:22;;;;:::i;:::-;:26;;:50;;;;:::i;:::-;6523:12;;:16;;:68;;;;:::i;:::-;6508:12;:83;;;;6633:81;6684:28;6634:43;6673:3;6634:34;:38;;:43;;;;:::i;:::-;6633:49;;:81;;;;:::i;:::-;6607:107;;6761:47;6803:4;6761:27;6784:3;6761:18;:22;;:27;;;;:::i;:::-;:41;;:47;;;;:::i;:::-;6729:79;;6839:70;6856:52;6883:24;6856:22;6873:4;6856:12;;:16;;:22;;;;:::i;:::-;:26;;:52;;;;:::i;:::-;6839:12;;:16;;:70;;;;:::i;:::-;6824:12;:85;;;;6204:718;6970:12;6938:29;:44;;;;7013:15;;6998:12;;:30;6995:100;;;7068:15;;7053:12;:30;;;;6995:100;7125:15;;7110:12;;:30;7107:100;;;7180:15;;7165:12;:30;;;;7107:100;5929:1285;;;;;;;:::o;821:134::-;873:6;902:1;898;:5;894:9;;929:1;924;:6;:20;;;;943:1;938;934;:5;;;;;;;;:10;924:20;916:29;;;;;;;;821:134;;;;:::o;1127:132::-;1189:6;1217:1;1213;:5;1210:18;;;1227:1;1220:8;;;;1210:18;1248:1;1241:8;;1127:132;;;;;:::o

Swarm Source

bzzr://c9b8c2081fd19b021a88a8b99a7cf5f4d3ddb8f75c45fc3ee624938bce9fc852
Block Transaction Gas Used Reward
Age Block Fee Address Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading