ETH Price: $3,321.69 (+1.56%)
Gas: 11 Gwei

Contract

0x0c3758CAD36e8Ae9A57f2f3B6c2B4A3c6A22A031
 

Overview

ETH Balance

0.001296368611047606 ETH

Eth Value

$4.31 (@ $3,321.69/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Sellbakerys177251322023-07-19 5:23:11377 days ago1689744191IN
0x0c3758CA...c6A22A031
0 ETH0.0010973616.79774837
Sellbakerys176674142023-07-11 2:29:59385 days ago1689042599IN
0x0c3758CA...c6A22A031
0 ETH0.0010706512.99054846
Sellbakerys176538472023-07-09 4:41:59387 days ago1688877719IN
0x0c3758CA...c6A22A031
0 ETH0.0010563115.68912163
Sellbakerys176034552023-07-02 2:48:11394 days ago1688266091IN
0x0c3758CA...c6A22A031
0 ETH0.0010539215.65361881
Sellbakerys175697072023-06-27 9:05:35399 days ago1687856735IN
0x0c3758CA...c6A22A031
0 ETH0.0011653117.3080514
Sellbakerys175169352023-06-19 23:04:59406 days ago1687215899IN
0x0c3758CA...c6A22A031
0 ETH0.0012528418.60807456
Sellbakerys175169272023-06-19 23:03:23406 days ago1687215803IN
0x0c3758CA...c6A22A031
0 ETH0.0013897720.6449621
Sellbakerys175169232023-06-19 23:02:35406 days ago1687215755IN
0x0c3758CA...c6A22A031
0 ETH0.0013878720.61362228
Sellbakerys174694362023-06-13 6:56:59413 days ago1686639419IN
0x0c3758CA...c6A22A031
0 ETH0.0010684315.87153189
Sellbakerys174669912023-06-12 22:40:11413 days ago1686609611IN
0x0c3758CA...c6A22A031
0 ETH0.0010434915.50096269
Sellbakerys173981082023-06-03 5:34:35423 days ago1685770475IN
0x0c3758CA...c6A22A031
0 ETH0.0015381122.84506858
Sellbakerys173471652023-05-27 1:36:11430 days ago1685151371IN
0x0c3758CA...c6A22A031
0 ETH0.0014329621.28646902
Sellbakerys173470952023-05-27 1:21:47430 days ago1685150507IN
0x0c3758CA...c6A22A031
0 ETH0.0017882226.56388068
Sellbakerys172828042023-05-18 0:12:11439 days ago1684368731IN
0x0c3758CA...c6A22A031
0 ETH0.0028295242.03217121
Sellbakerys172827802023-05-18 0:07:11439 days ago1684368431IN
0x0c3758CA...c6A22A031
0 ETH0.0028598442.48256376
Sellbakerys172202782023-05-09 3:39:47448 days ago1683603587IN
0x0c3758CA...c6A22A031
0 ETH0.0044476466.06914195
Sellbakerys172202062023-05-09 3:25:11448 days ago1683602711IN
0x0c3758CA...c6A22A031
0 ETH0.0050834775.51429386
Sellbakerys171492372023-04-29 3:59:59458 days ago1682740799IN
0x0c3758CA...c6A22A031
0 ETH0.0025359837.67174817
Sellbakerys171344092023-04-27 1:59:35460 days ago1682560775IN
0x0c3758CA...c6A22A031
0 ETH0.0023972635.60570538
Sellbakerys171343672023-04-27 1:50:59460 days ago1682560259IN
0x0c3758CA...c6A22A031
0 ETH0.0022369933.23026816
Sellbakerys171343502023-04-27 1:47:35460 days ago1682560055IN
0x0c3758CA...c6A22A031
0 ETH0.0023228434.50554021
Sellbakerys171059882023-04-23 2:16:59464 days ago1682216219IN
0x0c3758CA...c6A22A031
0 ETH0.00210931.32430897
Sellbakerys170799602023-04-19 10:08:35468 days ago1681898915IN
0x0c3758CA...c6A22A031
0 ETH0.0041812362.11176407
Sellbakerys170518262023-04-15 10:29:35472 days ago1681554575IN
0x0c3758CA...c6A22A031
0 ETH0.0017977626.70166749
Sellbakerys170430042023-04-14 4:13:23473 days ago1681445603IN
0x0c3758CA...c6A22A031
0 ETH0.001985729.49293227
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
197422462024-04-26 21:37:3594 days ago1714167455
0x0c3758CA...c6A22A031
0.00058878 ETH
197422462024-04-26 21:37:3594 days ago1714167455
0x0c3758CA...c6A22A031
0.00005823 ETH
191085852024-01-29 0:23:11183 days ago1706487791
0x0c3758CA...c6A22A031
0.00176213 ETH
191085852024-01-29 0:23:11183 days ago1706487791
0x0c3758CA...c6A22A031
0.00017427 ETH
189653232024-01-08 22:41:11203 days ago1704753671
0x0c3758CA...c6A22A031
0.00437337 ETH
189653232024-01-08 22:41:11203 days ago1704753671
0x0c3758CA...c6A22A031
0.00043253 ETH
186020992023-11-18 23:50:47254 days ago1700351447
0x0c3758CA...c6A22A031
0.01906414 ETH
186020992023-11-18 23:50:47254 days ago1700351447
0x0c3758CA...c6A22A031
0.00188546 ETH
183499962023-10-14 17:05:23289 days ago1697303123
0x0c3758CA...c6A22A031
0.01477706 ETH
183499962023-10-14 17:05:23289 days ago1697303123
0x0c3758CA...c6A22A031
0.00146146 ETH
183295912023-10-11 20:31:59292 days ago1697056319
0x0c3758CA...c6A22A031
0.03492737 ETH
183295912023-10-11 20:31:59292 days ago1697056319
0x0c3758CA...c6A22A031
0.00345435 ETH
180907212023-09-08 9:11:11326 days ago1694164271
0x0c3758CA...c6A22A031
0.04753414 ETH
180907212023-09-08 9:11:11326 days ago1694164271
0x0c3758CA...c6A22A031
0.00470117 ETH
179901282023-08-25 7:09:59340 days ago1692947399
0x0c3758CA...c6A22A031
0.04897355 ETH
179901282023-08-25 7:09:59340 days ago1692947399
0x0c3758CA...c6A22A031
0.00484353 ETH
179532682023-08-20 3:25:47345 days ago1692501947
0x0c3758CA...c6A22A031
0.08131675 ETH
179532682023-08-20 3:25:47345 days ago1692501947
0x0c3758CA...c6A22A031
0.00804231 ETH
179234252023-08-15 23:09:35349 days ago1692140975
0x0c3758CA...c6A22A031
0.05252343 ETH
179234252023-08-15 23:09:35349 days ago1692140975
0x0c3758CA...c6A22A031
0.00519462 ETH
178804722023-08-09 22:59:11355 days ago1691621951
0x0c3758CA...c6A22A031
0.09467466 ETH
178804722023-08-09 22:59:11355 days ago1691621951
0x0c3758CA...c6A22A031
0.00936342 ETH
178158102023-07-31 21:54:59364 days ago1690840499
0x0c3758CA...c6A22A031
0.08257855 ETH
178158102023-07-31 21:54:59364 days ago1690840499
0x0c3758CA...c6A22A031
0.00816711 ETH
177736282023-07-26 0:17:59370 days ago1690330679
0x0c3758CA...c6A22A031
0.10255255 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
BAKERYMINER

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-07
*/

/**
 *Submitted for verification at BscScan.com on 2023-01-06
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.17;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            uint256 c = a + b;
            if (c < a) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the substraction of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b > a) return (false, 0);
            return (true, a - b);
        }
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, with an overflow flag.
     *
     * _Available since v3.4._
     */
    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
            // benefit is lost if 'b' is also tested.
            // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
            if (a == 0) return (true, 0);
            uint256 c = a * b;
            if (c / a != b) return (false, 0);
            return (true, c);
        }
    }

    /**
     * @dev Returns the division of two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a / b);
        }
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.
     *
     * _Available since v3.4._
     */
    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked {
            if (b == 0) return (false, 0);
            return (true, a % b);
        }
    }

    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }

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

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }

    /**
     * @dev Returns the integer division of two unsigned integers, reverting on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator.
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }

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

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {trySub}.
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }

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

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * reverting with custom message when dividing by zero.
     *
     * CAUTION: This function is deprecated because it requires allocating memory for the error
     * message unnecessarily. For custom revert reasons use {tryMod}.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

contract Ownable is Context {
    address private _owner;

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

    /**
    * @dev Initializes the contract setting the deployer as the initial owner.
    */
    constructor () {
      address msgSender = _msgSender();
      _owner = msgSender;
      emit OwnershipTransferred(address(0), msgSender);
    }

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

    
    modifier onlyOwner() {
      require(_owner == _msgSender(), "Ownable: caller is not the owner");
      _;
    }

    function renounceOwnership() public onlyOwner {
      emit OwnershipTransferred(_owner, address(0));
      _owner = address(0);
    }

    function transferOwnership(address newOwner) public onlyOwner {
      _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal {
      require(newOwner != address(0), "Ownable: new owner is the zero address");
      emit OwnershipTransferred(_owner, newOwner);
      _owner = newOwner;
    }
}

