My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Latest 1 internal transaction
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0x846187ab7ad24e3b556d1c1bd0a5687e21d8e27ec43adb4ea9b900f1d42e3d05 | 6832989 | 186 days 12 hrs ago | 0xf30d72705962ff7b3722164aaa9776f6b7314387 | Contract Creation | 0 AVAX |
[ Download CSV Export ]
Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0xA4cB6e1971Ed8A1F76d9e8d50A5FC56DFA5cc1e6
Contract Name:
MultiSigWalletWithDailyLimit
Compiler Version
v0.4.26+commit.4563c3fc
Contract Source Code (Solidity)
/** *Submitted for verification at snowtrace.io on 2021-11-02 */ // File: contracts/MultiSigWallet.sol pragma solidity ^0.4.15; /// @title Multisignature wallet - Allows multiple parties to agree on transactions before execution. /// @author Stefan George - <[email protected]> contract MultiSigWallet { /* * Events */ event Confirmation(address indexed sender, uint indexed transactionId); event Revocation(address indexed sender, uint indexed transactionId); event Submission(uint indexed transactionId); event Execution(uint indexed transactionId); event ExecutionFailure(uint indexed transactionId); event Deposit(address indexed sender, uint value); event OwnerAddition(address indexed owner); event OwnerRemoval(address indexed owner); event RequirementChange(uint required); /* * Constants */ uint constant public MAX_OWNER_COUNT = 50; /* * Storage */ mapping (uint => Transaction) public transactions; mapping (uint => mapping (address => bool)) public confirmations; mapping (address => bool) public isOwner; address[] public owners; uint public required; uint public transactionCount; struct Transaction { address destination; uint value; bytes data; bool executed; } /* * Modifiers */ modifier onlyWallet() { require(msg.sender == address(this)); _; } modifier ownerDoesNotExist(address owner) { require(!isOwner[owner]); _; } modifier ownerExists(address owner) { require(isOwner[owner]); _; } modifier transactionExists(uint transactionId) { require(transactions[transactionId].destination != 0); _; } modifier confirmed(uint transactionId, address owner) { require(confirmations[transactionId][owner]); _; } modifier notConfirmed(uint transactionId, address owner) { require(!confirmations[transactionId][owner]); _; } modifier notExecuted(uint transactionId) { require(!transactions[transactionId].executed); _; } modifier notNull(address _address) { require(_address != 0); _; } modifier validRequirement(uint ownerCount, uint _required) { require(ownerCount <= MAX_OWNER_COUNT && _required <= ownerCount && _required != 0 && ownerCount != 0); _; } /// @dev Fallback function allows to deposit ether. function() payable { if (msg.value > 0) Deposit(msg.sender, msg.value); } /* * Public functions */ /// @dev Contract constructor sets initial owners and required number of confirmations. /// @param _owners List of initial owners. /// @param _required Number of required confirmations. function MultiSigWallet(address[] _owners, uint _required) public validRequirement(_owners.length, _required) { for (uint i=0; i<_owners.length; i++) { require(!isOwner[_owners[i]] && _owners[i] != 0); isOwner[_owners[i]] = true; } owners = _owners; required = _required; } /// @dev Allows to add a new owner. Transaction has to be sent by wallet. /// @param owner Address of new owner. function addOwner(address owner) public onlyWallet ownerDoesNotExist(owner) notNull(owner) validRequirement(owners.length + 1, required) { isOwner[owner] = true; owners.push(owner); OwnerAddition(owner); } /// @dev Allows to remove an owner. Transaction has to be sent by wallet. /// @param owner Address of owner. function removeOwner(address owner) public onlyWallet ownerExists(owner) { isOwner[owner] = false; for (uint i=0; i<owners.length - 1; i++) if (owners[i] == owner) { owners[i] = owners[owners.length - 1]; break; } owners.length -= 1; if (required > owners.length) changeRequirement(owners.length); 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 newOwner Address of new owner. function replaceOwner(address owner, address newOwner) public onlyWallet ownerExists(owner) ownerDoesNotExist(newOwner) { for (uint i=0; i<owners.length; i++) if (owners[i] == owner) { owners[i] = newOwner; break; } isOwner[owner] = false; isOwner[newOwner] = true; OwnerRemoval(owner); OwnerAddition(newOwner); } /// @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet. /// @param _required Number of required confirmations. function changeRequirement(uint _required) public onlyWallet validRequirement(owners.length, _required) { required = _required; RequirementChange(_required); } /// @dev Allows an owner to submit and confirm a transaction. /// @param destination Transaction target address. /// @param value Transaction ether value. /// @param data Transaction data payload. /// @return Returns transaction ID. function submitTransaction(address destination, uint value, bytes data) public returns (uint transactionId) { transactionId = addTransaction(destination, value, data); confirmTransaction(transactionId); } /// @dev Allows an owner to confirm a transaction. /// @param transactionId Transaction ID. function confirmTransaction(uint transactionId) public ownerExists(msg.sender) transactionExists(transactionId) notConfirmed(transactionId, msg.sender) { confirmations[transactionId][msg.sender] = true; Confirmation(msg.sender, transactionId); executeTransaction(transactionId); } /// @dev Allows an owner to revoke a confirmation for a transaction. /// @param transactionId Transaction ID. function revokeConfirmation(uint transactionId) public ownerExists(msg.sender) confirmed(transactionId, msg.sender) notExecuted(transactionId) { confirmations[transactionId][msg.sender] = false; Revocation(msg.sender, transactionId); } /// @dev Allows anyone to execute a confirmed transaction. /// @param transactionId Transaction ID. function executeTransaction(uint transactionId) public ownerExists(msg.sender) confirmed(transactionId, msg.sender) notExecuted(transactionId) { if (isConfirmed(transactionId)) { Transaction storage txn = transactions[transactionId]; txn.executed = true; if (external_call(txn.destination, txn.value, txn.data.length, txn.data)) Execution(transactionId); else { ExecutionFailure(transactionId); txn.executed = false; } } } // 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 external_call(address destination, uint value, uint dataLength, bytes data) internal returns (bool) { bool result; 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; } /// @dev Returns the confirmation status of a transaction. /// @param transactionId Transaction ID. /// @return Confirmation status. function isConfirmed(uint transactionId) public constant returns (bool) { uint count = 0; for (uint i=0; i<owners.length; i++) { if (confirmations[transactionId][owners[i]]) count += 1; if (count == required) return true; } } /* * Internal functions */ /// @dev Adds a new transaction to the transaction mapping, if transaction does not exist yet. /// @param destination Transaction target address. /// @param value Transaction ether value. /// @param data Transaction data payload. /// @return Returns transaction ID. function addTransaction(address destination, uint value, bytes data) internal notNull(destination) returns (uint transactionId) { transactionId = transactionCount; transactions[transactionId] = Transaction({ destination: destination, value: value, data: data, executed: false }); transactionCount += 1; Submission(transactionId); } /* * Web3 call functions */ /// @dev Returns number of confirmations of a transaction. /// @param transactionId Transaction ID. /// @return Number of confirmations. function getConfirmationCount(uint transactionId) public constant returns (uint count) { for (uint i=0; i<owners.length; i++) if (confirmations[transactionId][owners[i]]) count += 1; } /// @dev Returns total number of transactions after filers are applied. /// @param pending Include pending transactions. /// @param executed Include executed transactions. /// @return Total number of transactions after filters are applied. function getTransactionCount(bool pending, bool executed) public constant returns (uint count) { for (uint i=0; i<transactionCount; i++) if ( pending && !transactions[i].executed || executed && transactions[i].executed) count += 1; } /// @dev Returns list of owners. /// @return List of owner addresses. function getOwners() public constant returns (address[]) { return owners; } /// @dev Returns array with owner addresses, which confirmed transaction. /// @param transactionId Transaction ID. /// @return Returns array of owner addresses. function getConfirmations(uint transactionId) public constant returns (address[] _confirmations) { address[] memory confirmationsTemp = new address[](owners.length); uint count = 0; uint i; for (i=0; i<owners.length; i++) if (confirmations[transactionId][owners[i]]) { confirmationsTemp[count] = owners[i]; count += 1; } _confirmations = new address[](count); for (i=0; i<count; i++) _confirmations[i] = confirmationsTemp[i]; } /// @dev Returns list of transaction IDs in defined range. /// @param from Index start position of transaction array. /// @param to Index end position of transaction array. /// @param pending Include pending transactions. /// @param executed Include executed transactions. /// @return Returns array of transaction IDs. function getTransactionIds(uint from, uint to, bool pending, bool executed) public constant returns (uint[] _transactionIds) { uint[] memory transactionIdsTemp = new uint[](transactionCount); uint count = 0; uint i; for (i=0; i<transactionCount; i++) if ( pending && !transactions[i].executed || executed && transactions[i].executed) { transactionIdsTemp[count] = i; count += 1; } _transactionIds = new uint[](to - from); for (i=from; i<to; i++) _transactionIds[i - from] = transactionIdsTemp[i]; } } // File: contracts/MultiSigWalletWithDailyLimit.sol pragma solidity ^0.4.15; /// @title Multisignature wallet with daily limit - Allows an owner to withdraw a daily limit without multisig. /// @author Stefan George - <[email protected]> contract MultiSigWalletWithDailyLimit is MultiSigWallet { /* * Events */ event DailyLimitChange(uint dailyLimit); /* * Storage */ uint public dailyLimit; uint public lastDay; uint public spentToday; /* * Public functions */ /// @dev Contract constructor sets initial owners, required number of confirmations and daily withdraw limit. /// @param _owners List of initial owners. /// @param _required Number of required confirmations. /// @param _dailyLimit Amount in wei, which can be withdrawn without confirmations on a daily basis. function MultiSigWalletWithDailyLimit(address[] _owners, uint _required, uint _dailyLimit) public MultiSigWallet(_owners, _required) { dailyLimit = _dailyLimit; } /// @dev Allows to change the daily limit. Transaction has to be sent by wallet. /// @param _dailyLimit Amount in wei. function changeDailyLimit(uint _dailyLimit) public onlyWallet { dailyLimit = _dailyLimit; DailyLimitChange(_dailyLimit); } /// @dev Allows anyone to execute a confirmed transaction or ether withdraws until daily limit is reached. /// @param transactionId Transaction ID. function executeTransaction(uint transactionId) public ownerExists(msg.sender) confirmed(transactionId, msg.sender) notExecuted(transactionId) { Transaction storage txn = transactions[transactionId]; bool _confirmed = isConfirmed(transactionId); if (_confirmed || txn.data.length == 0 && isUnderLimit(txn.value)) { txn.executed = true; if (!_confirmed) spentToday += txn.value; if (external_call(txn.destination, txn.value, txn.data.length, txn.data)) Execution(transactionId); else { ExecutionFailure(transactionId); txn.executed = false; if (!_confirmed) spentToday -= txn.value; } } } /* * Internal functions */ /// @dev Returns if amount is within daily limit and resets spentToday after one day. /// @param amount Amount to withdraw. /// @return Returns if amount is under daily limit. function isUnderLimit(uint amount) internal returns (bool) { if (now > lastDay + 24 hours) { lastDay = now; spentToday = 0; } if (spentToday + amount > dailyLimit || spentToday + amount < spentToday) return false; return true; } /* * Web3 call functions */ /// @dev Returns maximum withdraw amount. /// @return Returns amount. function calcMaxWithdraw() public constant returns (uint) { if (now > lastDay + 24 hours) return dailyLimit; if (dailyLimit < spentToday) return 0; return dailyLimit - spentToday; } }
[{"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":"calcMaxWithdraw","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"dailyLimit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastDay","outputs":[{"name":"","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":"transactionId","type":"uint256"}],"name":"isConfirmed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmationCount","outputs":[{"name":"count","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"transactions","outputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"},{"name":"executed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwners","outputs":[{"name":"","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"from","type":"uint256"},{"name":"to","type":"uint256"},{"name":"pending","type":"bool"},{"name":"executed","type":"bool"}],"name":"getTransactionIds","outputs":[{"name":"_transactionIds","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"getConfirmations","outputs":[{"name":"_confirmations","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"transactionCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_required","type":"uint256"}],"name":"changeRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"transactionId","type":"uint256"}],"name":"confirmTransaction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"value","type":"uint256"},{"name":"data","type":"bytes"}],"name":"submitTransaction","outputs":[{"name":"transactionId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_dailyLimit","type":"uint256"}],"name":"changeDailyLimit","outputs":[],"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"},{"constant":true,"inputs":[],"name":"spentToday","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owners","type":"address[]"},{"name":"_required","type":"uint256"},{"name":"_dailyLimit","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"dailyLimit","type":"uint256"}],"name":"DailyLimitChange","type":"event"},{"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"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040516200277f3803806200277f8339810180604052810190808051820192919060200180519060200190929190805190602001909291905050508282600082518260328211158015620000665750818111155b801562000074575060008114155b801562000082575060008214155b15156200008e57600080fd5b600092505b8451831015620001c957600260008685815181101515620000b057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156200013f5750600085848151811015156200011c57fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1614155b15156200014b57600080fd5b60016002600087868151811015156200016057fe5b9060200190602002015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828060010193505062000093565b8460039080519060200190620001e1929190620001fe565b5083600481905550505050505080600681905550505050620002d3565b8280548282559060005260206000209081019282156200027a579160200282015b82811115620002795782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550916020019190600101906200021f565b5b5090506200028991906200028d565b5090565b620002d091905b80821115620002cc57600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690555060010162000294565b5090565b90565b61249c80620002e36000396000f300608060405260043610610154576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063025e7c27146101ae578063173825d91461021b57806320ea8d861461025e5780632f54bf6e1461028b5780633411c81c146102e65780634bc9fdc21461034b578063547415251461037657806367eeba0c146103c55780636b0c932d146103f05780637065cb481461041b578063784547a71461045e5780638b51d13f146104a35780639ace38c2146104e4578063a0e67e2b146105cf578063a8abe69a1461063b578063b5dc40c3146106df578063b77bf60014610761578063ba51a6df1461078c578063c01a8c84146107b9578063c6427474146107e6578063cea086211461088d578063d74f8edd146108ba578063dc8452cd146108e5578063e20056e614610910578063ee22610b14610973578063f059cf2b146109a0575b60003411156101ac573373ffffffffffffffffffffffffffffffffffffffff167fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c346040518082815260200191505060405180910390a25b005b3480156101ba57600080fd5b506101d9600480360381019080803590602001909291905050506109cb565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561022757600080fd5b5061025c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a09565b005b34801561026a57600080fd5b5061028960048036038101908080359060200190929190505050610ca2565b005b34801561029757600080fd5b506102cc600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e4a565b604051808215151515815260200191505060405180910390f35b3480156102f257600080fd5b5061033160048036038101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e6a565b604051808215151515815260200191505060405180910390f35b34801561035757600080fd5b50610360610e99565b6040518082815260200191505060405180910390f35b34801561038257600080fd5b506103af600480360381019080803515159060200190929190803515159060200190929190505050610ed6565b6040518082815260200191505060405180910390f35b3480156103d157600080fd5b506103da610f68565b6040518082815260200191505060405180910390f35b3480156103fc57600080fd5b50610405610f6e565b6040518082815260200191505060405180910390f35b34801561042757600080fd5b5061045c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f74565b005b34801561046a57600080fd5b5061048960048036038101908080359060200190929190505050611179565b604051808215151515815260200191505060405180910390f35b3480156104af57600080fd5b506104ce6004803603810190808035906020019092919050505061125e565b6040518082815260200191505060405180910390f35b3480156104f057600080fd5b5061050f60048036038101908080359060200190929190505050611329565b604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018060200183151515158152602001828103825284818151815260200191508051906020019080838360005b83811015610591578082015181840152602081019050610576565b50505050905090810190601f1680156105be5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b3480156105db57600080fd5b506105e461141e565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561062757808201518184015260208101905061060c565b505050509050019250505060405180910390f35b34801561064757600080fd5b5061068860048036038101908080359060200190929190803590602001909291908035151590602001909291908035151590602001909291905050506114ac565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106cb5780820151818401526020810190506106b0565b505050509050019250505060405180910390f35b3480156106eb57600080fd5b5061070a6004803603810190808035906020019092919050505061161d565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b8381101561074d578082015181840152602081019050610732565b505050509050019250505060405180910390f35b34801561076d57600080fd5b5061077661185a565b6040518082815260200191505060405180910390f35b34801561079857600080fd5b506107b760048036038101908080359060200190929190505050611860565b005b3480156107c557600080fd5b506107e46004803603810190808035906020019092919050505061191a565b005b3480156107f257600080fd5b50610877600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611af7565b6040518082815260200191505060405180910390f35b34801561089957600080fd5b506108b860048036038101908080359060200190929190505050611b16565b005b3480156108c657600080fd5b506108cf611b91565b6040518082815260200191505060405180910390f35b3480156108f157600080fd5b506108fa611b96565b6040518082815260200191505060405180910390f35b34801561091c57600080fd5b50610971600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b9c565b005b34801561097f57600080fd5b5061099e60048036038101908080359060200190929190505050611eb1565b005b3480156109ac57600080fd5b506109b56121ce565b6040518082815260200191505060405180910390f35b6003818154811015156109da57fe5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610a4557600080fd5b81600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610a9e57600080fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600091505b600160038054905003821015610c23578273ffffffffffffffffffffffffffffffffffffffff16600383815481101515610b3157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610c16576003600160038054905003815481101515610b8f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600383815481101515610bc957fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c23565b8180600101925050610afb565b6001600381818054905003915081610c3b919061239f565b506003805490506004541115610c5a57610c59600380549050611860565b5b8273ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a2505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610cfb57600080fd5b81336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515610d6657600080fd5b8360008082815260200190815260200160002060030160009054906101000a900460ff16151515610d9657600080fd5b60006001600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e960405160405180910390a35050505050565b60026020528060005260406000206000915054906101000a900460ff1681565b60016020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b60006201518060075401421115610eb4576006549050610ed3565b6008546006541015610ec95760009050610ed3565b6008546006540390505b90565b600080600090505b600554811015610f6157838015610f15575060008082815260200190815260200160002060030160009054906101000a900460ff16155b80610f485750828015610f47575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b15610f54576001820191505b8080600101915050610ede565b5092915050565b60065481565b60075481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610fae57600080fd5b80600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151561100857600080fd5b8160008173ffffffffffffffffffffffffffffffffffffffff161415151561102f57600080fd5b6001600380549050016004546032821115801561104c5750818111155b8015611059575060008114155b8015611066575060008214155b151561107157600080fd5b6001600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060038590806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550508473ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25050505050565b6000806000809150600090505b600380549050811015611256576001600085815260200190815260200160002060006003838154811015156111b757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611236576001820191505b6004548214156112495760019250611257565b8080600101915050611186565b5b5050919050565b600080600090505b6003805490508110156113235760016000848152602001908152602001600020600060038381548110151561129757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611316576001820191505b8080600101915050611266565b50919050565b60006020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001015490806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114015780601f106113d657610100808354040283529160200191611401565b820191906000526020600020905b8154815290600101906020018083116113e457829003601f168201915b5050505050908060030160009054906101000a900460ff16905084565b606060038054806020026020016040519081016040528092919081815260200182805480156114a257602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611458575b5050505050905090565b6060806000806005546040519080825280602002602001820160405280156114e35781602001602082028038833980820191505090505b50925060009150600090505b60055481101561158f57858015611526575060008082815260200190815260200160002060030160009054906101000a900460ff16155b806115595750848015611558575060008082815260200190815260200160002060030160009054906101000a900460ff165b5b156115825780838381518110151561156d57fe5b90602001906020020181815250506001820191505b80806001019150506114ef565b8787036040519080825280602002602001820160405280156115c05781602001602082028038833980820191505090505b5093508790505b868110156116125782818151811015156115dd57fe5b90602001906020020151848983038151811015156115f757fe5b906020019060200201818152505080806001019150506115c7565b505050949350505050565b6060806000806003805490506040519080825280602002602001820160405280156116575781602001602082028038833980820191505090505b50925060009150600090505b6003805490508110156117a45760016000868152602001908152602001600020600060038381548110151561169457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156117975760038181548110151561171b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838381518110151561175457fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001820191505b8080600101915050611663565b816040519080825280602002602001820160405280156117d35781602001602082028038833980820191505090505b509350600090505b818110156118525782818151811015156117f157fe5b90602001906020020151848281518110151561180957fe5b9060200190602002019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080806001019150506117db565b505050919050565b60055481565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561189a57600080fd5b60038054905081603282111580156118b25750818111155b80156118bf575060008114155b80156118cc575060008214155b15156118d757600080fd5b826004819055507fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a836040518082815260200191505060405180910390a1505050565b33600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151561197357600080fd5b81600080600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515156119cf57600080fd5b82336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611a3b57600080fd5b600180600087815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550843373ffffffffffffffffffffffffffffffffffffffff167f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef60405160405180910390a3611af085611eb1565b5050505050565b6000611b048484846121d4565b9050611b0f8161191a565b9392505050565b3073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b5057600080fd5b806006819055507fc71bdc6afaf9b1aa90a7078191d4fc1adf3bf680fca3183697df6b0dc226bca2816040518082815260200191505060405180910390a150565b603281565b60045481565b60003073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bd857600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611c3157600080fd5b82600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151515611c8b57600080fd5b600092505b600380549050831015611d74578473ffffffffffffffffffffffffffffffffffffffff16600384815481101515611cc357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d675783600384815481101515611d1a57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611d74565b8280600101935050611c90565b6000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508473ffffffffffffffffffffffffffffffffffffffff167f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9060405160405180910390a28373ffffffffffffffffffffffffffffffffffffffff167ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d60405160405180910390a25050505050565b60008033600260008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611f0d57600080fd5b83336001600083815260200190815260200160002060008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515611f7857600080fd5b8560008082815260200190815260200160002060030160009054906101000a900460ff16151515611fa857600080fd5b6000808881526020019081526020016000209550611fc587611179565b945084806120005750600086600201805460018160011615610100020316600290049050148015611fff5750611ffe8660010154612326565b5b5b156121c55760018660030160006101000a81548160ff02191690831515021790555084151561203e5785600101546008600082825401925050819055505b6121268660000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876001015488600201805460018160011615610100020316600290049050896002018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561211c5780601f106120f15761010080835404028352916020019161211c565b820191906000526020600020905b8154815290600101906020018083116120ff57829003601f168201915b5050505050612378565b1561215d57867f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7560405160405180910390a26121c4565b867f526441bb6c1aba3c9a4a6ca1d6545da9c2333c8c48343ef398eb858d72b7923660405160405180910390a260008660030160006101000a81548160ff0219169083151502179055508415156121c35785600101546008600082825403925050819055505b5b5b50505050505050565b60085481565b60008360008173ffffffffffffffffffffffffffffffffffffffff16141515156121fd57600080fd5b60055491506080604051908101604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020016000151581525060008084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020190805190602001906122bc9291906123cb565b5060608201518160030160006101000a81548160ff0219169083151502179055509050506001600560008282540192505081905550817fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5160405160405180910390a2509392505050565b60006201518060075401421115612347574260078190555060006008819055505b6006548260085401118061236057506008548260085401105b1561236e5760009050612373565b600190505b919050565b6000806040516020840160008287838a8c6187965a03f19250505080915050949350505050565b8154818355818111156123c6578183600052602060002091820191016123c5919061244b565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061240c57805160ff191683800117855561243a565b8280016001018555821561243a579182015b8281111561243957825182559160200191906001019061241e565b5b509050612447919061244b565b5090565b61246d91905b80821115612469576000816000905550600101612451565b5090565b905600a165627a7a72305820b60065d119044e21efdfe7d997b2532c09bfd9d4fc9e191d95e8c2fbf78109680029000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000072c397908cb93d1b569bbb0ff8d3d26b7b21d730000000000000000000000000a07c80f6aa437531cf51f3642c95e059e03286b4000000000000000000000000eced7700c7b133552aada9040b1c31463385fce40000000000000000000000002d07a7079e23f03fa90d5d5dcac64c9670c3f7750000000000000000000000002f9bebe5a1d9bd83abc818091fb3ae83f1c118c7000000000000000000000000fd7b8597cf8ee5317439b0b5c55a111f6eec449d00000000000000000000000080627dcd9d1d2212e0c9843c521bb7645dd2d4fd0000000000000000000000003b7631f8e3428deab77634bf799b622ce412e9ea
Deployed ByteCode Sourcemap
13510:3128:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2659:1;2647:9;:13;2643:62;;;2683:10;2675:30;;;2695:9;2675:30;;;;;;;;;;;;;;;;;;2643:62;13510:3128;1103:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1103:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3872:475;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3872:475:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6514:299;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6514:299:0;;;;;;;;;;;;;;;;;;;;;;;;;;1056:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1056:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;985:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;985:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16364:271;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16364:271:0;;;;;;;;;;;;;;;;;;;;;;;10881:328;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10881:328:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13690:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13690:22:0;;;;;;;;;;;;;;;;;;;;;;;13719:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13719:19:0;;;;;;;;;;;;;;;;;;;;;;;3458:287;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3458:287:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8991:349;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8991:349:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10353:260;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10353:260:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;929:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;929:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;929:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11297:121;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11297:121:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11297:121:0;;;;;;;;;;;;;;;;;12550:694;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12550:694:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;12550:694:0;;;;;;;;;;;;;;;;;11602:591;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11602:591:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;11602:591:0;;;;;;;;;;;;;;;;;1160:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1160:28:0;;;;;;;;;;;;;;;;;;;;;;;5193:214;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5193:214:0;;;;;;;;;;;;;;;;;;;;;;;;;;6033:353;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6033:353:0;;;;;;;;;;;;;;;;;;;;;;;;;;5673:250;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5673:250:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14483:168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14483:168:0;;;;;;;;;;;;;;;;;;;;;;;;;;845:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;845:41:0;;;;;;;;;;;;;;;;;;;;;;;1133:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1133:20:0;;;;;;;;;;;;;;;;;;;;;;;4554:464;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4554:464:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14817:840;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14817:840:0;;;;;;;;;;;;;;;;;;;;;;;;;;13745:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13745:22:0;;;;;;;;;;;;;;;;;;;;;;;1103:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3872:475::-;4026:6;1427:4;1405:27;;:10;:27;;;1397:36;;;;;;;;3965:5;1621:7;:14;1629:5;1621:14;;;;;;;;;;;;;;;;;;;;;;;;;1613:23;;;;;;;;4005:5;3988:7;:14;3996:5;3988:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;4033:1;4026:8;;4021:174;4054:1;4038:6;:13;;;;:17;4036:1;:19;4021:174;;;4092:5;4079:18;;:6;4086:1;4079:9;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;4075:120;;;4130:6;4153:1;4137:6;:13;;;;:17;4130:25;;;;;;;;;;;;;;;;;;;;;;;;;;;4118:6;4125:1;4118:9;;;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;4174:5;;4075:120;4057:3;;;;;;;4021:174;;;4222:1;4205:6;:18;;;;;;;;;;;;;;:::i;:::-;;4249:6;:13;;;;4238:8;;:24;4234:75;;;4277:32;4295:6;:13;;;;4277:17;:32::i;:::-;4234:75;4333:5;4320:19;;;;;;;;;;;;1444:1;3872:475;;:::o;6514:299::-;6599:10;1621:7;:14;1629:5;1621:14;;;;;;;;;;;;;;;;;;;;;;;;;1613:23;;;;;;;;6630:13;6645:10;1876:13;:28;1890:13;1876:28;;;;;;;;;;;:35;1905:5;1876:35;;;;;;;;;;;;;;;;;;;;;;;;;1868:44;;;;;;;;6678:13;2142:12;:27;2155:13;2142:27;;;;;;;;;;;:36;;;;;;;;;;;;2141:37;2133:46;;;;;;;;6752:5;6709:13;:28;6723:13;6709:28;;;;;;;;;;;:40;6738:10;6709:40;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;6791:13;6779:10;6768:37;;;;;;;;;;;;1923:1;1647;;6514:299;;:::o;1056:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;985:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;16364:271::-;16443:4;16485:8;16475:7;;:18;16469:3;:24;16465:60;;;16515:10;;16508:17;;;;16465:60;16553:10;;16540;;:23;16536:50;;;16585:1;16578:8;;;;16536:50;16617:10;;16604;;:23;16597:30;;16364:271;;:::o;10881:328::-;10991:10;11024:6;11031:1;11024:8;;11019:182;11036:16;;11034:1;:18;11019:182;;;11079:7;:36;;;;;11091:12;:15;11104:1;11091:15;;;;;;;;;;;:24;;;;;;;;;;;;11090:25;11079:36;:93;;;;11136:8;:36;;;;;11148:12;:15;11161:1;11148:15;;;;;;;;;;;:24;;;;;;;;;;;;11136:36;11079:93;11072:129;;;11200:1;11191:10;;;;11072:129;11054:3;;;;;;;11019:182;;;10881:328;;;;;:::o;13690:22::-;;;;:::o;13719:19::-;;;;:::o;3458:287::-;1427:4;1405:27;;:10;:27;;;1397:36;;;;;;;;3554:5;1523:7;:14;1531:5;1523:14;;;;;;;;;;;;;;;;;;;;;;;;;1522:15;1514:24;;;;;;;;3578:5;2273:1;2261:8;:13;;;;2253:22;;;;;;;;3627:1;3611:6;:13;;;;:17;3630:8;;884:2;2381:10;:29;;:69;;;;;2440:10;2427:9;:23;;2381:69;:100;;;;;2480:1;2467:9;:14;;2381:100;:132;;;;;2512:1;2498:10;:15;;2381:132;2373:141;;;;;;;;3673:4;3656:7;:14;3664:5;3656:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;3688:6;3700:5;3688:18;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;3688:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3731:5;3717:20;;;;;;;;;;;;2286:1;;1549;1444;3458:287;:::o;8991:349::-;9084:4;9106:10;9136:6;9119:1;9106:14;;9143:1;9136:8;;9131:202;9148:6;:13;;;;9146:1;:15;9131:202;;;9187:13;:28;9201:13;9187:28;;;;;;;;;;;:39;9216:6;9223:1;9216:9;;;;;;;;;;;;;;;;;;;;;;;;;;;9187:39;;;;;;;;;;;;;;;;;;;;;;;;;9183:72;;;9254:1;9245:10;;;;9183:72;9283:8;;9274:5;:17;9270:51;;;9317:4;9310:11;;;;9270:51;9163:3;;;;;;;9131:202;;;8991:349;;;;;;:::o;10353:260::-;10455:10;10488:6;10495:1;10488:8;;10483:122;10500:6;:13;;;;10498:1;:15;10483:122;;;10537:13;:28;10551:13;10537:28;;;;;;;;;;;:39;10566:6;10573:1;10566:9;;;;;;;;;;;;;;;;;;;;;;;;;;;10537:39;;;;;;;;;;;;;;;;;;;;;;;;;10533:72;;;10604:1;10595:10;;;;10533:72;10515:3;;;;;;;10483:122;;;10353:260;;;;:::o;929:49::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11297:121::-;11370:9;11404:6;11397:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11297:121;:::o;12550:694::-;12678:22;12718:32;12792:10;12817:6;12764:16;;12753:28;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;12753:28:0;;;;12718:63;;12805:1;12792:14;;12841:1;12839:3;;12834:256;12846:16;;12844:1;:18;12834:256;;;12889:7;:36;;;;;12901:12;:15;12914:1;12901:15;;;;;;;;;;;:24;;;;;;;;;;;;12900:25;12889:36;:93;;;;12946:8;:36;;;;;12958:12;:15;12971:1;12958:15;;;;;;;;;;;:24;;;;;;;;;;;;12946:36;12889:93;12882:208;;;13044:1;13016:18;13035:5;13016:25;;;;;;;;;;;;;;;;;:29;;;;;13073:1;13064:10;;;;12882:208;12864:3;;;;;;;12834:256;;;13134:4;13129:2;:9;13118:21;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;13118:21:0;;;;13100:39;;13157:4;13155:6;;13150:86;13165:2;13163:1;:4;13150:86;;;13215:18;13234:1;13215:21;;;;;;;;;;;;;;;;;;13187:15;13207:4;13203:1;:8;13187:25;;;;;;;;;;;;;;;;;:49;;;;;13169:3;;;;;;;13150:86;;;12550:694;;;;;;;;;:::o;11602:591::-;11700:24;11742:34;11818:10;11843:6;11793;:13;;;;11779:28;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;11779:28:0;;;;11742:65;;11831:1;11818:14;;11867:1;11865:3;;11860:190;11872:6;:13;;;;11870:1;:15;11860:190;;;11909:13;:28;11923:13;11909:28;;;;;;;;;;;:39;11938:6;11945:1;11938:9;;;;;;;;;;;;;;;;;;;;;;;;;;;11909:39;;;;;;;;;;;;;;;;;;;;;;;;;11905:145;;;11996:6;12003:1;11996:9;;;;;;;;;;;;;;;;;;;;;;;;;;;11969:17;11987:5;11969:24;;;;;;;;;;;;;;;;;:36;;;;;;;;;;;12033:1;12024:10;;;;11905:145;11887:3;;;;;;;11860:190;;;12091:5;12077:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;148:4;140:6;136:17;126:27;;0:157;12077:20:0;;;;12060:37;;12115:1;12113:3;;12108:77;12120:5;12118:1;:7;12108:77;;;12165:17;12183:1;12165:20;;;;;;;;;;;;;;;;;;12145:14;12160:1;12145:17;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;12127:3;;;;;;;12108:77;;;11602:591;;;;;;:::o;1160:28::-;;;;:::o;5193:214::-;1427:4;1405:27;;:10;:27;;;1397:36;;;;;;;;5298:6;:13;;;;5313:9;884:2;2381:10;:29;;:69;;;;;2440:10;2427:9;:23;;2381:69;:100;;;;;2480:1;2467:9;:14;;2381:100;:132;;;;;2512:1;2498:10;:15;;2381:132;2373:141;;;;;;;;5351:9;5340:8;:20;;;;5371:28;5389:9;5371:28;;;;;;;;;;;;;;;;;;1444:1;;5193:214;:::o;6033:353::-;6118:10;1621:7;:14;1629:5;1621:14;;;;;;;;;;;;;;;;;;;;;;;;;1613:23;;;;;;;;6157:13;1773:1;1730:12;:27;1743:13;1730:27;;;;;;;;;;;:39;;;;;;;;;;;;:44;;;;1722:53;;;;;;;;6194:13;6209:10;2017:13;:28;2031:13;2017:28;;;;;;;;;;;:35;2046:5;2017:35;;;;;;;;;;;;;;;;;;;;;;;;;2016:36;2008:45;;;;;;;;6280:4;6237:13;:28;6251:13;6237:28;;;;;;;;;;;:40;6266:10;6237:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;6320:13;6308:10;6295:39;;;;;;;;;;;;6345:33;6364:13;6345:18;:33::i;:::-;1786:1;;1647;6033:353;;:::o;5673:250::-;5779:18;5831:40;5846:11;5859:5;5866:4;5831:14;:40::i;:::-;5815:56;;5882:33;5901:13;5882:18;:33::i;:::-;5673:250;;;;;:::o;14483:168::-;1427:4;1405:27;;:10;:27;;;1397:36;;;;;;;;14592:11;14579:10;:24;;;;14614:29;14631:11;14614:29;;;;;;;;;;;;;;;;;;14483:168;:::o;845:41::-;884:2;845:41;:::o;1133:20::-;;;;:::o;4554:464::-;4731:6;1427:4;1405:27;;:10;:27;;;1397:36;;;;;;;;4666:5;1621:7;:14;1629:5;1621:14;;;;;;;;;;;;;;;;;;;;;;;;;1613:23;;;;;;;;4700:8;1523:7;:14;1531:5;1523:14;;;;;;;;;;;;;;;;;;;;;;;;;1522:15;1514:24;;;;;;;;4738:1;4731:8;;4726:153;4743:6;:13;;;;4741:1;:15;4726:153;;;4793:5;4780:18;;:6;4787:1;4780:9;;;;;;;;;;;;;;;;;;;;;;;;;;;:18;;;4776:103;;;4831:8;4819:6;4826:1;4819:9;;;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;4858:5;;4776:103;4758:3;;;;;;;4726:153;;;4906:5;4889:7;:14;4897:5;4889:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;4942:4;4922:7;:17;4930:8;4922:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;4970:5;4957:19;;;;;;;;;;;;5001:8;4987:23;;;;;;;;;;;;1647:1;1444;4554:464;;;:::o;14817:840::-;15012:23;15076:15;14902:10;1621:7;:14;1629:5;1621:14;;;;;;;;;;;;;;;;;;;;;;;;;1613:23;;;;;;;;14933:13;14948:10;1876:13;:28;1890:13;1876:28;;;;;;;;;;;:35;1905:5;1876:35;;;;;;;;;;;;;;;;;;;;;;;;;1868:44;;;;;;;;14981:13;2142:12;:27;2155:13;2142:27;;;;;;;;;;;:36;;;;;;;;;;;;2141:37;2133:46;;;;;;;;15038:12;:27;15051:13;15038:27;;;;;;;;;;;15012:53;;15094:26;15106:13;15094:11;:26::i;:::-;15076:44;;15135:10;:61;;;;15168:1;15149:3;:8;;:15;;;;;;;;;;;;;;;;:20;:47;;;;;15173:23;15186:3;:9;;;15173:12;:23::i;:::-;15149:47;15135:61;15131:519;;;15228:4;15213:3;:12;;;:19;;;;;;;;;;;;;;;;;;15252:10;15251:11;15247:57;;;15295:3;:9;;;15281:10;;:23;;;;;;;;;;;15247:57;15323:68;15337:3;:15;;;;;;;;;;;;15354:3;:9;;;15365:3;:8;;:15;;;;;;;;;;;;;;;;15382:3;:8;;15323:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:68::i;:::-;15319:320;;;15420:13;15410:24;;;;;;;;;;15319:320;;;15490:13;15473:31;;;;;;;;;;15538:5;15523:3;:12;;;:20;;;;;;;;;;;;;;;;;;15567:10;15566:11;15562:61;;;15614:3;:9;;;15600:10;;:23;;;;;;;;;;;15562:61;15319:320;15131:519;1923:1;1647;;14817:840;;;;:::o;13745:22::-;;;;:::o;9683:465::-;9818:18;9787:11;2273:1;2261:8;:13;;;;2253:22;;;;;;;;9870:16;;9854:32;;9927:145;;;;;;;;;9967:11;9927:145;;;;;;10000:5;9927:145;;;;10026:4;9927:145;;;;10055:5;9927:145;;;;;9897:12;:27;9910:13;9897:27;;;;;;;;;;;:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10103:1;10083:16;;:21;;;;;;;;;;;10126:13;10115:25;;;;;;;;;;9683:465;;;;;;:::o;15900:331::-;15971:4;16013:8;16003:7;;:18;15997:3;:24;15993:99;;;16048:3;16038:7;:13;;;;16079:1;16066:10;:14;;;;15993:99;16128:10;;16119:6;16106:10;;:19;:32;:68;;;;16164:10;;16155:6;16142:10;;:19;:32;16106:68;16102:99;;;16196:5;16189:12;;;;16102:99;16219:4;16212:11;;15900:331;;;;:::o;7714:1121::-;7817:4;7834:11;7895:4;7889:11;8029:2;8023:4;8019:13;8704:1;8684;8575:10;8555:1;8531:5;8501:11;8153:5;8148:3;8144:15;8121:672;8111:682;;7865:939;;8821:6;8814:13;;7714:1121;;;;;;;:::o;13510:3128::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://b60065d119044e21efdfe7d997b2532c09bfd9d4fc9e191d95e8c2fbf7810968
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.