Contract 0x6dae6Ae227438378c117821C51Fd61661faa8893

 
 
Txn Hash
Method
Block
From
To
Value
0x5da96ccb29ea4fdf747833af67a9841ef13b6fbc5b9a0387522a1c4b46dbd089Confirm Transact...129592062021-08-04 14:31:01489 days 20 hrs ago0xdad3e839ba4a48faf54f3aa187d8b6b8646e6224 IN  DODO: MultiSig0 Ether0.003060750
0x114f324bc75be0c59ff2b9036fcc6ad9e2a9cecff9627f5e8c1fe4799064a1b9Submit Transacti...129591652021-08-04 14:23:30489 days 20 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0089754447
0x85c8966e29a7b1beba2df6a5fb1bd1dd69f240468cc5b99433c3ccb7e83c1d07Execute Transact...113663812020-12-01 11:31:58735 days 23 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.00677871102
0x96d7120e41e79ecd98fbde7e3963a4b2c20a9d1bf4530dbcf6e7e010100af94aExecute Transact...113663812020-12-01 11:31:58735 days 23 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.00677871102
0xcae95f2fd2146e0437085945563480e9f7c5f00ee8dfdbc1e07b8f61057ca298Execute Transact...113663812020-12-01 11:31:58735 days 23 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.00671225101.00000145
0x905161a62acfa58666c1c64e2eb5e95eba0c3f2f33e8844e8ea7e4f2a7e4ba43Execute Transact...113663762020-12-01 11:30:57735 days 23 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.00671225101.00000145
0x006646d66e96a608349551b84c80f8b46e003705b46fc9316df50e4025b8a5a6Execute Transact...113663762020-12-01 11:30:57735 days 23 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.00671225101.00000145
0xb145e88a6cdc132223be5e9ac24337eb160e763693852e1af7981b72bdcac8e9Execute Transact...113663762020-12-01 11:30:57735 days 23 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.00671225101.00000145
0x520ebe26113140d4edb0262e558dd64941de84642acb4eb1b055fa531a1aed0cExecute Transact...113663742020-12-01 11:30:51735 days 23 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.00671225101.00000145
0x77dfb84a95eae11ba6cba846a79e9a57cc887556d8bb6b4802611c9348567b7bExecute Transact...113663742020-12-01 11:30:51735 days 23 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.00671225101.00000145
0xe2f9170df59db915bb00424a98e4cfaa19d4f0be4125aa51c5358b743542f509Execute Transact...112766482020-11-17 16:58:55749 days 18 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.00899799131
0xfe7eae979114e5e4042f213bdd17edbef7efa970990138c4e6dc5b6ed3568290Submit Transacti...112701032020-11-16 16:57:02750 days 18 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0120813568
0x7874f65d8f45fe71024c1ce950b4c766527786359107c9fce9ff6c10e65d9fd1Submit Transacti...112701022020-11-16 16:56:59750 days 18 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0119101867.1
0x733b1bc63957b43004ddc67d09de1443042a69025b481f16f905004c85e91ab9Execute Transact...112206112020-11-09 2:34:25758 days 8 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0019529424.2
0x43c9c32084e7454487130a096491b8b966575465b00782fb3dbb877aaed1f40cExecute Transact...111063952020-10-22 13:54:32775 days 21 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.1269925860
0x706672897bd9eaa17d9735899c6f65581412b37745211f135a4716cb1da24e39Submit Transacti...110937392020-10-20 15:10:23777 days 19 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0149240275
0x7b711b3d7581532b761cabbbdd30ed773f840e97f1ea7926ff82d77577f885e4Submit Transacti...110937022020-10-20 15:01:53777 days 20 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0129696973
0x6d5c7d27da7678b2a62c78b6f2a932f07c45de364a1ea4d28974791d1331f05bSubmit Transacti...110936822020-10-20 14:58:36777 days 20 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0129696973
0x566bf4c31653e42d3d3b0963f8ba3316372289ce7d438fd1777f511aabb97934Submit Transacti...110936822020-10-20 14:58:36777 days 20 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0129696973
0xb309ff88c749e89ca3ecc8d5273b69229a9baec2f465614253141de685adf77bSubmit Transacti...110936802020-10-20 14:58:19777 days 20 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0129696973
0xe691f94bb1535d7f9d2bc30fefd6033c0c2686f3165eb51ebca9966149e2f3faSubmit Transacti...110936802020-10-20 14:58:19777 days 20 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0129696973
0xec22905f030555001612f25eb255c657d788c803067d8bbf8d2bd51af2cdd850Submit Transacti...110936732020-10-20 14:56:24777 days 20 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0129688173
0x0abc72d3516e73ab7b27ab499a9912b53df5497fd716b93c8324a79b100f3c61Submit Transacti...110936692020-10-20 14:55:43777 days 20 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0129696973
0x4a78927cc2a80ef202409b2e5e56d4164326a89da18758805578f91a1bf05d22Submit Transacti...110936692020-10-20 14:55:43777 days 20 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0129696973
0xe8b92cc58b651752740e6e016b67e7253e2dc3eb8e0c8c11dc39899f342f8deeExecute Transact...110918382020-10-20 8:12:06778 days 2 hrs ago0x9c59990ec0177d87ed7d60a56f584e6b06c639a2 IN  DODO: MultiSig0 Ether0.0026936938.5
[ Download CSV Export 
View more zero value Internal Transactions in Advanced View mode
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MultiSigWalletWithTimelock

Compiler Version
v0.5.8+commit.23d335f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Apache-2.0 license
/**
 *Submitted for verification at Etherscan.io on 2020-08-13
*/

pragma solidity 0.5.8;
pragma experimental ABIEncoderV2;

contract MultiSigWalletWithTimelock {

    uint256 constant public MAX_OWNER_COUNT = 50;
    uint256 public lockSeconds = 86400;

    event Confirmation(address indexed sender, uint256 indexed transactionId);
    event Revocation(address indexed sender, uint256 indexed transactionId);
    event Submission(uint256 indexed transactionId);
    event Execution(uint256 indexed transactionId);
    event ExecutionFailure(uint256 indexed transactionId);
    event Deposit(address indexed sender, uint256 value);
    event OwnerAddition(address indexed owner);
    event OwnerRemoval(address indexed owner);
    event RequirementChange(uint256 required);
    event UnlockTimeSet(uint256 indexed transactionId, uint256 confirmationTime);
    event LockSecondsChange(uint256 lockSeconds);

    mapping (uint256 => Transaction) public transactions;
    mapping (uint256 => mapping (address => bool)) public confirmations;
    mapping (address => bool) public isOwner;
    mapping (uint256 => uint256) public unlockTimes;

    address[] public owners;
    uint256 public required;
    uint256 public transactionCount;

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

    struct EmergencyCall {
        bytes32 selector;
        uint256 paramsBytesCount;
    }

    // Functions bypass the time lock process
    EmergencyCall[] public emergencyCalls;

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

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

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

    modifier transactionExists(uint256 transactionId) {
        if (transactions[transactionId].destination == address(0))
            revert("TRANSACTION_EXISTS_ERROR");
        _;
    }

    modifier confirmed(uint256 transactionId, address owner) {
        if (!confirmations[transactionId][owner])
            revert("CONFIRMED_ERROR");
        _;
    }

    modifier notConfirmed(uint256 transactionId, address owner) {
        if (confirmations[transactionId][owner])
            revert("NOT_CONFIRMED_ERROR");
        _;
    }

    modifier notExecuted(uint256 transactionId) {
        if (transactions[transactionId].executed)
            revert("NOT_EXECUTED_ERROR");
        _;
    }

    modifier notNull(address _address) {
        if (_address == address(0))
            revert("NOT_NULL_ERROR");
        _;
    }

    modifier validRequirement(uint256 ownerCount, uint256 _required) {
        if (ownerCount > MAX_OWNER_COUNT || _required > ownerCount || _required == 0 || ownerCount == 0)
            revert("VALID_REQUIREMENT_ERROR");
        _;
    }

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

    /** @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, uint256 _required)
        public
        validRequirement(_owners.length, _required)
    {
        for (uint256 i = 0; i < _owners.length; i++) {
            if (isOwner[_owners[i]] || _owners[i] == address(0)) {
                revert("OWNER_ERROR");
            }

            isOwner[_owners[i]] = true;
        }

        owners = _owners;
        required = _required;

        // initialzie Emergency calls
        emergencyCalls.push(
            EmergencyCall({
                selector: keccak256(abi.encodePacked("setMarketBorrowUsability(uint16,bool)")),
                paramsBytesCount: 64
            })
        );
    }

    function getEmergencyCallsCount()
        external
        view
        returns (uint256 count)
    {
        return emergencyCalls.length;
    }

    /** @dev Allows to add a new owner. Transaction has to be sent by wallet.
      * @param owner Address of new owner.
      */
    function addOwner(address owner)
        external
        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)
        external
        onlyWallet
        ownerExists(owner)
    {
        isOwner[owner] = false;
        for (uint256 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)
        external
        onlyWallet
        ownerExists(owner)
        ownerDoesNotExist(newOwner)
    {
        for (uint256 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(uint256 _required)
        public
        onlyWallet
        validRequirement(owners.length, _required)
    {
        required = _required;
        emit RequirementChange(_required);
    }

    /** @dev Changes the duration of the time lock for transactions.
      * @param _lockSeconds Duration needed after a transaction is confirmed and before it becomes executable, in seconds.
      */
    function changeLockSeconds(uint256 _lockSeconds)
        external
        onlyWallet
    {
        lockSeconds = _lockSeconds;
        emit LockSecondsChange(_lockSeconds);
    }

    /** @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, uint256 value, bytes calldata data)
        external
        ownerExists(msg.sender)
        notNull(destination)
        returns (uint256 transactionId)
    {
        transactionId = transactionCount;
        transactions[transactionId] = Transaction({
            destination: destination,
            value: value,
            data: data,
            executed: false
        });
        transactionCount += 1;
        emit Submission(transactionId);
        confirmTransaction(transactionId);
    }

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

        if (isConfirmed(transactionId) && unlockTimes[transactionId] == 0 && !isEmergencyCall(transactionId)) {
            uint256 unlockTime = block.timestamp + lockSeconds;
            unlockTimes[transactionId] = unlockTime;
            emit UnlockTimeSet(transactionId, unlockTime);
        }
    }

    function isEmergencyCall(uint256 transactionId)
        internal
        view
        returns (bool)
    {
        bytes memory data = transactions[transactionId].data;

        for (uint256 i = 0; i < emergencyCalls.length; i++) {
            EmergencyCall memory emergencyCall = emergencyCalls[i];

            if (
                data.length == emergencyCall.paramsBytesCount + 4 &&
                data.length >= 4 &&
                emergencyCall.selector[0] == data[0] &&
                emergencyCall.selector[1] == data[1] &&
                emergencyCall.selector[2] == data[2] &&
                emergencyCall.selector[3] == data[3]
            ) {
                return true;
            }
        }

        return false;
    }

    /** @dev Allows an owner to revoke a confirmation for a transaction.
      * @param transactionId Transaction ID.
      */
    function revokeConfirmation(uint256 transactionId)
        external
        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(uint256 transactionId)
        external
        ownerExists(msg.sender)
        notExecuted(transactionId)
    {
        require(
            block.timestamp >= unlockTimes[transactionId],
            "TRANSACTION_NEED_TO_UNLOCK"
        );

        if (isConfirmed(transactionId)) {
            Transaction storage transaction = transactions[transactionId];
            transaction.executed = true;
            (bool success, ) = transaction.destination.call.value(transaction.value)(transaction.data);
            if (success)
                emit Execution(transactionId);
            else {
                emit ExecutionFailure(transactionId);
                transaction.executed = false;
            }
        }
    }

    /** @dev Returns the confirmation status of a transaction.
      * @param transactionId Transaction ID.
      * @return Confirmation status.
      */
    function isConfirmed(uint256 transactionId)
        public
        view
        returns (bool)
    {
        uint256 count = 0;

        for (uint256 i = 0; i < owners.length; i++) {
            if (confirmations[transactionId][owners[i]]) {
                count += 1;
            }

            if (count >= required) {
                return true;
            }
        }

        return false;
    }

    /* Web3 call functions */

    /** @dev Returns number of confirmations of a transaction.
      * @param transactionId Transaction ID.
      * @return Number of confirmations.
      */
    function getConfirmationCount(uint256 transactionId)
        external
        view
        returns (uint256 count)
    {
        for (uint256 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)
        external
        view
        returns (uint256 count)
    {
        for (uint256 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()
        external
        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(uint256 transactionId)
        external
        view
        returns (address[] memory _confirmations)
    {
        address[] memory confirmationsTemp = new address[](owners.length);
        uint256 count = 0;
        uint256 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];
        }
    }
}

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":"","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":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"name":"count","type":"uint256"}],"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":"","type":"uint256"}],"name":"unlockTimes","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","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":"","type":"uint256"}],"name":"emergencyCalls","outputs":[{"name":"selector","type":"bytes32"},{"name":"paramsBytesCount","type":"uint256"}],"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":false,"inputs":[{"name":"_lockSeconds","type":"uint256"}],"name":"changeLockSeconds","outputs":[],"payable":false,"stateMutability":"nonpayable","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":"getOwners","outputs":[{"name":"","type":"address[]"}],"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":true,"inputs":[],"name":"lockSeconds","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getEmergencyCallsCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","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":"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":false,"inputs":[{"name":"owner","type":"address"},{"name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"}],"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"},{"anonymous":false,"inputs":[{"indexed":true,"name":"transactionId","type":"uint256"},{"indexed":false,"name":"confirmationTime","type":"uint256"}],"name":"UnlockTimeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"lockSeconds","type":"uint256"}],"name":"LockSecondsChange","type":"event"}]

