ETH Price: $2,350.68 (-2.77%)

Contract

0x1Bf68A9d1EaEe7826b3593C20a0ca93293cb489a
 

Overview

ETH Balance

535.728503675544532217 ETH

Eth Value

$1,259,324.22 (@ $2,350.68/ETH)

Token Holdings

Transaction Hash
Method
Block
From
To
Deposit204529952024-08-04 5:07:5942 days ago1722748079IN
Orbit Chain: ETH Vault
0.000003 ETH0.000035811
Confirm Transact...203609032024-07-22 8:33:3555 days ago1721637215IN
Orbit Chain: ETH Vault
0 ETH0.0025914918
Confirm Transact...203609022024-07-22 8:33:2355 days ago1721637203IN
Orbit Chain: ETH Vault
0 ETH0.0026944518
Confirm Transact...203607002024-07-22 7:52:4755 days ago1721634767IN
Orbit Chain: ETH Vault
0 ETH0.0019620318
Confirm Transact...203607002024-07-22 7:52:4755 days ago1721634767IN
Orbit Chain: ETH Vault
0 ETH0.0019620318
Confirm Transact...203606992024-07-22 7:52:2355 days ago1721634743IN
Orbit Chain: ETH Vault
0 ETH0.0026498118
Confirm Transact...203606982024-07-22 7:52:1155 days ago1721634731IN
Orbit Chain: ETH Vault
0 ETH0.0026721318
Confirm Transact...203606972024-07-22 7:51:5955 days ago1721634719IN
Orbit Chain: ETH Vault
0 ETH0.0026832918
Confirm Transact...203606962024-07-22 7:51:4755 days ago1721634707IN
Orbit Chain: ETH Vault
0 ETH0.0030452718
Confirm Transact...203604402024-07-22 7:00:1155 days ago1721631611IN
Orbit Chain: ETH Vault
0 ETH0.0023161318
Confirm Transact...203603862024-07-22 6:49:2355 days ago1721630963IN
Orbit Chain: ETH Vault
0 ETH0.0023161318
Confirm Transact...203603742024-07-22 6:46:4755 days ago1721630807IN
Orbit Chain: ETH Vault
0 ETH0.0023161318
Confirm Transact...203603622024-07-22 6:44:2355 days ago1721630663IN
Orbit Chain: ETH Vault
0 ETH0.0023161318
Confirm Transact...203598842024-07-22 5:08:2355 days ago1721624903IN
Orbit Chain: ETH Vault
0 ETH0.0023158818
Confirm Transact...203598832024-07-22 5:08:1155 days ago1721624891IN
Orbit Chain: ETH Vault
0 ETH0.0023158818
Confirm Transact...203598822024-07-22 5:07:5955 days ago1721624879IN
Orbit Chain: ETH Vault
0 ETH0.0023158818
Confirm Transact...203598812024-07-22 5:07:4755 days ago1721624867IN
Orbit Chain: ETH Vault
0 ETH0.0023158818
Confirm Transact...203598802024-07-22 5:07:3555 days ago1721624855IN
Orbit Chain: ETH Vault
0 ETH0.0023158818
Confirm Transact...203598792024-07-22 5:07:2355 days ago1721624843IN
Orbit Chain: ETH Vault
0 ETH0.0023158818
Confirm Transact...203595362024-07-22 3:58:1155 days ago1721620691IN
Orbit Chain: ETH Vault
0 ETH0.0033167118
Confirm Transact...203595352024-07-22 3:57:5955 days ago1721620679IN
Orbit Chain: ETH Vault
0 ETH0.0033167118
Confirm Transact...203595342024-07-22 3:57:4755 days ago1721620667IN
Orbit Chain: ETH Vault
0 ETH0.0033167118
Confirm Transact...203595332024-07-22 3:57:3555 days ago1721620655IN
Orbit Chain: ETH Vault
0 ETH0.0033167118
Confirm Transact...203595322024-07-22 3:57:2355 days ago1721620643IN
Orbit Chain: ETH Vault
0 ETH0.0033167118
Confirm Transact...203595312024-07-22 3:57:1155 days ago1721620631IN
Orbit Chain: ETH Vault
0 ETH0.0027182718
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
204529952024-08-04 5:07:5942 days ago1722748079
0x1Bf68A9d...293cb489a
0 ETH
204529952024-08-04 5:07:5942 days ago1722748079
0x1Bf68A9d...293cb489a
0.000003 ETH
203609032024-07-22 8:33:3555 days ago1721637215
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
203609022024-07-22 8:33:2355 days ago1721637203
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
203606992024-07-22 7:52:2355 days ago1721634743
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
203606982024-07-22 7:52:1155 days ago1721634731
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
203606972024-07-22 7:51:5955 days ago1721634719
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
203606962024-07-22 7:51:4755 days ago1721634707
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
203595362024-07-22 3:58:1155 days ago1721620691
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
203595352024-07-22 3:57:5955 days ago1721620679
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
203595342024-07-22 3:57:4755 days ago1721620667
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
203595332024-07-22 3:57:3555 days ago1721620655
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
203595322024-07-22 3:57:2355 days ago1721620643
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
203595312024-07-22 3:57:1155 days ago1721620631
0x1Bf68A9d...293cb489a
0 ETH
203595312024-07-22 3:57:1155 days ago1721620631
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
197919472024-05-03 20:22:59135 days ago1714767779
0x1Bf68A9d...293cb489a
0 ETH
197919392024-05-03 20:21:23135 days ago1714767683
0x1Bf68A9d...293cb489a
0 ETH
197919322024-05-03 20:19:59135 days ago1714767599
0x1Bf68A9d...293cb489a
0 ETH
194740372024-03-20 6:09:23179 days ago1710914963
0x1Bf68A9d...293cb489a
0 ETH
194740372024-03-20 6:09:23179 days ago1710914963
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
194740362024-03-20 6:09:11179 days ago1710914951
0x1Bf68A9d...293cb489a
0 ETH
194740362024-03-20 6:09:11179 days ago1710914951
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
194740352024-03-20 6:08:59179 days ago1710914939
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
192176762024-02-13 7:42:11215 days ago1707810131
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
192175572024-02-13 7:18:11215 days ago1707808691
0x1Bf68A9d...293cb489a
0x1Bf68A9d...293cb489a
0 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
EthVault

Compiler Version
v0.5.0+commit.1d4f565a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU LGPLv3 license

Contract Source Code (Solidity Multiple files format)

File 1 of 4: EthVault.sol
pragma solidity ^0.5.0;

import "./MultiSigWallet.sol";

contract EthVault is MultiSigWallet{
    string public constant chain = "ETH";

    bool public isActivated = true;

    address payable public implementation;
    address public tetherAddress;

    uint public depositCount = 0;

    mapping(bytes32 => bool) public isUsedWithdrawal;

    mapping(bytes32 => address) public tokenAddr;
    mapping(address => bytes32) public tokenSummaries;

    mapping(bytes32 => bool) public isValidChain;

    constructor(address[] memory _owners, uint _required, address payable _implementation, address _tetherAddress) MultiSigWallet(_owners, _required) public {
        implementation = _implementation;
        tetherAddress = _tetherAddress;

        // klaytn valid chain default setting
        isValidChain[sha256(abi.encodePacked(address(this), "KLAYTN"))] = true;
    }

    function _setImplementation(address payable _newImp) public onlyWallet {
        require(implementation != _newImp);
        implementation = _newImp;

    }

    function () payable external {
        address impl = implementation;
        require(impl != address(0));
        assembly {
            let ptr := mload(0x40)
            calldatacopy(ptr, 0, calldatasize)
            let result := delegatecall(gas, impl, ptr, calldatasize, 0, 0)
            let size := returndatasize
            returndatacopy(ptr, 0, size)

            switch result
            case 0 { revert(ptr, size) }
            default { return(ptr, size) }
        }
    }
}

File 2 of 4: EthVault.impl.sol
pragma solidity ^0.5.0;

import "./SafeMath.sol";
import "./EthVault.sol";

interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    function decimals() external view returns (uint8);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract TIERC20 {
    function transfer(address to, uint value) public;
    function transferFrom(address from, address to, uint value) public;

    function balanceOf(address who) public view returns (uint);
    function allowance(address owner, address spender) public view returns (uint256);

    function decimals() external view returns (uint8);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract EthVaultImpl is EthVault, SafeMath{
    event Deposit(string fromChain, string toChain, address fromAddr, bytes toAddr, address token, uint8 decimal, uint amount, uint depositId, uint block);
    event Withdraw(address hubContract, string fromChain, string toChain, bytes fromAddr, bytes toAddr, bytes token, bytes32[] bytes32s, uint[] uints);

    modifier onlyActivated {
        require(isActivated);
        _;
    }

    constructor(address[] memory _owner) public EthVault(_owner, _owner.length, address(0), address(0)) {
    }

    function getVersion() public pure returns(string memory){
        return "1028";
    }

    function changeActivate(bool activate) public onlyWallet {
        isActivated = activate;
    }

    function setTetherAddress(address tether) public onlyWallet {
        tetherAddress = tether;
    }

    function getChainId(string memory _chain) public view returns(bytes32){
        return sha256(abi.encodePacked(address(this), _chain));
    }

    function setValidChain(string memory _chain, bool valid) public onlyWallet {
        isValidChain[getChainId(_chain)] = valid;
    }

    function deposit(string memory toChain, bytes memory toAddr) payable public onlyActivated {
        require(isValidChain[getChainId(toChain)]);
        require(msg.value > 0);

        depositCount = depositCount + 1;
        emit Deposit(chain, toChain, msg.sender, toAddr, address(0), 18, msg.value, depositCount, block.number);
    }

    function depositToken(address token, string memory toChain, bytes memory toAddr, uint amount) public onlyActivated{
        require(isValidChain[getChainId(toChain)]);
        require(token != address(0));
        require(amount > 0);

        uint8 decimal = 0;
        if(token == tetherAddress){
            TIERC20(token).transferFrom(msg.sender, address(this), amount);
            decimal = TIERC20(token).decimals();
        }else{
            if(!IERC20(token).transferFrom(msg.sender, address(this), amount)) revert();
            decimal = IERC20(token).decimals();
        }
        
        require(decimal > 0);

        depositCount = depositCount + 1;
        emit Deposit(chain, toChain, msg.sender, toAddr, token, decimal, amount, depositCount, block.number);
    }

    // Fix Data Info
    ///@param bytes32s [0]:govId, [1]:txHash
    ///@param uints [0]:amount, [1]:decimals
    function withdraw(
        address hubContract,
        string memory fromChain,
        bytes memory fromAddr,
        bytes memory toAddr,
        bytes memory token,
        bytes32[] memory bytes32s,
        uint[] memory uints,
        uint8[] memory v,
        bytes32[] memory r,
        bytes32[] memory s
    ) public onlyActivated {
        require(bytes32s.length >= 1);
        require(bytes32s[0] == sha256(abi.encodePacked(hubContract, chain, address(this))));
        require(uints.length >= 2);
        require(isValidChain[getChainId(fromChain)]);

        bytes32 whash = sha256(abi.encodePacked(hubContract, fromChain, chain, fromAddr, toAddr, token, bytes32s, uints));

        require(!isUsedWithdrawal[whash]);
        isUsedWithdrawal[whash] = true;

        uint validatorCount = _validate(whash, v, r, s);
        require(validatorCount >= required);

        address payable _toAddr = bytesToAddress(toAddr);
        address tokenAddress = bytesToAddress(token);
        if(tokenAddress == address(0)){
            if(!_toAddr.send(uints[0])) revert();
        }else{
            if(tokenAddress == tetherAddress){
                TIERC20(tokenAddress).transfer(_toAddr, uints[0]);
            }
            else{
                if(!IERC20(tokenAddress).transfer(_toAddr, uints[0])) revert();
            }
        }

        emit Withdraw(hubContract, fromChain, chain, fromAddr, toAddr, token, bytes32s, uints);
    }

    function _validate(bytes32 whash, uint8[] memory v, bytes32[] memory r, bytes32[] memory s) private view returns(uint){
        uint validatorCount = 0;
        address[] memory vaList = new address[](owners.length);

        uint i=0;
        uint j=0;

        for(i; i<v.length; i++){
            address va = ecrecover(whash,v[i],r[i],s[i]);
            if(isOwner[va]){
                for(j=0; j<validatorCount; j++){
                    require(vaList[j] != va);
                }

                vaList[validatorCount] = va;
                validatorCount += 1;
            }
        }

        return validatorCount;
    }

    function bytesToAddress(bytes memory bys) private pure returns (address payable addr) {
        assembly {
            addr := mload(add(bys,20))
        }
    }

    function () payable external{
    }
}

File 3 of 4: MultiSigWallet.sol
pragma solidity ^0.5.0;

/// @title Multisignature wallet - Allows multiple parties to agree on transactions before execution.
/// @author Stefan George - <[email protected]>
contract MultiSigWallet {

    uint constant public MAX_OWNER_COUNT = 50;

    event Confirmation(address indexed sender, uint indexed transactionId);
    event Revocation(address indexed sender, uint indexed transactionId);
    event Submission(uint indexed transactionId);
    event Execution(uint indexed transactionId);
    event ExecutionFailure(uint indexed transactionId);
    event Deposit(address indexed sender, uint value);
    event OwnerAddition(address indexed owner);
    event OwnerRemoval(address indexed owner);
    event RequirementChange(uint required);

    mapping (uint => Transaction) public transactions;
    mapping (uint => mapping (address => bool)) public confirmations;
    mapping (address => bool) public isOwner;
    address[] public owners;
    uint public required;
    uint public transactionCount;

    struct Transaction {
        address destination;
        uint value;
        bytes data;
        bool executed;
    }

    modifier onlyWallet() {
        if (msg.sender != address(this))
            revert("Unauthorized.");
        _;
    }

    modifier ownerDoesNotExist(address owner) {
        if (isOwner[owner])
            revert("Unauthorized.");
        _;
    }

    modifier ownerExists(address owner) {
        if (!isOwner[owner])
            revert("Unauthorized.");
        _;
    }

    modifier transactionExists(uint transactionId) {
        if (transactions[transactionId].destination == address(0))
            revert("Existed transaction id.");
        _;
    }

    modifier confirmed(uint transactionId, address owner) {
        if (!confirmations[transactionId][owner])
            revert("Not confirmed transaction.");
        _;
    }

    modifier notConfirmed(uint transactionId, address owner) {
        if (confirmations[transactionId][owner])
            revert("Confirmed transaction.");
        _;
    }

    modifier notExecuted(uint transactionId) {
        if (transactions[transactionId].executed)
            revert("Executed transaction.");
        _;
    }

    modifier notNull(address _address) {
        if (_address == address(0))
            revert("Address is null");
        _;
    }

    modifier validRequirement(uint ownerCount, uint _required) {
        if (   ownerCount > MAX_OWNER_COUNT
            || _required > ownerCount
            || _required == 0
            || ownerCount == 0)
            revert("Invalid requirement");
        _;
    }

    /// @dev Fallback function allows to deposit ether.
    function()
        external
        payable
    {
        if (msg.value > 0)
            emit Deposit(msg.sender, msg.value);
    }

    /*
     * Public functions
     */
    /// @dev Contract constructor sets initial owners and required number of confirmations.
    /// @param _owners List of initial owners.
    /// @param _required Number of required confirmations.
    constructor(address[] memory _owners, uint _required)
        public
        validRequirement(_owners.length, _required)
    {
        for (uint i=0; i<_owners.length; i++) {
            if (isOwner[_owners[i]] || _owners[i] == address(0))
                revert("Invalid owner");
            isOwner[_owners[i]] = true;
        }
        owners = _owners;
        required = _required;
    }

    /// @dev Allows to add a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of new owner.
    function addOwner(address owner)
        public
        onlyWallet
        ownerDoesNotExist(owner)
        notNull(owner)
        validRequirement(owners.length + 1, required)
    {
        isOwner[owner] = true;
        owners.push(owner);
        emit OwnerAddition(owner);
    }

    /// @dev Allows to remove an owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner.
    function removeOwner(address owner)
        public
        onlyWallet
        ownerExists(owner)
    {
        isOwner[owner] = false;
        for (uint i=0; i<owners.length - 1; i++)
            if (owners[i] == owner) {
                owners[i] = owners[owners.length - 1];
                break;
            }
        owners.length -= 1;
        if (required > owners.length)
            changeRequirement(owners.length);
        emit OwnerRemoval(owner);
    }

    /// @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.
    /// @param owner Address of owner to be replaced.
    /// @param owner Address of new owner.
    function replaceOwner(address owner, address newOwner)
        public
        onlyWallet
        ownerExists(owner)
        ownerDoesNotExist(newOwner)
    {
        for (uint i=0; i<owners.length; i++)
            if (owners[i] == owner) {
                owners[i] = newOwner;
                break;
            }
        isOwner[owner] = false;
        isOwner[newOwner] = true;
        emit OwnerRemoval(owner);
        emit OwnerAddition(newOwner);
    }

    /// @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.
    /// @param _required Number of required confirmations.
    function changeRequirement(uint _required)
        public
        onlyWallet
        validRequirement(owners.length, _required)
    {
        required = _required;
        emit RequirementChange(_required);
    }

    /// @dev Allows an owner to submit and confirm a transaction.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function submitTransaction(address destination, uint value, bytes memory data)
        public
        returns (uint transactionId)
    {
        transactionId = addTransaction(destination, value, data);
        confirmTransaction(transactionId);
    }

    /// @dev Allows an owner to confirm a transaction.
    /// @param transactionId Transaction ID.
    function confirmTransaction(uint transactionId)
        public
        ownerExists(msg.sender)
        transactionExists(transactionId)
        notConfirmed(transactionId, msg.sender)
    {
        confirmations[transactionId][msg.sender] = true;
        emit Confirmation(msg.sender, transactionId);
        executeTransaction(transactionId);
    }

    /// @dev Allows an owner to revoke a confirmation for a transaction.
    /// @param transactionId Transaction ID.
    function revokeConfirmation(uint transactionId)
        public
        ownerExists(msg.sender)
        confirmed(transactionId, msg.sender)
        notExecuted(transactionId)
    {
        confirmations[transactionId][msg.sender] = false;
        emit Revocation(msg.sender, transactionId);
    }

    /// @dev Allows anyone to execute a confirmed transaction.
    /// @param transactionId Transaction ID.
    function executeTransaction(uint transactionId)
        public
        notExecuted(transactionId)
    {
        if (isConfirmed(transactionId)) {
            Transaction storage txn = transactions[transactionId];
            txn.executed = true;
            (bool result, ) = txn.destination.call.value(txn.value)(txn.data);
            if (result)
                emit Execution(transactionId);
            else {
                emit ExecutionFailure(transactionId);
                txn.executed = false;
            }
        }
    }

    /// @dev Returns the confirmation status of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Confirmation status.
    function isConfirmed(uint transactionId)
        public
        view
        returns (bool)
    {
        uint count = 0;
        for (uint i=0; i<owners.length; i++) {
            if (confirmations[transactionId][owners[i]])
                count += 1;
            if (count == required)
                return true;
        }
    }

    /*
     * Internal functions
     */
    /// @dev Adds a new transaction to the transaction mapping, if transaction does not exist yet.
    /// @param destination Transaction target address.
    /// @param value Transaction ether value.
    /// @param data Transaction data payload.
    /// @return Returns transaction ID.
    function addTransaction(address destination, uint value, bytes memory data)
        public
        notNull(destination)
        returns (uint transactionId)
    {
        transactionId = transactionCount;
        transactions[transactionId] = Transaction({
            destination: destination,
            value: value,
            data: data,
            executed: false
        });
        transactionCount += 1;
        emit Submission(transactionId);
    }

    /*
     * Web3 call functions
     */
    /// @dev Returns number of confirmations of a transaction.
    /// @param transactionId Transaction ID.
    /// @return Number of confirmations.
    function getConfirmationCount(uint transactionId)
        public
        view
        returns (uint count)
    {
        for (uint i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]])
                count += 1;
    }

    /// @dev Returns total number of transactions after filers are applied.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Total number of transactions after filters are applied.
    function getTransactionCount(bool pending, bool executed)
        public
        view
        returns (uint count)
    {
        for (uint i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
                count += 1;
    }

    /// @dev Returns list of owners.
    /// @return List of owner addresses.
    function getOwners()
        public
        view
        returns (address[] memory)
    {
        return owners;
    }

    /// @dev Returns array with owner addresses, which confirmed transaction.
    /// @param transactionId Transaction ID.
    /// @return Returns array of owner addresses.
    function getConfirmations(uint transactionId)
        public
        view
        returns (address[] memory _confirmations)
    {
        address[] memory confirmationsTemp = new address[](owners.length);
        uint count = 0;
        uint i;
        for (i=0; i<owners.length; i++)
            if (confirmations[transactionId][owners[i]]) {
                confirmationsTemp[count] = owners[i];
                count += 1;
            }
        _confirmations = new address[](count);
        for (i=0; i<count; i++)
            _confirmations[i] = confirmationsTemp[i];
    }

    /// @dev Returns list of transaction IDs in defined range.
    /// @param from Index start position of transaction array.
    /// @param to Index end position of transaction array.
    /// @param pending Include pending transactions.
    /// @param executed Include executed transactions.
    /// @return Returns array of transaction IDs.
    function getTransactionIds(uint from, uint to, bool pending, bool executed)
        public
        view
        returns (uint[] memory _transactionIds)
    {
        uint[] memory transactionIdsTemp = new uint[](transactionCount);
        uint count = 0;
        uint i;
        for (i=0; i<transactionCount; i++)
            if (   pending && !transactions[i].executed
                || executed && transactions[i].executed)
            {
                transactionIdsTemp[count] = i;
                count += 1;
            }
        _transactionIds = new uint[](to - from);
        for (i=from; i<to; i++)
            _transactionIds[i - from] = transactionIdsTemp[i];
    }
}

