ETH Price: $2,035.62 (-5.84%)

Contract

0x193bff7A19082Cd7e056ea3e22Ee0E747b5B6f80
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw85742692019-09-18 15:41:102381 days ago1568821270IN
Cryptslot.io: Slot Machine
0 ETH0.0006042620
Spin85655562019-09-17 7:11:132382 days ago1568704273IN
Cryptslot.io: Slot Machine
0.01464 ETH0.001399223
Spin85655082019-09-17 6:58:572382 days ago1568703537IN
Cryptslot.io: Slot Machine
0.01516 ETH0.0013748923
Spin85654942019-09-17 6:54:332382 days ago1568703273IN
Cryptslot.io: Slot Machine
0.01567 ETH0.001374523
Spin85654502019-09-17 6:42:352382 days ago1568702555IN
Cryptslot.io: Slot Machine
0.01624 ETH0.0013722923
Spin85654212019-09-17 6:37:072382 days ago1568702227IN
Cryptslot.io: Slot Machine
0.01624 ETH0.0013755123
Spin85653922019-09-17 6:28:542382 days ago1568701734IN
Cryptslot.io: Slot Machine
0.0174 ETH0.0014214623
Spin85653422019-09-17 6:18:552382 days ago1568701135IN
Cryptslot.io: Slot Machine
0.0179 ETH0.001374523
Spin85653282019-09-17 6:16:122382 days ago1568700972IN
Cryptslot.io: Slot Machine
0.0186 ETH0.0013999423
Spin85653172019-09-17 6:13:342382 days ago1568700814IN
Cryptslot.io: Slot Machine
0.0193 ETH0.001374523
Spin85652692019-09-17 6:00:342382 days ago1568700034IN
Cryptslot.io: Slot Machine
0.0207 ETH0.0014507723
Spin85652252019-09-17 5:50:562382 days ago1568699456IN
Cryptslot.io: Slot Machine
0.0222 ETH0.0014507723
Spin85650932019-09-17 5:22:202382 days ago1568697740IN
Cryptslot.io: Slot Machine
0.0327 ETH0.0013921623
Spin85650312019-09-17 5:08:592382 days ago1568696939IN
Cryptslot.io: Slot Machine
0.0338 ETH0.0013722923
Spin85650212019-09-17 5:06:222382 days ago1568696782IN
Cryptslot.io: Slot Machine
0.035 ETH0.0013714623
Spin85649462019-09-17 4:49:342382 days ago1568695774IN
Cryptslot.io: Slot Machine
0.035 ETH0.0014507723
Spin85649352019-09-17 4:47:562382 days ago1568695676IN
Cryptslot.io: Slot Machine
0.035 ETH0.0014507723
Spin85649092019-09-17 4:42:102382 days ago1568695330IN
Cryptslot.io: Slot Machine
0.04 ETH0.0013737623
Spin85649022019-09-17 4:40:452382 days ago1568695245IN
Cryptslot.io: Slot Machine
0.04 ETH0.0013748923
Spin85648792019-09-17 4:36:312382 days ago1568694991IN
Cryptslot.io: Slot Machine
0.04 ETH0.0013736523
Spin85648292019-09-17 4:25:552382 days ago1568694355IN
Cryptslot.io: Slot Machine
0.043 ETH0.001399223
Spin85648112019-09-17 4:21:292382 days ago1568694089IN
Cryptslot.io: Slot Machine
0.045 ETH0.0014790823
Spin85647862019-09-17 4:15:492382 days ago1568693749IN
Cryptslot.io: Slot Machine
0.05 ETH0.0014790823
Spin85647532019-09-17 4:09:032382 days ago1568693343IN
Cryptslot.io: Slot Machine
0.05 ETH0.001399223
Spin85645512019-09-17 3:24:232382 days ago1568690663IN
Cryptslot.io: Slot Machine
0.05 ETH0.0011822223
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-85742692019-09-18 15:41:102381 days ago1568821270
Cryptslot.io: Slot Machine
0.83488 ETH
-85655562019-09-17 7:11:132382 days ago1568704273
Cryptslot.io: Slot Machine
0.04392 ETH
-85655082019-09-17 6:58:572382 days ago1568703537
Cryptslot.io: Slot Machine
0.04548 ETH
-85654942019-09-17 6:54:332382 days ago1568703273
Cryptslot.io: Slot Machine
0.04701 ETH
-85654502019-09-17 6:42:352382 days ago1568702555
Cryptslot.io: Slot Machine
0.04872 ETH
-85654212019-09-17 6:37:072382 days ago1568702227
Cryptslot.io: Slot Machine
0.01624 ETH
-85653922019-09-17 6:28:542382 days ago1568701734
Cryptslot.io: Slot Machine
0.087 ETH
-85653422019-09-17 6:18:552382 days ago1568701135
Cryptslot.io: Slot Machine
0.0537 ETH
-85653282019-09-17 6:16:122382 days ago1568700972
Cryptslot.io: Slot Machine
0.0558 ETH
-85653172019-09-17 6:13:342382 days ago1568700814
Cryptslot.io: Slot Machine
0.0579 ETH
-85652692019-09-17 6:00:342382 days ago1568700034
Cryptslot.io: Slot Machine
0.1035 ETH
-85652252019-09-17 5:50:562382 days ago1568699456
Cryptslot.io: Slot Machine
0.111 ETH
-85650932019-09-17 5:22:202382 days ago1568697740
Cryptslot.io: Slot Machine
0.654 ETH
-85650312019-09-17 5:08:592382 days ago1568696939
Cryptslot.io: Slot Machine
0.1014 ETH
-85650212019-09-17 5:06:222382 days ago1568696782
Cryptslot.io: Slot Machine
0.105 ETH
-85649462019-09-17 4:49:342382 days ago1568695774
Cryptslot.io: Slot Machine
0.175 ETH
-85649352019-09-17 4:47:562382 days ago1568695676
Cryptslot.io: Slot Machine
0.175 ETH
-85649092019-09-17 4:42:102382 days ago1568695330
Cryptslot.io: Slot Machine
0.12 ETH
-85649022019-09-17 4:40:452382 days ago1568695245
Cryptslot.io: Slot Machine
0.12 ETH
-85648792019-09-17 4:36:312382 days ago1568694991
Cryptslot.io: Slot Machine
0.04 ETH
-85648292019-09-17 4:25:552382 days ago1568694355
Cryptslot.io: Slot Machine
0.129 ETH
-85648112019-09-17 4:21:292382 days ago1568694089
Cryptslot.io: Slot Machine
0.225 ETH
-85647862019-09-17 4:15:492382 days ago1568693749
Cryptslot.io: Slot Machine
0.25 ETH
-85647532019-09-17 4:09:032382 days ago1568693343
Cryptslot.io: Slot Machine
0.15 ETH
-85644832019-09-17 3:08:452382 days ago1568689725
Cryptslot.io: Slot Machine
0.12 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
SlotMachineSpinner

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2019-09-12
*/