contract BAKERYMINER is Context, Ownable {
    using SafeMath for uint256;

    uint256 private BAKERYS_TO_HARVEST_1MINERS = 1080000;//for final version should be seconds in a day
    uint256 private PSN = 10000;
    uint256 private PSNH = 5000;
    uint256 private devFeeVal = 5;
    bool private initialized = false;
    address payable private recAdd;
    mapping (address => uint256) private harvestingMiners;
    mapping (address => uint256) private claimedbakerys;
    mapping (address => uint256) private lastHarvest;
    mapping (address => address) private referrals;
    uint256 private marketbakerys;
    
    constructor() {
        recAdd = payable(msg.sender);
    }
    
    function Harvestbakerys(address ref) public {
        require(initialized);
        
        if(ref == msg.sender) {
            ref = address(0);
        }
        
        if(referrals[msg.sender] == address(0) && referrals[msg.sender] != msg.sender) {
            referrals[msg.sender] = ref;
        }
        
        uint256 bakerysUsed = getMybakerys(msg.sender);
        uint256 newMiners = SafeMath.div(bakerysUsed,BAKERYS_TO_HARVEST_1MINERS);
        harvestingMiners[msg.sender] = SafeMath.add(harvestingMiners[msg.sender],newMiners);
        claimedbakerys[msg.sender] = 0;
        lastHarvest[msg.sender] = block.timestamp;
        
        //send referral bakerys
        claimedbakerys[referrals[msg.sender]] = SafeMath.add(claimedbakerys[referrals[msg.sender]],SafeMath.div(bakerysUsed,20));
        
        //boost market to nerf miners hoarding
        marketbakerys=SafeMath.add(marketbakerys,SafeMath.div(bakerysUsed,5));
    }
    
    function sellbakerys() public {
        require(initialized);
        uint256 hasbakerys = getMybakerys(msg.sender);
        uint256 bakeryValue = calculatebakerysell(hasbakerys);
        uint256 fee = devFee(bakeryValue);
        claimedbakerys[msg.sender] = 0;
        lastHarvest[msg.sender] = block.timestamp;
        marketbakerys = SafeMath.add(marketbakerys,hasbakerys);
        recAdd.transfer(fee);
        payable (msg.sender).transfer(SafeMath.sub(bakeryValue,fee));
    }
    
    function ethRewards(address adr) public view returns(uint256) {
        uint256 hasbakerys = getMybakerys(adr);
        uint256 bakeryValue = calculatebakerysell(hasbakerys);
        return bakeryValue;
    }
    
    function buybakerys(address ref) public payable {
        require(initialized);
        uint256 bakerysBought = calculatebakeryBuy(msg.value,SafeMath.sub(address(this).balance,msg.value));
        bakerysBought = SafeMath.sub(bakerysBought,devFee(bakerysBought));
        uint256 fee = devFee(msg.value);
        recAdd.transfer(fee);
        claimedbakerys[msg.sender] = SafeMath.add(claimedbakerys[msg.sender],bakerysBought);
        Harvestbakerys(ref);
    }
    
    function calculateTrade(uint256 rt,uint256 rs, uint256 bs) private view returns(uint256) {
        return SafeMath.div(SafeMath.mul(PSN,bs),SafeMath.add(PSNH,SafeMath.div(SafeMath.add(SafeMath.mul(PSN,rs),SafeMath.mul(PSNH,rt)),rt)));
    }
    
    function calculatebakerysell(uint256 bakerys) public view returns(uint256) {
        return calculateTrade(bakerys,marketbakerys,address(this).balance);
    }
    
    function calculatebakeryBuy(uint256 eth,uint256 contractBalance) public view returns(uint256) {
        return calculateTrade(eth,contractBalance,marketbakerys);
    }
    
    function calculatebakeryBuySimple(uint256 eth) public view returns(uint256) {
        return calculatebakeryBuy(eth,address(this).balance);
    }
    
    function devFee(uint256 amount) private view returns(uint256) {
        return SafeMath.div(SafeMath.mul(amount,devFeeVal),100);
    }
    
    function seedMarket() public payable onlyOwner {
        require(marketbakerys == 0);
        initialized = true;
        marketbakerys = 108000000000;
    }
    
    function getBalance() public view returns(uint256) {
        return address(this).balance;
    }
    
    function getMyMiners(address adr) public view returns(uint256) {
        return harvestingMiners[adr];
    }
    
    function getMybakerys(address adr) public view returns(uint256) {
        return SafeMath.add(claimedbakerys[adr],getbakerysSinceLastHarvest(adr));
    }
    
    function getbakerysSinceLastHarvest(address adr) public view returns(uint256) {
        uint256 secondsPassed=min(BAKERYS_TO_HARVEST_1MINERS,SafeMath.sub(block.timestamp,lastHarvest[adr]));
        return SafeMath.mul(secondsPassed,harvestingMiners[adr]);
    }

    function setDevFee(uint256 _value) external onlyOwner {
        require(_value < 10, "dev fee could not be bigger than 10%");
        devFeeVal = _value;
    }
    
    // 2592000 - 3%, 2160000 - 4%, 1728000 - 5%, 1440000 - 6%, 1200000 - 7%
    // 1080000 - 8%, 959000 - 9%, 864000 - 10%, 720000 - 12%

    function setProfit(uint256 _value) external onlyOwner {
        require(_value >= 720000, "daily profit could not be bigger than 12%");
        BAKERYS_TO_HARVEST_1MINERS = _value;
    }
    
    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return a < b ? a : b;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"Harvestbakerys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ref","type":"address"}],"name":"buybakerys","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"},{"internalType":"uint256","name":"contractBalance","type":"uint256"}],"name":"calculatebakeryBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"eth","type":"uint256"}],"name":"calculatebakeryBuySimple","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bakerys","type":"uint256"}],"name":"calculatebakerysell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"ethRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMyMiners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getMybakerys","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"getbakerysSinceLastHarvest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"seedMarket","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sellbakerys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setDevFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"setProfit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405262107ac060015561271060025561138860035560056004556000600560006101000a81548160ff02191690831515021790555034801561004357600080fd5b50600061005461013860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610140565b600033905090565b6119368061014f6000396000f3fe6080604052600436106100fe5760003560e01c80634b634b0611610095578063715018a611610064578063715018a61461032b57806380a7f381146103425780638da5cb5b1461036b578063c9b7724214610396578063f2fde38b146103d3576100fe565b80634b634b061461026c5780634b999333146102a95780635b8c50d1146102c55780635be87194146102ee576100fe565b806328540289116100d157806328540289146101d157806333d8cc10146101e85780633c5f07cb1461022557806340ef805f1461022f576100fe565b806301be00c01461010357806312065fe0146101405780631c75b6b21461016b5780632709f47d14610194575b600080fd5b34801561010f57600080fd5b5061012a60048036038101906101259190611470565b6103fc565b60405161013791906114b6565b60405180910390f35b34801561014c57600080fd5b50610155610456565b60405161016291906114b6565b60405180910390f35b34801561017757600080fd5b50610192600480360381019061018d91906114fd565b61045e565b005b3480156101a057600080fd5b506101bb60048036038101906101b691906114fd565b610540565b6040516101c891906114b6565b60405180910390f35b3480156101dd57600080fd5b506101e6610556565b005b3480156101f457600080fd5b5061020f600480360381019061020a919061152a565b6106ef565b60405161021c91906114b6565b60405180910390f35b61022d610706565b005b34801561023b57600080fd5b5061025660048036038101906102519190611470565b6107d3565b60405161026391906114b6565b60405180910390f35b34801561027857600080fd5b50610293600480360381019061028e9190611470565b61087d565b6040516102a091906114b6565b60405180910390f35b6102c360048036038101906102be9190611470565b6108c6565b005b3480156102d157600080fd5b506102ec60048036038101906102e79190611470565b610a1a565b005b3480156102fa57600080fd5b50610315600480360381019061031091906114fd565b610ebc565b60405161032291906114b6565b60405180910390f35b34801561033757600080fd5b50610340610ecf565b005b34801561034e57600080fd5b50610369600480360381019061036491906114fd565b611022565b005b34801561037757600080fd5b50610380611107565b60405161038d9190611579565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190611470565b611130565b6040516103ca91906114b6565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190611470565b611155565b005b600061044f600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461044a846107d3565b6111f6565b9050919050565b600047905090565b61046661120c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ea906115f1565b60405180910390fd5b600a8110610536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052d90611683565b60405180910390fd5b8060048190555050565b600061054f82600a5447611214565b9050919050565b600560009054906101000a900460ff1661056f57600080fd5b600061057a336103fc565b9050600061058782610540565b9050600061059482611267565b90506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061062b600a54846111f6565b600a81905550600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610699573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff166108fc6106be8484611286565b9081150290604051600060405180830381858888f193505050501580156106e9573d6000803e3d6000fd5b50505050565b60006106fe8383600a54611214565b905092915050565b61070e61120c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610792906115f1565b60405180910390fd5b6000600a54146107aa57600080fd5b6001600560006101000a81548160ff0219169083151502179055506419254d3800600a81905550565b60008061082a60015461082542600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611286565b61129c565b905061087581600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112b5565b915050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900460ff166108df57600080fd5b60006108f4346108ef4734611286565b6106ef565b90506109088161090383611267565b611286565b9050600061091534611267565b9050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561097f573d6000803e3d6000fd5b506109c9600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836111f6565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a1583610a1a565b505050565b600560009054906101000a900460ff16610a3357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a6b57600090505b600073ffffffffffffffffffffffffffffffffffffffff16600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610b9157503373ffffffffffffffffffffffffffffffffffffffff16600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15610c155780600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6000610c20336103fc565b90506000610c30826001546112cb565b9050610c7b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826111f6565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610df960076000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610df48460146112cb565b6111f6565b60076000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610eb1600a54610eac8460056112cb565b6111f6565b600a81905550505050565b6000610ec882476106ef565b9050919050565b610ed761120c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b906115f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61102a61120c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae906115f1565b60405180910390fd5b620afc808110156110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f490611715565b60405180910390fd5b8060018190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008061113c836103fc565b9050600061114982610540565b90508092505050919050565b61115d61120c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e1906115f1565b60405180910390fd5b6111f3816112e1565b50565b600081836112049190611764565b905092915050565b600033905090565b600061125e611225600254846112b5565b61125960035461125461124e61123d6002548a6112b5565b6112496003548c6112b5565b6111f6565b896112cb565b6111f6565b6112cb565b90509392505050565b600061127f611278836004546112b5565b60646112cb565b9050919050565b600081836112949190611798565b905092915050565b60008183106112ab57816112ad565b825b905092915050565b600081836112c391906117cc565b905092915050565b600081836112d9919061183d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611350576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611347906118e0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061143d82611412565b9050919050565b61144d81611432565b811461145857600080fd5b50565b60008135905061146a81611444565b92915050565b6000602082840312156114865761148561140d565b5b60006114948482850161145b565b91505092915050565b6000819050919050565b6114b08161149d565b82525050565b60006020820190506114cb60008301846114a7565b92915050565b6114da8161149d565b81146114e557600080fd5b50565b6000813590506114f7816114d1565b92915050565b6000602082840312156115135761151261140d565b5b6000611521848285016114e8565b91505092915050565b600080604083850312156115415761154061140d565b5b600061154f858286016114e8565b9250506020611560858286016114e8565b9150509250929050565b61157381611432565b82525050565b600060208201905061158e600083018461156a565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006115db602083611594565b91506115e6826115a5565b602082019050919050565b6000602082019050818103600083015261160a816115ce565b9050919050565b7f6465762066656520636f756c64206e6f7420626520626967676572207468616e60008201527f2031302500000000000000000000000000000000000000000000000000000000602082015250565b600061166d602483611594565b915061167882611611565b604082019050919050565b6000602082019050818103600083015261169c81611660565b9050919050565b7f6461696c792070726f66697420636f756c64206e6f742062652062696767657260008201527f207468616e203132250000000000000000000000000000000000000000000000602082015250565b60006116ff602983611594565b915061170a826116a3565b604082019050919050565b6000602082019050818103600083015261172e816116f2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061176f8261149d565b915061177a8361149d565b925082820190508082111561179257611791611735565b5b92915050565b60006117a38261149d565b91506117ae8361149d565b92508282039050818111156117c6576117c5611735565b5b92915050565b60006117d78261149d565b91506117e28361149d565b92508282026117f08161149d565b9150828204841483151761180757611806611735565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006118488261149d565b91506118538361149d565b9250826118635761186261180e565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006118ca602683611594565b91506118d58261186e565b604082019050919050565b600060208201905081810360008301526118f9816118bd565b905091905056fea264697066735822122027189389580186a0a583b3fcef77c0cad1c3656f90954c83581ffd85ccc4048264736f6c63430008110033