File 4 of 4: SafeMath.sol
pragma solidity ^0.5.0;

contract SafeMath {
    function safeMul(uint a, uint b) internal pure returns(uint) {
        uint c = a * b;
        assertion(a == 0 || c / a == b);
        return c;
    }

    function safeSub(uint a, uint b) internal pure returns(uint) {
        assertion(b <= a);
        return a - b;
    }

    function safeAdd(uint a, uint b) internal pure returns(uint) {
        uint c = a + b;
        assertion(c >= a && c >= b);
        return c;
    }

    function safeDiv(uint a, uint b) internal pure returns(uint) {
        require(b != 0, 'Divide by zero');

        return a / b;
    }

    function safeCeil(uint a, uint b) internal pure returns (uint) {
        require(b > 0);

        uint v = a / b;

        if(v * b == a) return v;

        return v + 1;  // b cannot be 1, so v <= a / 2
    }

    function assertion(bool flag) internal pure {
        if (!flag) revert('Assertion fail.');
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"owners","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"depositCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"},{"name":"","type":"address"}],"name":"confirmations","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tetherAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isActivated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"implementation","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"tokenAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"}],"name":"addOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"transactions","outputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"executed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"isUsedWithdrawal","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"from","type":"uint256"},{"name":"to","type":"uint256"},{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionIds","outputs":[{"name":"_transactionIds","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"name":"_confirmations","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"transactionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newImp","type":"address"}],"name":"_setImplementation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"submitTransaction","outputs":[{"name":"transactionId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"chain","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"required","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"tokenSummaries","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"owner","type":"address"},{"name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"addTransaction","outputs":[{"name":"transactionId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"isValidChain","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"},{"name":"_implementation","type":"address"},{"name":"_tetherAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Revocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Submission","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"Execution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"}],"name":"ExecutionFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"OwnerRemoval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"required","type":"uint256"}],"name":"RequirementChange","type":"event"}]