/**
 *Submitted for verification at Etherscan.io on 2019-09-12
*/

pragma solidity 0.4.24;

// File: openzeppelin-solidity/contracts/ownership/Ownable.sol

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address private _owner;

  event OwnershipTransferred(
    address indexed previousOwner,
    address indexed newOwner
  );

  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  constructor() internal {
    _owner = msg.sender;
    emit OwnershipTransferred(address(0), _owner);
  }

  /**
   * @return the address of the owner.
   */
  function owner() public view returns(address) {
    return _owner;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(isOwner());
    _;
  }

  /**
   * @return true if `msg.sender` is the owner of the contract.
   */
  function isOwner() public view returns(bool) {
    return msg.sender == _owner;
  }

  /**
   * @dev Allows the current owner to relinquish control of the contract.
   * @notice Renouncing to ownership will leave the contract without an owner.
   * It will not be possible to call the functions with the `onlyOwner`
   * modifier anymore.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipTransferred(_owner, address(0));
    _owner = address(0);
  }

  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    _transferOwnership(newOwner);
  }

  /**
   * @dev Transfers control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function _transferOwnership(address newOwner) internal {
    require(newOwner != address(0));
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }
}

library SafeMath {
    /**
    * @dev Multiplies two unsigned integers, reverts on 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-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
    * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
    * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
    * @dev Adds two unsigned integers, reverts on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}


contract SlotMachine is Ownable {
    event LogDeposit(address indexed depositor, uint256 value);
    
    function withdraw(uint amount) external onlyOwner {
        require(amount != 0, "Withdraw amount can't be zero");
        require(address(this).balance >= amount, "Withdraw amount can't be more than contract balance.");

        msg.sender.transfer(amount);
    }

    // Fallback function
    function () external payable {
        emit LogDeposit(msg.sender, msg.value);
    }
}

contract SlotMachineSpinner is SlotMachine {
    using SafeMath for uint256;

    address private webAddress = 0x72cc1C4dE56D1cB8c1c35161798Ca289EA150741;
    uint public minimumWager = 0.001 ether;
    uint public maximumWager = 0.1 ether;
    uint8 public maximumMultiplier = 60;

    uint[6] private firstSlotProbabilities = [uint(385), 1538, 4231, 6154, 8077, 10000];
    uint[6] private secondSlotProbabilities = [uint(400), 800, 2800, 5200, 7600, 10000];
    uint[6] private thirdSlotProbabilities = [uint(400), 800, 2800, 5200, 7600, 10000];

    event LogSpinResult(
        address indexed spinner, 
        uint256 wager, 
        bool isWin, 
        string firstSymbol, 
        string secondSymbol, 
        string thirdSymbol, 
        uint8 multiplier, 
        uint256 rewardAmount
    );

    modifier mustSignWithECDSA(bytes32 hash, uint8 _v, bytes32 _r, bytes32 _s) {
        require(ecrecover(hash, _v, _r, _s) == webAddress, "public key & private key mismatch");
        _;
    }

    // External function
    function spin(bytes32 hash, uint8 _v, bytes32 _r, bytes32 _s)
        external
        payable
        mustSignWithECDSA(hash, _v, _r, _s)
    {
        // Conditions
        require(msg.value >= minimumWager, "wager must be greater than or equal minimumWager.");
        require(msg.value <= maximumWager, "wager must be lower than or equal maximumWager.");
        require(
            address(this).balance >= msg.value * maximumMultiplier, 
            "contract balance must greater than wager * maximumMultiplier."
        );
        require(msg.sender == tx.origin, 'only EOA can call this contract');

        
        //Interaction
        string memory firstSymbol;
        string memory secondSymbol;
        string memory thirdSymbol;
        uint rewardAmount = 0;
        uint8 multiplier = 0;
        uint8 cherryCount = 0;
        bool isWin = false;

        (firstSymbol, secondSymbol, thirdSymbol) = _findThreeSymbols(_s);
        
        if (_isWin(firstSymbol, secondSymbol, thirdSymbol)) {
            // Normal win
            isWin = true;
            (rewardAmount, multiplier) = _calculateRewardAmount(msg.value, firstSymbol);
            _sendReward(rewardAmount);
        } else {
            cherryCount = _countCherry(firstSymbol, secondSymbol, thirdSymbol);
            if (cherryCount > 0) {
                // Cherry win
                isWin = true;
                (rewardAmount, multiplier) = _calculateRewardAmountForCherry(msg.value, cherryCount);
                _sendCherryReward(rewardAmount);
            }
        }

        emit LogSpinResult(msg.sender, msg.value, isWin, firstSymbol, secondSymbol, thirdSymbol, multiplier, rewardAmount);
    }

    function getContractBalance() external view returns (uint) {
        return address(this).balance;
    }

    // Private function
    function _calculateRewardAmount(uint256 wager, string symbol) private pure returns (uint256, uint8) {
        uint8 multiplier = _findMultiplier(symbol);
        uint256 rewardAmount = wager.mul(multiplier);

        return (rewardAmount, multiplier);
    }

    function _calculateRewardAmountForCherry(uint256 wager, uint8 cherryCount) private pure returns (uint256, uint8) {
        uint8 multiplier = _findCherryMultiplier(cherryCount);
        uint256 rewardAmount = wager.mul(multiplier);

        return (rewardAmount, multiplier);
    }

    function _sendReward(uint256 rewardAmount) private {
        require(address(this).balance >= rewardAmount, "Contract not have enough balance to payout. [Normal]");

        msg.sender.transfer(rewardAmount);
    }

    function _sendCherryReward(uint256 rewardAmount) private {
        require(address(this).balance >= rewardAmount, "Contract not have enough balance to payout. [Cherry]");

        msg.sender.transfer(rewardAmount);
    }

    function _generateRandomNumber(bytes32 signature) private pure returns (uint, uint, uint) {
        uint modulus = 10001;
        uint firstRandomNumber = uint(signature) % modulus;
        uint secondRandomNumber = (uint(signature) / 10000) % modulus;
        uint thirdRandomNumber = (uint(signature) / 1000000) % modulus;

        return (firstRandomNumber, secondRandomNumber, thirdRandomNumber);
    }

    function _findSymbolInSlot(uint randomNumber, uint[6] probabilities) private pure returns (string) {
        if (randomNumber <= probabilities[0]) {
            return "bar";
        }

        if (randomNumber <= probabilities[1]) {
            return "seven";
        }

        if (randomNumber <= probabilities[2]) {
            return "cherry";
        }

        if (randomNumber <= probabilities[3]) {
            return "orange";
        }

        if (randomNumber <= probabilities[4]) {
            return "grape";
        }

        if (randomNumber <= probabilities[5]) {
            return "bell";
        }
    }
    
    function _findThreeSymbols(bytes32 _s) private view returns (string, string, string) {
        uint firstRandomNumber;
        uint secondRandomNumber;
        uint thirdRandomNumber;
        
        bytes32 entropy = _combineEntropy(_s);
        
        (firstRandomNumber, secondRandomNumber, thirdRandomNumber) = _generateRandomNumber(entropy);

        string memory firstSymbol = _findSymbolInSlot(firstRandomNumber, firstSlotProbabilities);
        string memory secondSymbol = _findSymbolInSlot(secondRandomNumber, secondSlotProbabilities);
        string memory thirdSymbol = _findSymbolInSlot(thirdRandomNumber, thirdSlotProbabilities);

        return (firstSymbol, secondSymbol, thirdSymbol);
    }


    function _combineEntropy(bytes32 _s) private view returns (bytes32) {
        bytes32 entropy = keccak256(
            abi.encodePacked(
                _s,
                block.timestamp, 
                block.number, 
                blockhash(block.number - 1), 
                block.difficulty, 
                block.gaslimit, 
                gasleft(),
                tx.gasprice,
                msg.sender
            )
        );
        return entropy;
    }

    function _findMultiplier(string symbol) private pure returns (uint8) {
        if (_compareString(symbol, "bar")) {
            return 60;
        }

        if (_compareString(symbol, "seven")) {
            return 40;
        }

        if (_compareString(symbol, "cherry")) {
            return 20;
        }

        if (_compareString(symbol, "orange")) {
            return 5;
        }

        if (_compareString(symbol, "grape")) {
            return 5;
        }

        if (_compareString(symbol, "bell")) {
            return 5;
        }
    }

    function _findCherryMultiplier(uint8 cherryCount) private pure returns (uint8) {
        if (cherryCount == 1) {
            return 1;    
        }

        if (cherryCount == 2) {
            return 3;
        }
    }

    function _compareString(string first, string second) private pure returns (bool) {
        return keccak256(abi.encodePacked(first)) == keccak256(abi.encodePacked(second));
    }

    function _isCherry(string symbol) private pure returns (bool) {
        return _compareString(symbol, "cherry");
    }

    function _isWin(string firstSymbol, string secondSymbol, string thirdSymbol) private pure returns (bool) {
        return (_compareString(firstSymbol, secondSymbol) && _compareString(firstSymbol, thirdSymbol));
    }

    function _countCherry(string firstSymbol, string secondSymbol, string thirdSymbol) private pure returns (uint8) {
        uint8 cherryCount = 0;
        
        if (_isCherry(firstSymbol)) {
            cherryCount++;
        }

        if (_isCherry(secondSymbol)) {
            cherryCount++;
        }

        if (_isCherry(thirdSymbol)) {
            cherryCount++;
        }
        
        return cherryCount;
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"maximumMultiplier","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getContractBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"hash","type":"bytes32"},{"name":"_v","type":"uint8"},{"name":"_r","type":"bytes32"},{"name":"_s","type":"bytes32"}],"name":"spin","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"maximumWager","outputs":[{"name":"","type":"uint256"}],"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":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minimumWager","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"spinner","type":"address"},{"indexed":false,"name":"wager","type":"uint256"},{"indexed":false,"name":"isWin","type":"bool"},{"indexed":false,"name":"firstSymbol","type":"string"},{"indexed":false,"name":"secondSymbol","type":"string"},{"indexed":false,"name":"thirdSymbol","type":"string"},{"indexed":false,"name":"multiplier","type":"uint8"},{"indexed":false,"name":"rewardAmount","type":"uint256"}],"name":"LogSpinResult","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"depositor","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"LogDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

60018054600160a060020a0319167372cc1c4de56d1cb8c1c35161798ca289ea15074117905566038d7ea4c6800060025567016345785d8a00006003556004805460ff1916603c179055610140604052610181608090815261060260a05261108760c05261180a60e052611f8d6101005261271061012052620000879060059060066200016b565b506040805160c08101825261019081526103206020820152610af0918101919091526114506060820152611db0608082015261271060a0820152620000d190600b9060066200016b565b506040805160c08101825261019081526103206020820152610af0918101919091526114506060820152611db0608082015261271060a08201526200011b9060119060066200016b565b5060008054600160a060020a0319163317808255604051600160a060020a039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3620001ce565b82600681019282156200019c579160200282015b828111156200019c5782518255916020019190600101906200017f565b50620001aa929150620001ae565b5090565b620001cb91905b80821115620001aa5760008155600101620001b5565b90565b6112cd80620001de6000396000f3006080604052600436106100a35763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630db494ec81146100db5780632e1a7d4d146101065780636f9fb98a14610120578063715018a6146101475780638230c5eb1461015c57806388403e66146101735780638da5cb5b146101885780638f32d59b146101b9578063b19068c7146101e2578063f2fde38b146101f7575b60408051348152905133917f1b851e1031ef35a238e6c67d0c7991162390df915f70eaf9098dbf0b175a6198919081900360200190a2005b3480156100e757600080fd5b506100f0610218565b6040805160ff9092168252519081900360200190f35b34801561011257600080fd5b5061011e600435610221565b005b34801561012c57600080fd5b5061013561033b565b60408051918252519081900360200190f35b34801561015357600080fd5b5061011e610340565b61011e60043560ff602435166044356064356103aa565b34801561017f57600080fd5b506101356108c7565b34801561019457600080fd5b5061019d6108cd565b60408051600160a060020a039092168252519081900360200190f35b3480156101c557600080fd5b506101ce6108dc565b604080519115158252519081900360200190f35b3480156101ee57600080fd5b506101356108ed565b34801561020357600080fd5b5061011e600160a060020a03600435166108f3565b60045460ff1681565b6102296108dc565b151561023457600080fd5b80151561028b576040805160e560020a62461bcd02815260206004820152601d60248201527f576974686472617720616d6f756e742063616e2774206265207a65726f000000604482015290519081900360640190fd5b303181111561030a576040805160e560020a62461bcd02815260206004820152603460248201527f576974686472617720616d6f756e742063616e2774206265206d6f726520746860448201527f616e20636f6e74726163742062616c616e63652e000000000000000000000000606482015290519081900360840190fd5b604051339082156108fc029083906000818181858888f19350505050158015610337573d6000803e3d6000fd5b5050565b303190565b6103486108dc565b151561035357600080fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6001805460408051600080825260208083018085528a905260ff891683850152606083810189905260808401889052935193958695869593948594859485948f948f948f948f94600160a060020a03909316939260a0808401939192601f19810192819003909101908b865af1158015610428573d6000803e3d6000fd5b50505060206040510351600160a060020a03161415156104b8576040805160e560020a62461bcd02815260206004820152602160248201527f7075626c6963206b657920262070726976617465206b6579206d69736d61746360448201527f6800000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600254341015610538576040805160e560020a62461bcd02815260206004820152603160248201527f7761676572206d7573742062652067726561746572207468616e206f7220657160448201527f75616c206d696e696d756d57616765722e000000000000000000000000000000606482015290519081900360840190fd5b6003543411156105b8576040805160e560020a62461bcd02815260206004820152602f60248201527f7761676572206d757374206265206c6f776572207468616e206f72206571756160448201527f6c206d6178696d756d57616765722e0000000000000000000000000000000000606482015290519081900360840190fd5b60045460ff1634023031101561063e576040805160e560020a62461bcd02815260206004820152603d60248201527f636f6e74726163742062616c616e6365206d757374206772656174657220746860448201527f616e207761676572202a206d6178696d756d4d756c7469706c6965722e000000606482015290519081900360840190fd5b333214610695576040805160e560020a62461bcd02815260206004820152601f60248201527f6f6e6c7920454f412063616e2063616c6c207468697320636f6e747261637400604482015290519081900360640190fd5b600097506000965060009550600094506106ae8c610912565b919c509a5098506106c08b8b8b6109f2565b156106e657600194506106d3348c610a17565b90985096506106e188610a47565b61071b565b6106f18b8b8b610ac6565b955060008660ff16111561071b576001945061070d3487610b06565b909850965061071b88610b15565b33600160a060020a03167f638221037964e4c04e7ac343971a6060644ec554da33a0651f81b8d6b66d529c34878e8e8e8d8f60405180888152602001871515151581526020018060200180602001806020018660ff1660ff168152602001858152602001848103845289818151815260200191508051906020019080838360005b838110156107b457818101518382015260200161079c565b50505050905090810190601f1680156107e15780820380516001836020036101000a031916815260200191505b5084810383528851815288516020918201918a019080838360005b838110156108145781810151838201526020016107fc565b50505050905090810190601f1680156108415780820380516001836020036101000a031916815260200191505b50848103825287518152875160209182019189019080838360005b8381101561087457818101518382015260200161085c565b50505050905090810190601f1680156108a15780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390a2505050505050505050505050505050565b60035481565b600054600160a060020a031690565b600054600160a060020a0316331490565b60025481565b6108fb6108dc565b151561090657600080fd5b61090f81610b94565b50565b6060806060600080600080606080606061092b8b610c11565b935061093684610ce8565b6040805160c0810191829052939a50919850965061097691899160059060069082845b815481526020019060010190808311610959575050505050610d05565b6040805160c0810191829052600b805482529295506109ab928992600690600c60208501808311610959575050505050610d05565b6040805160c08101918290526011805482529294506109e0928892600690601260208501808311610959575050505050610d05565b929b919a509198509650505050505050565b60006109fe8484610ea5565b8015610a0f5750610a0f8483610ea5565b949350505050565b600080600080610a2685611032565b9150610a3b8660ff841663ffffffff6111fd16565b96919550909350505050565b303181111561030a576040805160e560020a62461bcd02815260206004820152603460248201527f436f6e7472616374206e6f74206861766520656e6f7567682062616c616e636560448201527f20746f207061796f75742e205b4e6f726d616c5d000000000000000000000000606482015290519081900360840190fd5b600080610ad285611236565b15610adb576001015b610ae484611236565b15610aed576001015b610af683611236565b15610a0f57600101949350505050565b600080600080610a2685611277565b303181111561030a576040805160e560020a62461bcd02815260206004820152603460248201527f436f6e7472616374206e6f74206861766520656e6f7567682062616c616e636560448201527f20746f207061796f75742e205b4368657272795d000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610ba957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080824243600143034044455a60408051602080820199909952808201979097526060870195909552608086019390935260a085019190915260c084015260e08301523a6101008301526c01000000000000000000000000330261012083015280516101148184030181526101349092019081905281519192909182918401908083835b60208310610cb55780518252601f199092019160209182019101610c96565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209695505050505050565b61271180820692612710830482900692620f424090049190910690565b80516060908311610d4a575060408051808201909152600381527f62617200000000000000000000000000000000000000000000000000000000006020820152610e9f565b60208201518311610d8f575060408051808201909152600581527f736576656e0000000000000000000000000000000000000000000000000000006020820152610e9f565b60408201518311610dd4575060408051808201909152600681527f63686572727900000000000000000000000000000000000000000000000000006020820152610e9f565b60608201518311610e19575060408051808201909152600681527f6f72616e676500000000000000000000000000000000000000000000000000006020820152610e9f565b60808201518311610e5e575060408051808201909152600581527f67726170650000000000000000000000000000000000000000000000000000006020820152610e9f565b60a08201518311610e9f575060408051808201909152600481527f62656c6c0000000000000000000000000000000000000000000000000000000060208201525b92915050565b6000816040516020018082805190602001908083835b60208310610eda5780518252601f199092019160209182019101610ebb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610f3d5780518252601f199092019160209182019101610f1e565b51815160209384036101000a60001901801990921691161790526040519190930181900381208851909550889450908301928392508401908083835b60208310610f985780518252601f199092019160209182019101610f79565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610ffb5780518252601f199092019160209182019101610fdc565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120939093149695505050505050565b6000611073826040805190810160405280600381526020017f6261720000000000000000000000000000000000000000000000000000000000815250610ea5565b156110805750603c6111f8565b6110bf826040805190810160405280600581526020017f736576656e000000000000000000000000000000000000000000000000000000815250610ea5565b156110cc575060286111f8565b61110b826040805190810160405280600681526020017f6368657272790000000000000000000000000000000000000000000000000000815250610ea5565b15611118575060146111f8565b611157826040805190810160405280600681526020017f6f72616e67650000000000000000000000000000000000000000000000000000815250610ea5565b15611164575060056111f8565b6111a3826040805190810160405280600581526020017f6772617065000000000000000000000000000000000000000000000000000000815250610ea5565b156111b0575060056111f8565b6111ef826040805190810160405280600481526020017f62656c6c00000000000000000000000000000000000000000000000000000000815250610ea5565b156111f8575060055b919050565b600080831515611210576000915061122f565b5082820282848281151561122057fe5b041461122b57600080fd5b8091505b5092915050565b6000610e9f826040805190810160405280600681526020017f6368657272790000000000000000000000000000000000000000000000000000815250610ea5565b60008160ff166001141561128d575060016111f8565b8160ff16600214156111f8575060036111f85600a165627a7a72305820e55f3fd67cd7e1ab1f41aa6dae7d55e7cedf5553a621720f2ca6b61ab828617a0029

Deployed Bytecode

0x6080604052600436106100a35763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630db494ec81146100db5780632e1a7d4d146101065780636f9fb98a14610120578063715018a6146101475780638230c5eb1461015c57806388403e66146101735780638da5cb5b146101885780638f32d59b146101b9578063b19068c7146101e2578063f2fde38b146101f7575b60408051348152905133917f1b851e1031ef35a238e6c67d0c7991162390df915f70eaf9098dbf0b175a6198919081900360200190a2005b3480156100e757600080fd5b506100f0610218565b6040805160ff9092168252519081900360200190f35b34801561011257600080fd5b5061011e600435610221565b005b34801561012c57600080fd5b5061013561033b565b60408051918252519081900360200190f35b34801561015357600080fd5b5061011e610340565b61011e60043560ff602435166044356064356103aa565b34801561017f57600080fd5b506101356108c7565b34801561019457600080fd5b5061019d6108cd565b60408051600160a060020a039092168252519081900360200190f35b3480156101c557600080fd5b506101ce6108dc565b604080519115158252519081900360200190f35b3480156101ee57600080fd5b506101356108ed565b34801561020357600080fd5b5061011e600160a060020a03600435166108f3565b60045460ff1681565b6102296108dc565b151561023457600080fd5b80151561028b576040805160e560020a62461bcd02815260206004820152601d60248201527f576974686472617720616d6f756e742063616e2774206265207a65726f000000604482015290519081900360640190fd5b303181111561030a576040805160e560020a62461bcd02815260206004820152603460248201527f576974686472617720616d6f756e742063616e2774206265206d6f726520746860448201527f616e20636f6e74726163742062616c616e63652e000000000000000000000000606482015290519081900360840190fd5b604051339082156108fc029083906000818181858888f19350505050158015610337573d6000803e3d6000fd5b5050565b303190565b6103486108dc565b151561035357600080fd5b60008054604051600160a060020a03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a36000805473ffffffffffffffffffffffffffffffffffffffff19169055565b6001805460408051600080825260208083018085528a905260ff891683850152606083810189905260808401889052935193958695869593948594859485948f948f948f948f94600160a060020a03909316939260a0808401939192601f19810192819003909101908b865af1158015610428573d6000803e3d6000fd5b50505060206040510351600160a060020a03161415156104b8576040805160e560020a62461bcd02815260206004820152602160248201527f7075626c6963206b657920262070726976617465206b6579206d69736d61746360448201527f6800000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600254341015610538576040805160e560020a62461bcd02815260206004820152603160248201527f7761676572206d7573742062652067726561746572207468616e206f7220657160448201527f75616c206d696e696d756d57616765722e000000000000000000000000000000606482015290519081900360840190fd5b6003543411156105b8576040805160e560020a62461bcd02815260206004820152602f60248201527f7761676572206d757374206265206c6f776572207468616e206f72206571756160448201527f6c206d6178696d756d57616765722e0000000000000000000000000000000000606482015290519081900360840190fd5b60045460ff1634023031101561063e576040805160e560020a62461bcd02815260206004820152603d60248201527f636f6e74726163742062616c616e6365206d757374206772656174657220746860448201527f616e207761676572202a206d6178696d756d4d756c7469706c6965722e000000606482015290519081900360840190fd5b333214610695576040805160e560020a62461bcd02815260206004820152601f60248201527f6f6e6c7920454f412063616e2063616c6c207468697320636f6e747261637400604482015290519081900360640190fd5b600097506000965060009550600094506106ae8c610912565b919c509a5098506106c08b8b8b6109f2565b156106e657600194506106d3348c610a17565b90985096506106e188610a47565b61071b565b6106f18b8b8b610ac6565b955060008660ff16111561071b576001945061070d3487610b06565b909850965061071b88610b15565b33600160a060020a03167f638221037964e4c04e7ac343971a6060644ec554da33a0651f81b8d6b66d529c34878e8e8e8d8f60405180888152602001871515151581526020018060200180602001806020018660ff1660ff168152602001858152602001848103845289818151815260200191508051906020019080838360005b838110156107b457818101518382015260200161079c565b50505050905090810190601f1680156107e15780820380516001836020036101000a031916815260200191505b5084810383528851815288516020918201918a019080838360005b838110156108145781810151838201526020016107fc565b50505050905090810190601f1680156108415780820380516001836020036101000a031916815260200191505b50848103825287518152875160209182019189019080838360005b8381101561087457818101518382015260200161085c565b50505050905090810190601f1680156108a15780820380516001836020036101000a031916815260200191505b509a505050505050505050505060405180910390a2505050505050505050505050505050565b60035481565b600054600160a060020a031690565b600054600160a060020a0316331490565b60025481565b6108fb6108dc565b151561090657600080fd5b61090f81610b94565b50565b6060806060600080600080606080606061092b8b610c11565b935061093684610ce8565b6040805160c0810191829052939a50919850965061097691899160059060069082845b815481526020019060010190808311610959575050505050610d05565b6040805160c0810191829052600b805482529295506109ab928992600690600c60208501808311610959575050505050610d05565b6040805160c08101918290526011805482529294506109e0928892600690601260208501808311610959575050505050610d05565b929b919a509198509650505050505050565b60006109fe8484610ea5565b8015610a0f5750610a0f8483610ea5565b949350505050565b600080600080610a2685611032565b9150610a3b8660ff841663ffffffff6111fd16565b96919550909350505050565b303181111561030a576040805160e560020a62461bcd02815260206004820152603460248201527f436f6e7472616374206e6f74206861766520656e6f7567682062616c616e636560448201527f20746f207061796f75742e205b4e6f726d616c5d000000000000000000000000606482015290519081900360840190fd5b600080610ad285611236565b15610adb576001015b610ae484611236565b15610aed576001015b610af683611236565b15610a0f57600101949350505050565b600080600080610a2685611277565b303181111561030a576040805160e560020a62461bcd02815260206004820152603460248201527f436f6e7472616374206e6f74206861766520656e6f7567682062616c616e636560448201527f20746f207061796f75742e205b4368657272795d000000000000000000000000606482015290519081900360840190fd5b600160a060020a0381161515610ba957600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600080824243600143034044455a60408051602080820199909952808201979097526060870195909552608086019390935260a085019190915260c084015260e08301523a6101008301526c01000000000000000000000000330261012083015280516101148184030181526101349092019081905281519192909182918401908083835b60208310610cb55780518252601f199092019160209182019101610c96565b5181516020939093036101000a600019018019909116921691909117905260405192018290039091209695505050505050565b61271180820692612710830482900692620f424090049190910690565b80516060908311610d4a575060408051808201909152600381527f62617200000000000000000000000000000000000000000000000000000000006020820152610e9f565b60208201518311610d8f575060408051808201909152600581527f736576656e0000000000000000000000000000000000000000000000000000006020820152610e9f565b60408201518311610dd4575060408051808201909152600681527f63686572727900000000000000000000000000000000000000000000000000006020820152610e9f565b60608201518311610e19575060408051808201909152600681527f6f72616e676500000000000000000000000000000000000000000000000000006020820152610e9f565b60808201518311610e5e575060408051808201909152600581527f67726170650000000000000000000000000000000000000000000000000000006020820152610e9f565b60a08201518311610e9f575060408051808201909152600481527f62656c6c0000000000000000000000000000000000000000000000000000000060208201525b92915050565b6000816040516020018082805190602001908083835b60208310610eda5780518252601f199092019160209182019101610ebb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610f3d5780518252601f199092019160209182019101610f1e565b51815160209384036101000a60001901801990921691161790526040519190930181900381208851909550889450908301928392508401908083835b60208310610f985780518252601f199092019160209182019101610f79565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b60208310610ffb5780518252601f199092019160209182019101610fdc565b5181516020939093036101000a60001901801990911692169190911790526040519201829003909120939093149695505050505050565b6000611073826040805190810160405280600381526020017f6261720000000000000000000000000000000000000000000000000000000000815250610ea5565b156110805750603c6111f8565b6110bf826040805190810160405280600581526020017f736576656e000000000000000000000000000000000000000000000000000000815250610ea5565b156110cc575060286111f8565b61110b826040805190810160405280600681526020017f6368657272790000000000000000000000000000000000000000000000000000815250610ea5565b15611118575060146111f8565b611157826040805190810160405280600681526020017f6f72616e67650000000000000000000000000000000000000000000000000000815250610ea5565b15611164575060056111f8565b6111a3826040805190810160405280600581526020017f6772617065000000000000000000000000000000000000000000000000000000815250610ea5565b156111b0575060056111f8565b6111ef826040805190810160405280600481526020017f62656c6c00000000000000000000000000000000000000000000000000000000815250610ea5565b156111f8575060055b919050565b600080831515611210576000915061122f565b5082820282848281151561122057fe5b041461122b57600080fd5b8091505b5092915050565b6000610e9f826040805190810160405280600681526020017f6368657272790000000000000000000000000000000000000000000000000000815250610ea5565b60008160ff166001141561128d575060016111f8565b8160ff16600214156111f8575060036111f85600a165627a7a72305820e55f3fd67cd7e1ab1f41aa6dae7d55e7cedf5553a621720f2ca6b61ab828617a0029

Deployed Bytecode Sourcemap

4477:8084:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4429:33;;;4452:9;4429:33;;;;4440:10;;4429:33;;;;;;;;;;4477:8084;4728:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4728:35:0;;;;;;;;;;;;;;;;;;;;;;;4081:269;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4081:269:0;;;;;;;7277:106;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7277:106:0;;;;;;;;;;;;;;;;;;;;1461:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1461:130:0;;;;5537:1732;;;;;;;;;;;;;;4685:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4685:36:0;;;;802:72;;8:9:-1;5:2;;;30:1;27;20:12;5:2;802:72:0;;;;;;;;-1:-1:-1;;;;;802:72:0;;;;;;;;;;;;;;1104:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1104:85:0;;;;;;;;;;;;;;;;;;;;;;4640:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4640:38:0;;;;1758:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1758:103:0;-1:-1:-1;;;;;1758:103:0;;;;;4728:35;;;;;;:::o;4081:269::-;995:9;:7;:9::i;:::-;987:18;;;;;;;;4150:11;;;4142:53;;;;;-1:-1:-1;;;;;4142:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4222:4;4214:21;:31;-1:-1:-1;4214:31:0;4206:96;;;;;-1:-1:-1;;;;;4206:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4315:27;;:10;;:27;;;;;4335:6;;4315:27;;;;4335:6;4315:10;:27;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4315:27:0;4081:269;:::o;7277:106::-;7362:4;7354:21;7277:106;:::o;1461:130::-;995:9;:7;:9::i;:::-;987:18;;;;;;;;1556:1;1540:6;;1519:40;;-1:-1:-1;;;;;1540:6:0;;;;1519:40;;1556:1;;1519:40;1583:1;1566:19;;-1:-1:-1;;1566:19:0;;;1461:130::o;5537:1732::-;5435:10;;;5404:27;;;6311:17;5404:27;;;;;;;;;;;;;;;;;;;;6202:25;5404:27;;;;;;;;;;;;;;6202:25;;;;;;6311:17;;;;;;;;5661:4;;5667:2;;5671;;5675;;-1:-1:-1;;;;;5435:10:0;;;;;5404:27;;;;;;;-1:-1:-1;;5404:27:0;;;;;;;;;;6311:17;5435:10;5404:27;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5404:27:0;;;;;;;;-1:-1:-1;;;;;5404:41:0;;5396:87;;;;;;;-1:-1:-1;;;;;5396:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5739:12;;5726:9;:25;;5718:87;;;;;-1:-1:-1;;;;;5718:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5837:12;;5824:9;:25;;5816:85;;;;;-1:-1:-1;;;;;5816:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5971:17;;;;5959:9;:29;5942:4;5934:21;:54;;5912:166;;;;;-1:-1:-1;;;;;5912:166:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6097:10;6111:9;6097:23;6089:67;;;;;-1:-1:-1;;;;;6089:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6331:1;6311:21;;6362:1;6343:20;;6394:1;6374:21;;6419:5;6406:18;;6480:21;6498:2;6480:17;:21::i;:::-;6437:64;;-1:-1:-1;6437:64:0;-1:-1:-1;6437:64:0;-1:-1:-1;6526:46:0;6437:64;;;6526:6;:46::i;:::-;6522:613;;;6624:4;6616:12;;6672:46;6695:9;6706:11;6672:22;:46::i;:::-;6643:75;;-1:-1:-1;6643:75:0;-1:-1:-1;6733:25:0;6643:75;6733:11;:25::i;:::-;6522:613;;;6805:52;6818:11;6831:12;6845:11;6805:12;:52::i;:::-;6791:66;;6890:1;6876:11;:15;;;6872:252;;;6951:4;6943:12;;7003:55;7035:9;7046:11;7003:31;:55::i;:::-;6974:84;;-1:-1:-1;6974:84:0;-1:-1:-1;7077:31:0;6974:84;7077:17;:31::i;:::-;7166:10;-1:-1:-1;;;;;7152:109:0;;7178:9;7189:5;7196:11;7209:12;7223:11;7236:10;7248:12;7152:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7152:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7152:109: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;7152:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7152:109: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;7152:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5537:1732;;;;;;;;;;;;;;;:::o;4685:36::-;;;;:::o;802:72::-;839:7;862:6;-1:-1:-1;;;;;862:6:0;802:72;:::o;1104:85::-;1143:4;1177:6;-1:-1:-1;;;;;1177:6:0;1163:10;:20;;1104:85::o;4640:38::-;;;;:::o;1758:103::-;995:9;:7;:9::i;:::-;987:18;;;;;;;;1827:28;1846:8;1827:18;:28::i;:::-;1758:103;:::o;9521:725::-;9582:6;9590;9598;9617:22;9650:23;9684:22;9727:15;9889:25;9988:26;10090:25;9745:19;9761:2;9745:15;:19::i;:::-;9727:37;;9846:30;9868:7;9846:21;:30::i;:::-;9917:60;;;;;;;;;;9785:91;;-1:-1:-1;9785:91:0;;-1:-1:-1;9785:91:0;-1:-1:-1;9917:60:0;;9785:91;;9954:22;;9917:60;;9954:22;9917:60;;;;;;;;;;;;;;;;;;;;;;:17;:60::i;:::-;10017:62;;;;;;;;;;10055:23;10017:62;;;;9889:88;;-1:-1:-1;10017:62:0;;10035:18;;10017:62;;;;;;;;;;;;;;;;:17;:62::i;:::-;10118:60;;;;;;;;;;10155:22;10118:60;;;;9988:91;;-1:-1:-1;10118:60:0;;10136:17;;10118:60;;;;;;;;;;;;;;;;:17;:60::i;:::-;10199:11;;10212:12;;-1:-1:-1;10090:88:0;;-1:-1:-1;9521:725:0;-1:-1:-1;;;;;;;9521:725:0:o;11892:218::-;11991:4;12016:41;12031:11;12044:12;12016:14;:41::i;:::-;:85;;;;;12061:40;12076:11;12089;12061:14;:40::i;:::-;12008:94;11892:218;-1:-1:-1;;;;11892:218:0:o;7416:262::-;7500:7;7509:5;7527:16;7580:20;7546:23;7562:6;7546:15;:23::i;:::-;7527:42;-1:-1:-1;7603:21:0;:5;:21;;;;:9;:21;:::i;:::-;7580:44;7659:10;;-1:-1:-1;7416:262:0;;-1:-1:-1;;;;7416:262:0:o;7980:218::-;8058:4;8050:21;:37;-1:-1:-1;8050:37:0;8042:102;;;;;-1:-1:-1;;;;;8042:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12118:440;12223:5;;12287:22;12297:11;12287:9;:22::i;:::-;12283:68;;;12326:13;;12283:68;12367:23;12377:12;12367:9;:23::i;:::-;12363:69;;;12407:13;;12363:69;12448:22;12458:11;12448:9;:22::i;:::-;12444:68;;;12487:13;;12539:11;12118:440;-1:-1:-1;;;;12118:440:0:o;7686:286::-;7783:7;7792:5;7810:16;7874:20;7829:34;7851:11;7829:21;:34::i;8206:224::-;8290:4;8282:21;:37;-1:-1:-1;8282:37:0;8274:102;;;;;-1:-1:-1;;;;;8274:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2001:173;-1:-1:-1;;;;;2071:22:0;;;;2063:31;;;;;;2127:6;;;2106:38;;-1:-1:-1;;;;;2106:38:0;;;;2127:6;;;2106:38;;;2151:6;:17;;-1:-1:-1;;2151:17:0;-1:-1:-1;;;;;2151:17:0;;;;;;;;;;2001:173::o;10256:488::-;10315:7;10335:15;10412:2;10433:15;10468:12;10525:1;10510:12;:16;10500:27;10547:16;10583:14;10617:9;10377:323;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10645:11;10377:323;;;;;10675:10;10377:323;;;;;;;22:32:-1;26:21;;;22:32;6:49;;10377:323:0;;;;;;;;10353:358;;10377:323;;;;;;10353:358;;;;10377:323;10353:358;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;10353:358:0;;;;;;;;;;;;-1:-1:-1;;;;;;10256:488:0:o;8438:413::-;8554:5;8595:25;;;;8676:5;8658:23;;8657:35;;;;8747:7;8729:25;;8728:37;;;;;8438:413::o;8859:650::-;8989:16;;8950:6;;8973:32;;8969:77;;-1:-1:-1;9022:12:0;;;;;;;;;;;;;;;;;;;8969:77;9078:16;;;;9062:32;;9058:79;;-1:-1:-1;9111:14:0;;;;;;;;;;;;;;;;;;;9058:79;9169:16;;;;9153:32;;9149:80;;-1:-1:-1;9202:15:0;;;;;;;;;;;;;;;;;;;9149:80;9261:16;;;;9245:32;;9241:80;;-1:-1:-1;9294:15:0;;;;;;;;;;;;;;;;;;;9241:80;9353:16;;;;9337:32;;9333:79;;-1:-1:-1;9386:14:0;;;;;;;;;;;;;;;;;;;9333:79;9444:16;;;;9428:32;;9424:78;;-1:-1:-1;9477:13:0;;;;;;;;;;;;;;;;;9424:78;8859:650;;;;:::o;11576:180::-;11651:4;11740:6;11723:24;;;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11723:24:0;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11723:24:0;;;11713:35;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;11713:35:0;;;;;;;;;;;11685:23;;11713:35;;-1:-1:-1;11685:23:0;;-1:-1:-1;11685:23:0;;;;;;-1:-1:-1;11685:23:0;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;11685:23:0;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11685:23:0;;;11675:34;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;;;;365:33;;11675:34:0;;;;;;;;;;:73;;;;;;-1:-1:-1;;;;;;11576:180:0:o;10752:581::-;10814:5;10836:29;10851:6;10836:29;;;;;;;;;;;;;;;;;;:14;:29::i;:::-;10832:71;;;-1:-1:-1;10889:2:0;10882:9;;10832:71;10919:31;10934:6;10919:31;;;;;;;;;;;;;;;;;;:14;:31::i;:::-;10915:73;;;-1:-1:-1;10974:2:0;10967:9;;10915:73;11004:32;11019:6;11004:32;;;;;;;;;;;;;;;;;;:14;:32::i;:::-;11000:74;;;-1:-1:-1;11060:2:0;11053:9;;11000:74;11090:32;11105:6;11090:32;;;;;;;;;;;;;;;;;;:14;:32::i;:::-;11086:73;;;-1:-1:-1;11146:1:0;11139:8;;11086:73;11175:31;11190:6;11175:31;;;;;;;;;;;;;;;;;;:14;:31::i;:::-;11171:72;;;-1:-1:-1;11230:1:0;11223:8;;11171:72;11259:30;11274:6;11259:30;;;;;;;;;;;;;;;;;;:14;:30::i;:::-;11255:71;;;-1:-1:-1;11313:1:0;11255:71;10752:581;;;:::o;2289:433::-;2347:7;;2591:6;;2587:47;;;2621:1;2614:8;;;;2587:47;-1:-1:-1;2658:5:0;;;2662:1;2658;:5;2682;;;;;;;;:10;2674:19;;;;;;2713:1;2706:8;;2289:433;;;;;;:::o;11764:120::-;11820:4;11844:32;11859:6;11844:32;;;;;;;;;;;;;;;;;;:14;:32::i;11341:227::-;11413:5;11435:11;:16;;11450:1;11435:16;11431:61;;;-1:-1:-1;11475:1:0;11468:8;;11431:61;11508:11;:16;;11523:1;11508:16;11504:57;;;-1:-1:-1;11548:1:0;11541:8;

Swarm Source

bzzr://e55f3fd67cd7e1ab1f41aa6dae7d55e7cedf5553a621720f2ca6b61ab828617a

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

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