Contract 0x13fef63b503aaa376de3c7ea2d95b8869cb636ed 1

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x7f79868d87598bb7842afd334ed1305003d0aa11138bf13f60e9e6a72b82ed48Execute Transact...47836802022-01-19 6:48:529 days 6 hrs ago0x54ad8c33e6c7df7a6143d962a44be65ae1d4ab36 IN  0x13fef63b503aaa376de3c7ea2d95b8869cb636ed0 ETH0.000870802381 ETH
0x0fb64275123373b4ff544da617bca0e2f42c2ce7fe1948851e3276c1cdf83e99Confirm Transact...47836562022-01-19 6:47:159 days 6 hrs ago0x799ce6da8e5a251f5ab057518f57bb7edd25613c IN  0x13fef63b503aaa376de3c7ea2d95b8869cb636ed0 ETH0.000984465788 ETH
0x44b86f26057d9d7a8d55f0ed79013c32f551a824496f5c4beb30302b1652415dSubmit Transacti...47836362022-01-19 6:45:159 days 6 hrs ago0x54ad8c33e6c7df7a6143d962a44be65ae1d4ab36 IN  0x13fef63b503aaa376de3c7ea2d95b8869cb636ed0 ETH0.001480986913 ETH
0x95428a73b36ece7eb246aa3c9683df5dd38493f9c1c30642fb53c3ced7134ddaExecute Transact...47835972022-01-19 6:43:279 days 6 hrs ago0x54ad8c33e6c7df7a6143d962a44be65ae1d4ab36 IN  0x13fef63b503aaa376de3c7ea2d95b8869cb636ed0 ETH0.000872204707 ETH
0xde281415e60e8151b353b42a0f9567441bfd2e4676a85f97810064bf064d9adfConfirm Transact...47150142022-01-17 1:29:1711 days 11 hrs ago0x799ce6da8e5a251f5ab057518f57bb7edd25613c IN  0x13fef63b503aaa376de3c7ea2d95b8869cb636ed0 ETH0.001184205208 ETH
0x0ebf034f5756ca3bf68b0d438c6a1ef30bc777e5dcfc39637af1f2f97118e924Submit Transacti...47149992022-01-17 1:27:3911 days 11 hrs ago0x54ad8c33e6c7df7a6143d962a44be65ae1d4ab36 IN  0x13fef63b503aaa376de3c7ea2d95b8869cb636ed0 ETH0.001747481356 ETH
0x8b38c4745d12ceaa6fcd414f4045fe35c5903a51bda798c8ebab91427714a3bdExecute Transact...46069892022-01-13 8:12:2815 days 4 hrs ago0x54ad8c33e6c7df7a6143d962a44be65ae1d4ab36 IN  0x13fef63b503aaa376de3c7ea2d95b8869cb636ed0 ETH0.001278951337 ETH
0x64d6e14ee0b11ca7a630b0f4a10466fb14c6cd09b8e606d360af949d122bc4abConfirm Transact...46056042022-01-13 6:44:0915 days 6 hrs ago0x54ad8c33e6c7df7a6143d962a44be65ae1d4ab36 IN  0x13fef63b503aaa376de3c7ea2d95b8869cb636ed0 ETH0.001462811572 ETH
0x9eb3573363646b23cae367332c61ff02e2bcb8d7c12793bc65ee25de2f959c16Submit Transacti...46055562022-01-13 6:42:2215 days 6 hrs ago0x799ce6da8e5a251f5ab057518f57bb7edd25613c IN  0x13fef63b503aaa376de3c7ea2d95b8869cb636ed0 ETH0.002331292043 ETH
0x1156f5c5b9489aade5f09845a8b6c53c11f8cc0379207dc91e0235a4a5d58ea60x6080604045824642022-01-12 9:56:3516 days 2 hrs ago0x54ad8c33e6c7df7a6143d962a44be65ae1d4ab36 IN  Create: P1MultisigAdmin0 ETH0.060858356694 ETH
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
P1MultisigAdmin

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 1000 runs

Other Settings:
default evmVersion, Apache-2.0 license
/**
 *Submitted for verification at arbiscan.io on 2022-01-12
*/

/**
 *Submitted for verification at BscScan.com on 2022-01-12
*/

/**
 *Submitted for verification at arbiscan.io on 2022-01-11
*/

/**
 *Submitted for verification at BscScan.com on 2022-01-10
*/

/**
 *Submitted for verification at arbiscan.io on 2022-01-07
*/

// File: contracts/external/multisig/MultiSig.sol

/*

    Copyright

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

*/

pragma solidity 0.8.9;
pragma abicoder v2;


/**
 * @title MultiSig
 * @author  
 *
 * Multi-Signature Wallet.
 * Allows multiple parties to agree on transactions before execution.
 * Adapted from Stefan George's MultiSigWallet contract.
 *
 * Logic Changes:
 *  - Removed the fallback function
 *  - Ensure newOwner is notNull
 *
 */