60806040526006805460ff1916600117905560006008553480156200002357600080fd5b50604051620023b2380380620023b2833981018060405260808110156200004957600080fd5b8101908080516401000000008111156200006257600080fd5b820160208101848111156200007657600080fd5b81518560208202830111640100000000821117156200009457600080fd5b50506020820151604083015160609093015182519295509093509084908490816032821180620000c357508181115b80620000cd575080155b80620000d7575081155b156200014457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f496e76616c696420726571756972656d656e7400000000000000000000000000604482015290519081900360640190fd5b60005b845181101562000275576002600086838151811015156200016457fe5b6020908102909101810151600160a060020a031682528101919091526040016000205460ff1680620001b857508451600090869083908110620001a357fe5b90602001906020020151600160a060020a0316145b156200022557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f496e76616c6964206f776e657200000000000000000000000000000000000000604482015290519081900360640190fd5b60016002600087848151811015156200023a57fe5b602090810291909101810151600160a060020a03168252810191909152604001600020805460ff191691151591909117905560010162000147565b5083516200028b906003906020870190620003e4565b505050600455506006805461010060a860020a031916610100600160a060020a03858116919091029190911790915560078054600160a060020a03191691831691909117905560408051306c01000000000000000000000000026020808301919091527f4b4c4159544e000000000000000000000000000000000000000000000000000060348301528251808303601a018152603a909201928390528151600193600c9360009360029391929182918401908083835b60208310620003625780518252601f19909201916020918201910162000341565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa158015620003a2573d6000803e3d6000fd5b5050506040513d6020811015620003b857600080fd5b505181526020810191909152604001600020805460ff1916911515919091179055506200047892505050565b8280548282559060005260206000209081019282156200043c579160200282015b828111156200043c5782518254600160a060020a031916600160a060020a0390911617825560209092019160019091019062000405565b506200044a9291506200044e565b5090565b6200047591905b808211156200044a578054600160a060020a031916815560010162000455565b90565b611f2a80620004886000396000f3fe6080604052600436106101955763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025e7c2781146101d7578063173825d91461021d57806320ea8d86146102525780632dfdf0b51461027c5780632f54bf6e146102a35780633411c81c146102ea5780633a8105ec146103235780634a8c1fb414610338578063547415251461034d5780635c60da1b146103815780635ed7a8fc146103965780637065cb48146103c0578063784547a7146103f35780638b51d13f1461041d5780639ace38c2146104475780639d188c1614610514578063a0e67e2b1461053e578063a8abe69a146105a3578063b5dc40c3146105e3578063b77bf6001461060d578063ba51a6df14610622578063bb913f411461064c578063c01a8c841461067f578063c6427474146106a9578063c763e5a114610771578063d74f8edd146107fb578063dc8452cd14610810578063e1d703a114610825578063e20056e614610858578063ec096f8d14610893578063ee22610b1461095b578063f01b246714610985575b6006546101009004600160a060020a03168015156101b257600080fd5b60405136600082376000803683855af43d806000843e8180156101d3578184f35b8184fd5b3480156101e357600080fd5b50610201600480360360208110156101fa57600080fd5b50356109af565b60408051600160a060020a039092168252519081900360200190f35b34801561022957600080fd5b506102506004803603602081101561024057600080fd5b5035600160a060020a03166109d7565b005b34801561025e57600080fd5b506102506004803603602081101561027557600080fd5b5035610bb9565b34801561028857600080fd5b50610291610d42565b60408051918252519081900360200190f35b3480156102af57600080fd5b506102d6600480360360208110156102c657600080fd5b5035600160a060020a0316610d48565b604080519115158252519081900360200190f35b3480156102f657600080fd5b506102d66004803603604081101561030d57600080fd5b5080359060200135600160a060020a0316610d5d565b34801561032f57600080fd5b50610201610d7d565b34801561034457600080fd5b506102d6610d8c565b34801561035957600080fd5b506102916004803603604081101561037057600080fd5b508035151590602001351515610d95565b34801561038d57600080fd5b50610201610e01565b3480156103a257600080fd5b50610201600480360360208110156103b957600080fd5b5035610e15565b3480156103cc57600080fd5b50610250600480360360208110156103e357600080fd5b5035600160a060020a0316610e30565b3480156103ff57600080fd5b506102d66004803603602081101561041657600080fd5b5035611055565b34801561042957600080fd5b506102916004803603602081101561044057600080fd5b50356110dc565b34801561045357600080fd5b506104716004803603602081101561046a57600080fd5b503561114b565b6040518085600160a060020a0316600160a060020a031681526020018481526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b838110156104d65781810151838201526020016104be565b50505050905090810190601f1680156105035780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561052057600080fd5b506102d66004803603602081101561053757600080fd5b5035611209565b34801561054a57600080fd5b5061055361121e565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561058f578181015183820152602001610577565b505050509050019250505060405180910390f35b3480156105af57600080fd5b50610553600480360360808110156105c657600080fd5b508035906020810135906040810135151590606001351515611281565b3480156105ef57600080fd5b506105536004803603602081101561060657600080fd5b50356113b2565b34801561061957600080fd5b50610291611523565b34801561062e57600080fd5b506102506004803603602081101561064557600080fd5b5035611529565b34801561065857600080fd5b506102506004803603602081101561066f57600080fd5b5035600160a060020a0316611624565b34801561068b57600080fd5b50610250600480360360208110156106a257600080fd5b50356116be565b3480156106b557600080fd5b50610291600480360360608110156106cc57600080fd5b600160a060020a03823516916020810135918101906060810160408201356401000000008111156106fc57600080fd5b82018360208201111561070e57600080fd5b8035906020019184600183028401116401000000008311171561073057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611858945050505050565b34801561077d57600080fd5b50610786611877565b6040805160208082528351818301528351919283929083019185019080838360005b838110156107c05781810151838201526020016107a8565b50505050905090810190601f1680156107ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561080757600080fd5b506102916118ae565b34801561081c57600080fd5b506102916118b3565b34801561083157600080fd5b506102916004803603602081101561084857600080fd5b5035600160a060020a03166118b9565b34801561086457600080fd5b506102506004803603604081101561087b57600080fd5b50600160a060020a03813581169160200135166118cb565b34801561089f57600080fd5b50610291600480360360608110156108b657600080fd5b600160a060020a03823516916020810135918101906060810160408201356401000000008111156108e657600080fd5b8201836020820111156108f857600080fd5b8035906020019184600183028401116401000000008311171561091a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611af9945050505050565b34801561096757600080fd5b506102506004803603602081101561097e57600080fd5b5035611c34565b34801561099157600080fd5b506102d6600480360360208110156109a857600080fd5b5035611e08565b60038054829081106109bd57fe5b600091825260209091200154600160a060020a0316905081565b333014610a1c576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a038116600090815260026020526040902054819060ff161515610a7e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600260205260408120805460ff191690555b60035460001901811015610b545782600160a060020a0316600382815481101515610ac657fe5b600091825260209091200154600160a060020a03161415610b4c57600380546000198101908110610af357fe5b60009182526020909120015460038054600160a060020a039092169183908110610b1957fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610b54565b600101610a9f565b50600380546000190190610b689082611e1d565b506003546004541115610b8157600354610b8190611529565b604051600160a060020a038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526002602052604090205460ff161515610c10576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b60008281526001602090815260408083203380855292529091205483919060ff161515610c87576040805160e560020a62461bcd02815260206004820152601a60248201527f4e6f7420636f6e6669726d6564207472616e73616374696f6e2e000000000000604482015290519081900360640190fd5b600084815260208190526040902060030154849060ff1615610cf3576040805160e560020a62461bcd02815260206004820152601560248201527f4578656375746564207472616e73616374696f6e2e0000000000000000000000604482015290519081900360640190fd5b6000858152600160209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60085481565b60026020526000908152604090205460ff1681565b600160209081526000928352604080842090915290825290205460ff1681565b600754600160a060020a031681565b60065460ff1681565b6000805b600554811015610dfa57838015610dc2575060008181526020819052604090206003015460ff16155b80610de65750828015610de6575060008181526020819052604090206003015460ff165b15610df2576001820191505b600101610d99565b5092915050565b6006546101009004600160a060020a031681565b600a60205260009081526040902054600160a060020a031681565b333014610e75576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a038116600090815260026020526040902054819060ff1615610ed6576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b81600160a060020a0381161515610f37576040805160e560020a62461bcd02815260206004820152600f60248201527f41646472657373206973206e756c6c0000000000000000000000000000000000604482015290519081900360640190fd5b6003805490506001016004546032821180610f5157508181115b80610f5a575080155b80610f63575081155b15610fb8576040805160e560020a62461bcd02815260206004820152601360248201527f496e76616c696420726571756972656d656e7400000000000000000000000000604482015290519081900360640190fd5b600160a060020a038516600081815260026020526040808220805460ff1916600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b600080805b6003548110156110d4576000848152600160205260408120600380549192918490811061108357fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16156110b7576001820191505b6004548214156110cc576001925050506110d7565b60010161105a565b50505b919050565b6000805b600354811015611145576000838152600160205260408120600380549192918490811061110957fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561113d576001820191505b6001016110e0565b50919050565b6000602081815291815260409081902080546001808301546002808501805487516101009582161595909502600019011691909104601f8101889004880284018801909652858352600160a060020a03909316959094919291908301828280156111f65780601f106111cb576101008083540402835291602001916111f6565b820191906000526020600020905b8154815290600101906020018083116111d957829003601f168201915b5050506003909301549192505060ff1684565b60096020526000908152604090205460ff1681565b6060600380548060200260200160405190810160405280929190818152602001828054801561127657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611258575b505050505090505b90565b6060806005546040519080825280602002602001820160405280156112b0578160200160208202803883390190505b5090506000805b600554811015611332578580156112e0575060008181526020819052604090206003015460ff16155b806113045750848015611304575060008181526020819052604090206003015460ff165b1561132a5780838381518110151561131857fe5b60209081029091010152600191909101905b6001016112b7565b87870360405190808252806020026020018201604052801561135e578160200160208202803883390190505b5093508790505b868110156113a757828181518110151561137b57fe5b906020019060200201518489830381518110151561139557fe5b60209081029091010152600101611365565b505050949350505050565b6060806003805490506040519080825280602002602001820160405280156113e4578160200160208202803883390190505b5090506000805b60035481101561149c576000858152600160205260408120600380549192918490811061141457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561149457600380548290811061144f57fe5b6000918252602090912001548351600160a060020a039091169084908490811061147557fe5b600160a060020a03909216602092830290910190910152600191909101905b6001016113eb565b816040519080825280602002602001820160405280156114c6578160200160208202803883390190505b509350600090505b8181101561151b5782818151811015156114e457fe5b9060200190602002015184828151811015156114fc57fe5b600160a060020a039092166020928302909101909101526001016114ce565b505050919050565b60055481565b33301461156e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b60035481603282118061158057508181115b80611589575080155b80611592575081155b156115e7576040805160e560020a62461bcd02815260206004820152601360248201527f496e76616c696420726571756972656d656e7400000000000000000000000000604482015290519081900360640190fd5b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b333014611669576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600654600160a060020a0382811661010090920416141561168957600080fd5b60068054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b3360008181526002602052604090205460ff161515611715576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b6000828152602081905260409020548290600160a060020a03161515611785576040805160e560020a62461bcd02815260206004820152601760248201527f45786973746564207472616e73616374696f6e2069642e000000000000000000604482015290519081900360640190fd5b60008381526001602090815260408083203380855292529091205484919060ff16156117fb576040805160e560020a62461bcd02815260206004820152601660248201527f436f6e6669726d6564207472616e73616374696f6e2e00000000000000000000604482015290519081900360640190fd5b6000858152600160208181526040808420338086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a361185185611c34565b5050505050565b6000611865848484611af9565b9050611870816116be565b9392505050565b60408051808201909152600381527f4554480000000000000000000000000000000000000000000000000000000000602082015281565b603281565b60045481565b600b6020526000908152604090205481565b333014611910576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a038216600090815260026020526040902054829060ff161515611972576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a038216600090815260026020526040902054829060ff16156119d3576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b60005b600354811015611a5f5784600160a060020a03166003828154811015156119f957fe5b600091825260209091200154600160a060020a03161415611a575783600382815481101515611a2457fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550611a5f565b6001016119d6565b50600160a060020a03808516600081815260026020526040808220805460ff1990811690915593871682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038416907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a250505050565b600083600160a060020a0381161515611b5c576040805160e560020a62461bcd02815260206004820152600f60248201527f41646472657373206973206e756c6c0000000000000000000000000000000000604482015290519081900360640190fd5b60055460408051608081018252600160a060020a0388811682526020808301898152838501898152600060608601819052878152808452959095208451815473ffffffffffffffffffffffffffffffffffffffff191694169390931783555160018301559251805194965091939092611bdc926002850192910190611e46565b50606091909101516003909101805460ff191691151591909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b600081815260208190526040902060030154819060ff1615611ca0576040805160e560020a62461bcd02815260206004820152601560248201527f4578656375746564207472616e73616374696f6e2e0000000000000000000000604482015290519081900360640190fd5b611ca982611055565b15611e045760008281526020819052604080822060038101805460ff19166001908117909155815481830154935160028085018054959796600160a060020a03909416959394909383928592600019908316156101000201909116048015611d485780601f10611d26576101008083540402835291820191611d48565b820191906000526020600020905b815481529060010190602001808311611d34575b505091505060006040518083038185875af1925050503d8060008114611d8a576040519150601f19603f3d011682016040523d82523d6000602084013e611d8f565b606091505b505090508015611dc95760405184907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611e01565b60405184907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038201805460ff191690555b50505b5050565b600c6020526000908152604090205460ff1681565b815481835581811115611e4157600083815260209020611e41918101908301611ec4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e8757805160ff1916838001178555611eb4565b82800160010185558215611eb4579182015b82811115611eb4578251825591602001919060010190611e99565b50611ec0929150611ec4565b5090565b61127e91905b80821115611ec05760008155600101611eca56fe556e617574686f72697a65642e00000000000000000000000000000000000000a165627a7a72305820620a304d1f4c0cf3ced6c4561eded58216eafb3de08d3b63fc721313a44776de0029000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000040000000000000000000000004ff16c8ee6f5fed268cf764689451bf67795fbe8000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000000060000000000000000000000008a3f117ef3b40f1661dedf7f28fc33e7b6fae4f800000000000000000000000067c3c784c49d9ab8757adb71491df1a1b38fbfa800000000000000000000000034ebf4f74a881eb63f666e63ce1ff2f287ca5a8b00000000000000000000000031df9d7ee1a61b362277022eae46435782d66cff0000000000000000000000003924ac70075078a7713f543b72e3f8817ecec646000000000000000000000000d1176f2f576c102f6516d386de53ec7a72cc1491