6080604052620151806000553480156200001857600080fd5b50604051620024dc380380620024dc83398101806040526200003e91908101906200036a565b81518160328211806200005057508181115b806200005a575080155b8062000064575081155b15620000a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200009e90620004b6565b60405180910390fd5b60005b8451811015620001a65760036000868381518110620000c557fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16806200011e575060006001600160a01b03168582815181106200010b57fe5b60200260200101516001600160a01b0316145b1562000158576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200009e90620004a4565b6001600360008784815181106200016b57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101620000aa565b508351620001bc9060059060208701906200022d565b5060068390556040805180820190915260089080620001de6060820162000497565b60408051601f1981840301815291815281516020928301208352918101919091528254600181810185556000948552938290208351600290920201908155910151910155506200055592505050565b82805482825590600052602060002090810192821562000285579160200282015b828111156200028557825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906200024e565b506200029392915062000297565b5090565b620002be91905b80821115620002935780546001600160a01b03191681556001016200029e565b90565b8051620002ce8162000530565b92915050565b600082601f830112620002e657600080fd5b8151620002fd620002f782620004ef565b620004c8565b915081818352602084019350602081019050838560208402820111156200032357600080fd5b60005b838110156200035357816200033c8882620002c1565b845250602092830192919091019060010162000326565b5050505092915050565b8051620002ce816200054a565b600080604083850312156200037e57600080fd5b82516001600160401b038111156200039557600080fd5b620003a385828601620002d4565b9250506020620003b6858286016200035d565b9150509250929050565b6000620003cf600b8362000510565b7f4f574e45525f4552524f52000000000000000000000000000000000000000000815260200192915050565b60006200040a60258362000519565b7f7365744d61726b6574426f72726f7755736162696c6974792875696e7431362c81527f626f6f6c29000000000000000000000000000000000000000000000000000000602082015260250192915050565b60006200046b60178362000510565b7f56414c49445f524551554952454d454e545f4552524f52000000000000000000815260200192915050565b6000620002ce82620003fb565b60208082528101620002ce81620003c0565b60208082528101620002ce816200045c565b6040518181016001600160401b0381118282101715620004e757600080fd5b604052919050565b60006001600160401b038211156200050657600080fd5b5060209081020190565b90815260200190565b919050565b60006001600160a01b038216620002ce565b6200053b816200051e565b81146200054757600080fd5b50565b6200053b81620002be565b611f7780620005656000396000f3fe6080604052600436106101665760003560e01c80639ace38c2116100d1578063c01a8c841161008a578063d74f8edd11610064578063d74f8edd1461047f578063dc8452cd14610494578063e20056e6146104a9578063ee22610b146104c957610166565b8063c01a8c841461042a578063c0af02271461044a578063c64274741461045f57610166565b80639ace38c21461036e578063a0e67e2b1461039e578063b5dc40c3146103c0578063b77bf600146103e0578063ba51a6df146103f5578063bfa6fddb1461041557610166565b80637065cb48116101235780637065cb48146102a057806376ac947a146102c0578063784547a7146102e057806386384afc146103005780638b51d13f1461032e5780638c22d5d31461034e57610166565b8063025e7c27146101b0578063173825d9146101e657806320ea8d86146102065780632f54bf6e146102265780633411c81c146102535780635474152514610273575b34156101ae57336001600160a01b03167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040516101a59190611e91565b60405180910390a25b005b3480156101bc57600080fd5b506101d06101cb36600461198d565b6104e9565b6040516101dd9190611d64565b60405180910390f35b3480156101f257600080fd5b506101ae610201366004611895565b610510565b34801561021257600080fd5b506101ae61022136600461198d565b6106b1565b34801561023257600080fd5b50610246610241366004611895565b6107a9565b6040516101dd9190611dc8565b34801561025f57600080fd5b5061024661026e3660046119ab565b6107be565b34801561027f57600080fd5b5061029361028e36600461195d565b6107de565b6040516101dd9190611e91565b3480156102ac57600080fd5b506101ae6102bb366004611895565b61084a565b3480156102cc57600080fd5b506102936102db36600461198d565b6109b0565b3480156102ec57600080fd5b506102466102fb36600461198d565b6109c2565b34801561030c57600080fd5b5061032061031b36600461198d565b610a4c565b6040516101dd929190611dd6565b34801561033a57600080fd5b5061029361034936600461198d565b610a77565b34801561035a57600080fd5b506101ae61036936600461198d565b610ae6565b34801561037a57600080fd5b5061038e61038936600461198d565b610b48565b6040516101dd9493929190611d72565b3480156103aa57600080fd5b506103b3610c04565b6040516101dd9190611db7565b3480156103cc57600080fd5b506103b36103db36600461198d565b610c67565b3480156103ec57600080fd5b50610293610dde565b34801561040157600080fd5b506101ae61041036600461198d565b610de4565b34801561042157600080fd5b50610293610e8c565b34801561043657600080fd5b506101ae61044536600461198d565b610e92565b34801561045657600080fd5b5061029361101d565b34801561046b57600080fd5b5061029361047a3660046118f5565b611023565b34801561048b57600080fd5b50610293611199565b3480156104a057600080fd5b5061029361119e565b3480156104b557600080fd5b506101ae6104c43660046118bb565b6111a4565b3480156104d557600080fd5b506101ae6104e436600461198d565b611363565b600581815481106104f657fe5b6000918252602090912001546001600160a01b0316905081565b33301461053b57604051600160e51b62461bcd02815260040161053290611e31565b60405180910390fd5b6001600160a01b038116600090815260036020526040902054819060ff1661057857604051600160e51b62461bcd02815260040161053290611e51565b6001600160a01b0382166000908152600360205260408120805460ff191690555b6005546000190181101561064c57826001600160a01b0316600582815481106105be57fe5b6000918252602090912001546001600160a01b03161415610644576005805460001981019081106105eb57fe5b600091825260209091200154600580546001600160a01b03909216918390811061061157fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061064c565b600101610599565b506005805460001901906106609082611752565b5060055460065411156106795760055461067990610de4565b6040516001600160a01b038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526003602052604090205460ff166106e357604051600160e51b62461bcd02815260040161053290611e51565b60008281526002602090815260408083203380855292529091205483919060ff1661072357604051600160e51b62461bcd02815260040161053290611df1565b600084815260016020526040902060030154849060ff161561075a57604051600160e51b62461bcd02815260040161053290611e41565b6000858152600260209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60036020526000908152604090205460ff1681565b600260209081526000928352604080842090915290825290205460ff1681565b6000805b6007548110156108435783801561080b575060008181526001602052604090206003015460ff16155b8061082f575082801561082f575060008181526001602052604090206003015460ff165b1561083b576001820191505b6001016107e2565b5092915050565b33301461086c57604051600160e51b62461bcd02815260040161053290611e31565b6001600160a01b038116600090815260036020526040902054819060ff16156108aa57604051600160e51b62461bcd02815260040161053290611e01565b816001600160a01b0381166108d457604051600160e51b62461bcd02815260040161053290611e71565b60058054905060010160065460328211806108ee57508181115b806108f7575080155b80610900575081155b1561092057604051600160e51b62461bcd02815260040161053290611e81565b6001600160a01b038516600081815260036020526040808220805460ff1916600190811790915560058054918201815583527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b03191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b60046020526000908152604090205481565b600080805b600554811015610a4057600084815260026020526040812060058054919291849081106109f057fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610a24576001820191505b6006548210610a3857600192505050610a47565b6001016109c7565b5060009150505b919050565b60088181548110610a5957fe5b60009182526020909120600290910201805460019091015490915082565b6000805b600554811015610ae05760008381526002602052604081206005805491929184908110610aa457fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610ad8576001820191505b600101610a7b565b50919050565b333014610b0857604051600160e51b62461bcd02815260040161053290611e31565b60008190556040517f884d6758bafbcb4b5e2e0393178ca1f3da3dd380a54ce05ab60aa59756db9dc190610b3d908390611e91565b60405180910390a150565b6001602081815260009283526040928390208054818401546002808401805488516101009882161598909802600019011691909104601f81018690048602870186019097528686526001600160a01b039092169590949293830182828015610bf15780601f10610bc657610100808354040283529160200191610bf1565b820191906000526020600020905b815481529060010190602001808311610bd457829003601f168201915b5050506003909301549192505060ff1684565b60606005805480602002602001604051908101604052809291908181526020018280548015610c5c57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610c3e575b505050505090505b90565b606080600580549050604051908082528060200260200182016040528015610c99578160200160208202803883390190505b5090506000805b600554811015610d5c5760008581526002602052604081206005805491929184908110610cc957fe5b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610d545760058181548110610d0357fe5b9060005260206000200160009054906101000a90046001600160a01b0316838381518110610d2d57fe5b60200260200101906001600160a01b031690816001600160a01b0316815250506001820191505b600101610ca0565b81604051908082528060200260200182016040528015610d86578160200160208202803883390190505b509350600090505b81811015610dd657828181518110610da257fe5b6020026020010151848281518110610db657fe5b6001600160a01b0390921660209283029190910190910152600101610d8e565b505050919050565b60075481565b333014610e0657604051600160e51b62461bcd02815260040161053290611e31565b600554816032821180610e1857508181115b80610e21575080155b80610e2a575081155b15610e4a57604051600160e51b62461bcd02815260040161053290611e81565b60068390556040517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a90610e7f908590611e91565b60405180910390a1505050565b60005481565b3360008181526003602052604090205460ff16610ec457604051600160e51b62461bcd02815260040161053290611e51565b60008281526001602052604090205482906001600160a01b0316610efd57604051600160e51b62461bcd02815260040161053290611e21565b60008381526002602090815260408083203380855292529091205484919060ff1615610f3e57604051600160e51b62461bcd02815260040161053290611e61565b6000858152600260209081526040808320338085529252808320805460ff191660011790555187927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a3610f92856109c2565b8015610faa5750600085815260046020526040902054155b8015610fbc5750610fba85611507565b155b15611016576000805486825260046020526040918290204290910190819055905186907f280af6a3ba059a74f0e894262aa07f2c4d0de1e231882263c0d7dcda111b1a449061100c908490611e91565b60405180910390a2505b5050505050565b60085490565b3360008181526003602052604081205490919060ff1661105857604051600160e51b62461bcd02815260040161053290611e51565b856001600160a01b03811661108257604051600160e51b62461bcd02815260040161053290611e71565b60075492506040518060800160405280886001600160a01b0316815260200187815260200186868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525093855250505060209182018190528581526001808352604091829020845181546001600160a01b0319166001600160a01b039091161781558484015191810191909155908301518051919261113692600285019290910190611776565b50606091909101516003909101805460ff191691151591909117905560078054600101905560405183907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a261118f83610e92565b5050949350505050565b603281565b60065481565b3330146111c657604051600160e51b62461bcd02815260040161053290611e31565b6001600160a01b038216600090815260036020526040902054829060ff1661120357604051600160e51b62461bcd02815260040161053290611e51565b6001600160a01b038216600090815260036020526040902054829060ff161561124157604051600160e51b62461bcd02815260040161053290611e01565b60005b6005548110156112c957846001600160a01b03166005828154811061126557fe5b6000918252602090912001546001600160a01b031614156112c157836005828154811061128e57fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506112c9565b600101611244565b506001600160a01b03808516600081815260036020526040808220805460ff1990811690915593871682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a26040516001600160a01b038416907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a250505050565b3360008181526003602052604090205460ff1661139557604051600160e51b62461bcd02815260040161053290611e51565b600082815260016020526040902060030154829060ff16156113cc57604051600160e51b62461bcd02815260040161053290611e41565b6000838152600460205260409020544210156113fd57604051600160e51b62461bcd02815260040161053290611e11565b611406836109c2565b1561150257600083815260016020819052604080832060038101805460ff19168417905580549281015491519093926001600160a01b0316919061144e906002860190611d51565b60006040518083038185875af1925050503d806000811461148b576040519150601f19603f3d011682016040523d82523d6000602084013e611490565b606091505b5050905080156114ca5760405185907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a2611016565b60405185907f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923690600090a250600301805460ff191690555b505050565b60008181526001602081815260408084206002908101805483519581161561010002600019011691909104601f81018490048402850184019092528184526060939290919083018282801561159d5780601f106115725761010080835404028352916020019161159d565b820191906000526020600020905b81548152906001019060200180831161158057829003601f168201915b50939450600093505050505b600854811015610a40576115bb6117f4565b600882815481106115c857fe5b90600052602060002090600202016040518060400160405290816000820154815260200160018201548152505090508060200151600401835114801561161057506004835110155b801561165a57508260008151811061162457fe5b602001015160f81c60f81b6001600160f81b031916816000015160006020811061164a57fe5b1a60f81b6001600160f81b031916145b80156116a457508260018151811061166e57fe5b602001015160f81c60f81b6001600160f81b031916816000015160016020811061169457fe5b1a60f81b6001600160f81b031916145b80156116ee5750826002815181106116b857fe5b602001015160f81c60f81b6001600160f81b03191681600001516002602081106116de57fe5b1a60f81b6001600160f81b031916145b801561173857508260038151811061170257fe5b602001015160f81c60f81b6001600160f81b031916816000015160036020811061172857fe5b1a60f81b6001600160f81b031916145b156117495760019350505050610a47565b506001016115a9565b8154818355818111156115025760008381526020902061150291810190830161180b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106117b757805160ff19168380011785556117e4565b828001600101855582156117e4579182015b828111156117e45782518255916020019190600101906117c9565b506117f092915061180b565b5090565b604080518082019091526000808252602082015290565b610c6491905b808211156117f05760008155600101611811565b803561183081611f14565b92915050565b803561183081611f2b565b60008083601f84011261185357600080fd5b50813567ffffffffffffffff81111561186b57600080fd5b60208301915083600182028301111561188357600080fd5b9250929050565b803561183081611f34565b6000602082840312156118a757600080fd5b60006118b38484611825565b949350505050565b600080604083850312156118ce57600080fd5b60006118da8585611825565b92505060206118eb85828601611825565b9150509250929050565b6000806000806060858703121561190b57600080fd5b60006119178787611825565b94505060206119288782880161188a565b935050604085013567ffffffffffffffff81111561194557600080fd5b61195187828801611841565b95989497509550505050565b6000806040838503121561197057600080fd5b600061197c8585611836565b92505060206118eb85828601611836565b60006020828403121561199f57600080fd5b60006118b3848461188a565b600080604083850312156119be57600080fd5b60006118da858561188a565b60006119d683836119de565b505060200190565b6119e781611ebe565b82525050565b60006119f882611eb1565b611a028185611eb5565b9350611a0d83611e9f565b8060005b83811015611a3b578151611a2588826119ca565b9750611a3083611e9f565b925050600101611a11565b509495945050505050565b6119e781611ec9565b6119e781610c64565b6000611a6382611eb1565b611a6d8185611eb5565b9350611a7d818560208601611eda565b611a8681611f0a565b9093019392505050565b600081546001811660008114611aad5760018114611ad057611b0f565b607f6002830416611abe8187610a47565b60ff1984168152955085019250611b0f565b60028204611ade8187610a47565b9550611ae985611ea5565b60005b82811015611b0857815488820152600190910190602001611aec565b5050850192505b505092915050565b6000611b24600f83611eb5565b7f434f4e4649524d45445f4552524f520000000000000000000000000000000000815260200192915050565b6000611b5d601a83611eb5565b7f4f574e45525f444f45535f4e4f545f45584953545f4552524f52000000000000815260200192915050565b6000611b96601a83611eb5565b7f5452414e53414354494f4e5f4e4545445f544f5f554e4c4f434b000000000000815260200192915050565b6000611bcf601883611eb5565b7f5452414e53414354494f4e5f4558495354535f4552524f520000000000000000815260200192915050565b6000611c08601183611eb5565b7f4f4e4c595f57414c4c45545f4552524f52000000000000000000000000000000815260200192915050565b6000611c41601283611eb5565b7f4e4f545f45584543555445445f4552524f520000000000000000000000000000815260200192915050565b6000611c7a601283611eb5565b7f4f574e45525f4558495354535f4552524f520000000000000000000000000000815260200192915050565b6000611cb3601383611eb5565b7f4e4f545f434f4e4649524d45445f4552524f5200000000000000000000000000815260200192915050565b6000611cec600e83611eb5565b7f4e4f545f4e554c4c5f4552524f52000000000000000000000000000000000000815260200192915050565b6000611d25601783611eb5565b7f56414c49445f524551554952454d454e545f4552524f52000000000000000000815260200192915050565b6000611d5d8284611a90565b9392505050565b6020810161183082846119de565b60808101611d8082876119de565b611d8d6020830186611a4f565b8181036040830152611d9f8185611a58565b9050611dae6060830184611a46565b95945050505050565b60208082528101611d5d81846119ed565b602081016118308284611a46565b60408101611de48285611a4f565b611d5d6020830184611a4f565b6020808252810161183081611b17565b6020808252810161183081611b50565b6020808252810161183081611b89565b6020808252810161183081611bc2565b6020808252810161183081611bfb565b6020808252810161183081611c34565b6020808252810161183081611c6d565b6020808252810161183081611ca6565b6020808252810161183081611cdf565b6020808252810161183081611d18565b602081016118308284611a4f565b60200190565b60009081526020902090565b5190565b90815260200190565b600061183082611ece565b151590565b6001600160a01b031690565b60005b83811015611ef5578181015183820152602001611edd565b83811115611f04576000848401525b50505050565b601f01601f191690565b611f1d81611ebe565b8114611f2857600080fd5b50565b611f1d81611ec9565b611f1d81610c6456fea265627a7a7230582059ae944aaa712bcc1ef307bc154bff8b250c409749ec08a66575e3541968eaba6c6578706572696d656e74616cf500370000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000009c59990ec0177d87ed7d60a56f584e6b06c639a2000000000000000000000000dad3e839ba4a48faf54f3aa187d8b6b8646e6224

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