contract MultiSig {

    // ============ Events ============

    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 OwnerAddition(address indexed owner);
    event OwnerRemoval(address indexed owner);
    event RequirementChange(uint256 required);

    // ============ Constants ============

    uint256 constant public MAX_OWNER_COUNT = 50;
    address constant ADDRESS_ZERO = address(0x0);

    // ============ Storage ============

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

    // ============ Structs ============

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

    // ============ Modifiers ============

    modifier onlyWallet() {
        /* solium-disable-next-line error-reason */
        require(msg.sender == address(this));
        _;
    }

    modifier ownerDoesNotExist(
        address owner
    ) {
        /* solium-disable-next-line error-reason */
        require(!isOwner[owner]);
        _;
    }

    modifier ownerExists(
        address owner
    ) {
        /* solium-disable-next-line error-reason */
        require(isOwner[owner]);
        _;
    }

    modifier transactionExists(
        uint256 transactionId
    ) {
        /* solium-disable-next-line error-reason */
        require(transactions[transactionId].destination != ADDRESS_ZERO);
        _;
    }

    modifier confirmed(
        uint256 transactionId,
        address owner
    ) {
        /* solium-disable-next-line error-reason */
        require(confirmations[transactionId][owner]);
        _;
    }

    modifier notConfirmed(
        uint256 transactionId,
        address owner
    ) {
        /* solium-disable-next-line error-reason */
        require(!confirmations[transactionId][owner]);
        _;
    }

    modifier notExecuted(
        uint256 transactionId
    ) {
        /* solium-disable-next-line error-reason */
        require(!transactions[transactionId].executed);
        _;
    }

    modifier notNull(
        address _address
    ) {
        /* solium-disable-next-line error-reason */
        require(_address != ADDRESS_ZERO);
        _;
    }

    modifier validRequirement(
        uint256 ownerCount,
        uint256 _required
    ) {
        /* solium-disable-next-line error-reason */
        require(
            ownerCount <= MAX_OWNER_COUNT
            && _required <= ownerCount
            && _required != 0
            && ownerCount != 0
        );
        _;
    }

    // ============ Constructor ============

    /**
     * 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
    )
        validRequirement(_owners.length, _required)
    {
        for (uint256 i = 0; i < _owners.length; i++) {
            /* solium-disable-next-line error-reason */
            require(!isOwner[_owners[i]] && _owners[i] != ADDRESS_ZERO);
            isOwner[_owners[i]] = true;
        }
        owners = _owners;
        required = _required;
    }

    // ============ Wallet-Only Functions ============

    /**
     * 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);
    }

    /**
     * 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 (uint256 i = 0; i < owners.length - 1; i++) {
            if (owners[i] == owner) {
                owners[i] = owners[owners.length - 1];
                break;
            }
        }
        //owners.length -= 1;
        owners.pop();
        if (required > owners.length) {
            changeRequirement(owners.length);
        }
        emit OwnerRemoval(owner);
    }

    /**
     * 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  newOwner  Address of new owner.
     */
    function replaceOwner(
        address owner,
        address newOwner
    )
        public
        onlyWallet
        ownerExists(owner)
        ownerDoesNotExist(newOwner)
        notNull(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);
    }

    /**
     * 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);
    }

    // ============ Admin Functions ============

    /**
     * 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              Transaction ID.
     */
    function submitTransaction(
        address destination,
        uint256 value,
        bytes memory data
    )
        public
        returns (uint256)
    {
        uint256 transactionId = addTransaction(destination, value, data);
        confirmTransaction(transactionId);
        return transactionId;
    }

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

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

    /**
     * Allows an owner to execute a confirmed transaction.
     *
     * @param  transactionId  Transaction ID.
     */
    function executeTransaction(
        uint256 transactionId
    )
        public
        virtual
        ownerExists(msg.sender)
        confirmed(transactionId, msg.sender)
        notExecuted(transactionId)
    {
        if (isConfirmed(transactionId)) {
            Transaction storage txn = transactions[transactionId];
            txn.executed = true;
            if (externalCall(
                txn.destination,
                txn.value,
                txn.data.length,
                txn.data)
            ) {
                emit Execution(transactionId);
            } else {
                emit ExecutionFailure(transactionId);
                txn.executed = false;
            }
        }
    }

    // ============ Getter Functions ============

    /**
     * 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;
    }

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

    /**
     * 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 (uint256)
    {
        uint256 count = 0;
        for (uint256 i = 0; i < transactionCount; i++) {
            if (
                pending && !transactions[i].executed
                || executed && transactions[i].executed
            ) {
                count += 1;
            }
        }
        return count;
    }

    /**
     * Returns array of owners.
     *
     * @return  Array of owner addresses.
     */
    function getOwners()
        public
        view
        returns (address[] memory)
    {
        return owners;
    }

    /**
     * Returns array with owner addresses, which confirmed transaction.
     *
     * @param  transactionId  Transaction ID.
     * @return                Array of owner addresses.
     */
    function getConfirmations(
        uint256 transactionId
    )
        public
        view
        returns (address[] memory)
    {
        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;
            }
        }
        address[] memory _confirmations = new address[](count);
        for (i = 0; i < count; i++) {
            _confirmations[i] = confirmationsTemp[i];
        }
        return _confirmations;
    }

    /**
     * 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           Array of transaction IDs.
     */
    function getTransactionIds(
        uint256 from,
        uint256 to,
        bool pending,
        bool executed
    )
        public
        view
        returns (uint256[] memory)
    {
        uint256[] memory transactionIdsTemp = new uint256[](transactionCount);
        uint256 count = 0;
        uint256 i;
        for (i = 0; i < transactionCount; i++) {
            if (
                pending && !transactions[i].executed
                || executed && transactions[i].executed
            ) {
                transactionIdsTemp[count] = i;
                count += 1;
            }
        }
        uint256[] memory _transactionIds = new uint256[](to - from);
        for (i = from; i < to; i++) {
            _transactionIds[i - from] = transactionIdsTemp[i];
        }
        return _transactionIds;
    }

    // ============ Helper Functions ============

    // call has been separated into its own function in order to take advantage
    // of the Solidity's code generator to produce a loop that copies tx.data into memory.
    function externalCall(
        address destination,
        uint256 value,
        uint256 dataLength,
        bytes memory data
    )
        internal
        returns (bool)
    {
        bool result;
        /* solium-disable-next-line security/no-inline-assembly */
        assembly {
            let x := mload(0x40)   // "Allocate" memory for output (0x40 is where "free memory" pointer is stored by convention)
            let d := add(data, 32) // First 32 bytes are the padded length of data, so exclude that
            result := call(
                sub(gas(), 34710),   // 34710 is the value that solidity is currently emitting
                                   // It includes callGas (700) + callVeryLow (3, to pay for SUB) + callValueTransferGas (9000) +
                                   // callNewAccountGas (25000, in case the destination address does not exist and needs creating)
                destination,
                value,
                d,
                dataLength,        // Size of the input (in bytes) - this is what fixes the padding problem
                x,
                0                  // Output is ignored, therefore the output size is zero
            )
        }
        return result;
    }

    /**
     * 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              Transaction ID.
     */
    function addTransaction(
        address destination,
        uint256 value,
        bytes memory data
    )
        internal
        notNull(destination)
        returns (uint256)
    {
        uint256 transactionId = transactionCount;
        transactions[transactionId] = Transaction({
            destination: destination,
            value: value,
            data: data,
            executed: false
        });
        transactionCount += 1;
        emit Submission(transactionId);
        return transactionId;
    }
}

// File: contracts/external/multisig/DelayedMultiSig.sol

/*

    Copyright

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

*/




/**
 * @title DelayedMultiSig
 * @author  
 *
 * Multi-Signature Wallet with delay in execution.
 * Allows multiple parties to execute a transaction after a time lock has passed.
 * Adapted from Amir Bandeali's MultiSigWalletWithTimeLock contract.

 * Logic Changes:
 *  - Only owners can execute transactions
 *  - Require that each transaction succeeds
 *  - Added function to execute multiple transactions within the same Ethereum transaction
 */
contract DelayedMultiSig is
    MultiSig
{
    // ============ Events ============

    event ConfirmationTimeSet(uint256 indexed transactionId, uint256 confirmationTime);
    event TimeLockChange(uint32 secondsTimeLocked);

    // ============ Storage ============

    uint32 public secondsTimeLocked;
    mapping (uint256 => uint256) public confirmationTimes;

    // ============ Modifiers ============

    modifier notFullyConfirmed(
        uint256 transactionId
    ) {
        require(
            !isConfirmed(transactionId),
            "TX_FULLY_CONFIRMED"
        );
        _;
    }

    modifier fullyConfirmed(
        uint256 transactionId
    ) {
        require(
            isConfirmed(transactionId),
            "TX_NOT_FULLY_CONFIRMED"
        );
        _;
    }

    modifier pastTimeLock(
        uint256 transactionId
    ) {
        require(
            block.timestamp >= confirmationTimes[transactionId] + secondsTimeLocked,
            "TIME_LOCK_INCOMPLETE"
        );
        _;
    }

    // ============ Constructor ============

    /**
     * Contract constructor sets initial owners, required number of confirmations, and time lock.
     *
     * @param  _owners             List of initial owners.
     * @param  _required           Number of required confirmations.
     * @param  _secondsTimeLocked  Duration needed after a transaction is confirmed and before it
     *                             becomes executable, in seconds.
     */
    constructor (
        address[] memory _owners,
        uint256 _required,
        uint32 _secondsTimeLocked
    )
        MultiSig(_owners, _required)
    {
        secondsTimeLocked = _secondsTimeLocked;
    }

    // ============ Wallet-Only Functions ============

    /**
     * Changes the duration of the time lock for transactions.
     *
     * @param  _secondsTimeLocked  Duration needed after a transaction is confirmed and before it
     *                             becomes executable, in seconds.
     */
    function changeTimeLock(
        uint32 _secondsTimeLocked
    )
        public
        onlyWallet
    {
        secondsTimeLocked = _secondsTimeLocked;
        emit TimeLockChange(_secondsTimeLocked);
    }

    // ============ Admin Functions ============

    /**
     * Allows an owner to confirm a transaction.
     * Overrides the function in MultiSig.
     *
     * @param  transactionId  Transaction ID.
     */
    function confirmTransaction(
        uint256 transactionId
    )
        public
        virtual
        override
        ownerExists(msg.sender)
        transactionExists(transactionId)
        notConfirmed(transactionId, msg.sender)
        notFullyConfirmed(transactionId)
    {
        confirmations[transactionId][msg.sender] = true;
        emit Confirmation(msg.sender, transactionId);
        if (isConfirmed(transactionId)) {
            setConfirmationTime(transactionId, block.timestamp);
        }
    }

    /**
     * Allows an owner to execute a confirmed transaction.
     * Overrides the function in MultiSig.
     *
     * @param  transactionId  Transaction ID.
     */
    function executeTransaction(
        uint256 transactionId
    )
        public
        virtual
        override
        ownerExists(msg.sender)
        notExecuted(transactionId)
        fullyConfirmed(transactionId)
        pastTimeLock(transactionId)
    {
        Transaction storage txn = transactions[transactionId];
        txn.executed = true;
        bool success = externalCall(
            txn.destination,
            txn.value,
            txn.data.length,
            txn.data
        );
        require(
            success,
            "TX_REVERTED"
        );
        emit Execution(transactionId);
    }

    /**
     * Allows an owner to execute multiple confirmed transactions.
     *
     * @param  transactionIds  List of transaction IDs.
     */
    function executeMultipleTransactions(
        uint256[] memory transactionIds
    )
        public
        ownerExists(msg.sender)
    {
        for (uint256 i = 0; i < transactionIds.length; i++) {
            executeTransaction(transactionIds[i]);
        }
    }

    // ============ Helper Functions ============

    /**
     * Sets the time of when a submission first passed.
     */
    function setConfirmationTime(
        uint256 transactionId,
        uint256 confirmationTime
    )
        internal
    {
        confirmationTimes[transactionId] = confirmationTime;
        emit ConfirmationTimeSet(transactionId, confirmationTime);
    }
}