Deployed Bytecode

0x6080604052600436106101955763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663025e7c2781146101d7578063173825d91461021d57806320ea8d86146102525780632dfdf0b51461027c5780632f54bf6e146102a35780633411c81c146102ea5780633a8105ec146103235780634a8c1fb414610338578063547415251461034d5780635c60da1b146103815780635ed7a8fc146103965780637065cb48146103c0578063784547a7146103f35780638b51d13f1461041d5780639ace38c2146104475780639d188c1614610514578063a0e67e2b1461053e578063a8abe69a146105a3578063b5dc40c3146105e3578063b77bf6001461060d578063ba51a6df14610622578063bb913f411461064c578063c01a8c841461067f578063c6427474146106a9578063c763e5a114610771578063d74f8edd146107fb578063dc8452cd14610810578063e1d703a114610825578063e20056e614610858578063ec096f8d14610893578063ee22610b1461095b578063f01b246714610985575b6006546101009004600160a060020a03168015156101b257600080fd5b60405136600082376000803683855af43d806000843e8180156101d3578184f35b8184fd5b3480156101e357600080fd5b50610201600480360360208110156101fa57600080fd5b50356109af565b60408051600160a060020a039092168252519081900360200190f35b34801561022957600080fd5b506102506004803603602081101561024057600080fd5b5035600160a060020a03166109d7565b005b34801561025e57600080fd5b506102506004803603602081101561027557600080fd5b5035610bb9565b34801561028857600080fd5b50610291610d42565b60408051918252519081900360200190f35b3480156102af57600080fd5b506102d6600480360360208110156102c657600080fd5b5035600160a060020a0316610d48565b604080519115158252519081900360200190f35b3480156102f657600080fd5b506102d66004803603604081101561030d57600080fd5b5080359060200135600160a060020a0316610d5d565b34801561032f57600080fd5b50610201610d7d565b34801561034457600080fd5b506102d6610d8c565b34801561035957600080fd5b506102916004803603604081101561037057600080fd5b508035151590602001351515610d95565b34801561038d57600080fd5b50610201610e01565b3480156103a257600080fd5b50610201600480360360208110156103b957600080fd5b5035610e15565b3480156103cc57600080fd5b50610250600480360360208110156103e357600080fd5b5035600160a060020a0316610e30565b3480156103ff57600080fd5b506102d66004803603602081101561041657600080fd5b5035611055565b34801561042957600080fd5b506102916004803603602081101561044057600080fd5b50356110dc565b34801561045357600080fd5b506104716004803603602081101561046a57600080fd5b503561114b565b6040518085600160a060020a0316600160a060020a031681526020018481526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b838110156104d65781810151838201526020016104be565b50505050905090810190601f1680156105035780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b34801561052057600080fd5b506102d66004803603602081101561053757600080fd5b5035611209565b34801561054a57600080fd5b5061055361121e565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561058f578181015183820152602001610577565b505050509050019250505060405180910390f35b3480156105af57600080fd5b50610553600480360360808110156105c657600080fd5b508035906020810135906040810135151590606001351515611281565b3480156105ef57600080fd5b506105536004803603602081101561060657600080fd5b50356113b2565b34801561061957600080fd5b50610291611523565b34801561062e57600080fd5b506102506004803603602081101561064557600080fd5b5035611529565b34801561065857600080fd5b506102506004803603602081101561066f57600080fd5b5035600160a060020a0316611624565b34801561068b57600080fd5b50610250600480360360208110156106a257600080fd5b50356116be565b3480156106b557600080fd5b50610291600480360360608110156106cc57600080fd5b600160a060020a03823516916020810135918101906060810160408201356401000000008111156106fc57600080fd5b82018360208201111561070e57600080fd5b8035906020019184600183028401116401000000008311171561073057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611858945050505050565b34801561077d57600080fd5b50610786611877565b6040805160208082528351818301528351919283929083019185019080838360005b838110156107c05781810151838201526020016107a8565b50505050905090810190601f1680156107ed5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561080757600080fd5b506102916118ae565b34801561081c57600080fd5b506102916118b3565b34801561083157600080fd5b506102916004803603602081101561084857600080fd5b5035600160a060020a03166118b9565b34801561086457600080fd5b506102506004803603604081101561087b57600080fd5b50600160a060020a03813581169160200135166118cb565b34801561089f57600080fd5b50610291600480360360608110156108b657600080fd5b600160a060020a03823516916020810135918101906060810160408201356401000000008111156108e657600080fd5b8201836020820111156108f857600080fd5b8035906020019184600183028401116401000000008311171561091a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611af9945050505050565b34801561096757600080fd5b506102506004803603602081101561097e57600080fd5b5035611c34565b34801561099157600080fd5b506102d6600480360360208110156109a857600080fd5b5035611e08565b60038054829081106109bd57fe5b600091825260209091200154600160a060020a0316905081565b333014610a1c576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a038116600090815260026020526040902054819060ff161515610a7e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a0382166000908152600260205260408120805460ff191690555b60035460001901811015610b545782600160a060020a0316600382815481101515610ac657fe5b600091825260209091200154600160a060020a03161415610b4c57600380546000198101908110610af357fe5b60009182526020909120015460038054600160a060020a039092169183908110610b1957fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550610b54565b600101610a9f565b50600380546000190190610b689082611e1d565b506003546004541115610b8157600354610b8190611529565b604051600160a060020a038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526002602052604090205460ff161515610c10576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b60008281526001602090815260408083203380855292529091205483919060ff161515610c87576040805160e560020a62461bcd02815260206004820152601a60248201527f4e6f7420636f6e6669726d6564207472616e73616374696f6e2e000000000000604482015290519081900360640190fd5b600084815260208190526040902060030154849060ff1615610cf3576040805160e560020a62461bcd02815260206004820152601560248201527f4578656375746564207472616e73616374696f6e2e0000000000000000000000604482015290519081900360640190fd5b6000858152600160209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60085481565b60026020526000908152604090205460ff1681565b600160209081526000928352604080842090915290825290205460ff1681565b600754600160a060020a031681565b60065460ff1681565b6000805b600554811015610dfa57838015610dc2575060008181526020819052604090206003015460ff16155b80610de65750828015610de6575060008181526020819052604090206003015460ff165b15610df2576001820191505b600101610d99565b5092915050565b6006546101009004600160a060020a031681565b600a60205260009081526040902054600160a060020a031681565b333014610e75576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a038116600090815260026020526040902054819060ff1615610ed6576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b81600160a060020a0381161515610f37576040805160e560020a62461bcd02815260206004820152600f60248201527f41646472657373206973206e756c6c0000000000000000000000000000000000604482015290519081900360640190fd5b6003805490506001016004546032821180610f5157508181115b80610f5a575080155b80610f63575081155b15610fb8576040805160e560020a62461bcd02815260206004820152601360248201527f496e76616c696420726571756972656d656e7400000000000000000000000000604482015290519081900360640190fd5b600160a060020a038516600081815260026020526040808220805460ff1916600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b600080805b6003548110156110d4576000848152600160205260408120600380549192918490811061108357fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff16156110b7576001820191505b6004548214156110cc576001925050506110d7565b60010161105a565b50505b919050565b6000805b600354811015611145576000838152600160205260408120600380549192918490811061110957fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561113d576001820191505b6001016110e0565b50919050565b6000602081815291815260409081902080546001808301546002808501805487516101009582161595909502600019011691909104601f8101889004880284018801909652858352600160a060020a03909316959094919291908301828280156111f65780601f106111cb576101008083540402835291602001916111f6565b820191906000526020600020905b8154815290600101906020018083116111d957829003601f168201915b5050506003909301549192505060ff1684565b60096020526000908152604090205460ff1681565b6060600380548060200260200160405190810160405280929190818152602001828054801561127657602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311611258575b505050505090505b90565b6060806005546040519080825280602002602001820160405280156112b0578160200160208202803883390190505b5090506000805b600554811015611332578580156112e0575060008181526020819052604090206003015460ff16155b806113045750848015611304575060008181526020819052604090206003015460ff165b1561132a5780838381518110151561131857fe5b60209081029091010152600191909101905b6001016112b7565b87870360405190808252806020026020018201604052801561135e578160200160208202803883390190505b5093508790505b868110156113a757828181518110151561137b57fe5b906020019060200201518489830381518110151561139557fe5b60209081029091010152600101611365565b505050949350505050565b6060806003805490506040519080825280602002602001820160405280156113e4578160200160208202803883390190505b5090506000805b60035481101561149c576000858152600160205260408120600380549192918490811061141457fe5b6000918252602080832090910154600160a060020a0316835282019290925260400190205460ff161561149457600380548290811061144f57fe5b6000918252602090912001548351600160a060020a039091169084908490811061147557fe5b600160a060020a03909216602092830290910190910152600191909101905b6001016113eb565b816040519080825280602002602001820160405280156114c6578160200160208202803883390190505b509350600090505b8181101561151b5782818151811015156114e457fe5b9060200190602002015184828151811015156114fc57fe5b600160a060020a039092166020928302909101909101526001016114ce565b505050919050565b60055481565b33301461156e576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b60035481603282118061158057508181115b80611589575080155b80611592575081155b156115e7576040805160e560020a62461bcd02815260206004820152601360248201527f496e76616c696420726571756972656d656e7400000000000000000000000000604482015290519081900360640190fd5b60048390556040805184815290517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9181900360200190a1505050565b333014611669576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600654600160a060020a0382811661010090920416141561168957600080fd5b60068054600160a060020a039092166101000274ffffffffffffffffffffffffffffffffffffffff0019909216919091179055565b3360008181526002602052604090205460ff161515611715576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b6000828152602081905260409020548290600160a060020a03161515611785576040805160e560020a62461bcd02815260206004820152601760248201527f45786973746564207472616e73616374696f6e2069642e000000000000000000604482015290519081900360640190fd5b60008381526001602090815260408083203380855292529091205484919060ff16156117fb576040805160e560020a62461bcd02815260206004820152601660248201527f436f6e6669726d6564207472616e73616374696f6e2e00000000000000000000604482015290519081900360640190fd5b6000858152600160208181526040808420338086529252808420805460ff1916909317909255905187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a361185185611c34565b5050505050565b6000611865848484611af9565b9050611870816116be565b9392505050565b60408051808201909152600381527f4554480000000000000000000000000000000000000000000000000000000000602082015281565b603281565b60045481565b600b6020526000908152604090205481565b333014611910576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a038216600090815260026020526040902054829060ff161515611972576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b600160a060020a038216600090815260026020526040902054829060ff16156119d3576040805160e560020a62461bcd02815260206004820152600d6024820152600080516020611edf833981519152604482015290519081900360640190fd5b60005b600354811015611a5f5784600160a060020a03166003828154811015156119f957fe5b600091825260209091200154600160a060020a03161415611a575783600382815481101515611a2457fe5b9060005260206000200160006101000a815481600160a060020a030219169083600160a060020a03160217905550611a5f565b6001016119d6565b50600160a060020a03808516600081815260026020526040808220805460ff1990811690915593871682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a2604051600160a060020a038416907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a250505050565b600083600160a060020a0381161515611b5c576040805160e560020a62461bcd02815260206004820152600f60248201527f41646472657373206973206e756c6c0000000000000000000000000000000000604482015290519081900360640190fd5b60055460408051608081018252600160a060020a0388811682526020808301898152838501898152600060608601819052878152808452959095208451815473ffffffffffffffffffffffffffffffffffffffff191694169390931783555160018301559251805194965091939092611bdc926002850192910190611e46565b50606091909101516003909101805460ff191691151591909117905560058054600101905560405182907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a2509392505050565b600081815260208190526040902060030154819060ff1615611ca0576040805160e560020a62461bcd02815260206004820152601560248201527f4578656375746564207472616e73616374696f6e2e0000000000000000000000604482015290519081900360640190fd5b611ca982611055565b15611e045760008281526020819052604080822060038101805460ff19166001908117909155815481830154935160028085018054959796600160a060020a03909416959394909383928592600019908316156101000201909116048015611d485780601f10611d26576101008083540402835291820191611d48565b820191906000526020600020905b815481529060010190602001808311611d34575b505091505060006040518083038185875af1925050503d8060008114611d8a576040519150601f19603f3d011682016040523d82523d6000602084013e611d8f565b606091505b505090508015611dc95760405184907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611e01565b60405184907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a260038201805460ff191690555b50505b5050565b600c6020526000908152604090205460ff1681565b815481835581811115611e4157600083815260209020611e41918101908301611ec4565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611e8757805160ff1916838001178555611eb4565b82800160010185558215611eb4579182015b82811115611eb4578251825591602001919060010190611e99565b50611ec0929150611ec4565b5090565b61127e91905b80821115611ec05760008155600101611eca56fe556e617574686f72697a65642e00000000000000000000000000000000000000a165627a7a72305820620a304d1f4c0cf3ced6c4561eded58216eafb3de08d3b63fc721313a44776de0029

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000040000000000000000000000004ff16c8ee6f5fed268cf764689451bf67795fbe8000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec700000000000000000000000000000000000000000000000000000000000000060000000000000000000000008a3f117ef3b40f1661dedf7f28fc33e7b6fae4f800000000000000000000000067c3c784c49d9ab8757adb71491df1a1b38fbfa800000000000000000000000034ebf4f74a881eb63f666e63ce1ff2f287ca5a8b00000000000000000000000031df9d7ee1a61b362277022eae46435782d66cff0000000000000000000000003924ac70075078a7713f543b72e3f8817ecec646000000000000000000000000d1176f2f576c102f6516d386de53ec7a72cc1491