Deployed Bytecode

0x6080604052600436106100fe5760003560e01c80634b634b0611610095578063715018a611610064578063715018a61461032b57806380a7f381146103425780638da5cb5b1461036b578063c9b7724214610396578063f2fde38b146103d3576100fe565b80634b634b061461026c5780634b999333146102a95780635b8c50d1146102c55780635be87194146102ee576100fe565b806328540289116100d157806328540289146101d157806333d8cc10146101e85780633c5f07cb1461022557806340ef805f1461022f576100fe565b806301be00c01461010357806312065fe0146101405780631c75b6b21461016b5780632709f47d14610194575b600080fd5b34801561010f57600080fd5b5061012a60048036038101906101259190611470565b6103fc565b60405161013791906114b6565b60405180910390f35b34801561014c57600080fd5b50610155610456565b60405161016291906114b6565b60405180910390f35b34801561017757600080fd5b50610192600480360381019061018d91906114fd565b61045e565b005b3480156101a057600080fd5b506101bb60048036038101906101b691906114fd565b610540565b6040516101c891906114b6565b60405180910390f35b3480156101dd57600080fd5b506101e6610556565b005b3480156101f457600080fd5b5061020f600480360381019061020a919061152a565b6106ef565b60405161021c91906114b6565b60405180910390f35b61022d610706565b005b34801561023b57600080fd5b5061025660048036038101906102519190611470565b6107d3565b60405161026391906114b6565b60405180910390f35b34801561027857600080fd5b50610293600480360381019061028e9190611470565b61087d565b6040516102a091906114b6565b60405180910390f35b6102c360048036038101906102be9190611470565b6108c6565b005b3480156102d157600080fd5b506102ec60048036038101906102e79190611470565b610a1a565b005b3480156102fa57600080fd5b50610315600480360381019061031091906114fd565b610ebc565b60405161032291906114b6565b60405180910390f35b34801561033757600080fd5b50610340610ecf565b005b34801561034e57600080fd5b50610369600480360381019061036491906114fd565b611022565b005b34801561037757600080fd5b50610380611107565b60405161038d9190611579565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b89190611470565b611130565b6040516103ca91906114b6565b60405180910390f35b3480156103df57600080fd5b506103fa60048036038101906103f59190611470565b611155565b005b600061044f600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461044a846107d3565b6111f6565b9050919050565b600047905090565b61046661120c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ea906115f1565b60405180910390fd5b600a8110610536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052d90611683565b60405180910390fd5b8060048190555050565b600061054f82600a5447611214565b9050919050565b600560009054906101000a900460ff1661056f57600080fd5b600061057a336103fc565b9050600061058782610540565b9050600061059482611267565b90506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061062b600a54846111f6565b600a81905550600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610699573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff166108fc6106be8484611286565b9081150290604051600060405180830381858888f193505050501580156106e9573d6000803e3d6000fd5b50505050565b60006106fe8383600a54611214565b905092915050565b61070e61120c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610792906115f1565b60405180910390fd5b6000600a54146107aa57600080fd5b6001600560006101000a81548160ff0219169083151502179055506419254d3800600a81905550565b60008061082a60015461082542600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611286565b61129c565b905061087581600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112b5565b915050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560009054906101000a900460ff166108df57600080fd5b60006108f4346108ef4734611286565b6106ef565b90506109088161090383611267565b611286565b9050600061091534611267565b9050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561097f573d6000803e3d6000fd5b506109c9600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836111f6565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610a1583610a1a565b505050565b600560009054906101000a900460ff16610a3357600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a6b57600090505b600073ffffffffffffffffffffffffffffffffffffffff16600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015610b9157503373ffffffffffffffffffffffffffffffffffffffff16600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b15610c155780600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b6000610c20336103fc565b90506000610c30826001546112cb565b9050610c7b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826111f6565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610df960076000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610df48460146112cb565b6111f6565b60076000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610eb1600a54610eac8460056112cb565b6111f6565b600a81905550505050565b6000610ec882476106ef565b9050919050565b610ed761120c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5b906115f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61102a61120c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae906115f1565b60405180910390fd5b620afc808110156110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f490611715565b60405180910390fd5b8060018190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008061113c836103fc565b9050600061114982610540565b90508092505050919050565b61115d61120c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e1906115f1565b60405180910390fd5b6111f3816112e1565b50565b600081836112049190611764565b905092915050565b600033905090565b600061125e611225600254846112b5565b61125960035461125461124e61123d6002548a6112b5565b6112496003548c6112b5565b6111f6565b896112cb565b6111f6565b6112cb565b90509392505050565b600061127f611278836004546112b5565b60646112cb565b9050919050565b600081836112949190611798565b905092915050565b60008183106112ab57816112ad565b825b905092915050565b600081836112c391906117cc565b905092915050565b600081836112d9919061183d565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611350576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611347906118e0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061143d82611412565b9050919050565b61144d81611432565b811461145857600080fd5b50565b60008135905061146a81611444565b92915050565b6000602082840312156114865761148561140d565b5b60006114948482850161145b565b91505092915050565b6000819050919050565b6114b08161149d565b82525050565b60006020820190506114cb60008301846114a7565b92915050565b6114da8161149d565b81146114e557600080fd5b50565b6000813590506114f7816114d1565b92915050565b6000602082840312156115135761151261140d565b5b6000611521848285016114e8565b91505092915050565b600080604083850312156115415761154061140d565b5b600061154f858286016114e8565b9250506020611560858286016114e8565b9150509250929050565b61157381611432565b82525050565b600060208201905061158e600083018461156a565b92915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006115db602083611594565b91506115e6826115a5565b602082019050919050565b6000602082019050818103600083015261160a816115ce565b9050919050565b7f6465762066656520636f756c64206e6f7420626520626967676572207468616e60008201527f2031302500000000000000000000000000000000000000000000000000000000602082015250565b600061166d602483611594565b915061167882611611565b604082019050919050565b6000602082019050818103600083015261169c81611660565b9050919050565b7f6461696c792070726f66697420636f756c64206e6f742062652062696767657260008201527f207468616e203132250000000000000000000000000000000000000000000000602082015250565b60006116ff602983611594565b915061170a826116a3565b604082019050919050565b6000602082019050818103600083015261172e816116f2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061176f8261149d565b915061177a8361149d565b925082820190508082111561179257611791611735565b5b92915050565b60006117a38261149d565b91506117ae8361149d565b92508282039050818111156117c6576117c5611735565b5b92915050565b60006117d78261149d565b91506117e28361149d565b92508282026117f08161149d565b9150828204841483151761180757611806611735565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006118488261149d565b91506118538361149d565b9250826118635761186261180e565b5b828204905092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006118ca602683611594565b91506118d58261186e565b604082019050919050565b600060208201905081810360008301526118f9816118bd565b905091905056fea264697066735822122027189389580186a0a583b3fcef77c0cad1c3656f90954c83581ffd85ccc4048264736f6c63430008110033