// File: contracts/protocol/v1/multisigners/P1MultisigAdmin.sol

/*

    Copyright

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

*/


/**
 * @title P1MultisigAdmin
 * @author  
 *
 * @notice Multisig contract for admin.
 */

contract P1MultisigAdmin is 
    DelayedMultiSig
{
    constructor (
        address[] memory owners,
        uint256 required,
        uint32 secondsTimeLocked
    ) DelayedMultiSig(
        owners,
        required,
        secondsTimeLocked
    )
    {}

}

Contract ABI

[{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256","name":"required","type":"uint256"},{"internalType":"uint32","name":"secondsTimeLocked","type":"uint32"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"Confirmation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"confirmationTime","type":"uint256"}],"name":"ConfirmationTimeSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"Execution","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"ExecutionFailure","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"OwnerAddition","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"OwnerRemoval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"required","type":"uint256"}],"name":"RequirementChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"Revocation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"Submission","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"secondsTimeLocked","type":"uint32"}],"name":"TimeLockChange","type":"event"},{"inputs":[],"name":"MAX_OWNER_COUNT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"addOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_secondsTimeLocked","type":"uint32"}],"name":"changeTimeLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"confirmationTimes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"confirmations","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"transactionIds","type":"uint256[]"}],"name":"executeMultipleTransactions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"executeTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"pending","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"from","type":"uint256"},{"internalType":"uint256","name":"to","type":"uint256"},{"internalType":"bool","name":"pending","type":"bool"},{"internalType":"bool","name":"executed","type":"bool"}],"name":"getTransactionIds","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"owners","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"removeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"replaceOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"required","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"transactionId","type":"uint256"}],"name":"revokeConfirmation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secondsTimeLocked","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"submitTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transactionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"transactions","outputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"},{"internalType":"bool","name":"executed","type":"bool"}],"stateMutability":"view","type":"function"}]