0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000009c59990ec0177d87ed7d60a56f584e6b06c639a2000000000000000000000000dad3e839ba4a48faf54f3aa187d8b6b8646e6224

-----Decoded View---------------
Arg [0] : _owners (address[]): 0x9c59990ec0177d87ED7D60A56F584E6b06C639a2,0xdAD3E839BA4A48faf54F3AA187D8B6b8646E6224
Arg [1] : _required (uint256): 1

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [3] : 0000000000000000000000009c59990ec0177d87ed7d60a56f584e6b06c639a2
Arg [4] : 000000000000000000000000dad3e839ba4a48faf54f3aa187d8b6b8646e6224


Deployed ByteCode Sourcemap

61:13344:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3156:9;:13;3152:81;;3199:10;-1:-1:-1;;;;;3191:30:0;;3211:9;3191:30;;;;;;;;;;;;;;;3152:81;61:13344;1101:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1101:23:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4885:521;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4885:521:0;;;;;;;;:::i;9414:309::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9414:309:0;;;;;;;;:::i;998:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;998:40:0;;;;;;;;:::i;:::-;;;;;;;;924:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;924:67:0;;;;;;;;:::i;11993:346::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11993:346:0;;;;;;;;:::i;:::-;;;;;;;;4454:294;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4454:294:0;;;;;;;;:::i;1045:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1045:47:0;;;;;;;;:::i;10790:421::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10790:421:0;;;;;;;;:::i;1481:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1481:37:0;;;;;;;;:::i;:::-;;;;;;;;;11414:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11414:301:0;;;;;;;;:::i;6737:184::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6737:184:0;;;;;;;;:::i;865:52::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;865:52:0;;;;;;;;:::i;:::-;;;;;;;;;;;12437:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12437:126:0;;;:::i;:::-;;;;;;;;12757:645;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12757:645:0;;;;;;;;:::i;1161:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1161:31:0;;;:::i;6303:222::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6303:222:0;;;;;;;;:::i;157:34::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:34:0;;;:::i;7882:622::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7882:622:0;;;;;;;;:::i;4162:151::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4162:151:0;;;:::i;7197:565::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7197:565:0;;;;;;;;:::i;106:44::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;106:44:0;;;:::i;1131:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1131:23:0;;;:::i;5620:498::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5620:498:0;;;;;;;;:::i;9851:773::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9851:773:0;;;;;;;;:::i;1101:23::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1101:23:0;;-1:-1:-1;1101:23:0;:::o;4885:521::-;1564:10;1586:4;1564:27;1560:73;;1606:27;;-1:-1:-1;;;;;1606:27:0;;;;;;;;;;;;;;;;1560:73;-1:-1:-1;;;;;1863:14:0;;;;;;:7;:14;;;;;;4980:5;;1863:14;;1858:62;;1892:28;;-1:-1:-1;;;;;1892:28:0;;;;;;;;1858:62;-1:-1:-1;;;;;5003:14:0;;5020:5;5003:14;;;:7;:14;;;;;:22;;-1:-1:-1;;5003:22:0;;;5036:194;5060:6;:13;-1:-1:-1;;5060:17:0;5056:21;;5036:194;;;5116:5;-1:-1:-1;;;;;5103:18:0;:6;5110:1;5103:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5103:9:0;:18;5099:120;;;5154:6;5161:13;;-1:-1:-1;;5161:17:0;;;5154:25;;;;;;;;;;;;;;;;5142:6;:9;;-1:-1:-1;;;;;5154:25:0;;;;5149:1;;5142:9;;;;;;;;;;;;;;:37;;;;;-1:-1:-1;;;;;5142:37:0;;;;;-1:-1:-1;;;;;5142:37:0;;;;;;5198:5;;5099:120;5079:3;;5036:194;;;-1:-1:-1;5242:6:0;:18;;-1:-1:-1;;5242:18:0;;;;;;:::i;:::-;-1:-1:-1;5288:6:0;:13;5277:8;;:24;5273:89;;;5336:6;:13;5318:32;;:17;:32::i;:::-;5379:19;;-1:-1:-1;;;;;5379:19:0;;;;;;;;1644:1;4885:521;:::o;9414:309::-;9504:10;1863:14;;;;:7;:14;;;;;;;;1858:62;;1892:28;;-1:-1:-1;;;;;1892:28:0;;;;;;;;1858:62;2216:28;;;;:13;:28;;;;;;;;9550:10;2216:35;;;;;;;;;9535:13;;9550:10;2216:35;;2211:80;;2266:25;;-1:-1:-1;;;;;2266:25:0;;;;;;;;2211:80;2560:27;;;;:12;:27;;;;;:36;;;9583:13;;2560:36;;2556:83;;;2611:28;;-1:-1:-1;;;;;2611:28:0;;;;;;;;2556:83;9657:5;9614:28;;;:13;:28;;;;;;;;9643:10;9614:40;;;;;;;;:48;;-1:-1:-1;;9614:48:0;;;9678:37;9628:13;;9678:37;;;2302:1;1931;;9414:309;;:::o;998:40::-;;;;;;;;;;;;;;;:::o;924:67::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11993:346::-;12101:13;;12132:200;12156:16;;12152:1;:20;12132:200;;;12198:7;:36;;;;-1:-1:-1;12210:15:0;;;;:12;:15;;;;;:24;;;;;12209:25;12198:36;:76;;;;12238:8;:36;;;;-1:-1:-1;12250:15:0;;;;:12;:15;;;;;:24;;;;;12238:36;12194:127;;;12304:1;12295:10;;;;12194:127;12174:3;;12132:200;;;;11993:346;;;;:::o;4454:294::-;1564:10;1586:4;1564:27;1560:73;;1606:27;;-1:-1:-1;;;;;1606:27:0;;;;;;;;1560:73;-1:-1:-1;;;;;1718:14:0;;;;;;:7;:14;;;;;;4552:5;;1718:14;;1714:69;;;1747:36;;-1:-1:-1;;;;;1747:36:0;;;;;;;;1714:69;4576:5;-1:-1:-1;;;;;2717:22:0;;2713:65;;2754:24;;-1:-1:-1;;;;;2754:24:0;;;;;;;;2713:65;4609:6;:13;;;;4625:1;4609:17;4628:8;;148:2;2886:10;:28;:54;;;;2930:10;2918:9;:22;2886:54;:72;;;-1:-1:-1;2944:14:0;;2886:72;:91;;;-1:-1:-1;2962:15:0;;2886:91;2882:143;;;2992:33;;-1:-1:-1;;;;;2992:33:0;;;;;;;;2882:143;-1:-1:-1;;;;;4654:14:0;;;;;;:7;:14;;;;;;:21;;-1:-1:-1;;4654:21:0;4671:4;4654:21;;;;;;4686:6;27:10:-1;;23:18;;;45:23;;4686:18:0;;;;;;-1:-1:-1;;;;;;4686:18:0;;;;;4720:20;;;4654:14;4720:20;2789:1;;1794;1644;4454:294;:::o;1045:47::-;;;;;;;;;;;;;:::o;10790:421::-;10882:4;;;10934:245;10958:6;:13;10954:17;;10934:245;;;10997:28;;;;:13;:28;;;;;11026:6;:9;;10997:28;;;11033:1;;11026:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11026:9:0;10997:39;;;;;;;;;;;;;;;10993:90;;;11066:1;11057:10;;;;10993:90;11112:8;;11103:5;:17;11099:69;;11148:4;11141:11;;;;;;11099:69;10973:3;;10934:245;;;;11198:5;11191:12;;;10790:421;;;;:::o;1481:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1481:37:0;:::o;11414:301::-;11517:13;;11548:160;11572:6;:13;11568:17;;11548:160;;;11611:28;;;;:13;:28;;;;;11640:6;:9;;11611:28;;;11647:1;;11640:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11640:9:0;11611:39;;;;;;;;;;;;;;;11607:90;;;11680:1;11671:10;;;;11607:90;11587:3;;11548:160;;;;11414:301;;;:::o;6737:184::-;1564:10;1586:4;1564:27;1560:73;;1606:27;;-1:-1:-1;;;;;1606:27:0;;;;;;;;1560:73;6840:11;:26;;;6882:31;;;;;;6854:12;;6882:31;;;;;;;;;;6737:184;:::o;865:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;865:52:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;865:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;865:52:0;;;;;;;-1:-1:-1;;865:52:0;;;:::o;12437:126::-;12508:16;12549:6;12542:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12542:13:0;;;;;;;;;;;;;;;;;;;;;;;12437:126;;:::o;12757:645::-;12856:31;12905:34;12956:6;:13;;;;12942:28;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;12942:28:0;-1:-1:-1;12905:65:0;-1:-1:-1;12981:13:0;;13031:207;13047:6;:13;13043:17;;13031:207;;;13086:28;;;;:13;:28;;;;;13115:6;:9;;13086:28;;;13122:1;;13115:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13115:9:0;13086:39;;;;;;;;;;;;;;;13082:145;;;13173:6;13180:1;13173:9;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13173:9:0;13146:17;13164:5;13146:24;;;;;;;;;;;;;:36;-1:-1:-1;;;;;13146:36:0;;;-1:-1:-1;;;;;13146:36:0;;;;;13210:1;13201:10;;;;13082:145;13062:3;;13031:207;;;13281:5;13267:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;13267:20:0;;13250:37;;13309:1;13305:5;;13300:95;13316:5;13312:1;:9;13300:95;;;13363:17;13381:1;13363:20;;;;;;;;;;;;;;13343:14;13358:1;13343:17;;;;;;;;-1:-1:-1;;;;;13343:40:0;;;:17;;;;;;;;;;;:40;13323:3;;13300:95;;;12757:645;;;;;;:::o;1161:31::-;;;;:::o;6303:222::-;1564:10;1586:4;1564:27;1560:73;;1606:27;;-1:-1:-1;;;;;1606:27:0;;;;;;;;1560:73;6411:6;:13;6426:9;148:2;2886:28;;;:54;;;2930:10;2918:9;:22;2886:54;:72;;;-1:-1:-1;2944:14:0;;2886:72;:91;;;-1:-1:-1;2962:15:0;;2886:91;2882:143;;;2992:33;;-1:-1:-1;;;;;2992:33:0;;;;;;;;2882:143;6453:8;:20;;;6489:28;;;;;;6464:9;;6489:28;;;;;;;;;;1644:1;;6303:222;:::o;157:34::-;;;;:::o;7882:622::-;7970:10;1863:14;;;;:7;:14;;;;;;;;1858:62;;1892:28;;-1:-1:-1;;;;;1892:28:0;;;;;;;;1858:62;2064:1;2013:27;;;:12;:27;;;;;:39;8009:13;;-1:-1:-1;;;;;2013:39:0;2009:106;;2081:34;;-1:-1:-1;;;;;2081:34:0;;;;;;;;2009:106;2394:28;;;;:13;:28;;;;;;;;8061:10;2394:35;;;;;;;;;8046:13;;8061:10;2394:35;;2390:83;;;2444:29;;-1:-1:-1;;;;;2444:29:0;;;;;;;;2390:83;8089:28;;;;:13;:28;;;;;;;;8118:10;8089:40;;;;;;;;:47;;-1:-1:-1;;8089:47:0;8132:4;8089:47;;;8152:39;8103:13;;8152:39;;;8208:26;8220:13;8208:11;:26::i;:::-;:61;;;;-1:-1:-1;8238:26:0;;;;:11;:26;;;;;;:31;8208:61;:96;;;;;8274:30;8290:13;8274:15;:30::i;:::-;8273:31;8208:96;8204:293;;;8321:18;8360:11;;8386:26;;;:11;:26;;;;;;;8342:15;:29;;;8386:39;;;;8445:40;;8398:13;;8445:40;;;;8342:29;;8445:40;;;;;;;;;;8204:293;;2126:1;;1931;7882:622;;:::o;4162:151::-;4284:14;:21;4162:151;:::o;7197:565::-;7320:10;7380:21;1863:14;;;:7;:14;;;;;;7380:21;;7320:10;1863:14;;1858:62;;1892:28;;-1:-1:-1;;;;;1892:28:0;;;;;;;;1858:62;7349:11;-1:-1:-1;;;;;2717:22:0;;2713:65;;2754:24;;-1:-1:-1;;;;;2754:24:0;;;;;;;;2713:65;7435:16;;7419:32;;7492:145;;;;;;;;7532:11;-1:-1:-1;;;;;7492:145:0;;;;;7565:5;7492:145;;;;7591:4;;7492:145;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;-1:-1;7492:145:0;;;-1:-1:-1;;;7492:145:0;;;;;;;7462:27;;;7492:145;7462:27;;;;;;;;:175;;;;-1:-1:-1;;;;;;7462:175:0;-1:-1:-1;;;;;7462:175:0;;;;;;;;;;;;;;;;;;;;;;;:27;;:175;;;;;;;;;;;:::i;:::-;-1:-1:-1;7462:175:0;;;;;;;;;;;;-1:-1:-1;;7462:175:0;;;;;;;;;;7648:16;:21;;-1:-1:-1;7648:21:0;;;7685:25;;7696:13;;7685:25;;-1:-1:-1;;7685:25:0;7721:33;7740:13;7721:18;:33::i;:::-;1931:1;7197:565;;;;;;;:::o;106:44::-;148:2;106:44;:::o;1131:23::-;;;;:::o;5620:498::-;1564:10;1586:4;1564:27;1560:73;;1606:27;;-1:-1:-1;;;;;1606:27:0;;;;;;;;1560:73;-1:-1:-1;;;;;1863:14:0;;;;;;:7;:14;;;;;;5734:5;;1863:14;;1858:62;;1892:28;;-1:-1:-1;;;;;1892:28:0;;;;;;;;1858:62;-1:-1:-1;;;;;1718:14:0;;;;;;:7;:14;;;;;;5768:8;;1718:14;;1714:69;;;1747:36;;-1:-1:-1;;;;;1747:36:0;;;;;;;;1714:69;5799:9;5794:173;5818:6;:13;5814:17;;5794:173;;;5870:5;-1:-1:-1;;;;;5857:18:0;:6;5864:1;5857:9;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5857:9:0;:18;5853:103;;;5908:8;5896:6;5903:1;5896:9;;;;;;;;;;;;;;;;:20;;;;;-1:-1:-1;;;;;5896:20:0;;;;;-1:-1:-1;;;;;5896:20:0;;;;;;5935:5;;5853:103;5833:3;;5794:173;;;-1:-1:-1;;;;;;5979:14:0;;;5996:5;5979:14;;;:7;:14;;;;;;:22;;-1:-1:-1;;5979:22:0;;;;;;6012:17;;;;;;;;:24;;;;;5979:22;6012:24;;;;6052:19;;5979:14;;6052:19;;;6087:23;;-1:-1:-1;;;;;6087:23:0;;;;;;;;1931:1;1644;5620:498;;:::o;9851:773::-;9941:10;1863:14;;;;:7;:14;;;;;;;;1858:62;;1892:28;;-1:-1:-1;;;;;1892:28:0;;;;;;;;1858:62;2560:27;;;;:12;:27;;;;;:36;;;9974:13;;2560:36;;2556:83;;;2611:28;;-1:-1:-1;;;;;2611:28:0;;;;;;;;2556:83;10046:26;;;;:11;:26;;;;;;10027:15;:45;;10005:121;;;;-1:-1:-1;;;;;10005:121:0;;;;;;;;;10143:26;10155:13;10143:11;:26::i;:::-;10139:478;;;10186:31;10220:27;;;:12;:27;;;;;;;;10262:20;;;:27;;-1:-1:-1;;10262:27:0;;;;;10323:23;;10358:17;;;;10323:71;;10220:27;;10186:31;-1:-1:-1;;;;;10323:23:0;;10358:17;10323:71;;10377:16;;;;10323:71;;;;;;;;;;;;;;;;;;;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;;10304:90:0;;;10413:7;10409:197;;;10444:24;;10454:13;;10444:24;;;;;10409:197;;;10512:31;;10529:13;;10512:31;;;;;-1:-1:-1;10562:20:0;;:28;;-1:-1:-1;;10562:28:0;;;10139:478;1931:1;9851:773;;:::o;8512:764::-;8610:4;8652:27;;;:12;:27;;;;;;;;:32;;;;8632:52;;;;;;;;;;-1:-1:-1;;8632:52:0;;;;;;;;;;;;;;;;;;;;;;;;:17;;:52;8652:32;;8632:52;;;8652:32;8632:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8632:52:0;;-1:-1:-1;8702:9:0;;-1:-1:-1;;;;8697:547:0;8721:14;:21;8717:25;;8697:547;;;8764:34;;:::i;:::-;8801:14;8816:1;8801:17;;;;;;;;;;;;;;;;;;8764:54;;;;;;;;;;;;;;;;;;;;;;;;;;;8872:13;:30;;;8905:1;8872:34;8857:4;:11;:49;:86;;;;;8942:1;8927:4;:11;:16;;8857:86;:143;;;;;8993:4;8998:1;8993:7;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8964:36:0;;:13;:22;;;8987:1;8964:25;;;;;;;;;;-1:-1:-1;;;;;8964:36:0;;;8857:143;:200;;;;;9050:4;9055:1;9050:7;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9021:36:0;;:13;:22;;;9044:1;9021:25;;;;;;;;;;-1:-1:-1;;;;;9021:36:0;;;8857:200;:257;;;;;9107:4;9112:1;9107:7;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9078:36:0;;:13;:22;;;9101:1;9078:25;;;;;;;;;;-1:-1:-1;;;;;9078:36:0;;;8857:257;:314;;;;;9164:4;9169:1;9164:7;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9135:36:0;;:13;:22;;;9158:1;9135:25;;;;;;;;;;-1:-1:-1;;;;;9135:36:0;;;8857:314;8835:398;;;9213:4;9206:11;;;;;;;8835:398;-1:-1:-1;8744:3:0;;8697:547;;61:13344;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;61:13344:0;;;-1:-1:-1;61:13344:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;-1:-1:-1;61:13344:0;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;5:130:-1;72:20;;97:33;72:20;97:33;;;57:78;;;;;142:124;206:20;;231:30;206:20;231:30;;287:335;;;401:3;394:4;386:6;382:17;378:27;368:2;;419:1;416;409:12;368:2;-1:-1;439:20;;479:18;468:30;;465:2;;;511:1;508;501:12;465:2;545:4;537:6;533:17;521:29;;595:3;588;580:6;576:16;566:8;562:31;559:40;556:2;;;612:1;609;602:12;556:2;361:261;;;;;;630:130;697:20;;722:33;697:20;722:33;;767:241;;871:2;859:9;850:7;846:23;842:32;839:2;;;887:1;884;877:12;839:2;922:1;939:53;984:7;964:9;939:53;;;929:63;833:175;-1:-1;;;;833:175;1015:366;;;1136:2;1124:9;1115:7;1111:23;1107:32;1104:2;;;1152:1;1149;1142:12;1104:2;1187:1;1204:53;1249:7;1229:9;1204:53;;;1194:63;;1166:97;1294:2;1312:53;1357:7;1348:6;1337:9;1333:22;1312:53;;;1302:63;;1273:98;1098:283;;;;;;1388:615;;;;;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1561:1;1558;1551:12;1513:2;1596:1;1613:53;1658:7;1638:9;1613:53;;;1603:63;;1575:97;1703:2;1721:53;1766:7;1757:6;1746:9;1742:22;1721:53;;;1711:63;;1682:98;1839:2;1828:9;1824:18;1811:32;1863:18;1855:6;1852:30;1849:2;;;1895:1;1892;1885:12;1849:2;1923:64;1979:7;1970:6;1959:9;1955:22;1923:64;;;1507:496;;;;-1:-1;1913:74;-1:-1;;;;1507:496;2010:354;;;2125:2;2113:9;2104:7;2100:23;2096:32;2093:2;;;2141:1;2138;2131:12;2093:2;2176:1;2193:50;2235:7;2215:9;2193:50;;;2183:60;;2155:94;2280:2;2298:50;2340:7;2331:6;2320:9;2316:22;2298:50;;2371:241;;2475:2;2463:9;2454:7;2450:23;2446:32;2443:2;;;2491:1;2488;2481:12;2443:2;2526:1;2543:53;2588:7;2568:9;2543:53;;2619:366;;;2740:2;2728:9;2719:7;2715:23;2711:32;2708:2;;;2756:1;2753;2746:12;2708:2;2791:1;2808:53;2853:7;2833:9;2808:53;;2993:173;;3080:46;3122:3;3114:6;3080:46;;;-1:-1;;3155:4;3146:14;;3073:93;3174:103;3247:24;3265:5;3247:24;;;3242:3;3235:37;3229:48;;;3435:690;;3580:54;3628:5;3580:54;;;3647:86;3726:6;3721:3;3647:86;;;3640:93;;3754:56;3804:5;3754:56;;;3830:7;3858:1;3843:260;3868:6;3865:1;3862:13;3843:260;;;3935:6;3929:13;3956:63;4015:3;4000:13;3956:63;;;3949:70;;4036:60;4089:6;4036:60;;;4026:70;-1:-1;;3890:1;3883:9;3843:260;;;-1:-1;4116:3;;3559:566;-1:-1;;;;;3559:566;4133:104;4210:21;4225:5;4210:21;;4244:113;4327:24;4345:5;4327:24;;4364:335;;4470:34;4498:5;4470:34;;;4516:70;4579:6;4574:3;4516:70;;;4509:77;;4591:52;4636:6;4631:3;4624:4;4617:5;4613:16;4591:52;;;4664:29;4686:6;4664:29;;;4655:39;;;;4450:249;-1:-1;;;4450:249;4729:879;;4864:5;4858:12;4898:1;4887:9;4883:17;4911:1;4906:267;;;;5184:1;5179:423;;;;4876:726;;4906:267;4984:4;4980:1;4969:9;4965:17;4961:28;5003:88;5084:6;5079:3;5003:88;;;-1:-1;;5110:25;;5098:38;;4996:95;-1:-1;5150:16;;;-1:-1;4906:267;;5179:423;5248:1;5237:9;5233:17;5264:88;5345:6;5340:3;5264:88;;;5257:95;;5374:37;5405:5;5374:37;;;5427:1;5435:130;5449:6;5446:1;5443:13;5435:130;;;5508:14;;5495:11;;;5488:35;5555:1;5542:15;;;;5471:4;5464:12;5435:130;;;-1:-1;;5579:16;;;-1:-1;4876:726;;4834:774;;;;;;5617:364;;5777:67;5841:2;5836:3;5777:67;;;5877:66;5857:87;;5972:2;5963:12;;5763:218;-1:-1;;5763:218;5990:364;;6150:67;6214:2;6209:3;6150:67;;;6250:66;6230:87;;6345:2;6336:12;;6136:218;-1:-1;;6136:218;6363:364;;6523:67;6587:2;6582:3;6523:67;;;6623:66;6603:87;;6718:2;6709:12;;6509:218;-1:-1;;6509:218;6736:364;;6896:67;6960:2;6955:3;6896:67;;;6996:66;6976:87;;7091:2;7082:12;;6882:218;-1:-1;;6882:218;7109:364;;7269:67;7333:2;7328:3;7269:67;;;7369:66;7349:87;;7464:2;7455:12;;7255:218;-1:-1;;7255:218;7482:364;;7642:67;7706:2;7701:3;7642:67;;;7742:66;7722:87;;7837:2;7828:12;;7628:218;-1:-1;;7628:218;7855:364;;8015:67;8079:2;8074:3;8015:67;;;8115:66;8095:87;;8210:2;8201:12;;8001:218;-1:-1;;8001:218;8228:364;;8388:67;8452:2;8447:3;8388:67;;;8488:66;8468:87;;8583:2;8574:12;;8374:218;-1:-1;;8374:218;8601:364;;8761:67;8825:2;8820:3;8761:67;;;8861:66;8841:87;;8956:2;8947:12;;8747:218;-1:-1;;8747:218;8974:364;;9134:67;9198:2;9193:3;9134:67;;;9234:66;9214:87;;9329:2;9320:12;;9120:218;-1:-1;;9120:218;9466:256;;9607:90;9693:3;9684:6;9607:90;;;9600:97;9588:134;-1:-1;;;9588:134;9729:213;9847:2;9832:18;;9861:71;9836:9;9905:6;9861:71;;9949:611;10159:3;10144:19;;10174:71;10148:9;10218:6;10174:71;;;10256:72;10324:2;10313:9;10309:18;10300:6;10256:72;;;10376:9;10370:4;10366:20;10361:2;10350:9;10346:18;10339:48;10401:72;10468:4;10459:6;10401:72;;;10393:80;;10484:66;10546:2;10535:9;10531:18;10522:6;10484:66;;;10130:430;;;;;;;;10567:361;10735:2;10749:47;;;10720:18;;10810:108;10720:18;10904:6;10810:108;;10935:201;11047:2;11032:18;;11061:65;11036:9;11099:6;11061:65;;11143:324;11289:2;11274:18;;11303:71;11278:9;11347:6;11303:71;;;11385:72;11453:2;11442:9;11438:18;11429:6;11385:72;;11474:407;11665:2;11679:47;;;11650:18;;11740:131;11650:18;11740:131;;11888:407;12079:2;12093:47;;;12064:18;;12154:131;12064:18;12154:131;;12302:407;12493:2;12507:47;;;12478:18;;12568:131;12478:18;12568:131;;12716:407;12907:2;12921:47;;;12892:18;;12982:131;12892:18;12982:131;;13130:407;13321:2;13335:47;;;13306:18;;13396:131;13306:18;13396:131;;13544:407;13735:2;13749:47;;;13720:18;;13810:131;13720:18;13810:131;;13958:407;14149:2;14163:47;;;14134:18;;14224:131;14134:18;14224:131;;14372:407;14563:2;14577:47;;;14548:18;;14638:131;14548:18;14638:131;;14786:407;14977:2;14991:47;;;14962:18;;15052:131;14962:18;15052:131;;15200:407;15391:2;15405:47;;;15376:18;;15466:131;15376:18;15466:131;;15614:213;15732:2;15717:18;;15746:71;15721:9;15790:6;15746:71;;15837:123;15947:4;15935:17;;15915:45;15973:128;;16040:15;;;16088:4;16075:18;;;16031:70;16111:107;16201:12;;16185:33;16455:178;16573:19;;;16622:4;16613:14;;16566:67;17137:91;;17199:24;17217:5;17199:24;;17235:85;17301:13;17294:21;;17277:43;17406:121;-1:-1;;;;;17468:54;;17451:76;17614:268;17679:1;17686:101;17700:6;17697:1;17694:13;17686:101;;;17767:11;;;17761:18;17748:11;;;17741:39;17722:2;17715:10;17686:101;;;17802:6;17799:1;17796:13;17793:2;;;17867:1;17858:6;17853:3;17849:16;17842:27;17793:2;17663:219;;;;;17890:97;17978:2;17958:14;-1:-1;;17954:28;;17938:49;17995:117;18064:24;18082:5;18064:24;;;18057:5;18054:35;18044:2;;18103:1;18100;18093:12;18044:2;18038:74;;18119:111;18185:21;18200:5;18185:21;;18237:117;18306:24;18324:5;18306:24;

Swarm Source

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

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