Contract 0x8f6b1439253698a99fB4bb5a2549f13bC7D25984

 
 
Txn Hash
Method
Block
From
To
Value
0x65c943d097f58e7021a95f6d33d4141cda36003a6b475d68da91a68b4ba63bc9Refund ETH102912732020-06-18 18:20:48903 days 5 hrs agoCryptoSpaceCommanders: Deployer IN  0x8f6b1439253698a99fb4bb5a2549f13bc7d259840 Ether0.0008907938
0x9878e0209cb35805d33e2c491a22894500f658a50ae3b9497ec7cd4cb7f4307bAuction Winner102912522020-06-18 18:17:18903 days 5 hrs agoCryptoSpaceCommanders: Deployer IN  0x8f6b1439253698a99fb4bb5a2549f13bc7d259840 Ether0.0040308138
0x6d97d8f12410ff5508247f9dc2ba551b34f0f580822b0fd9bcbc34823f61b4e6Update Transfer ...102909752020-06-18 17:17:29903 days 6 hrs agoCryptoSpaceCommanders: Deployer IN  0x8f6b1439253698a99fb4bb5a2549f13bc7d259840 Ether0.0013396931
0x74fc961fc70f2963ae5ba521f01f160c0087c0fcf31336133ab34927e8d4ecb7Transfer102815642020-06-17 6:17:27904 days 17 hrs ago0x08797952462b82db639ddbfdef2ab1718ffa7676 IN  0x8f6b1439253698a99fb4bb5a2549f13bc7d2598425 Ether0.0028770735
0x3e2e1ad0817b9e5614c8c36f04f3038f905ef2ae46264d4e8ec347d9c2fb22dcTransfer102737182020-06-16 0:56:22905 days 22 hrs ago0xc1bf22a6e87674f651ee4e0675b481a2a134c343 IN  0x8f6b1439253698a99fb4bb5a2549f13bc7d2598423.56798 Ether0.0023328424
[ Download CSV Export 
Latest 3 internal transactions
Parent Txn Hash Block From To Value
0x65c943d097f58e7021a95f6d33d4141cda36003a6b475d68da91a68b4ba63bc9102912732020-06-18 18:20:48903 days 5 hrs ago 0x8f6b1439253698a99fb4bb5a2549f13bc7d259840xc1bf22a6e87674f651ee4e0675b481a2a134c34323.56798 Ether
0x9878e0209cb35805d33e2c491a22894500f658a50ae3b9497ec7cd4cb7f4307b102912522020-06-18 18:17:18903 days 5 hrs ago 0x8f6b1439253698a99fb4bb5a2549f13bc7d25984CryptoSpaceCommanders: Deployer25 Ether
0x3881b5767622689600166109b52c59c6c67dbf2bd557e195ba8c5b54d379adcf102730582020-06-15 22:27:22906 days 1 hr ago 0x4cf34a460e0c855af3b38ec093c46216b2d09b85  Contract Creation0 Ether
[ Download CSV Export 
Loading

Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x810d470894e6a6207b7d01ba22049301e645c408

Contract Name:
SEAuction

Compiler Version
v0.6.0+commit.26b70077

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-05-29
*/

/**
 * Created on 2020-05-11
 * @summary: SE Auction Master Contract
 * @author: Fazri Zubair & Farhan Khwaja
 */

pragma solidity ^0.6.0;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that revert on error
 */
library SafeMath {

  /**
  * @dev Multiplies two numbers, 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 numbers truncating the quotient, reverts on division by zero.
  */
  function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
    require (_b > 0); // Solidity only automatically asserts when dividing by 0
    uint256 c = _a / _b;
    // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold

    return c;
  }

  /**
  * @dev Subtracts two numbers, 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 numbers, reverts on overflow.
  */
  function add(uint256 _a, uint256 _b) internal pure returns (uint256) {
    uint256 c = _a + _b;
    require (c >= _a);

    return c;
  }
}

/**
 * Utility library of inline functions on addresses
 */
library AddressUtils {

  /**
  * Returns whether the target address is a contract
  * @dev This function will return false if invoked during the constructor of a contract,
  *  as the code is not actually created until after the constructor finishes.
  * @param addr address to check
  * @return whether the target address is a contract
  */
  function isContract(address addr) internal view returns (bool) {
    uint256 size;
    // XXX Currently there is no better way to check if there is a contract in an address
    // than to check the size of the code at that address.
    // See https://ethereum.stackexchange.com/a/14016/36603
    // for more details about how this works.
    // TODO Check this again before the Serenity release, because all addresses will be
    // contracts then.
    // solium-disable-next-line security/no-inline-assembly
    assembly {
      size := extcodesize(addr) 
    }
    return size > 0;
  }
}

interface ERC721TokenReceiver {
    /// @notice Handle the receipt of an NFT
    /// @dev The ERC721 smart contract calls this function on the
    /// recipient after a `transfer`. This function MAY throw to revert and reject the transfer. Return
    /// of other than the magic value MUST result in the transaction being reverted.
    /// @notice The contract address is always the message sender.
    /// @param _operator The address which called `safeTransferFrom` function
    /// @param _from The address which previously owned the token
    /// @param _tokenId The NFT identifier which is being transferred
    /// @param _data Additional data with no specified format
    /// @return `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))`
    /// unless throwing
    function onERC721Received(address _operator, address _from, uint256 _tokenId, bytes32 _data) external returns(bytes4);
}

/* basic Interface to access any ERC721 standard functions
 * @title ERC721Token
 */
interface ERC721Token {
    /// @notice Transfer ownership of an NFT -- THE CALLER IS RESPONSIBLE
    ///  TO CONFIRM THAT `_to` IS CAPABLE OF RECEIVING NFTS OR ELSE
    ///  THEY MAY BE PERMANENTLY LOST
    /// @dev Throws unless `msg.sender` is the current owner, an authorized
    ///  operator, or the approved address for this NFT. Throws if `_from` is
    ///  not the current owner. Throws if `_to` is the zero address. Throws if
    ///  `_tokenId` is not a valid NFT.
    /// @param _from The current owner of the NFT
    /// @param _to The new owner
    /// @param _tokenId The NFT to transfer
    function transferFrom(address _from, address _to, uint256 _tokenId) external payable;
    
    /// @notice Find the owner of an NFT
    /// @dev NFTs assigned to zero address are considered invalid, and queries
    ///  about them do throw.
    /// @param _tokenId The identifier for an NFT
    /// @return The address of the owner of the NFT
    function ownerOf(uint256 _tokenId) external view returns (address);
    
    function approve(address _to, uint256 _tokenId) external;
    function transfer(address _to, uint256 _tokenId) external;
    function implementsERC721() external pure returns (bool);
}

/** Controls state and access rights for contract functions
 * @title Operational Control
 * @author Fazri Zubair & Farhan Khwaja (Lucid Sight, Inc.)
 * Inspired and adapted from contract created by OpenZeppelin 
 * Ref: https://github.com/OpenZeppelin/zeppelin-solidity/
 */
contract OperationalControl {
  /// Facilitates access & control for the game.
  /// Roles:
  ///  -The Managers (Primary/Secondary): Has universal control of all elements (No ability to withdraw)
  ///  -The Banker: The Bank can withdraw funds and adjust fees / prices.
  ///  -otherManagers: Contracts that need access to functions for gameplay

  /// @dev Emited when contract is upgraded
  event ContractUpgrade(address newContract);

  /// @dev The addresses of the accounts (or contracts) that can execute actions within each roles.
  address public managerPrimary;
  address public managerSecondary;
  address payable public bankManager;

  // Contracts that require access for gameplay
  mapping(address => uint8) public otherManagers;

  // @dev Keeps track whether the contract is paused. When that is true, most actions are blocked
  bool public paused = false;

  // @dev Keeps track whether the contract erroredOut. When that is true, most actions are blocked & 
  // refund can be claimed
  bool public error = false;

  /**
  * @dev Operation modifiers for limiting access only to Managers
  */
  modifier onlyManager() {
    require (msg.sender == managerPrimary || msg.sender == managerSecondary || otherManagers[msg.sender] == 1);
    _;
  }

  /**
  * @dev Operation modifiers for limiting access only to Bank Manager
  */
  modifier onlyBanker() {
    require (msg.sender == bankManager);
    _;
  }

  /**
  * @dev Operation modifiers for any Operators
  */
  modifier anyOperator() {
    require (
        msg.sender == managerPrimary ||
        msg.sender == managerSecondary ||
        msg.sender == bankManager ||
        otherManagers[msg.sender] == 1
    );
    _;
  }

  /**
  * @dev Assigns a new address to act as the Primary Manager.
  * @param _newGM    New primary manager address
  */
  function setPrimaryManager(address _newGM) external onlyManager {
    require (_newGM != address(0));

    managerPrimary = _newGM;
  }

  /**
  * @dev Assigns a new address to act as the Secondary Manager.
  * @param _newGM    New Secondary Manager Address
  */
  function setSecondaryManager(address _newGM) external onlyManager {
    require (_newGM != address(0));

    managerSecondary = _newGM;
  }

  /**
    * @dev Assigns a new address to act as the Bank Manager.
    * @param _newBM    New Bank Manager Address
    */
  function setBankManager(address payable _newBM) external onlyManager {
    require (_newBM != address(0));

    bankManager = _newBM;
  }

  /// @dev Assigns a new address to act as the Other Manager. (State = 1 is active, 0 is disabled)
  function setOtherManager(address _newOp, uint8 _state) external onlyManager {
    require (_newOp != address(0));

    otherManagers[_newOp] = _state;
  }

  /// @dev Batch function assigns a new address to act as the Other Manager. (State = 1 is active, 0 is disabled)
  function batchSetOtherManager(address[] calldata _newOp, uint8[] calldata _state) external onlyManager {
	  for (uint ii = 0; ii < _newOp.length; ii++){
		require (_newOp[ii] != address(0));

    	otherManagers[_newOp[ii]] = _state[ii];
	  }
  }

  /*** Pausable functionality adapted from OpenZeppelin ***/

  /// @dev Modifier to allow actions only when the contract IS NOT paused
  modifier whenNotPaused() {
    require (!paused);
    _;
  }

  /// @dev Modifier to allow actions only when the contract IS paused
  modifier whenPaused {
    require (paused);
    _;
  }

  /// @dev Modifier to allow actions only when the contract has Error
  modifier whenError {
    require (error);
    _;
  }

  /**
    * @dev Called by any Operator role to pause the contract.
    * Used only if a bug or exploit is discovered (Here to limit losses / damage)
    */
  function pause() external onlyManager whenNotPaused {
    paused = true;
  }

  /**
  * @dev Unpauses the smart contract. Can only be called by the Game Master
  */
  function unpause() public onlyManager whenPaused {
    // can't unpause if contract was upgraded
    paused = false;
  }

  /**
  * @dev Errors out the contract thus mkaing the contract non-functionable
  */
  function hasError() public onlyManager whenPaused {
    error = true;
  }

  /**
  * @dev Removes the Error Hold from the contract and resumes it for working
  */
  function noError() public onlyManager whenPaused whenError {
    error = false;
  }
}

/**
 * @title      SEAuction
 * @dev        Scarcity Engine Auction Contract
 * @notice     This helps in creating auctions for items for Scarcity Engine
 */
contract SEAuction is OperationalControl {
  using SafeMath for uint256;
  using AddressUtils for address;

  /*** EVENTS ***/
  
  /// @dev Event Fired a user bids for an item
  event SEBidPlaced(address userWallet, uint256 ethBid);

  /// @dev This event is fired when an ETH winner is decalred 
  event SEAuctionETHWinner(address userAddress, uint256 buyingPrice, uint256 assetId);

  /// @dev This event is fired when a GFC winner is decalred. userAddressc can ScarcityEngine address
  /// thus bytes32. can be transformed to string
  event SEAuctionGFCWinner(bytes32 userAddress, uint256 buyingPrice, uint256 assetId);

  /// @dev This event is fired when we do a refund when a buy request can't be fulfilled
  event SEAuctionRefund(address to, uint256 ethValue);

  mapping(address => uint256) public userETHBalance;
  address[] private allBidders;
  
  // AuctionId associated with SEAuctionMaster
  uint256 public auctionId;
  // Current winner of Auction
  address public winner;
  // Winner Price
  uint256 public winningBid;
  // NFT Contract Address
  address public nftAddress;
  // Price (in wei) at beginning of sale
  uint256 public startingPrice;
  // Duration (in seconds) of sale
  uint256 public duration;
  // Time when sale started
  // NOTE: 0 if this sale has been concluded
  uint256 public startedAt;
  // ERC721 AssetID
  uint256 public assetId;
  // DApp Name
  bytes32 public dAppName;
  // Bool for transfer tokenId
  bool public transferToken;

  uint256 private maxBid;

  /**
  * @dev Constructor function
  */
  constructor (uint256 _auctionId, address payable _owner, uint256 _startingPrice, uint256 _startedAt, 
    uint256 _duration, uint256 _assetId, bytes32 _dAppName, address _nftAddress) public {
    require (_owner != address(0));
    paused = true;
    error = false;
    managerPrimary = _owner;
    managerSecondary = _owner;
    bankManager = _owner;
    otherManagers[_owner] = 1;
    
    auctionId = _auctionId;
    startingPrice = _startingPrice;
    maxBid = _startingPrice;
    duration = _duration;
    assetId = _assetId;
    dAppName = _dAppName;
    startedAt = _startedAt;
    nftAddress = _nftAddress;
    transferToken = false;
  }
  
  function isAuctionActive() external view returns(bool){
      return (now <= (startedAt.add(duration)) && winner == address(0));
  }

    // This function is called for all messages sent to
    // this contract, except plain Ether transfers
    // (there is no other function except the receive function).
    // Any call with non-empty calldata to this contract will execute
    // the fallback function (even if Ether is sent along with the call).
    fallback() external payable {  }

    /// @dev allows the contract to accept ETH
    receive() external payable {
	    // Auctions needs to be Open to allow ETH to be passed
      require (this.isAuctionActive());
      
      uint256 _potentialUserBalance = userETHBalance[msg.sender].add(msg.value);
      // Checking Sender Addr & ETH
      require (address(msg.sender) != address(0));
      require (_potentialUserBalance > maxBid);
      
      _incrementBalance(msg.sender, msg.value);
      uint256 _userBalance = userETHBalance[msg.sender];
      maxBid = _userBalance;
    
	  emit SEBidPlaced(msg.sender, msg.value);
    }

  function _incrementBalance(address bidder, uint256 ethValue) private {
    if(userETHBalance[bidder] == 0){
      userETHBalance[bidder] = ethValue;
      allBidders.push(bidder);
    }else{
      uint256 _userBalance = userETHBalance[bidder];
      userETHBalance[bidder] = _userBalance.add(ethValue);
    }
  }

  function auctionWinner(address _winner, address _nftAddress) external anyOperator {
    require(address(_winner) != address(0), "Winner cannot be 0x0");
    
    uint256 _userBalance = userETHBalance[_winner];
    userETHBalance[_winner] = 0;
    bankManager.transfer(_userBalance);
    winner = _winner;
    if(transferToken){
      require(address(_nftAddress) != address(0), "NFT Address cannot be 0x0");
      ERC721Token _nft = ERC721Token(_nftAddress);
      require(_nft.ownerOf(assetId) == address(this));
	  _nft.transferFrom(address(this), _winner, assetId);
    }
    emit SEAuctionETHWinner(_winner, _userBalance, assetId);
  }

  function auctionWinnerWithGFC(bytes32 winnerBytes32, uint256 gfcToETH) external anyOperator {
    require(gfcToETH > 0, "Winning GFC-ETH cannot be 0");
    winner = address(bankManager);
    emit SEAuctionGFCWinner(winnerBytes32, gfcToETH, assetId);
  }
  
  function refundETH(address payable [] calldata refundAddresses) external anyOperator{
    for(uint i=0;i< refundAddresses.length;i++){
        require(refundAddresses[i] != address(0));
        uint256 _userBalance = userETHBalance[refundAddresses[i]];
        userETHBalance[refundAddresses[i]] = 0;
        refundAddresses[i].transfer(_userBalance);
        emit SEAuctionRefund(refundAddresses[i], _userBalance);
    }
  }
  
  function getAuctionDetails() external view returns(address winnerAddress, uint256 startPrice, uint256 startingTime, 
    uint256 endingTime, uint256 auctionDuration, uint256 assetID, bytes32 dApp, address nftContractAddress){
    return (
        winner,
        startingPrice,
        startedAt, 
        startedAt.add(duration), 
        duration,
        assetId, 
        dAppName, 
        nftAddress
    );
  }
  
  function totalNumberOfBidders() external view returns(uint256){
      return allBidders.length;
  }
  
  function updateTransferBool(bool flag) external anyOperator {
      transferToken = flag;
  }
  
  function getMaxBidValue() external view returns(uint256){
      return maxBid;
  }
  
  function transferAssetFromContract(address to, address nftAddress, uint256 assetId) external anyOperator{
    require(nftAddress != address(0), "NFT Contract Cannot be 0x0");
    
    ERC721Token _nft = ERC721Token(nftAddress);
    
    _nft.transferFrom(address(this), to, assetId);
  }
  
  function withdrawBalance() public onlyBanker {
      bankManager.transfer(address(this).balance);
  }
}

/**
 * @title      SEAuctionMaster
 * @dev        Scarcity Engine Master Auction Contract
 * @notice     Master auction Contract for Scarcity Engine
 */
contract SEAuctionMaster is OperationalControl {
  using SafeMath for uint256;
  using AddressUtils for address;
  
  /// @dev Auction Created
  event SEAuctionCreated(address newAuctionContract, uint256 assetId, uint256 startPrice, bytes32 indexed dAppName, uint256 startDate, uint256 endDate, uint256 seAuctionID);

  /**
  * @dev Constructor function
  */
  constructor () public {
    require (msg.sender != address(0));
    paused = true;
    error = false;
    managerPrimary = msg.sender;
    managerSecondary = msg.sender;
    bankManager = msg.sender;
    otherManagers[msg.sender] = 1;
  }
  
  struct Auction {
    uint256 auctionId;
    address payable contractAddress;
    uint256 assetId;
    address nftAddress;
    uint256 startPrice;
    uint256 startedAt;
    uint256 duration;
    bytes32 dAppName;
    uint256 winningPrice;
  }
  
  bool public canTransferOnAuction = false;
  Auction[] public auctions;
  
  function createAuction(uint256 assetId, address nftAddress, uint256 startPrice, uint256 duration, bytes32 dAppName) external onlyManager{
    require(nftAddress != address(0), "NFT Contract Cannot be 0x0");
    
    ERC721Token _nft = ERC721Token(nftAddress);
    require(duration != 0, "Duration cannot be zero");
    
    uint256 _currentTime = now;
    SEAuction _itemAuctionContract = new SEAuction(auctions.length, msg.sender, startPrice, _currentTime, duration, assetId, dAppName, nftAddress);
    
    address payable _contractAddress = address(_itemAuctionContract);
    
    Auction memory _itemAuction = Auction(
      auctions.length,
      _contractAddress,
      assetId,
      nftAddress,
      startPrice,
      _currentTime,
      duration,
      dAppName,
      0
    );

    auctions.push(_itemAuction);
    
    if(canTransferOnAuction){
        require(_nft.ownerOf(assetId) == address(this), "Auction Contract is not the owner");
        _nft.transferFrom(address(this), _contractAddress, assetId);
    }
    emit SEAuctionCreated(_contractAddress, assetId, startPrice, dAppName, _currentTime, _currentTime.add(duration), auctions.length - 1);
  }
  
  function refundFromAuction(address payable auctionContract, address payable [] calldata refundAddresses) external anyOperator {
    require(auctionContract != address(0));
    SEAuction _auctionContract = SEAuction(auctionContract);
    _auctionContract.refundETH(refundAddresses);
  }
  
  function getAuctionDetail(uint256 auctionID) external view returns(address winnerAddress, uint256 startPrice, uint256 startingTime, 
    uint256 endingTime, uint256 auctionDuration, uint256 assetId, bytes32 dApp, bytes32 auctionData, address nftContractAddress){
      Auction memory _auctionData = auctions[auctionID];
      SEAuction _auctionContract = SEAuction(_auctionData.contractAddress);
      _auctionContract.getAuctionDetails();
  }
  
  function updateAssetTransferForAuction(uint256 auctionID, bool flag) external {
      Auction memory _auctionData = auctions[auctionID];
      SEAuction _auctionContract = SEAuction(_auctionData.contractAddress);
      _auctionContract.updateTransferBool(flag);
  }
  
  function batchUpdateAssetTransferForAuction(uint256 [] calldata auctionIDs, bool flag) external {
      for(uint8 i=0;i<auctionIDs.length;i++){
        Auction memory _auctionData = auctions[auctionIDs[i]];
        SEAuction _auctionContract = SEAuction(_auctionData.contractAddress);
        _auctionContract.updateTransferBool(flag);
      }
  }
  
  function approveManager(uint256 auctionID, address approvedAddress) external anyOperator {
    Auction memory _auctionData = auctions[auctionID];
    ERC721Token _nft = ERC721Token(_auctionData.nftAddress);
    _nft.approve(approvedAddress, _auctionData.assetId);
  }
  
  function updateCanTransferOnAuction(bool flag) external anyOperator{
      canTransferOnAuction = flag;
  }
  
  function checkOwner(uint256 assetId, address nftAddress) external view returns (address){
    require(nftAddress != address(0), "NFT Contract Cannot be 0x0");
    
    ERC721Token _nft = ERC721Token(nftAddress);
    
    return _nft.ownerOf(assetId);
  }
  
  function transferStuckAsset(address to, address nftAddress, uint256 assetId) external anyOperator{
    require(nftAddress != address(0), "NFT Contract Cannot be 0x0");
    
    ERC721Token _nft = ERC721Token(nftAddress);
    
    _nft.transferFrom(address(this), to, assetId);
  }
    
  function withdrawBalance() public onlyBanker {
      bankManager.transfer(address(this).balance);
  }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"_auctionId","type":"uint256"},{"internalType":"address payable","name":"_owner","type":"address"},{"internalType":"uint256","name":"_startingPrice","type":"uint256"},{"internalType":"uint256","name":"_startedAt","type":"uint256"},{"internalType":"uint256","name":"_duration","type":"uint256"},{"internalType":"uint256","name":"_assetId","type":"uint256"},{"internalType":"bytes32","name":"_dAppName","type":"bytes32"},{"internalType":"address","name":"_nftAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newContract","type":"address"}],"name":"ContractUpgrade","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"buyingPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"assetId","type":"uint256"}],"name":"SEAuctionETHWinner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"userAddress","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"buyingPrice","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"assetId","type":"uint256"}],"name":"SEAuctionGFCWinner","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethValue","type":"uint256"}],"name":"SEAuctionRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"userWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethBid","type":"uint256"}],"name":"SEBidPlaced","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"assetId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"auctionId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_winner","type":"address"},{"internalType":"address","name":"_nftAddress","type":"address"}],"name":"auctionWinner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"winnerBytes32","type":"bytes32"},{"internalType":"uint256","name":"gfcToETH","type":"uint256"}],"name":"auctionWinnerWithGFC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bankManager","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_newOp","type":"address[]"},{"internalType":"uint8[]","name":"_state","type":"uint8[]"}],"name":"batchSetOtherManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dAppName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"duration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"error","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAuctionDetails","outputs":[{"internalType":"address","name":"winnerAddress","type":"address"},{"internalType":"uint256","name":"startPrice","type":"uint256"},{"internalType":"uint256","name":"startingTime","type":"uint256"},{"internalType":"uint256","name":"endingTime","type":"uint256"},{"internalType":"uint256","name":"auctionDuration","type":"uint256"},{"internalType":"uint256","name":"assetID","type":"uint256"},{"internalType":"bytes32","name":"dApp","type":"bytes32"},{"internalType":"address","name":"nftContractAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMaxBidValue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasError","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isAuctionActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"managerPrimary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"managerSecondary","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"noError","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"otherManagers","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable[]","name":"refundAddresses","type":"address[]"}],"name":"refundETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_newBM","type":"address"}],"name":"setBankManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOp","type":"address"},{"internalType":"uint8","name":"_state","type":"uint8"}],"name":"setOtherManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newGM","type":"address"}],"name":"setPrimaryManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newGM","type":"address"}],"name":"setSecondaryManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startingPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalNumberOfBidders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"nftAddress","type":"address"},{"internalType":"uint256","name":"assetId","type":"uint256"}],"name":"transferAssetFromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"flag","type":"bool"}],"name":"updateTransferBool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userETHBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"winner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"winningBid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526004805461ffff1916905534801561001b57600080fd5b50604051611940380380611940833981810160405261010081101561003f57600080fd5b508051602082015160408301516060840151608085015160a086015160c087015160e0909701519596949593949293919290916001600160a01b03871661008557600080fd5b6004805461ff001960ff19918216600190811791909116909255600080546001600160a01b039a8b166001600160a01b03199182168117835584548216811785556002805483168217905582526003602052604090912080548316909317909255600799909955600b879055601196909655600c93909355600e91909155600f55600d91909155600a805491909316911617905560108054909116905561180f806101316000396000f3fe6080604052600436106102135760003560e01c80638a53f23011610118578063d1b4b9a3116100a0578063e3a0e0691161006f578063e3a0e0691461089f578063e9e2990e146108cf578063ee70f392146108e4578063f21f537d146108f9578063fec915a31461090e57610321565b8063d1b4b9a31461084b578063d6fbf20214610860578063dfbf53ae14610875578063e16984771461088a57610321565b8063b777cad7116100e7578063b777cad71461077f578063bb1d45fc14610794578063c0619c70146107d0578063c79f8b6214610803578063c8ebadae1461081857610321565b80638a53f230146107055780638cf804381461071a578063a87dd13d1461072f578063ad5e46cb1461076a57610321565b80635fd8c7101161019b578063799a53591161016a578063799a5359146106605780637a9b6ef714610675578063825bdb74146106a85780638456cb59146106db578063850d7120146106f057610321565b80635fd8c7101461055f578063632ced3b146105745780636a330f84146105b757806370be4451146105e357610321565b80633a6dcea2116101e25780633a6dcea2146104775780633f4ba83a146104db57806344de240a146104f05780635bf8633a146105055780635c975abb1461053657610321565b80630fb5a6b41461032357806310782f8f1461034a57806323d7af241461035f57806325beff2a146103a857610321565b3661032157306001600160a01b031663d1b4b9a36040518163ffffffff1660e01b815260040160206040518083038186803b15801561025157600080fd5b505afa158015610265573d6000803e3d6000fd5b505050506040513d602081101561027b57600080fd5b505161028657600080fd5b336000908152600560205260408120546102a6903463ffffffff61092316565b9050336102b257600080fd5b60115481116102c057600080fd5b6102ca333461093c565b3360008181526005602090815260409182902054601181905582519384523491840191909152815190927f0c73c2df5079f58513604749b8a7932a0ca0a4256928b7d1ef7541be38894eed92908290030190a15050005b005b34801561032f57600080fd5b50610338610a00565b60408051918252519081900360200190f35b34801561035657600080fd5b50610338610a06565b34801561036b57600080fd5b506103926004803603602081101561038257600080fd5b50356001600160a01b0316610a0c565b6040805160ff9092168252519081900360200190f35b3480156103b457600080fd5b50610321600480360360408110156103cb57600080fd5b8101906020810181356401000000008111156103e657600080fd5b8201836020820111156103f857600080fd5b8035906020019184602083028401116401000000008311171561041a57600080fd5b91939092909160208101903564010000000081111561043857600080fd5b82018360208201111561044a57600080fd5b8035906020019184602083028401116401000000008311171561046c57600080fd5b509092509050610a21565b34801561048357600080fd5b5061048c610b10565b604080516001600160a01b03998a1681526020810198909852878101969096526060870194909452608086019290925260a085015260c084015290921660e08201529051908190036101000190f35b3480156104e757600080fd5b50610321610b7d565b3480156104fc57600080fd5b50610338610be1565b34801561051157600080fd5b5061051a610be7565b604080516001600160a01b039092168252519081900360200190f35b34801561054257600080fd5b5061054b610bf6565b604080519115158252519081900360200190f35b34801561056b57600080fd5b50610321610bff565b34801561058057600080fd5b506103216004803603606081101561059757600080fd5b506001600160a01b03813581169160208101359091169060400135610c52565b3480156105c357600080fd5b50610321600480360360208110156105da57600080fd5b50351515610d81565b3480156105ef57600080fd5b506103216004803603602081101561060657600080fd5b81019060208101813564010000000081111561062157600080fd5b82018360208201111561063357600080fd5b8035906020019184602083028401116401000000008311171561065557600080fd5b509092509050610df2565b34801561066c57600080fd5b5061054b610fd2565b34801561068157600080fd5b506103216004803603602081101561069857600080fd5b50356001600160a01b0316610fdb565b3480156106b457600080fd5b50610321600480360360208110156106cb57600080fd5b50356001600160a01b0316611059565b3480156106e757600080fd5b506103216110d7565b3480156106fc57600080fd5b5061033861113f565b34801561071157600080fd5b50610321611145565b34801561072657600080fd5b506103386111be565b34801561073b57600080fd5b506103216004803603604081101561075257600080fd5b506001600160a01b03813581169160200135166111c4565b34801561077657600080fd5b506103216114a3565b34801561078b57600080fd5b5061051a61150c565b3480156107a057600080fd5b50610321600480360360408110156107b757600080fd5b5080356001600160a01b0316906020013560ff1661151b565b3480156107dc57600080fd5b50610321600480360360208110156107f357600080fd5b50356001600160a01b03166115a4565b34801561080f57600080fd5b5061054b611622565b34801561082457600080fd5b506103386004803603602081101561083b57600080fd5b50356001600160a01b0316611630565b34801561085757600080fd5b5061054b611642565b34801561086c57600080fd5b50610338611678565b34801561088157600080fd5b5061051a61167e565b34801561089657600080fd5b5061033861168d565b3480156108ab57600080fd5b50610321600480360360408110156108c257600080fd5b5080359060200135611693565b3480156108db57600080fd5b5061051a6117af565b3480156108f057600080fd5b5061051a6117be565b34801561090557600080fd5b506103386117cd565b34801561091a57600080fd5b506103386117d3565b60008282018381101561093557600080fd5b9392505050565b6001600160a01b0382166000908152600560205260409020546109b8576001600160a01b03821660008181526005602052604081208390556006805460018101825591527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b03191690911790556109fc565b6001600160a01b0382166000908152600560205260409020546109e1818363ffffffff61092316565b6001600160a01b038416600090815260056020526040902055505b5050565b600c5481565b60075481565b60036020526000908152604090205460ff1681565b6000546001600160a01b0316331480610a4457506001546001600160a01b031633145b80610a6157503360009081526003602052604090205460ff166001145b610a6a57600080fd5b60005b83811015610b09576000858583818110610a8357fe5b905060200201356001600160a01b03166001600160a01b03161415610aa757600080fd5b828282818110610ab357fe5b9050602002013560ff1660036000878785818110610acd57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff191660ff92909216919091179055600101610a6d565b5050505050565b600080600080600080600080600860009054906101000a90046001600160a01b0316600b54600d54610b4f600c54600d5461092390919063ffffffff16565b600c54600e54600f54600a54969f959e50939c50919a509850965094506001600160a01b0390911692509050565b6000546001600160a01b0316331480610ba057506001546001600160a01b031633145b80610bbd57503360009081526003602052604090205460ff166001145b610bc657600080fd5b60045460ff16610bd557600080fd5b6004805460ff19169055565b600e5481565b600a546001600160a01b031681565b60045460ff1681565b6002546001600160a01b03163314610c1657600080fd5b6002546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610c4f573d6000803e3d6000fd5b50565b6000546001600160a01b0316331480610c7557506001546001600160a01b031633145b80610c8a57506002546001600160a01b031633145b80610ca757503360009081526003602052604090205460ff166001145b610cb057600080fd5b6001600160a01b038216610d0b576040805162461bcd60e51b815260206004820152601a60248201527f4e465420436f6e74726163742043616e6e6f7420626520307830000000000000604482015290519081900360640190fd5b604080516323b872dd60e01b81523060048201526001600160a01b03858116602483015260448201849052915184928316916323b872dd91606480830192600092919082900301818387803b158015610d6357600080fd5b505af1158015610d77573d6000803e3d6000fd5b5050505050505050565b6000546001600160a01b0316331480610da457506001546001600160a01b031633145b80610db957506002546001600160a01b031633145b80610dd657503360009081526003602052604090205460ff166001145b610ddf57600080fd5b6010805460ff1916911515919091179055565b6000546001600160a01b0316331480610e1557506001546001600160a01b031633145b80610e2a57506002546001600160a01b031633145b80610e4757503360009081526003602052604090205460ff166001145b610e5057600080fd5b60005b81811015610fcd576000838383818110610e6957fe5b905060200201356001600160a01b03166001600160a01b03161415610e8d57600080fd5b600060056000858585818110610e9f57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020549050600060056000868686818110610ee457fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b0316815260200190815260200160002081905550838383818110610f2457fe5b905060200201356001600160a01b03166001600160a01b03166108fc829081150290604051600060405180830381858888f19350505050158015610f6c573d6000803e3d6000fd5b507f2cdcfcda471a6e04eb161bd12dcae2ed96ddcbbf9a3c6f0dd48f8a0a0dc42459848484818110610f9a57fe5b60408051602092830294909401356001600160a01b0316845290830185905280519283900301919050a150600101610e53565b505050565b60105460ff1681565b6000546001600160a01b0316331480610ffe57506001546001600160a01b031633145b8061101b57503360009081526003602052604090205460ff166001145b61102457600080fd5b6001600160a01b03811661103757600080fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633148061107c57506001546001600160a01b031633145b8061109957503360009081526003602052604090205460ff166001145b6110a257600080fd5b6001600160a01b0381166110b557600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314806110fa57506001546001600160a01b031633145b8061111757503360009081526003602052604090205460ff166001145b61112057600080fd5b60045460ff161561113057600080fd5b6004805460ff19166001179055565b600f5481565b6000546001600160a01b031633148061116857506001546001600160a01b031633145b8061118557503360009081526003602052604090205460ff166001145b61118e57600080fd5b60045460ff1661119d57600080fd5b600454610100900460ff166111b157600080fd5b6004805461ff0019169055565b60095481565b6000546001600160a01b03163314806111e757506001546001600160a01b031633145b806111fc57506002546001600160a01b031633145b8061121957503360009081526003602052604090205460ff166001145b61122257600080fd5b6001600160a01b038216611274576040805162461bcd60e51b8152602060048201526014602482015273057696e6e65722063616e6e6f74206265203078360641b604482015290519081900360640190fd5b6001600160a01b0380831660009081526005602052604080822080549083905560025491519093919091169183156108fc02918491818181858888f193505050501580156112c6573d6000803e3d6000fd5b50600880546001600160a01b0319166001600160a01b03851617905560105460ff1615611452576001600160a01b038216611348576040805162461bcd60e51b815260206004820152601960248201527f4e465420416464726573732063616e6e6f742062652030783000000000000000604482015290519081900360640190fd5b6000829050306001600160a01b0316816001600160a01b0316636352211e600e546040518263ffffffff1660e01b81526004018082815260200191505060206040518083038186803b15801561139d57600080fd5b505afa1580156113b1573d6000803e3d6000fd5b505050506040513d60208110156113c757600080fd5b50516001600160a01b0316146113dc57600080fd5b600e54604080516323b872dd60e01b81523060048201526001600160a01b03878116602483015260448201939093529051918316916323b872dd9160648082019260009290919082900301818387803b15801561143857600080fd5b505af115801561144c573d6000803e3d6000fd5b50505050505b600e54604080516001600160a01b03861681526020810184905280820192909252517f9548e172611b83a6a77b78a8c451667292c09ab459d4668a3f5d9746a53706779181900360600190a1505050565b6000546001600160a01b03163314806114c657506001546001600160a01b031633145b806114e357503360009081526003602052604090205460ff166001145b6114ec57600080fd5b60045460ff166114fb57600080fd5b6004805461ff001916610100179055565b6000546001600160a01b031681565b6000546001600160a01b031633148061153e57506001546001600160a01b031633145b8061155b57503360009081526003602052604090205460ff166001145b61156457600080fd5b6001600160a01b03821661157757600080fd5b6001600160a01b03919091166000908152600360205260409020805460ff191660ff909216919091179055565b6000546001600160a01b03163314806115c757506001546001600160a01b031633145b806115e457503360009081526003602052604090205460ff166001145b6115ed57600080fd5b6001600160a01b03811661160057600080fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600454610100900460ff1681565b60056020526000908152604090205481565b600061165b600c54600d5461092390919063ffffffff16565b421115801561167357506008546001600160a01b0316155b905090565b600b5481565b6008546001600160a01b031681565b60065490565b6000546001600160a01b03163314806116b657506001546001600160a01b031633145b806116cb57506002546001600160a01b031633145b806116e857503360009081526003602052604090205460ff166001145b6116f157600080fd5b60008111611746576040805162461bcd60e51b815260206004820152601b60248201527f57696e6e696e67204746432d4554482063616e6e6f7420626520300000000000604482015290519081900360640190fd5b600254600880546001600160a01b0319166001600160a01b03909216919091179055600e54604080518481526020810184905280820192909252517f71a39ca9ab20c4b7e840acbdcff6a07fec411627910beaa932a77e651c60cc6d9181900360600190a15050565b6002546001600160a01b031681565b6001546001600160a01b031681565b600d5481565b6011549056fea26469706673582212203e65eef414cff3def693117806b304aff6cfa0011181c2bd5c6ba6f1a02e575d64736f6c634300060000330000000000000000000000000000000000000000000000000000000000000002000000000000000000000000d414e7355378ff9be9589eff757ff985dd398755000000000000000000000000000000000000000000000000000ffcb9e57d4000000000000000000000000000000000000000000000000000000000005ed14d6e00000000000000000000000000000000000000000000000000000000000bddbc0000000000000000000000000000000000000000000000000000000000134bf243534300000000000000000000000000000000000000000000000000000000000000000000000000000000004d3814d4da8083b41861dec2f45b4840e8b72d68