60806040523480156200001157600080fd5b5060405162001f4038038062001f40833981016040819052620000349162000272565b8282828282815181603282111580156200004e5750818111155b80156200005a57508015155b80156200006657508115155b6200007057600080fd5b60005b845181101562000166576002600086838151811062000096576200009662000362565b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff16158015620000fa575060006001600160a01b0316858281518110620000e657620000e662000362565b60200260200101516001600160a01b031614155b6200010457600080fd5b6001600260008784815181106200011f576200011f62000362565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806200015d8162000378565b91505062000073565b5083516200017c906003906020870190620001a9565b505050600455506006805463ffffffff191663ffffffff9290921691909117905550620003a29350505050565b82805482825590600052602060002090810192821562000201579160200282015b828111156200020157825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620001ca565b506200020f92915062000213565b5090565b5b808211156200020f576000815560010162000214565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200025857600080fd5b919050565b805163ffffffff811681146200025857600080fd5b6000806000606084860312156200028857600080fd5b83516001600160401b0380821115620002a057600080fd5b818601915086601f830112620002b557600080fd5b8151602082821115620002cc57620002cc6200022a565b8160051b604051601f19603f83011681018181108682111715620002f457620002f46200022a565b60405292835281830193508481018201928a8411156200031357600080fd5b948201945b838610156200033c576200032c8662000240565b8552948201949382019362000318565b80985050508088015195505050505062000359604085016200025d565b90509250925092565b634e487b7160e01b600052603260045260246000fd5b60006000198214156200039b57634e487b7160e01b600052601160045260246000fd5b5060010190565b611b8e80620003b26000396000f3fe608060405234801561001057600080fd5b50600436106101a35760003560e01c8063a029b36b116100ee578063c01a8c8411610097578063d74f8edd11610071578063d74f8edd146103d3578063dc8452cd146103db578063e20056e6146103e4578063ee22610b146103f757600080fd5b8063c01a8c841461038d578063c6427474146103a0578063d38f2d82146103b357600080fd5b8063b5dc40c3116100c8578063b5dc40c31461035e578063b77bf60014610371578063ba51a6df1461037a57600080fd5b8063a029b36b14610316578063a0e67e2b14610329578063a8abe69a1461033e57600080fd5b8063547415251161015057806380bc148f1161012a57806380bc148f146102cd5780638b51d13f146102e05780639ace38c2146102f357600080fd5b806354741525146102865780637065cb48146102a7578063784547a7146102ba57600080fd5b80632f54bf6e116101815780632f54bf6e146102005780633411c81c1461023357806337bd78a01461026157600080fd5b8063025e7c27146101a8578063173825d9146101d857806320ea8d86146101ed575b600080fd5b6101bb6101b63660046116b5565b61040a565b6040516001600160a01b0390911681526020015b60405180910390f35b6101eb6101e63660046116ea565b610434565b005b6101eb6101fb3660046116b5565b6105f8565b61022361020e3660046116ea565b60026020526000908152604090205460ff1681565b60405190151581526020016101cf565b61022361024136600461170c565b600160209081526000928352604080842090915290825290205460ff1681565b6006546102719063ffffffff1681565b60405163ffffffff90911681526020016101cf565b610299610294366004611748565b6106ae565b6040519081526020016101cf565b6101eb6102b53660046116ea565b61072d565b6102236102c83660046116b5565b610853565b6101eb6102db3660046117b9565b6108f2565b6102996102ee3660046116b5565b610953565b6103066103013660046116b5565b6109db565b6040516101cf9493929190611853565b6101eb6103243660046118c7565b610a99565b610331610af3565b6040516101cf91906118ed565b61035161034c36600461193a565b610b55565b6040516101cf9190611980565b61033161036c3660046116b5565b610cf0565b61029960055481565b6101eb6103883660046116b5565b610ecb565b6101eb61039b3660046116b5565b610f48565b6102996103ae3660046119b8565b61107b565b6102996103c13660046116b5565b60076020526000908152604090205481565b610299603281565b61029960045481565b6101eb6103f2366004611a67565b61109c565b6101eb6104053660046116b5565b611244565b6003818154811061041a57600080fd5b6000918252602090912001546001600160a01b0316905081565b33301461044057600080fd5b6001600160a01b038116600090815260026020526040902054819060ff1661046757600080fd5b6001600160a01b0382166000908152600260205260408120805460ff191690555b60035461049790600190611aa7565b81101561056757826001600160a01b0316600382815481106104bb576104bb611abe565b6000918252602090912001546001600160a01b0316141561055557600380546104e690600190611aa7565b815481106104f6576104f6611abe565b600091825260209091200154600380546001600160a01b03909216918390811061052257610522611abe565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610567565b8061055f81611ad4565b915050610488565b50600380548061057957610579611aef565b6000828152602090208101600019908101805473ffffffffffffffffffffffffffffffffffffffff1916905501905560035460045411156105c0576003546105c090610ecb565b6040516001600160a01b038316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526002602052604090205460ff1661061457600080fd5b60008281526001602090815260408083203380855292529091205483919060ff1661063e57600080fd5b600084815260208190526040902060030154849060ff161561065f57600080fd5b6000858152600160209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b600080805b600554811015610725578480156106dc575060008181526020819052604090206003015460ff16155b806107005750838015610700575060008181526020819052604090206003015460ff165b1561071357610710600183611b05565b91505b8061071d81611ad4565b9150506106b3565b509392505050565b33301461073957600080fd5b6001600160a01b038116600090815260026020526040902054819060ff161561076157600080fd5b816001600160a01b03811661077557600080fd5b600354610783906001611b05565b600454603282111580156107975750818111155b80156107a257508015155b80156107ad57508115155b6107b657600080fd5b6001600160a01b038516600081815260026020526040808220805460ff1916600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b01805473ffffffffffffffffffffffffffffffffffffffff191684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b600080805b6003548110156108e8576000848152600160205260408120600380549192918490811061088757610887611abe565b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff16156108c2576108bf600183611b05565b91505b6004548214156108d6575060019392505050565b806108e081611ad4565b915050610858565b5060009392505050565b3360008181526002602052604090205460ff1661090e57600080fd5b60005b825181101561094e5761093c83828151811061092f5761092f611abe565b6020026020010151611244565b8061094681611ad4565b915050610911565b505050565b600080805b6003548110156109d4576000848152600160205260408120600380549192918490811061098757610987611abe565b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff16156109c2576109bf600183611b05565b91505b806109cc81611ad4565b915050610958565b5092915050565b6000602081905290815260409020805460018201546002830180546001600160a01b03909316939192610a0d90611b1d565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3990611b1d565b8015610a865780601f10610a5b57610100808354040283529160200191610a86565b820191906000526020600020905b815481529060010190602001808311610a6957829003601f168201915b5050506003909301549192505060ff1684565b333014610aa557600080fd5b6006805463ffffffff191663ffffffff83169081179091556040519081527f8b01775fda0a3eb53a1e7b3a734cd346761d446aeb72745e17951c0f0ec2b1649060200160405180910390a150565b60606003805480602002602001604051908101604052809291908181526020018280548015610b4b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b2d575b5050505050905090565b6060600060055467ffffffffffffffff811115610b7457610b74611772565b604051908082528060200260200182016040528015610b9d578160200160208202803683370190505b5090506000805b600554811015610c3457858015610bcd575060008181526020819052604090206003015460ff16155b80610bf15750848015610bf1575060008181526020819052604090206003015460ff165b15610c225780838381518110610c0957610c09611abe565b6020908102919091010152610c1f600183611b05565b91505b80610c2c81611ad4565b915050610ba4565b6000610c408989611aa7565b67ffffffffffffffff811115610c5857610c58611772565b604051908082528060200260200182016040528015610c81578160200160208202803683370190505b5090508891505b87821015610ce457838281518110610ca257610ca2611abe565b6020026020010151818a84610cb79190611aa7565b81518110610cc757610cc7611abe565b602090810291909101015281610cdc81611ad4565b925050610c88565b98975050505050505050565b60035460609060009067ffffffffffffffff811115610d1157610d11611772565b604051908082528060200260200182016040528015610d3a578160200160208202803683370190505b5090506000805b600354811015610e185760008581526001602052604081206003805491929184908110610d7057610d70611abe565b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff1615610e065760038181548110610db057610db0611abe565b9060005260206000200160009054906101000a90046001600160a01b0316838381518110610de057610de0611abe565b6001600160a01b0390921660209283029190910190910152610e03600183611b05565b91505b80610e1081611ad4565b915050610d41565b60008267ffffffffffffffff811115610e3357610e33611772565b604051908082528060200260200182016040528015610e5c578160200160208202803683370190505b509050600091505b82821015610ec257838281518110610e7e57610e7e611abe565b6020026020010151818381518110610e9857610e98611abe565b6001600160a01b039092166020928302919091019091015281610eba81611ad4565b925050610e64565b95945050505050565b333014610ed757600080fd5b6003548160328211801590610eec5750818111155b8015610ef757508015155b8015610f0257508115155b610f0b57600080fd5b60048390556040518381527fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9060200160405180910390a1505050565b3360008181526002602052604090205460ff16610f6457600080fd5b60008281526020819052604090205482906001600160a01b0316610f8757600080fd5b60008381526001602090815260408083203380855292529091205484919060ff1615610fb257600080fd5b84610fbc81610853565b1561100e5760405162461bcd60e51b815260206004820152601260248201527f54585f46554c4c595f434f4e4649524d4544000000000000000000000000000060448201526064015b60405180910390fd5b6000868152600160208181526040808420338086529252808420805460ff1916909317909255905188927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a361106486610853565b156110735761107386426114ab565b505050505050565b6000806110898585856114fc565b905061109481610f48565b949350505050565b3330146110a857600080fd5b6001600160a01b038216600090815260026020526040902054829060ff166110cf57600080fd5b6001600160a01b038216600090815260026020526040902054829060ff16156110f757600080fd5b826001600160a01b03811661110b57600080fd5b60005b6003548110156111a957856001600160a01b03166003828154811061113557611135611abe565b6000918252602090912001546001600160a01b0316141561119757846003828154811061116457611164611abe565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506111a9565b806111a181611ad4565b91505061110e565b506001600160a01b03808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a26040516001600160a01b038516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b3360008181526002602052604090205460ff1661126057600080fd5b600082815260208190526040902060030154829060ff161561128157600080fd5b8261128b81610853565b6112d75760405162461bcd60e51b815260206004820152601660248201527f54585f4e4f545f46554c4c595f434f4e4649524d4544000000000000000000006044820152606401611005565b60065460008581526007602052604090205485916112fd9163ffffffff90911690611b05565b42101561134c5760405162461bcd60e51b815260206004820152601460248201527f54494d455f4c4f434b5f494e434f4d504c4554450000000000000000000000006044820152606401611005565b600085815260208190526040812060038101805460ff19166001908117909155815490820154600283018054939493611428936001600160a01b031692919061139490611b1d565b90508560020180546113a590611b1d565b80601f01602080910402602001604051908101604052809291908181526020018280546113d190611b1d565b801561141e5780601f106113f35761010080835404028352916020019161141e565b820191906000526020600020905b81548152906001019060200180831161140157829003601f168201915b50505050506115f9565b9050806114775760405162461bcd60e51b815260206004820152600b60248201527f54585f52455645525445440000000000000000000000000000000000000000006044820152606401611005565b60405187907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a250505050505050565b600082815260076020526040908190208290555182907f0b237afe65f1514fd7ea3f923ea4fe792bdd07000a912b6cd1602a8e7f573c8d906114f09084815260200190565b60405180910390a25050565b6000836001600160a01b03811661151257600080fd5b600554604080516080810182526001600160a01b0388811682526020808301898152838501898152600060608601819052878152808452959095208451815473ffffffffffffffffffffffffffffffffffffffff19169416939093178355516001830155925180519293919261158e926002850192019061161c565b50606091909101516003909101805460ff191691151591909117905560058054600191906000906115c0908490611b05565b909155505060405181907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a295945050505050565b6000806040516020840160008287838a8c6187965a03f198975050505050505050565b82805461162890611b1d565b90600052602060002090601f01602090048101928261164a5760008555611690565b82601f1061166357805160ff1916838001178555611690565b82800160010185558215611690579182015b82811115611690578251825591602001919060010190611675565b5061169c9291506116a0565b5090565b5b8082111561169c57600081556001016116a1565b6000602082840312156116c757600080fd5b5035919050565b80356001600160a01b03811681146116e557600080fd5b919050565b6000602082840312156116fc57600080fd5b611705826116ce565b9392505050565b6000806040838503121561171f57600080fd5b8235915061172f602084016116ce565b90509250929050565b803580151581146116e557600080fd5b6000806040838503121561175b57600080fd5b61176483611738565b915061172f60208401611738565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156117b1576117b1611772565b604052919050565b600060208083850312156117cc57600080fd5b823567ffffffffffffffff808211156117e457600080fd5b818501915085601f8301126117f857600080fd5b81358181111561180a5761180a611772565b8060051b915061181b848301611788565b818152918301840191848101908884111561183557600080fd5b938501935b83851015610ce45784358252938501939085019061183a565b6001600160a01b038516815260006020858184015260806040840152845180608085015260005b818110156118965786810183015185820160a00152820161187a565b818111156118a857600060a083870101525b50601f01601f1916830160a0019150610ec29050606083018415159052565b6000602082840312156118d957600080fd5b813563ffffffff8116811461170557600080fd5b6020808252825182820181905260009190848201906040850190845b8181101561192e5783516001600160a01b031683529284019291840191600101611909565b50909695505050505050565b6000806000806080858703121561195057600080fd5b843593506020850135925061196760408601611738565b915061197560608601611738565b905092959194509250565b6020808252825182820181905260009190848201906040850190845b8181101561192e5783518352928401929184019160010161199c565b6000806000606084860312156119cd57600080fd5b6119d6846116ce565b92506020808501359250604085013567ffffffffffffffff808211156119fb57600080fd5b818701915087601f830112611a0f57600080fd5b813581811115611a2157611a21611772565b611a33601f8201601f19168501611788565b91508082528884828501011115611a4957600080fd5b80848401858401376000848284010152508093505050509250925092565b60008060408385031215611a7a57600080fd5b611a83836116ce565b915061172f602084016116ce565b634e487b7160e01b600052601160045260246000fd5b600082821015611ab957611ab9611a91565b500390565b634e487b7160e01b600052603260045260246000fd5b6000600019821415611ae857611ae8611a91565b5060010190565b634e487b7160e01b600052603160045260246000fd5b60008219821115611b1857611b18611a91565b500190565b600181811c90821680611b3157607f821691505b60208210811415611b5257634e487b7160e01b600052602260045260246000fd5b5091905056fea264697066735822122071b7d85332a14d46b30c02b1dda26ba764050aec220ade675b7b130efbafa90164736f6c63430008090033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000000300000000000000000000000054ad8c33e6c7df7a6143d962a44be65ae1d4ab36000000000000000000000000799ce6da8e5a251f5ab057518f57bb7edd25613c00000000000000000000000048e6818d594a02f8b1e801c824eaa4ff23eb8b00

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000000300000000000000000000000054ad8c33e6c7df7a6143d962a44be65ae1d4ab36000000000000000000000000799ce6da8e5a251f5ab057518f57bb7edd25613c00000000000000000000000048e6818d594a02f8b1e801c824eaa4ff23eb8b00