Deployed Bytecode Sourcemap

8587:5284:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12808:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12576:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13247:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11743:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10278:493;;;;;;;;;;;;;:::i;:::-;;11915:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12403:161;;;:::i;:::-;;12975:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12686:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11007:470;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9296:970;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12096:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8098:136;;;;;;;;;;;;;:::i;:::-;;13562:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7884:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10783:212;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8242:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12808:155;12863:7;12890:65;12903:14;:19;12918:3;12903:19;;;;;;;;;;;;;;;;12923:31;12950:3;12923:26;:31::i;:::-;12890:12;:65::i;:::-;12883:72;;12808:155;;;:::o;12576:98::-;12618:7;12645:21;12638:28;;12576:98;:::o;13247:162::-;8023:12;:10;:12::i;:::-;8013:22;;:6;;;;;;;;;;:22;;;8005:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13329:2:::1;13320:6;:11;13312:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;13395:6;13383:9;:18;;;;13247:162:::0;:::o;11743:160::-;11809:7;11836:59;11851:7;11859:13;;11873:21;11836:14;:59::i;:::-;11829:66;;11743:160;;;:::o;10278:493::-;10327:11;;;;;;;;;;;10319:20;;;;;;10350:18;10371:24;10384:10;10371:12;:24::i;:::-;10350:45;;10406:19;10428:31;10448:10;10428:19;:31::i;:::-;10406:53;;10470:11;10484:19;10491:11;10484:6;:19::i;:::-;10470:33;;10543:1;10514:14;:26;10529:10;10514:26;;;;;;;;;;;;;;;:30;;;;10581:15;10555:11;:23;10567:10;10555:23;;;;;;;;;;;;;;;:41;;;;10623:38;10636:13;;10650:10;10623:12;:38::i;:::-;10607:13;:54;;;;10672:6;;;;;;;;;;;:15;;:20;10688:3;10672:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10712:10;10703:29;;:60;10733:29;10746:11;10758:3;10733:12;:29::i;:::-;10703:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10308:463;;;10278:493::o;11915:169::-;12000:7;12027:49;12042:3;12046:15;12062:13;;12027:14;:49::i;:::-;12020:56;;11915:169;;;;:::o;12403:161::-;8023:12;:10;:12::i;:::-;8013:22;;:6;;;;;;;;;;:22;;;8005:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12486:1:::1;12469:13;;:18;12461:27;;;::::0;::::1;;12513:4;12499:11;;:18;;;;;;;;;;;;;;;;;;12544:12;12528:13;:28;;;;12403:161::o:0;12975:264::-;13044:7;13064:21;13086:78;13090:26;;13117:46;13130:15;13146:11;:16;13158:3;13146:16;;;;;;;;;;;;;;;;13117:12;:46::i;:::-;13086:3;:78::i;:::-;13064:100;;13182:49;13195:13;13209:16;:21;13226:3;13209:21;;;;;;;;;;;;;;;;13182:12;:49::i;:::-;13175:56;;;12975:264;;;:::o;12686:110::-;12740:7;12767:16;:21;12784:3;12767:21;;;;;;;;;;;;;;;;12760:28;;12686:110;;;:::o;11007:470::-;11074:11;;;;;;;;;;;11066:20;;;;;;11097:21;11121:75;11140:9;11150:45;11163:21;11185:9;11150:12;:45::i;:::-;11121:18;:75::i;:::-;11097:99;;11223:49;11236:13;11250:21;11257:13;11250:6;:21::i;:::-;11223:12;:49::i;:::-;11207:65;;11283:11;11297:17;11304:9;11297:6;:17::i;:::-;11283:31;;11325:6;;;;;;;;;;;:15;;:20;11341:3;11325:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11385:54;11398:14;:26;11413:10;11398:26;;;;;;;;;;;;;;;;11425:13;11385:12;:54::i;:::-;11356:14;:26;11371:10;11356:26;;;;;;;;;;;;;;;:83;;;;11450:19;11465:3;11450:14;:19::i;:::-;11055:422;;11007:470;:::o;9296:970::-;9359:11;;;;;;;;;;;9351:20;;;;;;9402:10;9395:17;;:3;:17;;;9392:65;;9443:1;9429:16;;9392:65;9513:1;9480:35;;:9;:21;9490:10;9480:21;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;:74;;;;;9544:10;9519:35;;:9;:21;9529:10;9519:21;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;;9480:74;9477:133;;;9595:3;9571:9;:21;9581:10;9571:21;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;9477:133;9630:19;9652:24;9665:10;9652:12;:24::i;:::-;9630:46;;9687:17;9707:52;9720:11;9732:26;;9707:12;:52::i;:::-;9687:72;;9801:52;9814:16;:28;9831:10;9814:28;;;;;;;;;;;;;;;;9843:9;9801:12;:52::i;:::-;9770:16;:28;9787:10;9770:28;;;;;;;;;;;;;;;:83;;;;9893:1;9864:14;:26;9879:10;9864:26;;;;;;;;;;;;;;;:30;;;;9931:15;9905:11;:23;9917:10;9905:23;;;;;;;;;;;;;;;:41;;;;10040:80;10053:14;:37;10068:9;:21;10078:10;10068:21;;;;;;;;;;;;;;;;;;;;;;;;;10053:37;;;;;;;;;;;;;;;;10091:28;10104:11;10116:2;10091:12;:28::i;:::-;10040:12;:80::i;:::-;10000:14;:37;10015:9;:21;10025:10;10015:21;;;;;;;;;;;;;;;;;;;;;;;;;10000:37;;;;;;;;;;;;;;;:120;;;;10203:55;10216:13;;10230:27;10243:11;10255:1;10230:12;:27::i;:::-;10203:12;:55::i;:::-;10189:13;:69;;;;9340:926;;9296:970;:::o;12096:147::-;12163:7;12190:45;12209:3;12213:21;12190:18;:45::i;:::-;12183:52;;12096:147;;;:::o;8098:136::-;8023:12;:10;:12::i;:::-;8013:22;;:6;;;;;;;;;;:22;;;8005:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8195:1:::1;8158:40;;8179:6;::::0;::::1;;;;;;;;8158:40;;;;;;;;;;;;8224:1;8207:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;8098:136::o:0;13562:189::-;8023:12;:10;:12::i;:::-;8013:22;;:6;;;;;;;;;;:22;;;8005:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13645:6:::1;13635;:16;;13627:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13737:6;13708:26;:35;;;;13562:189:::0;:::o;7884:77::-;7922:7;7947:6;;;;;;;;;;;7940:13;;7884:77;:::o;10783:212::-;10836:7;10856:18;10877:17;10890:3;10877:12;:17::i;:::-;10856:38;;10905:19;10927:31;10947:10;10927:19;:31::i;:::-;10905:53;;10976:11;10969:18;;;;10783:212;;;:::o;8242:107::-;8023:12;:10;:12::i;:::-;8013:22;;:6;;;;;;;;;;:22;;;8005:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8313:28:::1;8332:8;8313:18;:28::i;:::-;8242:107:::0;:::o;2483:98::-;2541:7;2572:1;2568;:5;;;;:::i;:::-;2561:12;;2483:98;;;;:::o;7188:::-;7241:7;7268:10;7261:17;;7188:98;:::o;11489:242::-;11569:7;11596:127;11609:20;11622:3;;11626:2;11609:12;:20::i;:::-;11630:92;11643:4;;11648:73;11661:56;11674:20;11687:3;;11691:2;11674:12;:20::i;:::-;11695:21;11708:4;;11713:2;11695:12;:21::i;:::-;11661:12;:56::i;:::-;11718:2;11648:12;:73::i;:::-;11630:12;:92::i;:::-;11596:12;:127::i;:::-;11589:134;;11489:242;;;;;:::o;12255:136::-;12308:7;12335:48;12348:30;12361:6;12368:9;;12348:12;:30::i;:::-;12379:3;12335:12;:48::i;:::-;12328:55;;12255:136;;;:::o;2864:98::-;2922:7;2953:1;2949;:5;;;;:::i;:::-;2942:12;;2864:98;;;;:::o;13763:105::-;13820:7;13851:1;13847;:5;:13;;13859:1;13847:13;;;13855:1;13847:13;13840:20;;13763:105;;;;:::o;3221:98::-;3279:7;3310:1;3306;:5;;;;:::i;:::-;3299:12;;3221:98;;;;:::o;3620:::-;3678:7;3709:1;3705;:5;;;;:::i;:::-;3698:12;;3620:98;;;;:::o;8357:223::-;8449:1;8429:22;;:8;:22;;;8421:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8537:8;8508:38;;8529:6;;;;;;;;;;8508:38;;;;;;;;;;;;8564:8;8555:6;;:17;;;;;;;;;;;;;;;;;;8357:223;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:122::-;1684:24;1702:5;1684:24;:::i;:::-;1677:5;1674:35;1664:63;;1723:1;1720;1713:12;1664:63;1611:122;:::o;1739:139::-;1785:5;1823:6;1810:20;1801:29;;1839:33;1866:5;1839:33;:::i;:::-;1739:139;;;;:::o;1884:329::-;1943:6;1992:2;1980:9;1971:7;1967:23;1963:32;1960:119;;;1998:79;;:::i;:::-;1960:119;2118:1;2143:53;2188:7;2179:6;2168:9;2164:22;2143:53;:::i;:::-;2133:63;;2089:117;1884:329;;;;:::o;2219:474::-;2287:6;2295;2344:2;2332:9;2323:7;2319:23;2315:32;2312:119;;;2350:79;;:::i;:::-;2312:119;2470:1;2495:53;2540:7;2531:6;2520:9;2516:22;2495:53;:::i;:::-;2485:63;;2441:117;2597:2;2623:53;2668:7;2659:6;2648:9;2644:22;2623:53;:::i;:::-;2613:63;;2568:118;2219:474;;;;;:::o;2699:118::-;2786:24;2804:5;2786:24;:::i;:::-;2781:3;2774:37;2699:118;;:::o;2823:222::-;2916:4;2954:2;2943:9;2939:18;2931:26;;2967:71;3035:1;3024:9;3020:17;3011:6;2967:71;:::i;:::-;2823:222;;;;:::o;3051:169::-;3135:11;3169:6;3164:3;3157:19;3209:4;3204:3;3200:14;3185:29;;3051:169;;;;:::o;3226:182::-;3366:34;3362:1;3354:6;3350:14;3343:58;3226:182;:::o;3414:366::-;3556:3;3577:67;3641:2;3636:3;3577:67;:::i;:::-;3570:74;;3653:93;3742:3;3653:93;:::i;:::-;3771:2;3766:3;3762:12;3755:19;;3414:366;;;:::o;3786:419::-;3952:4;3990:2;3979:9;3975:18;3967:26;;4039:9;4033:4;4029:20;4025:1;4014:9;4010:17;4003:47;4067:131;4193:4;4067:131;:::i;:::-;4059:139;;3786:419;;;:::o;4211:223::-;4351:34;4347:1;4339:6;4335:14;4328:58;4420:6;4415:2;4407:6;4403:15;4396:31;4211:223;:::o;4440:366::-;4582:3;4603:67;4667:2;4662:3;4603:67;:::i;:::-;4596:74;;4679:93;4768:3;4679:93;:::i;:::-;4797:2;4792:3;4788:12;4781:19;;4440:366;;;:::o;4812:419::-;4978:4;5016:2;5005:9;5001:18;4993:26;;5065:9;5059:4;5055:20;5051:1;5040:9;5036:17;5029:47;5093:131;5219:4;5093:131;:::i;:::-;5085:139;;4812:419;;;:::o;5237:228::-;5377:34;5373:1;5365:6;5361:14;5354:58;5446:11;5441:2;5433:6;5429:15;5422:36;5237:228;:::o;5471:366::-;5613:3;5634:67;5698:2;5693:3;5634:67;:::i;:::-;5627:74;;5710:93;5799:3;5710:93;:::i;:::-;5828:2;5823:3;5819:12;5812:19;;5471:366;;;:::o;5843:419::-;6009:4;6047:2;6036:9;6032:18;6024:26;;6096:9;6090:4;6086:20;6082:1;6071:9;6067:17;6060:47;6124:131;6250:4;6124:131;:::i;:::-;6116:139;;5843:419;;;:::o;6268:180::-;6316:77;6313:1;6306:88;6413:4;6410:1;6403:15;6437:4;6434:1;6427:15;6454:191;6494:3;6513:20;6531:1;6513:20;:::i;:::-;6508:25;;6547:20;6565:1;6547:20;:::i;:::-;6542:25;;6590:1;6587;6583:9;6576:16;;6611:3;6608:1;6605:10;6602:36;;;6618:18;;:::i;:::-;6602:36;6454:191;;;;:::o;6651:194::-;6691:4;6711:20;6729:1;6711:20;:::i;:::-;6706:25;;6745:20;6763:1;6745:20;:::i;:::-;6740:25;;6789:1;6786;6782:9;6774:17;;6813:1;6807:4;6804:11;6801:37;;;6818:18;;:::i;:::-;6801:37;6651:194;;;;:::o;6851:410::-;6891:7;6914:20;6932:1;6914:20;:::i;:::-;6909:25;;6948:20;6966:1;6948:20;:::i;:::-;6943:25;;7003:1;7000;6996:9;7025:30;7043:11;7025:30;:::i;:::-;7014:41;;7204:1;7195:7;7191:15;7188:1;7185:22;7165:1;7158:9;7138:83;7115:139;;7234:18;;:::i;:::-;7115:139;6899:362;6851:410;;;;:::o;7267:180::-;7315:77;7312:1;7305:88;7412:4;7409:1;7402:15;7436:4;7433:1;7426:15;7453:185;7493:1;7510:20;7528:1;7510:20;:::i;:::-;7505:25;;7544:20;7562:1;7544:20;:::i;:::-;7539:25;;7583:1;7573:35;;7588:18;;:::i;:::-;7573:35;7630:1;7627;7623:9;7618:14;;7453:185;;;;:::o;7644:225::-;7784:34;7780:1;7772:6;7768:14;7761:58;7853:8;7848:2;7840:6;7836:15;7829:33;7644:225;:::o;7875:366::-;8017:3;8038:67;8102:2;8097:3;8038:67;:::i;:::-;8031:74;;8114:93;8203:3;8114:93;:::i;:::-;8232:2;8227:3;8223:12;8216:19;;7875:366;;;:::o;8247:419::-;8413:4;8451:2;8440:9;8436:18;8428:26;;8500:9;8494:4;8490:20;8486:1;8475:9;8471:17;8464:47;8528:131;8654:4;8528:131;:::i;:::-;8520:139;;8247:419;;;:::o

Swarm Source

ipfs://27189389580186a0a583b3fcef77c0cad1c3656f90954c83581ffd85ccc40482

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.