Deployed ByteCode Sourcemap

9845:6223:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12769:4;-1:-1:-1;;;;;12769:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12769:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12769:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12769:22:0;12760:32;;;;;;12856:10;12809:29;12841:26;;;:14;:26;;;;;;:41;;12872:9;12841:41;:30;:41;:::i;:::-;12809:73;-1:-1:-1;12945:10:0;12928:43;;;;;;13013:6;;12989:21;:30;12980:40;;;;;;13037;13055:10;13067:9;13037:17;:40::i;:::-;13124:10;13086:20;13109:26;;;:14;:26;;;;;;;;;;13144:6;:21;;;13182:34;;;;;13206:9;13182:34;;;;;;;;;13109:26;;13182:34;;;;;;;;;12663:561;;9845:6223;;;11079:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11079:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;10775:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10775:24:0;;;:::i;5891:46::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5891:46:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5891:46:0;-1:-1:-1;;;;;5891:46:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;8134:251;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8134:251:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8134:251:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8134:251:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8134:251:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;8134:251:0;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8134:251:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8134:251:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;8134:251:0;;-1:-1:-1;8134:251:0;-1:-1:-1;8134:251:0;:::i;14921:428::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14921:428:0;;;:::i;:::-;;;;-1:-1:-1;;;;;14921:428:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14921:428:0;;;;;;;;;;;;;;;;;;;;;;;;9200:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9200:123:0;;;:::i;11232:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11232:22:0;;;:::i;10938:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10938:25:0;;;:::i;:::-;;;;-1:-1:-1;;;;;10938:25:0;;;;;;;;;;;;;;6043:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6043:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;15962:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15962:103:0;;;:::i;15661:293::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15661:293:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15661:293:0;;;;;;;;;;;;;;;;;:::i;15466:95::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15466:95:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15466:95:0;;;;:::i;14480:433::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14480:433:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14480:433:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;14480:433:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14480:433:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;14480:433:0;;-1:-1:-1;14480:433:0;-1:-1:-1;14480:433:0;:::i;11335:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11335:25:0;;;:::i;7608:141::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7608:141:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7608:141:0;-1:-1:-1;;;;;7608:141:0;;:::i;7333:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7333:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7333:143:0;-1:-1:-1;;;;;7333:143:0;;:::i;9026:78::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9026:78:0;;;:::i;11275:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11275:23:0;;;:::i;9590:85::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9590:85:0;;;:::i;10881:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10881:25:0;;;:::i;13556:653::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13556:653:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13556:653:0;;;;;;;;;;:::i;9418:75::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9418:75:0;;;:::i;5731:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5731:29:0;;;:::i;7855:158::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7855:158:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7855:158:0;;-1:-1:-1;;;;;7855:158:0;;;;;;;;:::i;7058:139::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7058:139:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7058:139:0;-1:-1:-1;;;;;7058:139:0;;:::i;6207:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6207:25:0;;;:::i;10636:49::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10636:49:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10636:49:0;-1:-1:-1;;;;;10636:49:0;;:::i;12112:134::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12112:134:0;;;:::i;11010:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11010:28:0;;;:::i;10836:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10836:21:0;;;:::i;15357:101::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15357:101:0;;;:::i;14215:257::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14215:257:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14215:257:0;;;;;;;:::i;5801:34::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5801:34:0;;;:::i;5765:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5765:31:0;;;:::i;11182:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11182:24:0;;;:::i;15569:84::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15569:84:0;;;:::i;1466:142::-;1526:7;1554;;;1577;;;;1568:17;;;;;;1601:1;1466:142;-1:-1:-1;;;1466:142:0:o;13230:320::-;-1:-1:-1;;;;;13309:22:0;;;;;;:14;:22;;;;;;13306:239;;-1:-1:-1;;;;;13346:22:0;;;;;;:14;:22;;;;;:33;;;13388:10;27::-1;;-1:-1;23:18;;45:23;;13388::0;;;;;;-1:-1:-1;;;;;;13388:23:0;;;;;;13306:239;;;-1:-1:-1;;;;;13455:22:0;;13432:20;13455:22;;;:14;:22;;;;;;13511:26;13455:22;13528:8;13511:16;:26::i;:::-;-1:-1:-1;;;;;13486:22:0;;;;;;:14;:22;;;;;:51;-1:-1:-1;13306:239:0;13230:320;;:::o;11079:23::-;;;;:::o;10775:24::-;;;;:::o;5891:46::-;;;;;;;;;;;;;;;:::o;8134:251::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;8248:7:::1;8243:137;8261:18:::0;;::::1;8243:137;;;8322:1;8300:6:::0;;8307:2;8300:10;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;8300:10:0::1;-1:-1:-1::0;;;;;8300:24:0::1;;;8291:34;;;::::0;::::1;;8363:6;;8370:2;8363:10;;;;;;;;;;;;;;;8335:13;:25;8349:6;;8356:2;8349:10;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;8349:10:0::1;8335:25:::0;;-1:-1:-1;8335:25:0;::::1;::::0;;;;;;-1:-1:-1;8335:25:0;:38;;-1:-1:-1;;8335:38:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;8281:4:0::1;8243:137;;;;8134:251:::0;;;;:::o;14921:428::-;15171:6;;15188:13;;15212:9;;15247:8;;14972:21;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15171:6:0;;;;15233:23;;15212:9;;15233:23;:13;:23;:::i;:::-;15268:8;;15287:7;;15306:8;;15326:10;;15153:190;;;;-1:-1:-1;15153:190:0;;-1:-1:-1;15153:190:0;;-1:-1:-1;15268:8:0;-1:-1:-1;15287:7:0;-1:-1:-1;15306:8:0;-1:-1:-1;;;;;;15326:10:0;;;;-1:-1:-1;15153:190:0;-1:-1:-1;14921:428:0:o;9200:123::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;8706:6:::1;::::0;::::1;;8697:16;;;::::0;::::1;;9303:6:::2;:14:::0;;-1:-1:-1;;9303:14:0::2;::::0;;9200:123::o;11232:22::-;;;;:::o;10938:25::-;;;-1:-1:-1;;;;;10938:25:0;;:::o;6043:26::-;;;;;;:::o;15962:103::-;6611:11;;-1:-1:-1;;;;;6611:11:0;6597:10;:25;6588:35;;;;;;16016:11:::1;::::0;:43:::1;::::0;-1:-1:-1;;;;;16016:11:0;;::::1;::::0;16037:21:::1;16016:43:::0;::::1;;;::::0;:11:::1;:43:::0;:11;:43;16037:21;16016:11;:43;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;16016:43:0;15962:103::o:0;15661:293::-;6767:14;;-1:-1:-1;;;;;6767:14:0;6753:10;:28;;:71;;-1:-1:-1;6808:16:0;;-1:-1:-1;;;;;6808:16:0;6794:10;:30;6753:71;:109;;;-1:-1:-1;6851:11:0;;-1:-1:-1;;;;;6851:11:0;6837:10;:25;6753:109;:152;;;-1:-1:-1;6889:10:0;6875:25;;;;:13;:25;;;;;;;;;:30;6753:152;6734:178;;;;;;-1:-1:-1;;;;;15780:24:0;::::1;15772:63;;;::::0;;-1:-1:-1;;;15772:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;15903:45;::::0;;-1:-1:-1;;;15903:45:0;;15929:4:::1;15903:45;::::0;::::1;::::0;-1:-1:-1;;;;;15903:45:0;;::::1;::::0;;;;;;;;;;;;15879:10;;15903:17;::::1;::::0;-1:-1:-1;;15903:45:0;;;;;-1:-1:-1;;15903:45:0;;;;;;;-1:-1:-1;15903:17:0;:45;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;15903:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;15903:45:0;;;;6919:1;15661:293:::0;;;:::o;15466:95::-;6767:14;;-1:-1:-1;;;;;6767:14:0;6753:10;:28;;:71;;-1:-1:-1;6808:16:0;;-1:-1:-1;;;;;6808:16:0;6794:10;:30;6753:71;:109;;;-1:-1:-1;6851:11:0;;-1:-1:-1;;;;;6851:11:0;6837:10;:25;6753:109;:152;;;-1:-1:-1;6889:10:0;6875:25;;;;:13;:25;;;;;;;;;:30;6753:152;6734:178;;;;;;15535:13:::1;:20:::0;;-1:-1:-1;;15535:20:0::1;::::0;::::1;;::::0;;;::::1;::::0;;15466:95::o;14480:433::-;6767:14;;-1:-1:-1;;;;;6767:14:0;6753:10;:28;;:71;;-1:-1:-1;6808:16:0;;-1:-1:-1;;;;;6808:16:0;6794:10;:30;6753:71;:109;;;-1:-1:-1;6851:11:0;;-1:-1:-1;;;;;6851:11:0;6837:10;:25;6753:109;:152;;;-1:-1:-1;6889:10:0;6875:25;;;;:13;:25;;;;;;;;;:30;6753:152;6734:178;;;;;;14575:6:::1;14571:337;14584:25:::0;;::::1;14571:337;;;14663:1;14633:15:::0;;14649:1;14633:18;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;14633:18:0::1;-1:-1:-1::0;;;;;14633:32:0::1;;;14625:41;;;::::0;::::1;;14677:20;14700:14;:34;14715:15;;14731:1;14715:18;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;14715:18:0::1;14700:34:::0;;-1:-1:-1;14700:34:0;::::1;::::0;;;;;;-1:-1:-1;14700:34:0;;;;;-1:-1:-1;14745:14:0::1;-1:-1:-1::0;14760:15:0;;14776:1;14760:18;;::::1;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;14760:18:0::1;14745:34:::0;;-1:-1:-1;14745:34:0;::::1;::::0;;;;;;-1:-1:-1;14745:34:0;:38;14794:15;;14810:1;14794:18;;::::1;;;;;:41;::::0;-1:-1:-1;;;;;14794:18:0::1;::::0;;::::1;::::0;;;::::1;;;::::0;:41;::::1;;;::::0;-1:-1:-1;14822:12:0;;14794:41:::1;::::0;;;14822:12;14794:18;:41;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;14794:41:0;14851:49;14867:15;;14883:1;14867:18;;;;;;;14851:49;::::0;;14867:18:::1;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;14867:18:0::1;14851:49:::0;;;;::::1;::::0;;;;;;;;;;;;-1:-1:-1;14851:49:0::1;-1:-1:-1::0;14610:3:0::1;;14571:337;;;;14480:433:::0;;:::o;11335:25::-;;;;;;:::o;7608:141::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;-1:-1:-1;;;;;7693:20:0;::::1;7684:30;;;::::0;::::1;;7723:11;:20:::0;;-1:-1:-1;;;;;;7723:20:0::1;-1:-1:-1::0;;;;;7723:20:0;;;::::1;::::0;;;::::1;::::0;;7608:141::o;7333:143::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;-1:-1:-1;;;;;7415:20:0;::::1;7406:30;;;::::0;::::1;;7445:16;:25:::0;;-1:-1:-1;;;;;;7445:25:0::1;-1:-1:-1::0;;;;;7445:25:0;;;::::1;::::0;;;::::1;::::0;;7333:143::o;9026:78::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;8572:6:::1;::::0;::::1;;8571:7;8562:17;;;::::0;::::1;;9085:6:::2;:13:::0;;-1:-1:-1;;9085:13:0::2;9094:4;9085:13;::::0;;9026:78::o;11275:23::-;;;;:::o;9590:85::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;8706:6:::1;::::0;::::1;;8697:16;;;::::0;::::1;;8839:5:::2;::::0;::::2;::::0;::::2;;;8830:15;;;::::0;::::2;;9656:5:::3;:13:::0;;-1:-1:-1;;9656:13:0::3;::::0;;9590:85::o;10881:25::-;;;;:::o;13556:653::-;6767:14;;-1:-1:-1;;;;;6767:14:0;6753:10;:28;;:71;;-1:-1:-1;6808:16:0;;-1:-1:-1;;;;;6808:16:0;6794:10;:30;6753:71;:109;;;-1:-1:-1;6851:11:0;;-1:-1:-1;;;;;6851:11:0;6837:10;:25;6753:109;:152;;;-1:-1:-1;6889:10:0;6875:25;;;;:13;:25;;;;;;;;;:30;6753:152;6734:178;;;;;;-1:-1:-1;;;;;13653:30:0;::::1;13645:63;;;::::0;;-1:-1:-1;;;13645:63:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;13645:63:0;;;;;;;;;;-1:-1:-1;13645:63:0;;::::1;;-1:-1:-1::0;;;;;13744:23:0;;::::1;13721:20;13744:23:::0;;;:14:::1;:23;::::0;;;;;;;13774:27;;;;13808:11:::1;::::0;:34;;13744:23;;13808:11;;;::::1;::::0;:34:::1;::::0;::::1;;::::0;13744:23;;13808:34;13721:20;13808:34;13744:23;13808:11;:34;::::1;;;;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;-1:-1:::0;13849:6:0::1;:16:::0;;-1:-1:-1;;;;;;13849:16:0::1;-1:-1:-1::0;;;;;13849:16:0;::::1;;::::0;;13875:13:::1;::::0;::::1;;13872:270;;;-1:-1:-1::0;;;;;13906:34:0;::::1;13898:72;;;::::0;;-1:-1:-1;;;13898:72:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;14052:7;::::0;14039:21:::1;::::0;;-1:-1:-1;;;14039:21:0;;::::1;::::0;::::1;::::0;;;;;14010:11;;14072:4:::1;::::0;-1:-1:-1;;;;;14039:12:0;::::1;::::0;::::1;::::0;:21;;;;;::::1;::::0;;;;;;;;:12;:21;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;14039:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;14039:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26::::0;19:12:::1;2:2;-1:-1:::0;14039:21:0;-1:-1:-1;;;;;14039:38:0::1;;14031:47;;;::::0;::::1;;14126:7;::::0;14084:50:::1;::::0;;-1:-1:-1;;;14084:50:0;;14110:4:::1;14084:50;::::0;::::1;::::0;-1:-1:-1;;;;;14084:50:0;;::::1;::::0;;;;;;;;;;;;;:17;;::::1;::::0;-1:-1:-1;;14084:50:0;;;;;-1:-1:-1;;14084:50:0;;;;;;;;-1:-1:-1;14084:17:0;:50;::::1;;5:2:-1::0;::::1;;;30:1;27::::0;20:12:::1;5:2;14084:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39::::0;24:38:::1;77:16;74:1;67:27;5:2;14084:50:0;;;;13872:270;;14195:7;::::0;14153:50:::1;::::0;;-1:-1:-1;;;;;14153:50:0;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;6919:1;13556:653:::0;;:::o;9418:75::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;8706:6:::1;::::0;::::1;;8697:16;;;::::0;::::1;;9475:5:::2;:12:::0;;-1:-1:-1;;9475:12:0::2;;;::::0;;9418:75::o;5731:29::-;;;-1:-1:-1;;;;;5731:29:0;;:::o;7855:158::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;-1:-1:-1;;;;;7947:20:0;::::1;7938:30;;;::::0;::::1;;-1:-1:-1::0;;;;;7977:21:0;;;::::1;;::::0;;;:13:::1;:21;::::0;;;;:30;;-1:-1:-1;;7977:30:0::1;-1:-1:-1::0;7977:30:0;;::::1;::::0;;;::::1;::::0;;7855:158::o;7058:139::-;6372:14;;-1:-1:-1;;;;;6372:14:0;6358:10;:28;;:62;;-1:-1:-1;6404:16:0;;-1:-1:-1;;;;;6404:16:0;6390:10;:30;6358:62;:96;;;-1:-1:-1;6438:10:0;6424:25;;;;:13;:25;;;;;;;;;:30;6358:96;6349:106;;;;;;-1:-1:-1;;;;;7138:20:0;::::1;7129:30;;;::::0;::::1;;7168:14;:23:::0;;-1:-1:-1;;;;;;7168:23:0::1;-1:-1:-1::0;;;;;7168:23:0;;;::::1;::::0;;;::::1;::::0;;7058:139::o;6207:25::-;;;;;;;;;:::o;10636:49::-;;;;;;;;;;;;;:::o;12112:134::-;12161:4;12191:23;12205:8;;12191:9;;:13;;:23;;;;:::i;:::-;12183:3;:32;;:56;;;;-1:-1:-1;12219:6:0;;-1:-1:-1;;;;;12219:6:0;:20;12183:56;12175:65;;12112:134;:::o;11010:28::-;;;;:::o;10836:21::-;;;-1:-1:-1;;;;;10836:21:0;;:::o;15357:101::-;15435:10;:17;15357:101;:::o;14215:257::-;6767:14;;-1:-1:-1;;;;;6767:14:0;6753:10;:28;;:71;;-1:-1:-1;6808:16:0;;-1:-1:-1;;;;;6808:16:0;6794:10;:30;6753:71;:109;;;-1:-1:-1;6851:11:0;;-1:-1:-1;;;;;6851:11:0;6837:10;:25;6753:109;:152;;;-1:-1:-1;6889:10:0;6875:25;;;;:13;:25;;;;;;;;;:30;6753:152;6734:178;;;;;;14333:1:::1;14322:8;:12;14314:52;;;::::0;;-1:-1:-1;;;14314:52:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;14390:11;::::0;14373:6:::1;:29:::0;;-1:-1:-1;;;;;;14373:29:0::1;-1:-1:-1::0;;;;;14390:11:0;;::::1;14373:29:::0;;;::::1;::::0;;14458:7:::1;::::0;14414:52:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;14215:257:::0;;:::o;5801:34::-;;;-1:-1:-1;;;;;5801:34:0;;:::o;5765:31::-;;;-1:-1:-1;;;;;5765:31:0;;:::o;11182:24::-;;;;:::o;15569:84::-;15641:6;;15569:84;:::o

Swarm Source

ipfs://3e65eef414cff3def693117806b304aff6cfa0011181c2bd5c6ba6f1a02e575d
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.