-----Decoded View---------------
Arg [0] : _owners (address[]): 0x8a3F117Ef3b40f1661Dedf7f28fC33E7b6fae4F8,0x67C3c784C49d9ab8757ADb71491df1A1B38FbFA8,0x34EBf4f74a881eB63F666E63ce1Ff2F287CA5a8b,0x31df9D7ee1A61b362277022eAe46435782D66Cff,0x3924Ac70075078A7713f543b72e3F8817ecEc646,0xd1176F2f576C102F6516D386De53ec7a72Cc1491
Arg [1] : _required (uint256): 4
Arg [2] : _implementation (address): 0x4Ff16C8eE6f5FEd268cf764689451bf67795fbe8
Arg [3] : _tetherAddress (address): 0xdAC17F958D2ee523a2206206994597C13D831ec7

-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [2] : 0000000000000000000000004ff16c8ee6f5fed268cf764689451bf67795fbe8
Arg [3] : 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000006
Arg [5] : 0000000000000000000000008a3f117ef3b40f1661dedf7f28fc33e7b6fae4f8
Arg [6] : 00000000000000000000000067c3c784c49d9ab8757adb71491df1a1b38fbfa8
Arg [7] : 00000000000000000000000034ebf4f74a881eb63f666e63ce1ff2f287ca5a8b
Arg [8] : 00000000000000000000000031df9d7ee1a61b362277022eae46435782d66cff
Arg [9] : 0000000000000000000000003924ac70075078a7713f543b72e3f8817ecec646
Arg [10] : 000000000000000000000000d1176f2f576c102f6516d386de53ec7a72cc1491


Deployed Bytecode Sourcemap

