ETH Price: $3,424.14 (-2.81%)
Gas: 10 Gwei

Contract

0x1Bf68A9d1EaEe7826b3593C20a0ca93293cb489a
 

Overview

ETH Balance

535.728503675544532217 ETH

Eth Value

$1,834,408.17 (@ $3,424.14/ETH)

Token Holdings

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Value
0x5d2ab4d77e7f32683244054098eab21bf2a88ed1aa26431756a104440eb68851 Deposit(pending)2024-06-18 14:44:391 hr ago1718721879IN
Orbit Chain: ETH Vault
0.000003 ETH(Pending)(Pending)
Add Owner197919552024-05-03 20:24:3545 days ago1714767875IN
Orbit Chain: ETH Vault
0 ETH0.000153766.94485216
Remove Farm197919472024-05-03 20:22:5945 days ago1714767779IN
Orbit Chain: ETH Vault
0 ETH0.000183626.45210356
Remove Farm197919392024-05-03 20:21:2345 days ago1714767683IN
Orbit Chain: ETH Vault
0 ETH0.000191846.7409631
Withdraw197919322024-05-03 20:19:5945 days ago1714767599IN
Orbit Chain: ETH Vault
0 ETH0.000208335.78962328
Withdraw197919212024-05-03 20:17:4745 days ago1714767467IN
Orbit Chain: ETH Vault
0 ETH0.000167615.88109463
Confirm Transact...194740372024-03-20 6:09:2390 days ago1710914963IN
Orbit Chain: ETH Vault
0 ETH0.006052936.54672694
Confirm Transact...194740362024-03-20 6:09:1190 days ago1710914951IN
Orbit Chain: ETH Vault
0 ETH0.0051134634.88873603
Confirm Transact...194740352024-03-20 6:08:5990 days ago1710914939IN
Orbit Chain: ETH Vault
0 ETH0.0043203431.01357138
Confirm Transact...194676492024-03-19 8:37:2391 days ago1710837443IN
Orbit Chain: ETH Vault
0 ETH0.0038971137.44205146
Confirm Transact...194676482024-03-19 8:37:1191 days ago1710837431IN
Orbit Chain: ETH Vault
0 ETH0.0038971137.44205146
Confirm Transact...194676472024-03-19 8:36:5991 days ago1710837419IN
Orbit Chain: ETH Vault
0 ETH0.0038314936.80663931
Confirm Transact...194675572024-03-19 8:18:1191 days ago1710836291IN
Orbit Chain: ETH Vault
0 ETH0.0032164230.9063679
Confirm Transact...194675432024-03-19 8:15:2391 days ago1710836123IN
Orbit Chain: ETH Vault
0 ETH0.0032325931.06171275
Confirm Transact...194675352024-03-19 8:13:4791 days ago1710836027IN
Orbit Chain: ETH Vault
0 ETH0.0031102529.88215716
Confirm Transact...194673252024-03-19 7:31:2391 days ago1710833483IN
Orbit Chain: ETH Vault
0 ETH0.0035677934.2872119
Confirm Transact...194673242024-03-19 7:31:1191 days ago1710833471IN
Orbit Chain: ETH Vault
0 ETH0.0037724336.25388059
Confirm Transact...194673232024-03-19 7:30:5991 days ago1710833459IN
Orbit Chain: ETH Vault
0 ETH0.0039611538.06239061
Confirm Transact...194670412024-03-19 6:34:2391 days ago1710830063IN
Orbit Chain: ETH Vault
0 ETH0.0026958625.91134925
Confirm Transact...194670402024-03-19 6:34:1191 days ago1710830051IN
Orbit Chain: ETH Vault
0 ETH0.0026865925.82220639
Confirm Transact...194670392024-03-19 6:33:5991 days ago1710830039IN
Orbit Chain: ETH Vault
0 ETH0.0027305826.24145982
Confirm Transact...194670132024-03-19 6:28:4791 days ago1710829727IN
Orbit Chain: ETH Vault
0 ETH0.0025807624.80501968
Confirm Transact...194669042024-03-19 6:06:4791 days ago1710828407IN
Orbit Chain: ETH Vault
0 ETH0.0035760834.37618804
Confirm Transact...194669032024-03-19 6:06:3591 days ago1710828395IN
Orbit Chain: ETH Vault
0 ETH0.003179130.56008827
Confirm Transact...194669022024-03-19 6:06:2391 days ago1710828383IN
Orbit Chain: ETH Vault
0 ETH0.0028263627.16924118
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To Value
189080802023-12-31 21:16:59169 days ago1704057419
Orbit Chain: ETH Vault
9,500 ETH
189079612023-12-31 20:52:47169 days ago1704055967
Orbit Chain: ETH Vault
30.095 ETH
189076312023-12-31 19:45:59169 days ago1704051959
Orbit Chain: ETH Vault
0.00013786 ETH
189075722023-12-31 19:33:59169 days ago1704051239
Orbit Chain: ETH Vault
0.00013786 ETH
189075442023-12-31 19:28:23169 days ago1704050903
Orbit Chain: ETH Vault
0.00013786 ETH
189075212023-12-31 19:23:47169 days ago1704050627
Orbit Chain: ETH Vault
0.004995 ETH
189075212023-12-31 19:23:47169 days ago1704050627
Orbit Chain: ETH Vault
0.004995 ETH
189075182023-12-31 19:23:11169 days ago1704050591
Orbit Chain: ETH Vault
0.004995 ETH
189075122023-12-31 19:21:59169 days ago1704050519
Orbit Chain: ETH Vault
0.00000999 ETH
189074142023-12-31 19:02:23169 days ago1704049343
Orbit Chain: ETH Vault
0.03992004 ETH
189073352023-12-31 18:46:23169 days ago1704048383
Orbit Chain: ETH Vault
0.004995 ETH
189071742023-12-31 18:14:11169 days ago1704046451
Orbit Chain: ETH Vault
0.004995 ETH
189071052023-12-31 18:00:23169 days ago1704045623
Orbit Chain: ETH Vault
0.004996 ETH
189069512023-12-31 17:29:35169 days ago1704043775
Orbit Chain: ETH Vault
0.004995 ETH
189068472023-12-31 17:08:47169 days ago1704042527
Orbit Chain: ETH Vault
0.004996 ETH
189063322023-12-31 15:24:11170 days ago1704036251
Orbit Chain: ETH Vault
0.004995 ETH
189060112023-12-31 14:18:59170 days ago1704032339
Orbit Chain: ETH Vault
0.004995 ETH
189059692023-12-31 14:10:35170 days ago1704031835
Orbit Chain: ETH Vault
0.004995 ETH
189059242023-12-31 14:01:35170 days ago1704031295
Orbit Chain: ETH Vault
0.004995 ETH
189058652023-12-31 13:49:47170 days ago1704030587
Orbit Chain: ETH Vault
0.004995 ETH
189058252023-12-31 13:41:47170 days ago1704030107
Orbit Chain: ETH Vault
0.004995 ETH
189055572023-12-31 12:47:47170 days ago1704026867
Orbit Chain: ETH Vault
0.004995 ETH
189054692023-12-31 12:29:59170 days ago1704025799
Orbit Chain: ETH Vault
0.004995 ETH
189054692023-12-31 12:29:59170 days ago1704025799
Orbit Chain: ETH Vault
0.004995 ETH
189054272023-12-31 12:21:35170 days ago1704025295
Orbit Chain: ETH Vault
2.05 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
ETH64.10%$16.261,797,227.656$29,226,797.02
ETH8.04%$0.9988553,671,889.7092$3,667,685.4
ETH8.03%$64,54156.7241$3,661,030.37
ETH6.40%$0.998252,923,860.3105$2,918,743.55
ETH
Ether (ETH)
4.01%$3,415.9535.7285$1,829,997.13
ETH3.51%$0.005603285,912,014.489$1,602,000.21
ETH1.96%$0.003649245,399,972.4394$895,501.73
ETH1.78%$0.998787812,435.296$811,449.81
ETH0.58%$0.000645412,350,351.9509$266,074.92
ETH0.38%$0.0262656,629,097.2799$174,110.26
ETH0.37%$0.545228313,039.6167$170,677.96
ETH0.17%$0.00416318,426,306.5789$76,713.87
ETH0.13%$0.0213472,862,166.3858$61,099.44
ETH0.12%$0.00231224,374,399.3118$56,358.97
ETH0.10%$1.1539,856.2806$45,834.72
ETH0.08%$0.0281771,367,348.1287$38,528.36
ETH0.04%$9.942,020.001$20,078.81
ETH0.04%$0.00086821,997,057.4502$19,103.86
ETH0.03%$0.019034694,723.7235$13,223.23
ETH0.02%$0.052187196,129.5144$10,235.41
ETH0.02%$0.0020254,840,089.8635$9,801.82
ETH0.02%$0.00025533,774,699.7653$8,610.52
ETH0.01%$0.0820360,500.0886$4,962.82
ETH<0.01%$0.0004569,484,383.9106$4,327.33
ETH<0.01%$0.00008527,823,693.2694$2,364.85
ETH<0.01%$0.9951771,644.8167$1,636.88
ETH<0.01%$0.000912102,087.4529$93.11
ETH<0.01%$0.0000222,832,182$61.03
ETH<0.01%$0.00066158,562.1586$38.68
ETH<0.01%$9.491$9.49
ETH<0.01%$0.0057961,000$5.8
ETH<0.01%$0.045701110.01$5.03
ETH<0.01%$0.03583850.0029$1.79
ETH<0.01%$0.04175540$1.67
ETH<0.01%$0.0010521,000$1.05
ETH<0.01%$0.0001038,916.2163$0.9154
ETH<0.01%$0.02955421.1499$0.625
ETH<0.01%$0.004277100$0.4276
ETH<0.01%$0.1624431$0.1624
MATIC<0.01%$3,422.680.1674$572.98
MATIC<0.01%$0.5420870.02$0.010842
BSC<0.01%$0.4849130.28$0.1357
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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