-----Decoded View---------------
Arg [0] : owners (address[]): 0x54ad8c33e6c7df7a6143d962a44be65ae1d4ab36,0x799ce6da8e5a251f5ab057518f57bb7edd25613c,0x48e6818d594a02f8b1e801c824eaa4ff23eb8b00
Arg [1] : required (uint256): 2
Arg [2] : secondsTimeLocked (uint32): 3600

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000e10
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [4] : 00000000000000000000000054ad8c33e6c7df7a6143d962a44be65ae1d4ab36
Arg [5] : 000000000000000000000000799ce6da8e5a251f5ab057518f57bb7edd25613c
Arg [6] : 00000000000000000000000048e6818d594a02f8b1e801c824eaa4ff23eb8b00


Deployed ByteCode Sourcemap

23470:273:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2199:23;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;363:55:1;;;345:74;;333:2;318:18;2199:23:0;;;;;;;;5781:554;;;;;;:::i;:::-;;:::i;:::-;;8901:323;;;;;;:::i;:::-;;:::i;2152:40::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1083:14:1;;1076:22;1058:41;;1046:2;1031:18;2152:40:0;918:187:1;2078:67:0;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;18264:31;;;;;;;;;;;;1543:10:1;1531:23;;;1513:42;;1501:2;1486:18;18264:31:0;1369:192:1;11629:463:0;;;;;;:::i;:::-;;:::i;:::-;;;2130:25:1;;;2118:2;2103:18;11629:463:0;1984:177:1;5325:308:0;;;;;;:::i;:::-;;:::i;10343:431::-;;;;;;:::i;:::-;;:::i;22024:274::-;;;;;;:::i;:::-;;:::i;10969:360::-;;;;;;:::i;:::-;;:::i;2019:52::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;20063:215::-;;;;;;:::i;:::-;;:::i;12202:124::-;;;:::i;:::-;;;;;;;:::i;13617:848::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12537:687::-;;;;;;:::i;:::-;;:::i;2259:31::-;;;;;;7309:238;;;;;;:::i;:::-;;:::i;20505:530::-;;;;;;:::i;:::-;;:::i;7905:322::-;;;;;;:::i;:::-;;:::i;18302:53::-;;;;;;:::i;:::-;;;;;;;;;;;;;;1871:44;;1913:2;1871:44;;2229:23;;;;;;6567:546;;;;;;:::i;:::-;;:::i;21220:645::-;;;;;;:::i;:::-;;:::i;2199:23::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2199:23:0;;-1:-1:-1;2199:23:0;:::o;5781:554::-;2617:10;2639:4;2617:27;2609:36;;;;;;-1:-1:-1;;;;;2971:14:0;::::1;;::::0;;;:7:::1;:14;::::0;;;;;5890:5;;2971:14:::1;;2963:23;;;::::0;::::1;;-1:-1:-1::0;;;;;5913:14:0;::::2;5930:5;5913:14:::0;;;:7:::2;:14;::::0;;;;:22;;-1:-1:-1;;5913:22:0::2;::::0;;5946:194:::2;5970:6;:13:::0;:17:::2;::::0;5986:1:::2;::::0;5970:17:::2;:::i;:::-;5966:1;:21;5946:194;;;6026:5;-1:-1:-1::0;;;;;6013:18:0::2;:6;6020:1;6013:9;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;-1:-1:-1;;;;;6013:9:0::2;:18;6009:120;;;6064:6;6071:13:::0;;:17:::2;::::0;6087:1:::2;::::0;6071:17:::2;:::i;:::-;6064:25;;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;::::2;::::0;6052:6:::2;:9:::0;;-1:-1:-1;;;;;6064:25:0;;::::2;::::0;6059:1;;6052:9;::::2;;;;;:::i;:::-;;;;;;;;;:37;;;;;-1:-1:-1::0;;;;;6052:37:0::2;;;;;-1:-1:-1::0;;;;;6052:37:0::2;;;;;;6108:5;;6009:120;5989:3:::0;::::2;::::0;::::2;:::i;:::-;;;;5946:194;;;;6181:6;:12;;;;;;;:::i;:::-;;::::0;;;::::2;::::0;;;;-1:-1:-1;;6181:12:0;;;;;-1:-1:-1;;6181:12:0::2;::::0;;;;;6219:6:::2;:13:::0;6208:8:::2;::::0;:24:::2;6204:89;;;6267:6;:13:::0;6249:32:::2;::::0;:17:::2;:32::i;:::-;6308:19;::::0;-1:-1:-1;;;;;6308:19:0;::::2;::::0;::::2;::::0;;;::::2;2656:1:::1;5781:554:::0;:::o;8901:323::-;9005:10;2971:14;;;;:7;:14;;;;;;;;2963:23;;;;;;3390:28:::1;::::0;;;:13:::1;:28;::::0;;;;;;;9051:10:::1;3390:35:::0;;;;;;;;;9036:13;;9051:10;3390:35:::1;;3382:44;;;::::0;::::1;;3809:12:::2;:27:::0;;;::::2;::::0;;;;;;:36:::2;;::::0;9084:13;;3809:36:::2;;3808:37;3800:46;;;::::0;::::2;;9158:5:::3;9115:28:::0;;;:13:::3;:28;::::0;;;;;;;9144:10:::3;9115:40:::0;;;;;;;;:48;;-1:-1:-1;;9115:48:0::3;::::0;;9179:37;9129:13;;9179:37:::3;::::0;::::3;3437:1:::2;2997::::1;;8901:323:::0;;:::o;11629:463::-;11760:7;;;11813:249;11837:16;;11833:1;:20;11813:249;;;11897:7;:36;;;;-1:-1:-1;11909:12:0;:15;;;;;;;;;;:24;;;;;11908:25;11897:36;:93;;;;11954:8;:36;;;;-1:-1:-1;11966:12:0;:15;;;;;;;;;;:24;;;;;11954:36;11875:176;;;12025:10;12034:1;12025:10;;:::i;:::-;;;11875:176;11855:3;;;;:::i;:::-;;;;11813:249;;;-1:-1:-1;12079:5:0;11629:463;-1:-1:-1;;;11629:463:0:o;5325:308::-;2617:10;2639:4;2617:27;2609:36;;;;;;-1:-1:-1;;;;;2804:14:0;::::1;;::::0;;;:7:::1;:14;::::0;;;;;5437:5;;2804:14:::1;;2803:15;2795:24;;;::::0;::::1;;5461:5:::0;-1:-1:-1;;;;;3997:24:0;::::2;3989:33;;;::::0;::::2;;5494:6:::3;:13:::0;:17:::3;::::0;5510:1:::3;5494:17;:::i;:::-;5513:8;;1913:2;4226:10;:29;;:69;;;;;4285:10;4272:9;:23;;4226:69;:100;;;;-1:-1:-1::0;4312:14:0;;::::3;4226:100;:132;;;;-1:-1:-1::0;4343:15:0;;::::3;4226:132;4204:165;;;::::0;::::3;;-1:-1:-1::0;;;;;5539:14:0;::::4;;::::0;;;:7:::4;:14;::::0;;;;;:21;;-1:-1:-1;;5539:21:0::4;5556:4;5539:21:::0;;::::4;::::0;;;5571:6:::4;:18:::0;;;;::::4;::::0;;;;;::::4;::::0;;-1:-1:-1;;5571:18:0::4;::::0;::::4;::::0;;5605:20;::::4;::::0;5539:14;5605:20:::4;4033:1:::3;;2830::::2;2656::::1;5325:308:::0;:::o;10343:431::-;10451:4;;;10501:243;10525:6;:13;10521:17;;10501:243;;;10564:28;;;;:13;:28;;;;;10593:6;:9;;10564:28;;;10600:1;;10593:9;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;10593:9:0;10564:39;;;;;;;;;;;;;;;10560:90;;;10624:10;10633:1;10624:10;;:::i;:::-;;;10560:90;10677:8;;10668:5;:17;10664:69;;;-1:-1:-1;10713:4:0;;10343:431;-1:-1:-1;;;10343:431:0:o;10664:69::-;10540:3;;;;:::i;:::-;;;;10501:243;;;-1:-1:-1;10761:5:0;;10343:431;-1:-1:-1;;;10343:431:0:o;22024:274::-;22147:10;2971:14;;;;:7;:14;;;;;;;;2963:23;;;;;;22180:9:::1;22175:116;22199:14;:21;22195:1;:25;22175:116;;;22242:37;22261:14;22276:1;22261:17;;;;;;;;:::i;:::-;;;;;;;22242:18;:37::i;:::-;22222:3:::0;::::1;::::0;::::1;:::i;:::-;;;;22175:116;;;;22024:274:::0;;:::o;10969:360::-;11086:7;;;11139:160;11163:6;:13;11159:17;;11139:160;;;11202:28;;;;:13;:28;;;;;11231:6;:9;;11202:28;;;11238:1;;11231:9;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;11231:9:0;11202:39;;;;;;;;;;;;;;;11198:90;;;11262:10;11271:1;11262:10;;:::i;:::-;;;11198:90;11178:3;;;;:::i;:::-;;;;11139:160;;;-1:-1:-1;11316:5:0;10969:360;-1:-1:-1;;10969:360:0:o;2019:52::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2019:52:0;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2019:52:0;;;;;;;-1:-1:-1;;2019:52:0;;;:::o;20063:215::-;2617:10;2639:4;2617:27;2609:36;;;;;;20182:17:::1;:38:::0;;-1:-1:-1;;20182:38:0::1;;::::0;::::1;::::0;;::::1;::::0;;;20236:34:::1;::::0;1513:42:1;;;20236:34:0::1;::::0;1501:2:1;1486:18;20236:34:0::1;;;;;;;20063:215:::0;:::o;12202:124::-;12271:16;12312:6;12305:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12305:13:0;;;;;;;;;;;;;;;;;;;;;;;12202:124;:::o;13617:848::-;13790:16;13824:35;13876:16;;13862:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13862:31:0;;13824:69;;13904:13;13932:9;13952:289;13968:16;;13964:1;:20;13952:289;;;14028:7;:36;;;;-1:-1:-1;14040:12:0;:15;;;;;;;;;;:24;;;;;14039:25;14028:36;:93;;;;14085:8;:36;;;;-1:-1:-1;14097:12:0;:15;;;;;;;;;;:24;;;;;14085:36;14006:224;;;14184:1;14156:18;14175:5;14156:25;;;;;;;;:::i;:::-;;;;;;;;;;:29;14204:10;14213:1;14204:10;;:::i;:::-;;;14006:224;13986:3;;;;:::i;:::-;;;;13952:289;;;14251:32;14300:9;14305:4;14300:2;:9;:::i;:::-;14286:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14286:24:0;;14251:59;;14330:4;14326:8;;14321:104;14340:2;14336:1;:6;14321:104;;;14392:18;14411:1;14392:21;;;;;;;;:::i;:::-;;;;;;;14364:15;14384:4;14380:1;:8;;;;:::i;:::-;14364:25;;;;;;;;:::i;:::-;;;;;;;;;;:49;14344:3;;;;:::i;:::-;;;;14321:104;;;14442:15;13617:848;-1:-1:-1;;;;;;;;13617:848:0:o;12537:687::-;12735:6;:13;12650:16;;12684:34;;12721:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12721:28:0;;12684:65;;12760:13;12788:9;12808:207;12824:6;:13;12820:17;;12808:207;;;12863:28;;;;:13;:28;;;;;12892:6;:9;;12863:28;;;12899:1;;12892:9;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;12892:9:0;12863:39;;;;;;;;;;;;;;;12859:145;;;12950:6;12957:1;12950:9;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12950:9:0;12923:17;12941:5;12923:24;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12923:36:0;;;:24;;;;;;;;;;;:36;12978:10;12987:1;12978:10;;:::i;:::-;;;12859:145;12839:3;;;;:::i;:::-;;;;12808:207;;;13025:31;13073:5;13059:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;13059:20:0;;13025:54;;13099:1;13095:5;;13090:95;13106:5;13102:1;:9;13090:95;;;13153:17;13171:1;13153:20;;;;;;;;:::i;:::-;;;;;;;13133:14;13148:1;13133:17;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13133:40:0;;;:17;;;;;;;;;;;:40;13113:3;;;;:::i;:::-;;;;13090:95;;;13202:14;12537:687;-1:-1:-1;;;;;12537:687:0:o;7309:238::-;2617:10;2639:4;2617:27;2609:36;;;;;;7433:6:::1;:13:::0;7448:9;1913:2:::1;4226:29:::0;::::1;::::0;::::1;::::0;:69:::1;;;4285:10;4272:9;:23;;4226:69;:100;;;;-1:-1:-1::0;4312:14:0;;::::1;4226:100;:132;;;;-1:-1:-1::0;4343:15:0;;::::1;4226:132;4204:165;;;::::0;::::1;;7475:8:::2;:20:::0;;;7511:28:::2;::::0;2130:25:1;;;7511:28:0::2;::::0;2118:2:1;2103:18;7511:28:0::2;;;;;;;2656:1:::1;;7309:238:::0;:::o;20505:530::-;20644:10;2971:14;;;;:7;:14;;;;;;;;2963:23;;;;;;1962:3:::1;3152:27:::0;;;::::1;::::0;;;;;;:39;20683:13;;-1:-1:-1;;;;;3152:39:0::1;3144:64;;;::::0;::::1;;3612:28:::2;::::0;;;:13:::2;:28;::::0;;;;;;;20735:10:::2;3612:35:::0;;;;;;;;;20720:13;;20735:10;3612:35:::2;;3611:36;3603:45;;;::::0;::::2;;20774:13:::3;18510:26;18522:13;18510:11;:26::i;:::-;18509:27;18487:95;;;::::0;-1:-1:-1;;;18487:95:0;;9239:2:1;18487:95:0::3;::::0;::::3;9221:21:1::0;9278:2;9258:18;;;9251:30;9317:20;9297:18;;;9290:48;9355:18;;18487:95:0::3;;;;;;;;;20805:28:::4;::::0;;;20848:4:::4;20805:28;::::0;;;;;;;20834:10:::4;20805:40:::0;;;;;;;;:47;;-1:-1:-1;;20805:47:0::4;::::0;;::::4;::::0;;;20868:39;;20819:13;;20868:39:::4;::::0;::::4;20922:26;20934:13;20922:11;:26::i;:::-;20918:110;;;20965:51;20985:13;21000:15;20965:19;:51::i;:::-;3659:1:::3;3219::::2;;2997::::1;20505:530:::0;;:::o;7905:322::-;8055:7;8080:21;8104:40;8119:11;8132:5;8139:4;8104:14;:40::i;:::-;8080:64;;8155:33;8174:13;8155:18;:33::i;:::-;8206:13;7905:322;-1:-1:-1;;;;7905:322:0:o;6567:546::-;2617:10;2639:4;2617:27;2609:36;;;;;;-1:-1:-1;;;;;2971:14:0;::::1;;::::0;;;:7:::1;:14;::::0;;;;;6704:5;;2971:14:::1;;2963:23;;;::::0;::::1;;-1:-1:-1::0;;;;;2804:14:0;::::2;;::::0;;;:7:::2;:14;::::0;;;;;6738:8;;2804:14:::2;;2803:15;2795:24;;;::::0;::::2;;6765:8:::0;-1:-1:-1;;;;;3997:24:0;::::3;3989:33;;;::::0;::::3;;6796:9:::4;6791:173;6815:6;:13:::0;6811:17;::::4;6791:173;;;6867:5;-1:-1:-1::0;;;;;6854:18:0::4;:6;6861:1;6854:9;;;;;;;;:::i;:::-;;::::0;;;::::4;::::0;;;::::4;::::0;-1:-1:-1;;;;;6854:9:0::4;:18;6850:103;;;6905:8;6893:6;6900:1;6893:9;;;;;;;;:::i;:::-;;;;;;;;;:20;;;;;-1:-1:-1::0;;;;;6893:20:0::4;;;;;-1:-1:-1::0;;;;;6893:20:0::4;;;;;;6932:5;;6850:103;6830:3:::0;::::4;::::0;::::4;:::i;:::-;;;;6791:173;;;-1:-1:-1::0;;;;;;6974:14:0;;::::4;6991:5;6974:14:::0;;;:7:::4;:14;::::0;;;;;:22;;-1:-1:-1;;6974:22:0;;::::4;::::0;;;7007:17;;::::4;::::0;;;;;:24;;;;::::4;6974:22:::0;7007:24:::4;::::0;;;7047:19;;6974:14;;7047:19:::4;::::0;::::4;7082:23;::::0;-1:-1:-1;;;;;7082:23:0;::::4;::::0;::::4;::::0;;;::::4;2830:1:::3;2997::::2;2656::::1;6567:546:::0;;:::o;21220:645::-;21359:10;2971:14;;;;:7;:14;;;;;;;;2963:23;;;;;;3809:12:::1;:27:::0;;;::::1;::::0;;;;;;:36:::1;;::::0;21392:13;;3809:36:::1;;3808:37;3800:46;;;::::0;::::1;;21431:13:::2;18706:26;18718:13;18706:11;:26::i;:::-;18684:98;;;::::0;-1:-1:-1;;;18684:98:0;;9586:2:1;18684:98:0::2;::::0;::::2;9568:21:1::0;9625:2;9605:18;;;9598:30;9664:24;9644:18;;;9637:52;9706:18;;18684:98:0::2;9384:346:1::0;18684:98:0::2;18958:17:::3;::::0;::::3;18923:32:::0;;;:17:::3;:32;::::0;;;;;21468:13;;18923:52:::3;::::0;18958:17:::3;::::0;;::::3;::::0;18923:52:::3;:::i;:::-;18904:15;:71;;18882:141;;;::::0;-1:-1:-1;;;18882:141:0;;9937:2:1;18882:141:0::3;::::0;::::3;9919:21:1::0;9976:2;9956:18;;;9949:30;10015:22;9995:18;;;9988:50;10055:18;;18882:141:0::3;9735:344:1::0;18882:141:0::3;21499:23:::4;21525:27:::0;;;::::4;::::0;;;;;;21563:12:::4;::::0;::::4;:19:::0;;-1:-1:-1;;21563:19:0::4;21578:4;21563:19:::0;;::::4;::::0;;;21635:15;;21665:9;;::::4;::::0;21689:8:::4;::::0;::::4;:15:::0;;21525:27;;21499:23;21608:130:::4;::::0;-1:-1:-1;;;;;21635:15:0::4;::::0;21665:9;21689:8;:15:::4;::::0;::::4;:::i;:::-;;;21719:3;:8;;21608:130;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:12;:130::i;:::-;21593:145;;21771:7;21749:68;;;::::0;-1:-1:-1;;;21749:68:0;;10286:2:1;21749:68:0::4;::::0;::::4;10268:21:1::0;10325:2;10305:18;;;10298:30;10364:13;10344:18;;;10337:41;10395:18;;21749:68:0::4;10084:335:1::0;21749:68:0::4;21833:24;::::0;21843:13;;21833:24:::4;::::0;;;::::4;21488:377;;18793:1:::3;3857::::2;2997::::1;21220:645:::0;;:::o;22434:264::-;22571:32;;;;:17;:32;;;;;;;:51;;;22638:52;22589:13;;22638:52;;;;22606:16;2130:25:1;;2118:2;2103:18;;1984:177;22638:52:0;;;;;;;;22434:264;;:::o;16307:542::-;16486:7;16455:11;-1:-1:-1;;;;;3997:24:0;;3989:33;;;;;;16535:16:::1;::::0;16592:145:::1;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;16592:145:0;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;-1:-1:-1;16592:145:0;;;;;;16562:27;;;;;;;;;;:175;;;;-1:-1:-1;;16562:175:0::1;::::0;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;16562:175:0;::::1;::::0;;;;;16592:145;;16562:27;;:175:::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;16562:175:0::1;::::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;-1:-1:-1;;16562:175:0::1;::::0;::::1;;::::0;;;::::1;::::0;;16748:16:::1;:21:::0;;-1:-1:-1;;16748:16:0;-1:-1:-1;;16748:21:0::1;::::0;-1:-1:-1;;16748:21:0::1;:::i;:::-;::::0;;;-1:-1:-1;;16785:25:0::1;::::0;16796:13;;16785:25:::1;::::0;;;::::1;16828:13:::0;16307:542;-1:-1:-1;;;;;16307:542:0:o;14699:1269::-;14875:4;14897:11;15026:4;15020:11;15160:2;15154:4;15150:13;15837:1;15817;15708:10;15688:1;15664:5;15634:11;15286:5;15279;15275:17;15252:674;15242:684;14699:1269;-1:-1:-1;;;;;;;;14699:1269:0:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:180:1;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;430:196::-;498:20;;-1:-1:-1;;;;;547:54:1;;537:65;;527:93;;616:1;613;606:12;527:93;430:196;;;:::o;631:186::-;690:6;743:2;731:9;722:7;718:23;714:32;711:52;;;759:1;756;749:12;711:52;782:29;801:9;782:29;:::i;:::-;772:39;631:186;-1:-1:-1;;;631:186:1:o;1110:254::-;1178:6;1186;1239:2;1227:9;1218:7;1214:23;1210:32;1207:52;;;1255:1;1252;1245:12;1207:52;1291:9;1278:23;1268:33;;1320:38;1354:2;1343:9;1339:18;1320:38;:::i;:::-;1310:48;;1110:254;;;;;:::o;1566:160::-;1631:20;;1687:13;;1680:21;1670:32;;1660:60;;1716:1;1713;1706:12;1731:248;1793:6;1801;1854:2;1842:9;1833:7;1829:23;1825:32;1822:52;;;1870:1;1867;1860:12;1822:52;1893:26;1909:9;1893:26;:::i;:::-;1883:36;;1938:35;1969:2;1958:9;1954:18;1938:35;:::i;2166:184::-;-1:-1:-1;;;2215:1:1;2208:88;2315:4;2312:1;2305:15;2339:4;2336:1;2329:15;2355:275;2426:2;2420:9;2491:2;2472:13;;-1:-1:-1;;2468:27:1;2456:40;;2526:18;2511:34;;2547:22;;;2508:62;2505:88;;;2573:18;;:::i;:::-;2609:2;2602:22;2355:275;;-1:-1:-1;2355:275:1:o;2635:946::-;2719:6;2750:2;2793;2781:9;2772:7;2768:23;2764:32;2761:52;;;2809:1;2806;2799:12;2761:52;2849:9;2836:23;2878:18;2919:2;2911:6;2908:14;2905:34;;;2935:1;2932;2925:12;2905:34;2973:6;2962:9;2958:22;2948:32;;3018:7;3011:4;3007:2;3003:13;2999:27;2989:55;;3040:1;3037;3030:12;2989:55;3076:2;3063:16;3098:2;3094;3091:10;3088:36;;;3104:18;;:::i;:::-;3150:2;3147:1;3143:10;3133:20;;3173:28;3197:2;3193;3189:11;3173:28;:::i;:::-;3235:15;;;3305:11;;;3301:20;;;3266:12;;;;3333:19;;;3330:39;;;3365:1;3362;3355:12;3330:39;3389:11;;;;3409:142;3425:6;3420:3;3417:15;3409:142;;;3491:17;;3479:30;;3442:12;;;;3529;;;;3409:142;;3586:865;-1:-1:-1;;;;;3815:6:1;3811:55;3800:9;3793:74;3774:4;3886:2;3924:6;3919:2;3908:9;3904:18;3897:34;3967:3;3962:2;3951:9;3947:18;3940:31;4000:6;3994:13;4044:6;4038:3;4027:9;4023:19;4016:35;4069:1;4079:141;4093:6;4090:1;4087:13;4079:141;;;4189:14;;;4185:23;;4179:30;4154:17;;;4173:3;4150:27;4143:67;4108:10;;4079:141;;;4238:6;4235:1;4232:13;4229:92;;;4309:1;4303:3;4294:6;4283:9;4279:22;4275:32;4268:43;4229:92;-1:-1:-1;4382:2:1;4361:15;-1:-1:-1;;4357:29:1;4342:45;;4389:3;4338:55;;-1:-1:-1;4402:43:1;;-1:-1:-1;4441:2:1;4426:18;;4418:6;892:13;885:21;873:34;;822:91;4456:276;4514:6;4567:2;4555:9;4546:7;4542:23;4538:32;4535:52;;;4583:1;4580;4573:12;4535:52;4622:9;4609:23;4672:10;4665:5;4661:22;4654:5;4651:33;4641:61;;4698:1;4695;4688:12;4737:681;4908:2;4960:21;;;5030:13;;4933:18;;;5052:22;;;4879:4;;4908:2;5131:15;;;;5105:2;5090:18;;;4879:4;5174:218;5188:6;5185:1;5182:13;5174:218;;;5253:13;;-1:-1:-1;;;;;5249:62:1;5237:75;;5367:15;;;;5332:12;;;;5210:1;5203:9;5174:218;;;-1:-1:-1;5409:3:1;;4737:681;-1:-1:-1;;;;;;4737:681:1:o;5423:385::-;5503:6;5511;5519;5527;5580:3;5568:9;5559:7;5555:23;5551:33;5548:53;;;5597:1;5594;5587:12;5548:53;5633:9;5620:23;5610:33;;5690:2;5679:9;5675:18;5662:32;5652:42;;5713:35;5744:2;5733:9;5729:18;5713:35;:::i;:::-;5703:45;;5767:35;5798:2;5787:9;5783:18;5767:35;:::i;:::-;5757:45;;5423:385;;;;;;;:::o;5813:632::-;5984:2;6036:21;;;6106:13;;6009:18;;;6128:22;;;5955:4;;5984:2;6207:15;;;;6181:2;6166:18;;;5955:4;6250:169;6264:6;6261:1;6258:13;6250:169;;;6325:13;;6313:26;;6394:15;;;;6359:12;;;;6286:1;6279:9;6250:169;;6450:905;6536:6;6544;6552;6605:2;6593:9;6584:7;6580:23;6576:32;6573:52;;;6621:1;6618;6611:12;6573:52;6644:29;6663:9;6644:29;:::i;:::-;6634:39;;6692:2;6741;6730:9;6726:18;6713:32;6703:42;;6796:2;6785:9;6781:18;6768:32;6819:18;6860:2;6852:6;6849:14;6846:34;;;6876:1;6873;6866:12;6846:34;6914:6;6903:9;6899:22;6889:32;;6959:7;6952:4;6948:2;6944:13;6940:27;6930:55;;6981:1;6978;6971:12;6930:55;7017:2;7004:16;7039:2;7035;7032:10;7029:36;;;7045:18;;:::i;:::-;7087:53;7130:2;7111:13;;-1:-1:-1;;7107:27:1;7103:36;;7087:53;:::i;:::-;7074:66;;7163:2;7156:5;7149:17;7203:7;7198:2;7193;7189;7185:11;7181:20;7178:33;7175:53;;;7224:1;7221;7214:12;7175:53;7279:2;7274;7270;7266:11;7261:2;7254:5;7250:14;7237:45;7323:1;7318:2;7313;7306:5;7302:14;7298:23;7291:34;;7344:5;7334:15;;;;;6450:905;;;;;:::o;7360:260::-;7428:6;7436;7489:2;7477:9;7468:7;7464:23;7460:32;7457:52;;;7505:1;7502;7495:12;7457:52;7528:29;7547:9;7528:29;:::i;:::-;7518:39;;7576:38;7610:2;7599:9;7595:18;7576:38;:::i;7625:184::-;-1:-1:-1;;;7674:1:1;7667:88;7774:4;7771:1;7764:15;7798:4;7795:1;7788:15;7814:125;7854:4;7882:1;7879;7876:8;7873:34;;;7887:18;;:::i;:::-;-1:-1:-1;7924:9:1;;7814:125::o;7944:184::-;-1:-1:-1;;;7993:1:1;7986:88;8093:4;8090:1;8083:15;8117:4;8114:1;8107:15;8133:135;8172:3;-1:-1:-1;;8193:17:1;;8190:43;;;8213:18;;:::i;:::-;-1:-1:-1;8260:1:1;8249:13;;8133:135::o;8273:184::-;-1:-1:-1;;;8322:1:1;8315:88;8422:4;8419:1;8412:15;8446:4;8443:1;8436:15;8462:128;8502:3;8533:1;8529:6;8526:1;8523:13;8520:39;;;8539:18;;:::i;:::-;-1:-1:-1;8575:9:1;;8462:128::o;8595:437::-;8674:1;8670:12;;;;8717;;;8738:61;;8792:4;8784:6;8780:17;8770:27;;8738:61;8845:2;8837:6;8834:14;8814:18;8811:38;8808:218;;;-1:-1:-1;;;8879:1:1;8872:88;8983:4;8980:1;8973:15;9011:4;9008:1;9001:15;8808:218;;8595:437;;;:::o

Swarm Source

ipfs://71b7d85332a14d46b30c02b1dda26ba764050aec220ade675b7b130efbafa901
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
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.