57:1474:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1095:14;;;;;-1:-1:-1;;;;;1095:14:1;1127:18;;;1119:27;;;;;;1196:4;1190:11;1235:12;1232:1;1227:3;1214:34;1321:1;1318;1304:12;1299:3;1293:4;1288:3;1275:48;1348:14;1398:4;1395:1;1390:3;1375:28;1424:6;1443:28;;;;1506:4;1501:3;1494:17;1443:28;1464:4;1459:3;1452:17;935:23:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;935:23:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;935:23:2;;;;;;;-1:-1:-1;;;;;935:23:2;;;;;;;;;;;;;;3987:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3987:465:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3987:465:2;-1:-1:-1;;;;;3987:465:2;;;;;6582:296;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6582:296:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6582:296:2;;;256:28:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;256:28:1;;;;;;;;;;;;;;;;;;;;889:40:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;889:40:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;889:40:2;-1:-1:-1;;;;;889:40:2;;;;;;;;;;;;;;;;;;;;;819:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;819:64:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;819:64:2;;;;;;-1:-1:-1;;;;;819:64:2;;;221:28:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;221:28:1;;;;141:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;141:30:1;;;;9513:315:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9513:315:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9513:315:2;;;;;;;;;;;;178:37:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;178:37:1;;;;346:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;346:44:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;346:44:1;;;3582:282:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3582:282:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3582:282:2;-1:-1:-1;;;;;3582:282:2;;;7679:333;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7679:333:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7679:333:2;;;9003:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9003:248:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9003:248:2;;;764:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;764:49:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;764:49:2;;;;;;;;-1:-1:-1;;;;;764:49:2;-1:-1:-1;;;;;764:49:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;764:49:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;291:48:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;291:48:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;291:48:1;;;9912:118:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9912:118:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9912:118:2;;;;;;;;;;;;;;;;;11136:679;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11136:679:2;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;11136:679:2;;;;;;;;;;;;;;;;;;;;;;10209:578;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10209:578:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10209:578:2;;;990:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;990:28:2;;;;5281:212;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5281:212:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5281:212:2;;;878:157:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;878:157:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;878:157:1;-1:-1:-1;;;;;878:157:1;;;6109:349:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6109:349:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6109:349:2;;;5752:251;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5752:251:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;5752:251:2;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5752:251:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5752:251:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5752:251:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5752:251:2;;-1:-1:-1;5752:251:2;;-1:-1:-1;;;;;5752:251:2;98:36:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;98:36:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;98:36:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;216:41:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;216:41:2;;;;964:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;964:20:2;;;;396:49:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;396:49:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;396:49:1;-1:-1:-1;;;;;396:49:1;;;4651:459:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4651:459:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4651:459:2;;;;;;;;;;;8345:461;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8345:461:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;8345:461:2;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8345:461:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8345:461:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;8345:461:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;8345:461:2;;-1:-1:-1;8345:461:2;;-1:-1:-1;;;;;8345:461:2;6992:536;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6992:536:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6992:536:2;;;452:44:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;452:44:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;452:44:1;;;935:23:2;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;935:23:2;;-1:-1:-1;935:23:2;:::o;3987:465::-;1185:10;1207:4;1185:27;1181:68;;1226:23;;;-1:-1:-1;;;;;1226:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1226:23:2;;;;;;;;;;;;;;1181:68;-1:-1:-1;;;;;1455:14:2;;;;;;:7;:14;;;;;;4077:5;;1455:14;;1454:15;1450:56;;;1483:23;;;-1:-1:-1;;;;;1483:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1483:23:2;;;;;;;;;;;;;;1450:56;-1:-1:-1;;;;;4098:14:2;;4115:5;4098:14;;;:7;:14;;;;;:22;;-1:-1:-1;;4098:22:2;;;4130:170;4147:6;:13;-1:-1:-1;;4147:17:2;4145:19;;4130:170;;;4200:5;-1:-1:-1;;;;;4187:18:2;:6;4194:1;4187:9;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4187:9:2;:18;4183:117;;;4237:6;4244:13;;-1:-1:-1;;4244:17:2;;;4237:25;;;;;;;;;;;;;;;;4225:6;:9;;-1:-1:-1;;;;;4237:25:2;;;;4232:1;;4225:9;;;;;;;;;;;;;;:37;;;;;-1:-1:-1;;;;;4225:37:2;;;;;-1:-1:-1;;;;;4225:37:2;;;;;;4280:5;;4183:117;4166:3;;4130:170;;;-1:-1:-1;4309:6:2;:18;;-1:-1:-1;;4309:18:2;;;;;;:::i;:::-;-1:-1:-1;4352:6:2;:13;4341:8;;:24;4337:74;;;4397:6;:13;4379:32;;:17;:32::i;:::-;4426:19;;-1:-1:-1;;;;;4426:19:2;;;;;;;;1259:1;3987:465;:::o;6582:296::-;6665:10;1455:14;;;;:7;:14;;;;;;;;1454:15;1450:56;;;1483:23;;;-1:-1:-1;;;;;1483:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1483:23:2;;;;;;;;;;;;;;1450:56;1784:28;;;;:13;:28;;;;;;;;6710:10;1784:35;;;;;;;;;6695:13;;6710:10;1784:35;;1783:36;1779:90;;;1833:36;;;-1:-1:-1;;;;;1833:36:2;;;;;;;;;;;;;;;;;;;;;;;;;;;1779:90;2124:12;:27;;;;;;;;;;:36;;;6742:13;;2124:36;;2120:85;;;2174:31;;;-1:-1:-1;;;;;2174:31:2;;;;;;;;;;;;;;;;;;;;;;;;;;;2120:85;6814:5;6771:28;;;:13;:28;;;;;;;;6800:10;6771:40;;;;;;;;:48;;-1:-1:-1;;6771:48:2;;;6834:37;6785:13;;6834:37;;;1879:1;1516;;6582:296;;:::o;256:28:1:-;;;;:::o;889:40:2:-;;;;;;;;;;;;;;;:::o;819:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;221:28:1:-;;;-1:-1:-1;;;;;221:28:1;;:::o;141:30::-;;;;;;:::o;9513:315:2:-;9616:10;;9642:179;9659:16;;9657:1;:18;9642:179;;;9701:7;:36;;;;-1:-1:-1;9713:12:2;:15;;;;;;;;;;:24;;;;;9712:25;9701:36;:92;;;;9757:8;:36;;;;-1:-1:-1;9769:12:2;:15;;;;;;;;;;:24;;;;;9757:36;9694:127;;;9820:1;9811:10;;;;9694:127;9677:3;;9642:179;;;;9513:315;;;;:::o;178:37:1:-;;;;;;-1:-1:-1;;;;;178:37:1;;:::o;346:44::-;;;;;;;;;;;;-1:-1:-1;;;;;346:44:1;;:::o;3582:282:2:-;1185:10;1207:4;1185:27;1181:68;;1226:23;;;-1:-1:-1;;;;;1226:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1226:23:2;;;;;;;;;;;;;;1181:68;-1:-1:-1;;;;;1329:14:2;;;;;;:7;:14;;;;;;3675:5;;1329:14;;1325:55;;;1357:23;;;-1:-1:-1;;;;;1357:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1357:23:2;;;;;;;;;;;;;;1325:55;3698:5;-1:-1:-1;;;;;2278:22:2;;;2274:65;;;2314:25;;;-1:-1:-1;;;;;2314:25:2;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:65;3730:6;:13;;;;3746:1;3730:17;3749:8;;255:2;2439:10;:28;:66;;;;2495:10;2483:9;:22;2439:66;:96;;;-1:-1:-1;2521:14:2;;2439:96;:127;;;-1:-1:-1;2551:15:2;;2439:127;2432:177;;;2580:29;;;-1:-1:-1;;;;;2580:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;2432:177;-1:-1:-1;;;;;3773:14:2;;;;;;:7;:14;;;;;;:21;;-1:-1:-1;;3773:21:2;3790:4;3773:21;;;;;;3804:6;27:10:-1;;23:18;;;45:23;;3804:18:2;;;;;;-1:-1:-1;;3804:18:2;;;;;3837:20;;;3773:14;3837:20;2349:1;;1390;1259;3582:282;:::o;7679:333::-;7765:4;;;7809:197;7826:6;:13;7824:15;;7809:197;;;7864:28;;;;:13;:28;;;;;7893:6;:9;;7864:28;;;7900:1;;7893:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7893:9:2;7864:39;;;;;;;;;;;;;;;7860:71;;;7930:1;7921:10;;;;7860:71;7958:8;;7949:5;:17;7945:50;;;7991:4;7984:11;;;;;;7945:50;7841:3;;7809:197;;;;7679:333;;;;;:::o;9003:248::-;9098:10;;9124:120;9141:6;:13;9139:15;;9124:120;;;9177:28;;;;:13;:28;;;;;9206:6;:9;;9177:28;;;9213:1;;9206:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9206:9:2;9177:39;;;;;;;;;;;;;;;9173:71;;;9243:1;9234:10;;;;9173:71;9156:3;;9124:120;;;;9003:248;;;:::o;764:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;764:49:2;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;764:49:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;764:49:2;;;;;;;-1:-1:-1;;764:49:2;;;:::o;291:48:1:-;;;;;;;;;;;;;;;:::o;9912:118:2:-;9978:16;10017:6;10010:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10010:13:2;;;;;;;;;;;;;;;;;;;;;;;9912:118;;:::o;11136:679::-;11257:29;11302:32;11348:16;;11337:28;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;11337:28:2;-1:-1:-1;11302:63:2;-1:-1:-1;11375:10:2;;11415:250;11427:16;;11425:1;:18;11415:250;;;11469:7;:36;;;;-1:-1:-1;11481:12:2;:15;;;;;;;;;;:24;;;;;11480:25;11469:36;:92;;;;11525:8;:36;;;;-1:-1:-1;11537:12:2;:15;;;;;;;;;;:24;;;;;11525:36;11462:203;;;11621:1;11593:18;11612:5;11593:25;;;;;;;;;;;;;;;;;;:29;11649:1;11640:10;;;;;11462:203;11445:3;;11415:250;;;11708:4;11703:2;:9;11692:21;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;11692:21:2;;11674:39;;11730:4;11728:6;;11723:85;11738:2;11736:1;:4;11723:85;;;11787:18;11806:1;11787:21;;;;;;;;;;;;;;;;;;11759:15;11779:4;11775:1;:8;11759:25;;;;;;;;;;;;;;;;;;:49;11742:3;;11723:85;;;11136:679;;;;;;;;;:::o;10209:578::-;10300:31;10347:34;10398:6;:13;;;;10384:28;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;10384:28:2;-1:-1:-1;10347:65:2;-1:-1:-1;10422:10:2;;10462:186;10474:6;:13;10472:15;;10462:186;;;10510:28;;;;:13;:28;;;;;10539:6;:9;;10510:28;;;10546:1;;10539:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10539:9:2;10510:39;;;;;;;;;;;;;;;10506:142;;;10596:6;:9;;10603:1;;10596:9;;;;;;;;;;;;;;;;10569:24;;-1:-1:-1;;;;;10596:9:2;;;;10569:17;;10587:5;;10569:24;;;;;;-1:-1:-1;;;;;10569:36:2;;;:24;;;;;;;;;;:36;10632:1;10623:10;;;;;10506:142;10489:3;;10462:186;;;10688:5;10674:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;10674:20:2;;10657:37;;10711:1;10709:3;;10704:76;10716:5;10714:1;:7;10704:76;;;10760:17;10778:1;10760:20;;;;;;;;;;;;;;;;;;10740:14;10755:1;10740:17;;;;;;;;;;-1:-1:-1;;;;;10740:40:2;;;:17;;;;;;;;;;:40;10723:3;;10704:76;;;10209:578;;;;;;:::o;990:28::-;;;;:::o;5281:212::-;1185:10;1207:4;1185:27;1181:68;;1226:23;;;-1:-1:-1;;;;;1226:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1226:23:2;;;;;;;;;;;;;;1181:68;5383:6;:13;5398:9;255:2;2439:28;;;:66;;;2495:10;2483:9;:22;2439:66;:96;;;-1:-1:-1;2521:14:2;;2439:96;:127;;;-1:-1:-1;2551:15:2;;2439:127;2432:177;;;2580:29;;;-1:-1:-1;;;;;2580:29:2;;;;;;;;;;;;;;;;;;;;;;;;;;;2432:177;5423:8;:20;;;5458:28;;;;;;;;;;;;;;;;;1259:1;;5281:212;:::o;878:157:1:-;1185:10:2;1207:4;1185:27;1181:68;;1226:23;;;-1:-1:-1;;;;;1226:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1226:23:2;;;;;;;;;;;;;;1181:68;967:14:1;;-1:-1:-1;;;;;967:25:1;;;:14;;;;;:25;;959:34;;;;;;1003:14;:24;;-1:-1:-1;;;;;1003:24:1;;;;;-1:-1:-1;;1003:24:1;;;;;;;;;878:157::o;6109:349:2:-;6192:10;1455:14;;;;:7;:14;;;;;;;;1454:15;1450:56;;;1483:23;;;-1:-1:-1;;;;;1483:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1483:23:2;;;;;;;;;;;;;;1450:56;1642:1;1591:27;;;;;;;;;;:39;6230:13;;-1:-1:-1;;;;;1591:39:2;:53;1587:104;;;1658:33;;;-1:-1:-1;;;;;1658:33:2;;;;;;;;;;;;;;;;;;;;;;;;;;;1587:104;1964:28;;;;:13;:28;;;;;;;;6281:10;1964:35;;;;;;;;;6266:13;;6281:10;1964:35;;1960:85;;;2013:32;;;-1:-1:-1;;;;;2013:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;1960:85;6307:28;;;;6350:4;6307:28;;;;;;;;6336:10;6307:40;;;;;;;;:47;;-1:-1:-1;;6307:47:2;;;;;;;6369:39;;6321:13;;6369:39;;;6418:33;6437:13;6418:18;:33::i;:::-;1701:1;;1516;6109:349;;:::o;5752:251::-;5863:18;5913:40;5928:11;5941:5;5948:4;5913:14;:40::i;:::-;5897:56;;5963:33;5982:13;5963:18;:33::i;:::-;5752:251;;;;;:::o;98:36:1:-;;;;;;;;;;;;;;;;;;;:::o;216:41:2:-;255:2;216:41;:::o;964:20::-;;;;:::o;396:49:1:-;;;;;;;;;;;;;:::o;4651:459:2:-;1185:10;1207:4;1185:27;1181:68;;1226:23;;;-1:-1:-1;;;;;1226:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1226:23:2;;;;;;;;;;;;;;1181:68;-1:-1:-1;;;;;1455:14:2;;;;;;:7;:14;;;;;;4760:5;;1455:14;;1454:15;1450:56;;;1483:23;;;-1:-1:-1;;;;;1483:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1483:23:2;;;;;;;;;;;;;;1450:56;-1:-1:-1;;;;;1329:14:2;;;;;;:7;:14;;;;;;4793:8;;1329:14;;1325:55;;;1357:23;;;-1:-1:-1;;;;;1357:23:2;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1357:23:2;;;;;;;;;;;;;;1325:55;4822:6;4817:149;4834:6;:13;4832:15;;4817:149;;;4883:5;-1:-1:-1;;;;;4870:18:2;:6;4877:1;4870:9;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4870:9:2;:18;4866:100;;;4920:8;4908:6;4915:1;4908:9;;;;;;;;;;;;;;;;;;:20;;;;;-1:-1:-1;;;;;4908:20:2;;;;;-1:-1:-1;;;;;4908:20:2;;;;;;4946:5;;4866:100;4849:3;;4817:149;;;-1:-1:-1;;;;;;4975:14:2;;;4992:5;4975:14;;;:7;:14;;;;;;:22;;-1:-1:-1;;4975:22:2;;;;;;5007:17;;;;;;;;:24;;;;;4975:22;5007:24;;;;5046:19;;4975:14;;5046:19;;;5080:23;;-1:-1:-1;;;;;5080:23:2;;;;;;;;1516:1;1259;4651:459;;:::o;8345:461::-;8482:18;8452:11;-1:-1:-1;;;;;2278:22:2;;;2274:65;;;2314:25;;;-1:-1:-1;;;;;2314:25:2;;;;;;;;;;;;;;;;;;;;;;;;;;;2274:65;8532:16;;8588:140;;;;;;;;-1:-1:-1;;;;;8588:140:2;;;;;;;;;;;;;;;;;;-1:-1:-1;8588:140:2;;;;;;8558:27;;;;;;;;;;:170;;;;-1:-1:-1;;8558:170:2;;;;;;;;;;-1:-1:-1;8558:170:2;;;;;;;8532:16;;-1:-1:-1;8588:140:2;;8558:27;;:170;;;;;;;;;;:::i;:::-;-1:-1:-1;8558:170:2;;;;;;;;;;;;-1:-1:-1;;8558:170:2;;;;;;;;;;8738:16;:21;;-1:-1:-1;8738:21:2;;;8774:25;;8785:13;;8774:25;;-1:-1:-1;;8774:25:2;8345:461;;;;;;:::o;6992:536::-;2124:12;:27;;;;;;;;;;:36;;;7075:13;;2124:36;;2120:85;;;2174:31;;;-1:-1:-1;;;;;2174:31:2;;;;;;;;;;;;;;;;;;;;;;;;;;;2120:85;7108:26;7120:13;7108:11;:26::i;:::-;7104:418;;;7150:23;7176:27;;;;;;;;;;;7217:12;;;:19;;-1:-1:-1;;7217:19:2;7232:4;7217:19;;;;;;7268:15;;7295:9;;;;7268:47;;7306:8;;;;7268:47;;7176:27;;7150:23;-1:-1:-1;;;;;7268:15:2;;;;7295:9;;7306:8;;7268:47;;7306:8;;-1:-1:-1;;7268:47:2;;;;7217:19;7268:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;7250:65:2;;;7333:6;7329:183;;;7362:24;;7372:13;;7362:24;;;;;7329:183;;;7428:31;;7445:13;;7428:31;;;;;7477:12;;;:20;;-1:-1:-1;;7477:20:2;;;7329:183;7104:418;;;6992:536;;:::o;452:44:1:-;;;;;;;;;;;;;;;:::o;57:1474::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;57:1474:1;;;-1:-1:-1;57:1474:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://620a304d1f4c0cf3ced6c4561eded58216eafb3de08d3b63fc721313a44776de

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
Chain Token Portfolio % Price Amount Value
ETH22.81%$0.9999973,671,889.7092$3,671,878.69
ETH21.00%$59,58056.7241$3,379,622.09
ETH18.16%$12,923,860.3105$2,923,860.31
ETH12.47%$0.2209899,082,809.9125$2,007,201.08
ETH
Ether (ETH)
7.82%$2,350.78535.7285$1,259,381.98
ETH7.50%$0.004221285,912,014.489$1,206,935.96
ETH5.05%$0.999882812,435.296$812,339.43
ETH1.53%$0.000596412,350,351.9509$245,811.27
ETH0.74%$0.380526313,039.6167$119,119.81
ETH0.73%$0.0177076,629,097.2799$117,383.22
ETH0.54%$0.00475518,426,306.5789$87,609.9
ETH0.41%$0.0228652,862,166.3858$65,442.29
ETH0.31%$0.00205424,374,399.3118$50,073.3
ETH0.25%$1.0139,856.2806$40,095.42
ETH0.20%$0.0236611,367,348.1287$32,353.25
ETH0.09%$0.00066921,997,057.4502$14,705.23
ETH0.08%$0.019443694,723.7235$13,507.62
ETH0.07%$5.22,020.001$10,504.01
ETH0.05%$0.00025333,774,699.7653$8,533.53
ETH0.05%$0.038205196,129.5144$7,493.1
ETH0.04%$0.0014414,840,089.8635$6,976.01
ETH0.04%$0.09774660,500.0886$5,913.64
ETH0.03%$0.0005659,484,383.9106$5,355.04
ETH0.01%$0.0010021,797,227.656$1,801.08
ETH0.01%$0.9986581,644.8167$1,642.61
ETH<0.01%$0.920029163.8661$150.76
ETH<0.01%$0.00116758,562.1586$68.36
ETH<0.01%$0.000407102,087.4529$41.53
ETH<0.01%$6.621$6.62
ETH<0.01%$0.0047721,000$4.77
ETH<0.01%$0.037664110.01$4.14
ETH<0.01%<$0.00000127,823,693.2694$2.78
ETH<0.01%$0.03742750.0029$1.87
ETH<0.01%$0.0007041,000$0.704
ETH<0.01%$0.02514821.1499$0.5318
ETH<0.01%$0.003693100$0.3693
ETH<0.01%$0.00598640$0.2394
POL<0.01%$2,345.220.1674$392.61
POL<0.01%$0.3977180.02$0.007954
BSC<0.01%$0.5781190.28$0.1618
Loading...
Loading
[ 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.