Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 39 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Burn | 20391207 | 181 days ago | IN | 0 ETH | 0.00057463 | ||||
Cooldown | 20369677 | 184 days ago | IN | 0 ETH | 0.00036009 | ||||
Mint | 20275290 | 197 days ago | IN | 0 ETH | 0.00045571 | ||||
Mint | 20273364 | 197 days ago | IN | 0 ETH | 0.0005043 | ||||
Delegate | 18757124 | 409 days ago | IN | 0 ETH | 0.00084258 | ||||
Cooldown | 18696702 | 418 days ago | IN | 0 ETH | 0.00085856 | ||||
Cooldown | 18658965 | 423 days ago | IN | 0 ETH | 0.00109838 | ||||
Mint | 18637229 | 426 days ago | IN | 0 ETH | 0.00318837 | ||||
Burn | 18296875 | 474 days ago | IN | 0 ETH | 0.00071506 | ||||
Cooldown | 18275097 | 477 days ago | IN | 0 ETH | 0.00018297 | ||||
Cooldown | 17754464 | 550 days ago | IN | 0 ETH | 0.00066592 | ||||
Burn | 14326972 | 1055 days ago | IN | 0 ETH | 0.00188142 | ||||
Cooldown | 14306930 | 1058 days ago | IN | 0 ETH | 0.00084054 | ||||
Cooldown | 13308733 | 1213 days ago | IN | 0 ETH | 0.00238563 | ||||
Burn | 13068340 | 1251 days ago | IN | 0 ETH | 0.00317332 | ||||
Cooldown | 13048195 | 1254 days ago | IN | 0 ETH | 0.00162156 | ||||
Mint | 12618778 | 1321 days ago | IN | 0 ETH | 0.00158682 | ||||
Mint | 12612334 | 1322 days ago | IN | 0 ETH | 0.00154612 | ||||
Burn | 12610270 | 1322 days ago | IN | 0 ETH | 0.00260881 | ||||
Cooldown | 12583506 | 1326 days ago | IN | 0 ETH | 0.00044692 | ||||
Mint | 12399750 | 1355 days ago | IN | 0 ETH | 0.00615436 | ||||
Burn | 12348644 | 1363 days ago | IN | 0 ETH | 0.00294665 | ||||
Cooldown | 12324412 | 1366 days ago | IN | 0 ETH | 0.00257922 | ||||
Burn | 12323615 | 1366 days ago | IN | 0 ETH | 0.00803122 | ||||
Cooldown | 12303900 | 1369 days ago | IN | 0 ETH | 0.00286059 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Pasta
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-04-04 */ pragma solidity ^0.6.12; pragma experimental ABIEncoderV2; interface TokenInterface { function transferFrom(address, address, uint) external returns (bool); function transfer(address, uint) external returns (bool); } contract Pasta { /// @notice EIP-20 token name for this token string public constant name = "Pasta DAO 🍝"; /// @notice EIP-20 token symbol for this token string public constant symbol = "PASTA"; string public constant errorMsg = "It's all pasta 🌎🧑🚀🔫🧑🚀"; /// @notice EIP-20 token decimals for this token uint8 public constant decimals = 18; /// @notice Total number of tokens in circulation uint public totalSupply; /// @notice Address of UNI-V2 ETH/PASTA LP Token TokenInterface public constant food = TokenInterface(0xE92346d9369Fe03b735Ed9bDeB6bdC2591b8227E); /// @notice Cooldown period in seconds uint public immutable COOLDOWN_SECONDS; /// @notice Seconds available to redeem once the cooldown period is fullfilled uint public immutable REDEEM_WINDOW; mapping(address => uint) public holderCooldowns; mapping (address => mapping (address => uint96)) internal allowances; mapping (address => uint96) internal balances; /// @notice A record of each accounts delegate mapping (address => address) public delegates; /// @notice A checkpoint for marking number of votes from a given block struct Checkpoint { uint32 fromBlock; uint96 votes; } /// @notice A record of votes checkpoints for each account, by index mapping (address => mapping (uint32 => Checkpoint)) public checkpoints; /// @notice The number of checkpoints for each account mapping (address => uint32) public numCheckpoints; /// @notice The EIP-712 typehash for the contract's domain bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); /// @notice The EIP-712 typehash for the delegation struct used by the contract bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)"); /// @notice A record of states for signing / validating signatures mapping (address => uint) public nonces; /// @notice An event thats emitted when an account changes its delegate event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); /// @notice An event thats emitted when a delegate account's vote balance changes event DelegateVotesChanged(address indexed delegate, uint previousBalance, uint newBalance); /// @notice The standard EIP-20 transfer event event Transfer(address indexed from, address indexed to, uint256 amount); /// @notice The standard EIP-20 approval event event Approval(address indexed owner, address indexed spender, uint256 amount); event Cooldown(address indexed user); constructor(uint cooldown_, uint redeemWindow_) public { COOLDOWN_SECONDS = cooldown_; REDEEM_WINDOW = redeemWindow_; } /** * @notice Mint tokens from UNI-V2 ETH/PASTA LP Tokens * @param dst Address of the user to receive the tokens * @param rawAmount The number of tokens to mint */ function mint(address dst, uint rawAmount) external { uint96 amount = safe96(rawAmount, "Pasta::mint: amount exceeds 96 bits"); require(amount != 0, "Pasta::mint: invalid amount"); require(food.transferFrom(msg.sender, address(this), rawAmount), "Pasta::mint: mint failed"); balances[dst] = add96(balances[dst], amount, "Pasta::mint: mint amount overflows"); totalSupply = add256(totalSupply, rawAmount); if (delegates[dst] == address(0)) { _delegate(dst, dst); } else { _moveDelegates(address(0), delegates[dst], amount); } emit Transfer(address(0), dst, rawAmount); } /** * @notice Burn tokens and recieve UNI-V2 ETH/PASTA LP Tokens * @param dst Address of the user to receive the tokens * @param rawAmount The number of tokens to burn */ function burn(address dst, uint rawAmount) external { uint96 amount = safe96(rawAmount, "Pasta::burn: amount exceeds 96 bits"); require(amount != 0, "Pasta::burn: invalid amount"); uint256 cooldownStartTimestamp = holderCooldowns[msg.sender]; require( block.timestamp > add256(cooldownStartTimestamp, COOLDOWN_SECONDS), "Pasta::burn: invalid cooldown" ); require( sub256(block.timestamp, add256(cooldownStartTimestamp, COOLDOWN_SECONDS)) <= REDEEM_WINDOW, "Pasta::burn: redeem window over" ); uint96 amtToRedeem = (amount > balances[msg.sender]) ? balances[msg.sender] : amount; balances[dst] = sub96(balances[dst], amtToRedeem, "Pasta::burn: burn amount underflows"); totalSupply = sub256(totalSupply, uint256(amtToRedeem)); require(food.transfer(dst, rawAmount), "Pasta::burn: transfer failed"); _moveDelegates(delegates[dst], address(0), amtToRedeem); emit Transfer(dst, address(0), rawAmount); } /** * @dev Activates the cooldown period to redeem */ function cooldown() external { require(balances[msg.sender] != 0, "Pasta::cooldown: invalid balance"); holderCooldowns[msg.sender] = block.timestamp; emit Cooldown(msg.sender); } /** * @notice Get the number of tokens `spender` is approved to spend on behalf of `account` * @param account The address of the account holding the funds * @param spender The address of the account spending the funds * @return The number of tokens approved */ function allowance(address account, address spender) external view returns (uint) { return allowances[account][spender]; } /** * @notice Approve `spender` to transfer up to `amount` from `src` * @dev This will overwrite the approval amount for `spender` * and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve) * @param spender The address of the account which may transfer tokens * @param rawAmount The number of tokens that are approved (2^256-1 means infinite) * @return Whether or not the approval succeeded */ function approve(address spender, uint rawAmount) pure external returns (bool) { revert(errorMsg); } /** * @notice Get the number of tokens held by the `account` * @param account The address of the account to get the balance of * @return The number of tokens held */ function balanceOf(address account) external view returns (uint) { return balances[account]; } /** * @notice Transfer `amount` tokens from `msg.sender` to `dst` * @param dst The address of the destination account * @param rawAmount The number of tokens to transfer * @return Whether or not the transfer succeeded */ function transfer(address dst, uint rawAmount) pure external returns (bool) { revert(errorMsg); } /** * @notice Transfer `amount` tokens from `src` to `dst` * @param src The address of the source account * @param dst The address of the destination account * @param rawAmount The number of tokens to transfer * @return Whether or not the transfer succeeded */ function transferFrom(address src, address dst, uint rawAmount) pure external returns (bool) { revert(errorMsg); } /** * @notice Delegate votes from `msg.sender` to `delegatee` * @param delegatee The address to delegate votes to */ function delegate(address delegatee) public { return _delegate(msg.sender, delegatee); } /** * @notice Delegates votes from signatory to `delegatee` * @param delegatee The address to delegate votes to * @param nonce The contract state required to match the signature * @param expiry The time at which to expire the signature * @param v The recovery byte of the signature * @param r Half of the ECDSA signature pair * @param s Half of the ECDSA signature pair */ function delegateBySig(address delegatee, uint nonce, uint expiry, uint8 v, bytes32 r, bytes32 s) public { bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))); bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry)); bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); address signatory = ecrecover(digest, v, r, s); require(signatory != address(0), "Comp::delegateBySig: invalid signature"); require(nonce == nonces[signatory]++, "Comp::delegateBySig: invalid nonce"); require(block.timestamp <= expiry, "Comp::delegateBySig: signature expired"); return _delegate(signatory, delegatee); } /** * @notice Gets the current votes balance for `account` * @param account The address to get votes balance * @return The number of current votes for `account` */ function getCurrentVotes(address account) external view returns (uint96) { uint32 nCheckpoints = numCheckpoints[account]; return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0; } /** * @notice Determine the prior number of votes for an account as of a block number * @dev Block number must be a finalized block or else this function will revert to prevent misinformation. * @param account The address of the account to check * @param blockNumber The block number to get the vote balance at * @return The number of votes the account had as of the given block */ function getPriorVotes(address account, uint blockNumber) public view returns (uint96) { require(blockNumber < block.number, "Comp::getPriorVotes: not yet determined"); uint32 nCheckpoints = numCheckpoints[account]; if (nCheckpoints == 0) { return 0; } // First check most recent balance if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) { return checkpoints[account][nCheckpoints - 1].votes; } // Next check implicit zero balance if (checkpoints[account][0].fromBlock > blockNumber) { return 0; } uint32 lower = 0; uint32 upper = nCheckpoints - 1; while (upper > lower) { uint32 center = upper - (upper - lower) / 2; // ceil, avoiding overflow Checkpoint memory cp = checkpoints[account][center]; if (cp.fromBlock == blockNumber) { return cp.votes; } else if (cp.fromBlock < blockNumber) { lower = center; } else { upper = center - 1; } } return checkpoints[account][lower].votes; } function _delegate(address delegator, address delegatee) internal { address currentDelegate = delegates[delegator]; uint96 delegatorBalance = balances[delegator]; delegates[delegator] = delegatee; emit DelegateChanged(delegator, currentDelegate, delegatee); _moveDelegates(currentDelegate, delegatee, delegatorBalance); } function _moveDelegates(address srcRep, address dstRep, uint96 amount) internal { if (srcRep != dstRep && amount > 0) { if (srcRep != address(0)) { uint32 srcRepNum = numCheckpoints[srcRep]; uint96 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0; uint96 srcRepNew = sub96(srcRepOld, amount, "Comp::_moveVotes: vote amount underflows"); _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew); } if (dstRep != address(0)) { uint32 dstRepNum = numCheckpoints[dstRep]; uint96 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0; uint96 dstRepNew = add96(dstRepOld, amount, "Comp::_moveVotes: vote amount overflows"); _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew); } } } function _writeCheckpoint(address delegatee, uint32 nCheckpoints, uint96 oldVotes, uint96 newVotes) internal { uint32 blockNumber = safe32(block.number, "Comp::_writeCheckpoint: block number exceeds 32 bits"); if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == blockNumber) { checkpoints[delegatee][nCheckpoints - 1].votes = newVotes; } else { checkpoints[delegatee][nCheckpoints] = Checkpoint(blockNumber, newVotes); numCheckpoints[delegatee] = nCheckpoints + 1; } emit DelegateVotesChanged(delegatee, oldVotes, newVotes); } function safe32(uint n, string memory errorMessage) internal pure returns (uint32) { require(n < 2**32, errorMessage); return uint32(n); } function safe96(uint n, string memory errorMessage) internal pure returns (uint96) { require(n < 2**96, errorMessage); return uint96(n); } function add96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) { uint96 c = a + b; require(c >= a, errorMessage); return c; } function sub96(uint96 a, uint96 b, string memory errorMessage) internal pure returns (uint96) { require(b <= a, errorMessage); return a - b; } function add256(uint a, uint b) internal pure returns (uint c) { require((c = a + b) >= a, "math-not-safe"); } function sub256(uint a, uint b) internal pure returns (uint c) { require((c = a - b) <= a, "math-not-safe"); } function getChainId() internal pure returns (uint) { uint256 chainId; assembly { chainId := chainid() } return chainId; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"cooldown_","type":"uint256"},{"internalType":"uint256","name":"redeemWindow_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"}],"name":"Cooldown","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"COOLDOWN_SECONDS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REDEEM_WINDOW","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint32","name":"","type":"uint32"}],"name":"checkpoints","outputs":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint96","name":"votes","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"errorMsg","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"food","outputs":[{"internalType":"contract TokenInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"holderCooldowns","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"rawAmount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}]
Contract Creation Code
60c06040523480156200001157600080fd5b50604051620035c5380380620035c5833981810160405281019062000037919062000066565b81608081815250508060a081815250505050620000cb565b6000815190506200006081620000b1565b92915050565b600080604083850312156200007a57600080fd5b60006200008a858286016200004f565b92505060206200009d858286016200004f565b9150509250929050565b6000819050919050565b620000bc81620000a7565b8114620000c857600080fd5b50565b60805160a0516134c7620000fe6000398061127552806116fd525080610b68528061120e528061129e52506134c76000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063782d6fe1116100f9578063a9059cbb11610097578063c3cda52011610071578063c3cda520146104fa578063dd62ed3e14610516578063e7a324dc14610546578063f1127ed814610564576101a9565b8063a9059cbb1461047c578063b37346cf146104ac578063b4b5ea57146104ca576101a9565b80638eaaa94c116100d35780638eaaa94c146103f457806395d89b411461042457806398b4e8d3146104425780639dc29fac14610460576101a9565b8063782d6fe11461038a578063787a08a6146103ba5780637ecebe00146103c4576101a9565b806340c10f19116101665780635c19a95c116101405780635c19a95c146102f05780636fcfff451461030c57806370a082311461033c57806372b49d631461036c576101a9565b806340c10f19146102865780635001cade146102a2578063587cde1e146102c0576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101fc57806320606b701461021a57806323b872dd14610238578063313ce56714610268575b600080fd5b6101b6610595565b6040516101c39190612f04565b60405180910390f35b6101e660048036038101906101e1919061274a565b6105ce565b6040516101f39190612de4565b60405180910390f35b610204610625565b60405161021191906130a6565b60405180910390f35b61022261062b565b60405161022f9190612dff565b60405180910390f35b610252600480360381019061024d91906126fb565b61064f565b60405161025f9190612de4565b60405180910390f35b6102706106a6565b60405161027d9190613105565b60405180910390f35b6102a0600480360381019061029b919061274a565b6106ab565b005b6102aa610a78565b6040516102b79190612f04565b60405180910390f35b6102da60048036038101906102d59190612696565b610a94565b6040516102e79190612d69565b60405180910390f35b61030a60048036038101906103059190612696565b610ac7565b005b61032660048036038101906103219190612696565b610ad4565b60405161033391906130c1565b60405180910390f35b61035660048036038101906103519190612696565b610af7565b60405161036391906130a6565b60405180910390f35b610374610b66565b60405161038191906130a6565b60405180910390f35b6103a4600480360381019061039f919061274a565b610b8a565b6040516103b19190613120565b60405180910390f35b6103c2610f99565b005b6103de60048036038101906103d99190612696565b6110cb565b6040516103eb91906130a6565b60405180910390f35b61040e60048036038101906104099190612696565b6110e3565b60405161041b91906130a6565b60405180910390f35b61042c6110fb565b6040516104399190612f04565b60405180910390f35b61044a611134565b6040516104579190612ee9565b60405180910390f35b61047a6004803603810190610475919061274a565b61114c565b005b6104966004803603810190610491919061274a565b6116a4565b6040516104a39190612de4565b60405180910390f35b6104b46116fb565b6040516104c191906130a6565b60405180910390f35b6104e460048036038101906104df9190612696565b61171f565b6040516104f19190613120565b60405180910390f35b610514600480360381019061050f9190612786565b61180d565b005b610530600480360381019061052b91906126bf565b611aca565b60405161053d91906130a6565b60405180910390f35b61054e611b77565b60405161055b9190612dff565b60405180910390f35b61057e6004803603810190610579919061280f565b611b9b565b60405161058c9291906130dc565b60405180910390f35b6040518060400160405280600e81526020017f50617374612044414f20f09f8d9d00000000000000000000000000000000000081525081565b60006040518060600160405280602d8152602001613465602d91396040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061c9190612f04565b60405180910390fd5b60005481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b60006040518060600160405280602d8152602001613465602d91396040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069d9190612f04565b60405180910390fd5b601281565b60006106cf8260405180606001604052806023815260200161335760239139611bf4565b90506000816bffffffffffffffffffffffff161415610723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071a90613086565b60405180910390fd5b73e92346d9369fe03b735ed9bdeb6bdc2591b8227e73ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161077493929190612d84565b602060405180830381600087803b15801561078e57600080fd5b505af11580156107a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c6919061284b565b610805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fc90612f46565b60405180910390fd5b61087f600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff168260405180606001604052806022815260200161344360229139611c52565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506108f860005483611cc8565b600081905550600073ffffffffffffffffffffffffffffffffffffffff16600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109a15761099c8384611d18565b610a0d565b610a0c6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611ed8565b5b8273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a6b91906130a6565b60405180910390a3505050565b6040518060600160405280602d8152602001613465602d913981565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ad13382611d18565b50565b60066020528060005260406000206000915054906101000a900463ffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000438210610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc590612fa6565b60405180910390fd5b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610c3b576000915050610f93565b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610d3d57600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050610f93565b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610dbe576000915050610f93565b6000806001830390505b8163ffffffff168163ffffffff161115610f15576000600283830363ffffffff1681610df057fe5b0482039050610dfd6125ea565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff161415610eed57806020015195505050505050610f93565b86816000015163ffffffff161015610f0757819350610f0e565b6001820392505b5050610dc8565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff161415611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103990612fe6565b60405180910390fd5b42600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167ff52f50426b32362d3e6bb8cb36b7074756b224622def6352a59eac7f66ebe6e860405160405180910390a2565b60076020528060005260406000206000915090505481565b60016020528060005260406000206000915090505481565b6040518060400160405280600581526020017f504153544100000000000000000000000000000000000000000000000000000081525081565b73e92346d9369fe03b735ed9bdeb6bdc2591b8227e81565b60006111708260405180606001604052806023815260200161337a60239139611bf4565b90506000816bffffffffffffffffffffffff1614156111c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bb90613066565b60405180910390fd5b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611232817f0000000000000000000000000000000000000000000000000000000000000000611cc8565b4211611273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126a90613046565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006112c7426112c2847f0000000000000000000000000000000000000000000000000000000000000000611cc8565b6121d3565b1115611308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ff90612f26565b60405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16836bffffffffffffffffffffffff161161138a57826113e3565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff165b905061145f600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff168260405180606001604052806023815260200161342060239139612223565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506114e6600054826bffffffffffffffffffffffff166121d3565b60008190555073e92346d9369fe03b735ed9bdeb6bdc2591b8227e73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86866040518363ffffffff1660e01b815260040161153b929190612dbb565b602060405180830381600087803b15801561155557600080fd5b505af1158015611569573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158d919061284b565b6115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c390613026565b60405180910390fd5b611637600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083611ed8565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161169591906130a6565b60405180910390a35050505050565b60006040518060600160405280602d8152602001613465602d91396040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f29190612f04565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611611789576000611805565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280600e81526020017f50617374612044414f20f09f8d9d00000000000000000000000000000000000081525080519060200120611875612294565b306040516020016118899493929190612e5f565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8888886040516020016118da9493929190612e1a565b60405160208183030381529060405280519060200120905060008282604051602001611907929190612d32565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516119449493929190612ea4565b6020604051602081039080840390855afa158015611966573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d990612f66565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558914611a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6890613006565b60405180910390fd5b87421115611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab90612f86565b60405180910390fd5b611abe818b611d18565b50505050505050505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b6005602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c0100000000000000000000000083108290611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f9190612f04565b60405180910390fd5b5082905092915050565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610158390611cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb39190612f04565b60405180910390fd5b50809150509392505050565b6000828284019150811015611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0990612fc6565b60405180910390fd5b92915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611ed2828483611ed8565b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f2257506000816bffffffffffffffffffffffff16115b156121ce57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461207a576000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611fc5576000612041565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b9050600061206882856040518060600160405280602881526020016133d160289139612223565b9050612076868484846122a1565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121cd576000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611612118576000612194565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006121bb82856040518060600160405280602781526020016133f960279139611c52565b90506121c9858484846122a1565b5050505b5b505050565b600082828403915081111561221d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221490612fc6565b60405180910390fd5b92915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290612287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227e9190612f04565b60405180910390fd5b5082840390509392505050565b6000804690508091505090565b60006122c54360405180606001604052806034815260200161339d60349139612594565b905060008463ffffffff1611801561235a57508063ffffffff16600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156123f55781600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555061253d565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405161258592919061313b565b60405180910390a25050505050565b6000640100000000831082906125e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d79190612f04565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b600081359050612627816132cc565b92915050565b60008151905061263c816132e3565b92915050565b600081359050612651816132fa565b92915050565b60008135905061266681613311565b92915050565b60008135905061267b81613328565b92915050565b6000813590506126908161333f565b92915050565b6000602082840312156126a857600080fd5b60006126b684828501612618565b91505092915050565b600080604083850312156126d257600080fd5b60006126e085828601612618565b92505060206126f185828601612618565b9150509250929050565b60008060006060848603121561271057600080fd5b600061271e86828701612618565b935050602061272f86828701612618565b925050604061274086828701612657565b9150509250925092565b6000806040838503121561275d57600080fd5b600061276b85828601612618565b925050602061277c85828601612657565b9150509250929050565b60008060008060008060c0878903121561279f57600080fd5b60006127ad89828a01612618565b96505060206127be89828a01612657565b95505060406127cf89828a01612657565b94505060606127e089828a01612681565b93505060806127f189828a01612642565b92505060a061280289828a01612642565b9150509295509295509295565b6000806040838503121561282257600080fd5b600061283085828601612618565b92505060206128418582860161266c565b9150509250929050565b60006020828403121561285d57600080fd5b600061286b8482850161262d565b91505092915050565b61287d81613212565b82525050565b61288c8161318b565b82525050565b61289b8161319d565b82525050565b6128aa816131a9565b82525050565b6128c16128bc826131a9565b6132b1565b82525050565b6128d081613224565b82525050565b60006128e182613164565b6128eb818561316f565b93506128fb81856020860161327e565b612904816132bb565b840191505092915050565b600061291c601f8361316f565b91507f50617374613a3a6275726e3a2072656465656d2077696e646f77206f766572006000830152602082019050919050565b600061295c60188361316f565b91507f50617374613a3a6d696e743a206d696e74206661696c656400000000000000006000830152602082019050919050565b600061299c60268361316f565b91507f436f6d703a3a64656c656761746542795369673a20696e76616c69642073696760008301527f6e617475726500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612a0260268361316f565b91507f436f6d703a3a64656c656761746542795369673a207369676e6174757265206560008301527f78706972656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612a68600283613180565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000612aa860278361316f565b91507f436f6d703a3a6765745072696f72566f7465733a206e6f74207965742064657460008301527f65726d696e6564000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b0e600d8361316f565b91507f6d6174682d6e6f742d73616665000000000000000000000000000000000000006000830152602082019050919050565b6000612b4e60208361316f565b91507f50617374613a3a636f6f6c646f776e3a20696e76616c69642062616c616e63656000830152602082019050919050565b6000612b8e60228361316f565b91507f436f6d703a3a64656c656761746542795369673a20696e76616c6964206e6f6e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612bf4601c8361316f565b91507f50617374613a3a6275726e3a207472616e73666572206661696c6564000000006000830152602082019050919050565b6000612c34601d8361316f565b91507f50617374613a3a6275726e3a20696e76616c696420636f6f6c646f776e0000006000830152602082019050919050565b6000612c74601b8361316f565b91507f50617374613a3a6275726e3a20696e76616c696420616d6f756e7400000000006000830152602082019050919050565b6000612cb4601b8361316f565b91507f50617374613a3a6d696e743a20696e76616c696420616d6f756e7400000000006000830152602082019050919050565b612cf0816131d3565b82525050565b612cff816131dd565b82525050565b612d0e816131ed565b82525050565b612d1d8161326c565b82525050565b612d2c816131fa565b82525050565b6000612d3d82612a5b565b9150612d4982856128b0565b602082019150612d5982846128b0565b6020820191508190509392505050565b6000602082019050612d7e6000830184612883565b92915050565b6000606082019050612d996000830186612874565b612da66020830185612883565b612db36040830184612ce7565b949350505050565b6000604082019050612dd06000830185612883565b612ddd6020830184612ce7565b9392505050565b6000602082019050612df96000830184612892565b92915050565b6000602082019050612e1460008301846128a1565b92915050565b6000608082019050612e2f60008301876128a1565b612e3c6020830186612883565b612e496040830185612ce7565b612e566060830184612ce7565b95945050505050565b6000608082019050612e7460008301876128a1565b612e8160208301866128a1565b612e8e6040830185612ce7565b612e9b6060830184612883565b95945050505050565b6000608082019050612eb960008301876128a1565b612ec66020830186612d05565b612ed360408301856128a1565b612ee060608301846128a1565b95945050505050565b6000602082019050612efe60008301846128c7565b92915050565b60006020820190508181036000830152612f1e81846128d6565b905092915050565b60006020820190508181036000830152612f3f8161290f565b9050919050565b60006020820190508181036000830152612f5f8161294f565b9050919050565b60006020820190508181036000830152612f7f8161298f565b9050919050565b60006020820190508181036000830152612f9f816129f5565b9050919050565b60006020820190508181036000830152612fbf81612a9b565b9050919050565b60006020820190508181036000830152612fdf81612b01565b9050919050565b60006020820190508181036000830152612fff81612b41565b9050919050565b6000602082019050818103600083015261301f81612b81565b9050919050565b6000602082019050818103600083015261303f81612be7565b9050919050565b6000602082019050818103600083015261305f81612c27565b9050919050565b6000602082019050818103600083015261307f81612c67565b9050919050565b6000602082019050818103600083015261309f81612ca7565b9050919050565b60006020820190506130bb6000830184612ce7565b92915050565b60006020820190506130d66000830184612cf6565b92915050565b60006040820190506130f16000830185612cf6565b6130fe6020830184612d23565b9392505050565b600060208201905061311a6000830184612d05565b92915050565b60006020820190506131356000830184612d23565b92915050565b60006040820190506131506000830185612d14565b61315d6020830184612d14565b9392505050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000613196826131b3565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b600061321d82613248565b9050919050565b600061322f82613236565b9050919050565b6000613241826131b3565b9050919050565b60006132538261325a565b9050919050565b6000613265826131b3565b9050919050565b6000613277826131fa565b9050919050565b60005b8381101561329c578082015181840152602081019050613281565b838111156132ab576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b6132d58161318b565b81146132e057600080fd5b50565b6132ec8161319d565b81146132f757600080fd5b50565b613303816131a9565b811461330e57600080fd5b50565b61331a816131d3565b811461332557600080fd5b50565b613331816131dd565b811461333c57600080fd5b50565b613348816131ed565b811461335357600080fd5b5056fe50617374613a3a6d696e743a20616d6f756e742065786365656473203936206269747350617374613a3a6275726e3a20616d6f756e7420657863656564732039362062697473436f6d703a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f777350617374613a3a6275726e3a206275726e20616d6f756e7420756e646572666c6f777350617374613a3a6d696e743a206d696e7420616d6f756e74206f766572666c6f77734974277320616c6c20706173746120f09f8c8ef09fa791e2808df09f9a80f09f94abf09fa791e2808df09f9a80a2646970667358221220d0782772c8f79ab74f43bb500598a04c6522610adb0397a7ac38753d4738ef3264736f6c634300060c0033000000000000000000000000000000000000000000000000000000000003f480000000000000000000000000000000000000000000000000000000000002a300
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101a95760003560e01c8063782d6fe1116100f9578063a9059cbb11610097578063c3cda52011610071578063c3cda520146104fa578063dd62ed3e14610516578063e7a324dc14610546578063f1127ed814610564576101a9565b8063a9059cbb1461047c578063b37346cf146104ac578063b4b5ea57146104ca576101a9565b80638eaaa94c116100d35780638eaaa94c146103f457806395d89b411461042457806398b4e8d3146104425780639dc29fac14610460576101a9565b8063782d6fe11461038a578063787a08a6146103ba5780637ecebe00146103c4576101a9565b806340c10f19116101665780635c19a95c116101405780635c19a95c146102f05780636fcfff451461030c57806370a082311461033c57806372b49d631461036c576101a9565b806340c10f19146102865780635001cade146102a2578063587cde1e146102c0576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101fc57806320606b701461021a57806323b872dd14610238578063313ce56714610268575b600080fd5b6101b6610595565b6040516101c39190612f04565b60405180910390f35b6101e660048036038101906101e1919061274a565b6105ce565b6040516101f39190612de4565b60405180910390f35b610204610625565b60405161021191906130a6565b60405180910390f35b61022261062b565b60405161022f9190612dff565b60405180910390f35b610252600480360381019061024d91906126fb565b61064f565b60405161025f9190612de4565b60405180910390f35b6102706106a6565b60405161027d9190613105565b60405180910390f35b6102a0600480360381019061029b919061274a565b6106ab565b005b6102aa610a78565b6040516102b79190612f04565b60405180910390f35b6102da60048036038101906102d59190612696565b610a94565b6040516102e79190612d69565b60405180910390f35b61030a60048036038101906103059190612696565b610ac7565b005b61032660048036038101906103219190612696565b610ad4565b60405161033391906130c1565b60405180910390f35b61035660048036038101906103519190612696565b610af7565b60405161036391906130a6565b60405180910390f35b610374610b66565b60405161038191906130a6565b60405180910390f35b6103a4600480360381019061039f919061274a565b610b8a565b6040516103b19190613120565b60405180910390f35b6103c2610f99565b005b6103de60048036038101906103d99190612696565b6110cb565b6040516103eb91906130a6565b60405180910390f35b61040e60048036038101906104099190612696565b6110e3565b60405161041b91906130a6565b60405180910390f35b61042c6110fb565b6040516104399190612f04565b60405180910390f35b61044a611134565b6040516104579190612ee9565b60405180910390f35b61047a6004803603810190610475919061274a565b61114c565b005b6104966004803603810190610491919061274a565b6116a4565b6040516104a39190612de4565b60405180910390f35b6104b46116fb565b6040516104c191906130a6565b60405180910390f35b6104e460048036038101906104df9190612696565b61171f565b6040516104f19190613120565b60405180910390f35b610514600480360381019061050f9190612786565b61180d565b005b610530600480360381019061052b91906126bf565b611aca565b60405161053d91906130a6565b60405180910390f35b61054e611b77565b60405161055b9190612dff565b60405180910390f35b61057e6004803603810190610579919061280f565b611b9b565b60405161058c9291906130dc565b60405180910390f35b6040518060400160405280600e81526020017f50617374612044414f20f09f8d9d00000000000000000000000000000000000081525081565b60006040518060600160405280602d8152602001613465602d91396040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061c9190612f04565b60405180910390fd5b60005481565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b60006040518060600160405280602d8152602001613465602d91396040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069d9190612f04565b60405180910390fd5b601281565b60006106cf8260405180606001604052806023815260200161335760239139611bf4565b90506000816bffffffffffffffffffffffff161415610723576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071a90613086565b60405180910390fd5b73e92346d9369fe03b735ed9bdeb6bdc2591b8227e73ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b815260040161077493929190612d84565b602060405180830381600087803b15801561078e57600080fd5b505af11580156107a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107c6919061284b565b610805576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fc90612f46565b60405180910390fd5b61087f600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff168260405180606001604052806022815260200161344360229139611c52565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506108f860005483611cc8565b600081905550600073ffffffffffffffffffffffffffffffffffffffff16600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156109a15761099c8384611d18565b610a0d565b610a0c6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611ed8565b5b8273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610a6b91906130a6565b60405180910390a3505050565b6040518060600160405280602d8152602001613465602d913981565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ad13382611d18565b50565b60066020528060005260406000206000915054906101000a900463ffffffff1681565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff169050919050565b7f000000000000000000000000000000000000000000000000000000000003f48081565b6000438210610bce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc590612fa6565b60405180910390fd5b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff161415610c3b576000915050610f93565b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff1611610d3d57600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff16915050610f93565b82600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008063ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff161115610dbe576000915050610f93565b6000806001830390505b8163ffffffff168163ffffffff161115610f15576000600283830363ffffffff1681610df057fe5b0482039050610dfd6125ea565b600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff1681525050905086816000015163ffffffff161415610eed57806020015195505050505050610f93565b86816000015163ffffffff161015610f0757819350610f0e565b6001820392505b5050610dc8565b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff1693505050505b92915050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff161415611042576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103990612fe6565b60405180910390fd5b42600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167ff52f50426b32362d3e6bb8cb36b7074756b224622def6352a59eac7f66ebe6e860405160405180910390a2565b60076020528060005260406000206000915090505481565b60016020528060005260406000206000915090505481565b6040518060400160405280600581526020017f504153544100000000000000000000000000000000000000000000000000000081525081565b73e92346d9369fe03b735ed9bdeb6bdc2591b8227e81565b60006111708260405180606001604052806023815260200161337a60239139611bf4565b90506000816bffffffffffffffffffffffff1614156111c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bb90613066565b60405180910390fd5b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050611232817f000000000000000000000000000000000000000000000000000000000003f480611cc8565b4211611273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126a90613046565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000002a3006112c7426112c2847f000000000000000000000000000000000000000000000000000000000003f480611cc8565b6121d3565b1115611308576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ff90612f26565b60405180910390fd5b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16836bffffffffffffffffffffffff161161138a57826113e3565b600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff165b905061145f600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff168260405180606001604052806023815260200161342060239139612223565b600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506114e6600054826bffffffffffffffffffffffff166121d3565b60008190555073e92346d9369fe03b735ed9bdeb6bdc2591b8227e73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb86866040518363ffffffff1660e01b815260040161153b929190612dbb565b602060405180830381600087803b15801561155557600080fd5b505af1158015611569573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061158d919061284b565b6115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c390613026565b60405180910390fd5b611637600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600083611ed8565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161169591906130a6565b60405180910390a35050505050565b60006040518060600160405280602d8152602001613465602d91396040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f29190612f04565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000002a30081565b600080600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff16905060008163ffffffff1611611789576000611805565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001830363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b915050919050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280600e81526020017f50617374612044414f20f09f8d9d00000000000000000000000000000000000081525080519060200120611875612294565b306040516020016118899493929190612e5f565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8888886040516020016118da9493929190612e1a565b60405160208183030381529060405280519060200120905060008282604051602001611907929190612d32565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516119449493929190612ea4565b6020604051602081039080840390855afa158015611966573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d990612f66565b60405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558914611a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6890613006565b60405180910390fd5b87421115611ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aab90612f86565b60405180910390fd5b611abe818b611d18565b50505050505050505050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff16905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b6005602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900463ffffffff16908060000160049054906101000a90046bffffffffffffffffffffffff16905082565b60006c0100000000000000000000000083108290611c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3f9190612f04565b60405180910390fd5b5082905092915050565b6000808385019050846bffffffffffffffffffffffff16816bffffffffffffffffffffffff1610158390611cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb39190612f04565b60405180910390fd5b50809150509392505050565b6000828284019150811015611d12576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0990612fc6565b60405180910390fd5b92915050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a90046bffffffffffffffffffffffff16905082600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a4611ed2828483611ed8565b50505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611f2257506000816bffffffffffffffffffffffff16115b156121ce57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161461207a576000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611611fc5576000612041565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b9050600061206882856040518060600160405280602881526020016133d160289139612223565b9050612076868484846122a1565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146121cd576000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900463ffffffff1690506000808263ffffffff1611612118576000612194565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001840363ffffffff1663ffffffff16815260200190815260200160002060000160049054906101000a90046bffffffffffffffffffffffff165b905060006121bb82856040518060600160405280602781526020016133f960279139611c52565b90506121c9858484846122a1565b5050505b5b505050565b600082828403915081111561221d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221490612fc6565b60405180910390fd5b92915050565b6000836bffffffffffffffffffffffff16836bffffffffffffffffffffffff1611158290612287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227e9190612f04565b60405180910390fd5b5082840390509392505050565b6000804690508091505090565b60006122c54360405180606001604052806034815260200161339d60349139612594565b905060008463ffffffff1611801561235a57508063ffffffff16600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160009054906101000a900463ffffffff1663ffffffff16145b156123f55781600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001870363ffffffff1663ffffffff16815260200190815260200160002060000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555061253d565b60405180604001604052808263ffffffff168152602001836bffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008663ffffffff1663ffffffff16815260200190815260200160002060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff16021790555090505060018401600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548163ffffffff021916908363ffffffff1602179055505b8473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724848460405161258592919061313b565b60405180910390a25050505050565b6000640100000000831082906125e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d79190612f04565b60405180910390fd5b5082905092915050565b6040518060400160405280600063ffffffff16815260200160006bffffffffffffffffffffffff1681525090565b600081359050612627816132cc565b92915050565b60008151905061263c816132e3565b92915050565b600081359050612651816132fa565b92915050565b60008135905061266681613311565b92915050565b60008135905061267b81613328565b92915050565b6000813590506126908161333f565b92915050565b6000602082840312156126a857600080fd5b60006126b684828501612618565b91505092915050565b600080604083850312156126d257600080fd5b60006126e085828601612618565b92505060206126f185828601612618565b9150509250929050565b60008060006060848603121561271057600080fd5b600061271e86828701612618565b935050602061272f86828701612618565b925050604061274086828701612657565b9150509250925092565b6000806040838503121561275d57600080fd5b600061276b85828601612618565b925050602061277c85828601612657565b9150509250929050565b60008060008060008060c0878903121561279f57600080fd5b60006127ad89828a01612618565b96505060206127be89828a01612657565b95505060406127cf89828a01612657565b94505060606127e089828a01612681565b93505060806127f189828a01612642565b92505060a061280289828a01612642565b9150509295509295509295565b6000806040838503121561282257600080fd5b600061283085828601612618565b92505060206128418582860161266c565b9150509250929050565b60006020828403121561285d57600080fd5b600061286b8482850161262d565b91505092915050565b61287d81613212565b82525050565b61288c8161318b565b82525050565b61289b8161319d565b82525050565b6128aa816131a9565b82525050565b6128c16128bc826131a9565b6132b1565b82525050565b6128d081613224565b82525050565b60006128e182613164565b6128eb818561316f565b93506128fb81856020860161327e565b612904816132bb565b840191505092915050565b600061291c601f8361316f565b91507f50617374613a3a6275726e3a2072656465656d2077696e646f77206f766572006000830152602082019050919050565b600061295c60188361316f565b91507f50617374613a3a6d696e743a206d696e74206661696c656400000000000000006000830152602082019050919050565b600061299c60268361316f565b91507f436f6d703a3a64656c656761746542795369673a20696e76616c69642073696760008301527f6e617475726500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612a0260268361316f565b91507f436f6d703a3a64656c656761746542795369673a207369676e6174757265206560008301527f78706972656400000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612a68600283613180565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b6000612aa860278361316f565b91507f436f6d703a3a6765745072696f72566f7465733a206e6f74207965742064657460008301527f65726d696e6564000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612b0e600d8361316f565b91507f6d6174682d6e6f742d73616665000000000000000000000000000000000000006000830152602082019050919050565b6000612b4e60208361316f565b91507f50617374613a3a636f6f6c646f776e3a20696e76616c69642062616c616e63656000830152602082019050919050565b6000612b8e60228361316f565b91507f436f6d703a3a64656c656761746542795369673a20696e76616c6964206e6f6e60008301527f63650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612bf4601c8361316f565b91507f50617374613a3a6275726e3a207472616e73666572206661696c6564000000006000830152602082019050919050565b6000612c34601d8361316f565b91507f50617374613a3a6275726e3a20696e76616c696420636f6f6c646f776e0000006000830152602082019050919050565b6000612c74601b8361316f565b91507f50617374613a3a6275726e3a20696e76616c696420616d6f756e7400000000006000830152602082019050919050565b6000612cb4601b8361316f565b91507f50617374613a3a6d696e743a20696e76616c696420616d6f756e7400000000006000830152602082019050919050565b612cf0816131d3565b82525050565b612cff816131dd565b82525050565b612d0e816131ed565b82525050565b612d1d8161326c565b82525050565b612d2c816131fa565b82525050565b6000612d3d82612a5b565b9150612d4982856128b0565b602082019150612d5982846128b0565b6020820191508190509392505050565b6000602082019050612d7e6000830184612883565b92915050565b6000606082019050612d996000830186612874565b612da66020830185612883565b612db36040830184612ce7565b949350505050565b6000604082019050612dd06000830185612883565b612ddd6020830184612ce7565b9392505050565b6000602082019050612df96000830184612892565b92915050565b6000602082019050612e1460008301846128a1565b92915050565b6000608082019050612e2f60008301876128a1565b612e3c6020830186612883565b612e496040830185612ce7565b612e566060830184612ce7565b95945050505050565b6000608082019050612e7460008301876128a1565b612e8160208301866128a1565b612e8e6040830185612ce7565b612e9b6060830184612883565b95945050505050565b6000608082019050612eb960008301876128a1565b612ec66020830186612d05565b612ed360408301856128a1565b612ee060608301846128a1565b95945050505050565b6000602082019050612efe60008301846128c7565b92915050565b60006020820190508181036000830152612f1e81846128d6565b905092915050565b60006020820190508181036000830152612f3f8161290f565b9050919050565b60006020820190508181036000830152612f5f8161294f565b9050919050565b60006020820190508181036000830152612f7f8161298f565b9050919050565b60006020820190508181036000830152612f9f816129f5565b9050919050565b60006020820190508181036000830152612fbf81612a9b565b9050919050565b60006020820190508181036000830152612fdf81612b01565b9050919050565b60006020820190508181036000830152612fff81612b41565b9050919050565b6000602082019050818103600083015261301f81612b81565b9050919050565b6000602082019050818103600083015261303f81612be7565b9050919050565b6000602082019050818103600083015261305f81612c27565b9050919050565b6000602082019050818103600083015261307f81612c67565b9050919050565b6000602082019050818103600083015261309f81612ca7565b9050919050565b60006020820190506130bb6000830184612ce7565b92915050565b60006020820190506130d66000830184612cf6565b92915050565b60006040820190506130f16000830185612cf6565b6130fe6020830184612d23565b9392505050565b600060208201905061311a6000830184612d05565b92915050565b60006020820190506131356000830184612d23565b92915050565b60006040820190506131506000830185612d14565b61315d6020830184612d14565b9392505050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000613196826131b3565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60006bffffffffffffffffffffffff82169050919050565b600061321d82613248565b9050919050565b600061322f82613236565b9050919050565b6000613241826131b3565b9050919050565b60006132538261325a565b9050919050565b6000613265826131b3565b9050919050565b6000613277826131fa565b9050919050565b60005b8381101561329c578082015181840152602081019050613281565b838111156132ab576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b6132d58161318b565b81146132e057600080fd5b50565b6132ec8161319d565b81146132f757600080fd5b50565b613303816131a9565b811461330e57600080fd5b50565b61331a816131d3565b811461332557600080fd5b50565b613331816131dd565b811461333c57600080fd5b50565b613348816131ed565b811461335357600080fd5b5056fe50617374613a3a6d696e743a20616d6f756e742065786365656473203936206269747350617374613a3a6275726e3a20616d6f756e7420657863656564732039362062697473436f6d703a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d62657220657863656564732033322062697473436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f7773436f6d703a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f777350617374613a3a6275726e3a206275726e20616d6f756e7420756e646572666c6f777350617374613a3a6d696e743a206d696e7420616d6f756e74206f766572666c6f77734974277320616c6c20706173746120f09f8c8ef09fa791e2808df09f9a80f09f94abf09fa791e2808df09f9a80a2646970667358221220d0782772c8f79ab74f43bb500598a04c6522610adb0397a7ac38753d4738ef3264736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000003f480000000000000000000000000000000000000000000000000000000000002a300
-----Decoded View---------------
Arg [0] : cooldown_ (uint256): 259200
Arg [1] : redeemWindow_ (uint256): 172800
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000000000000000000003f480
Arg [1] : 000000000000000000000000000000000000000000000000000000000002a300
Deployed Bytecode Sourcemap
235:14278:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;307:46;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6600:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;705:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1904:122;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7710:128;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;606:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3405:691;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;462:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1354:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7986:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1782:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6917:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;940:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10177:1218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5468:212;;;:::i;:::-;;2318:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1115:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;414:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;791:96;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4304:1085;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7289:111;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1071:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9524:222;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8522:801;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5986:136;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2120:117;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1643:70;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;307:46;;;;;;;;;;;;;;;;;;;:::o;6600:114::-;6673:4;6697:8;;;;;;;;;;;;;;;;;6690:16;;;;;;;;;;;:::i;:::-;;;;;;;;705:23;;;;:::o;1904:122::-;1946:80;1904:122;:::o;7710:128::-;7797:4;7821:8;;;;;;;;;;;;;;;;;7814:16;;;;;;;;;;;:::i;:::-;;;;;;;;606:35;639:2;606:35;:::o;3405:691::-;3468:13;3484:56;3491:9;3484:56;;;;;;;;;;;;;;;;;:6;:56::i;:::-;3468:72;;3569:1;3559:6;:11;;;;3551:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;844:42;3621:17;;;3639:10;3659:4;3666:9;3621:55;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3613:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;3732:66;3738:8;:13;3747:3;3738:13;;;;;;;;;;;;;;;;;;;;;;;;;3753:6;3732:66;;;;;;;;;;;;;;;;;:5;:66::i;:::-;3716:8;:13;3725:3;3716:13;;;;;;;;;;;;;;;;:82;;;;;;;;;;;;;;;;;;3823:30;3830:11;;3843:9;3823:6;:30::i;:::-;3809:11;:44;;;;3894:1;3868:28;;:9;:14;3878:3;3868:14;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;3864:163;;;3913:19;3923:3;3928;3913:9;:19::i;:::-;3864:163;;;3965:50;3988:1;3992:9;:14;4002:3;3992:14;;;;;;;;;;;;;;;;;;;;;;;;;4008:6;3965:14;:50::i;:::-;3864:163;4073:3;4052:36;;4069:1;4052:36;;;4078:9;4052:36;;;;;;:::i;:::-;;;;;;;;3405:691;;;:::o;462:81::-;;;;;;;;;;;;;;;;;;;:::o;1354:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;7986:102::-;8048:32;8058:10;8070:9;8048;:32::i;:::-;7986:102;:::o;1782:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;6917:108::-;6976:4;7000:8;:17;7009:7;7000:17;;;;;;;;;;;;;;;;;;;;;;;;;6993:24;;;;6917:108;;;:::o;940:38::-;;;:::o;10177:1218::-;10256:6;10297:12;10283:11;:26;10275:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;10366:19;10388:14;:23;10403:7;10388:23;;;;;;;;;;;;;;;;;;;;;;;;;10366:45;;10442:1;10426:12;:17;;;10422:58;;;10467:1;10460:8;;;;;10422:58;10592:11;10540;:20;10552:7;10540:20;;;;;;;;;;;;;;;:38;10576:1;10561:12;:16;10540:38;;;;;;;;;;;;;;;:48;;;;;;;;;;;;:63;;;10536:147;;10627:11;:20;10639:7;10627:20;;;;;;;;;;;;;;;:38;10663:1;10648:12;:16;10627:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;10620:51;;;;;10536:147;10780:11;10744;:20;10756:7;10744:20;;;;;;;;;;;;;;;:23;10765:1;10744:23;;;;;;;;;;;;;:33;;;;;;;;;;;;:47;;;10740:88;;;10815:1;10808:8;;;;;10740:88;10840:12;10867;10897:1;10882:12;:16;10867:31;;10909:428;10924:5;10916:13;;:5;:13;;;10909:428;;;10946:13;10988:1;10979:5;10971;:13;10970:19;;;;;;;;10962:5;:27;10946:43;;11031:20;;:::i;:::-;11054:11;:20;11066:7;11054:20;;;;;;;;;;;;;;;:28;11075:6;11054:28;;;;;;;;;;;;;;;11031:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11117:11;11101:2;:12;;;:27;;;11097:229;;;11156:2;:8;;;11149:15;;;;;;;;;11097:229;11205:11;11190:2;:12;;;:26;;;11186:140;;;11245:6;11237:14;;11186:140;;;11309:1;11300:6;:10;11292:18;;11186:140;10909:428;;;;;11354:11;:20;11366:7;11354:20;;;;;;;;;;;;;;;:27;11375:5;11354:27;;;;;;;;;;;;;;;:33;;;;;;;;;;;;11347:40;;;;;10177:1218;;;;;:::o;5468:212::-;5540:1;5516:8;:20;5525:10;5516:20;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;;5508:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5619:15;5589;:27;5605:10;5589:27;;;;;;;;;;;;;;;:45;;;;5661:10;5652:20;;;;;;;;;;;;5468:212::o;2318:39::-;;;;;;;;;;;;;;;;;:::o;1115:47::-;;;;;;;;;;;;;;;;;:::o;414:39::-;;;;;;;;;;;;;;;;;;;:::o;791:96::-;844:42;791:96;:::o;4304:1085::-;4367:13;4383:56;4390:9;4383:56;;;;;;;;;;;;;;;;;:6;:56::i;:::-;4367:72;;4468:1;4458:6;:11;;;;4450:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;4514:30;4547:15;:27;4563:10;4547:27;;;;;;;;;;;;;;;;4514:60;;4625:48;4632:22;4656:16;4625:6;:48::i;:::-;4607:15;:66;4585:145;;;;;;;;;;;;:::i;:::-;;;;;;;;;4840:13;4763:73;4770:15;4787:48;4794:22;4818:16;4787:6;:48::i;:::-;4763:6;:73::i;:::-;:90;;4741:171;;;;;;;;;;;;:::i;:::-;;;;;;;;;4925:18;4956:8;:20;4965:10;4956:20;;;;;;;;;;;;;;;;;;;;;;;;;4947:29;;:6;:29;;;4946:63;;5003:6;4946:63;;;4980:8;:20;4989:10;4980:20;;;;;;;;;;;;;;;;;;;;;;;;;4946:63;4925:84;;5038:72;5044:8;:13;5053:3;5044:13;;;;;;;;;;;;;;;;;;;;;;;;;5059:11;5038:72;;;;;;;;;;;;;;;;;:5;:72::i;:::-;5022:8;:13;5031:3;5022:13;;;;;;;;;;;;;;;;:88;;;;;;;;;;;;;;;;;;5135:41;5142:11;;5163;5155:20;;5135:6;:41::i;:::-;5121:11;:55;;;;844:42;5197:13;;;5211:3;5216:9;5197:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5189:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5272:55;5287:9;:14;5297:3;5287:14;;;;;;;;;;;;;;;;;;;;;;;;;5311:1;5315:11;5272:14;:55::i;:::-;5367:1;5345:36;;5354:3;5345:36;;;5371:9;5345:36;;;;;;:::i;:::-;;;;;;;;4304:1085;;;;;:::o;7289:111::-;7359:4;7383:8;;;;;;;;;;;;;;;;;7376:16;;;;;;;;;;;:::i;:::-;;;;;;;;1071:35;;;:::o;9524:222::-;9589:6;9608:19;9630:14;:23;9645:7;9630:23;;;;;;;;;;;;;;;;;;;;;;;;;9608:45;;9686:1;9671:12;:16;;;:67;;9737:1;9671:67;;;9690:11;:20;9702:7;9690:20;;;;;;;;;;;;;;;:38;9726:1;9711:12;:16;9690:38;;;;;;;;;;;;;;;:44;;;;;;;;;;;;9671:67;9664:74;;;9524:222;;;:::o;8522:801::-;8638:23;1946:80;8718:4;;;;;;;;;;;;;;;;;8702:22;;;;;;8726:12;:10;:12::i;:::-;8748:4;8674:80;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8664:91;;;;;;8638:117;;8766:18;2166:71;8829:9;8840:5;8847:6;8797:57;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8787:68;;;;;;8766:89;;8866:14;8922:15;8939:10;8893:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;8883:68;;;;;;8866:85;;8962:17;8982:26;8992:6;9000:1;9003;9006;8982:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8962:46;;9048:1;9027:23;;:9;:23;;;;9019:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9121:6;:17;9128:9;9121:17;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;9112:5;:28;9104:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;9217:6;9198:15;:25;;9190:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;9284:31;9294:9;9305;9284;:31::i;:::-;9277:38;;;;8522:801;;;;;;:::o;5986:136::-;6062:4;6086:10;:19;6097:7;6086:19;;;;;;;;;;;;;;;:28;6106:7;6086:28;;;;;;;;;;;;;;;;;;;;;;;;;6079:35;;;;5986:136;;;;:::o;2120:117::-;2166:71;2120:117;:::o;1643:70::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13555:161::-;13630:6;13661:5;13657:1;:9;13668:12;13649:32;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;13706:1;13692:16;;13555:161;;;;:::o;13724:188::-;13810:6;13829:8;13844:1;13840;:5;13829:16;;13869:1;13864:6;;:1;:6;;;;13872:12;13856:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;13903:1;13896:8;;;13724:188;;;;;:::o;14093:124::-;14148:6;14190:1;14184;14180;:5;14176:9;;;14175:16;;14167:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;14093:124;;;;:::o;11403:375::-;11480:23;11506:9;:20;11516:9;11506:20;;;;;;;;;;;;;;;;;;;;;;;;;11480:46;;11537:23;11563:8;:19;11572:9;11563:19;;;;;;;;;;;;;;;;;;;;;;;;;11537:45;;11616:9;11593;:20;11603:9;11593:20;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11687:9;11643:54;;11670:15;11643:54;;11659:9;11643:54;;;;;;;;;;;;11710:60;11725:15;11742:9;11753:16;11710:14;:60::i;:::-;11403:375;;;;:::o;11786:939::-;11891:6;11881:16;;:6;:16;;;;:30;;;;;11910:1;11901:6;:10;;;11881:30;11877:841;;;11950:1;11932:20;;:6;:20;;;11928:382;;11973:16;11992:14;:22;12007:6;11992:22;;;;;;;;;;;;;;;;;;;;;;;;;11973:41;;12033:16;12064:1;12052:9;:13;;;:60;;12111:1;12052:60;;;12068:11;:19;12080:6;12068:19;;;;;;;;;;;;;;;:34;12100:1;12088:9;:13;12068:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;12052:60;12033:79;;12131:16;12150:68;12156:9;12167:6;12150:68;;;;;;;;;;;;;;;;;:5;:68::i;:::-;12131:87;;12237:57;12254:6;12262:9;12273;12284;12237:16;:57::i;:::-;11928:382;;;;12348:1;12330:20;;:6;:20;;;12326:381;;12371:16;12390:14;:22;12405:6;12390:22;;;;;;;;;;;;;;;;;;;;;;;;;12371:41;;12431:16;12462:1;12450:9;:13;;;:60;;12509:1;12450:60;;;12466:11;:19;12478:6;12466:19;;;;;;;;;;;;;;;:34;12498:1;12486:9;:13;12466:34;;;;;;;;;;;;;;;:40;;;;;;;;;;;;12450:60;12431:79;;12529:16;12548:67;12554:9;12565:6;12548:67;;;;;;;;;;;;;;;;;:5;:67::i;:::-;12529:86;;12634:57;12651:6;12659:9;12670;12681;12634:16;:57::i;:::-;12326:381;;;;11877:841;11786:939;;;:::o;14225:124::-;14280:6;14322:1;14316;14312;:5;14308:9;;;14307:16;;14299:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;14225:124;;;;:::o;13920:165::-;14006:6;14038:1;14033:6;;:1;:6;;;;14041:12;14025:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;14076:1;14072;:5;14065:12;;13920:165;;;;;:::o;14357:153::-;14402:4;14419:15;14467:9;14456:20;;14495:7;14488:14;;;14357:153;:::o;12733:645::-;12853:18;12874:76;12881:12;12874:76;;;;;;;;;;;;;;;;;:6;:76::i;:::-;12853:97;;12982:1;12967:12;:16;;;:85;;;;;13041:11;12987:65;;:11;:22;12999:9;12987:22;;;;;;;;;;;;;;;:40;13025:1;13010:12;:16;12987:40;;;;;;;;;;;;;;;:50;;;;;;;;;;;;:65;;;12967:85;12963:339;;;13118:8;13069:11;:22;13081:9;13069:22;;;;;;;;;;;;;;;:40;13107:1;13092:12;:16;13069:40;;;;;;;;;;;;;;;:46;;;:57;;;;;;;;;;;;;;;;;;12963:339;;;13198:33;;;;;;;;13209:11;13198:33;;;;;;13222:8;13198:33;;;;;13159:11;:22;13171:9;13159:22;;;;;;;;;;;;;;;:36;13182:12;13159:36;;;;;;;;;;;;;;;:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13289:1;13274:12;:16;13246:14;:25;13261:9;13246:25;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;12963:339;13340:9;13319:51;;;13351:8;13361;13319:51;;;;;;;:::i;:::-;;;;;;;;12733:645;;;;;:::o;13386:161::-;13461:6;13492:5;13488:1;:9;13499:12;13480:32;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;13537:1;13523:16;;13386:161;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130::-;;85:6;72:20;63:29;;97:33;124:5;97:33;:::i;:::-;57:78;;;;:::o;142:128::-;;223:6;217:13;208:22;;235:30;259:5;235:30;:::i;:::-;202:68;;;;:::o;277:130::-;;357:6;344:20;335:29;;369:33;396:5;369:33;:::i;:::-;329:78;;;;:::o;414:130::-;;494:6;481:20;472:29;;506:33;533:5;506:33;:::i;:::-;466:78;;;;:::o;551:128::-;;630:6;617:20;608:29;;642:32;668:5;642:32;:::i;:::-;602:77;;;;:::o;686:126::-;;764:6;751:20;742:29;;776:31;801:5;776:31;:::i;:::-;736:76;;;;:::o;819:241::-;;923:2;911:9;902:7;898:23;894:32;891:2;;;939:1;936;929:12;891:2;974:1;991:53;1036:7;1027:6;1016:9;1012:22;991:53;:::i;:::-;981:63;;953:97;885:175;;;;:::o;1067:366::-;;;1188:2;1176:9;1167:7;1163:23;1159:32;1156:2;;;1204:1;1201;1194:12;1156:2;1239:1;1256:53;1301:7;1292:6;1281:9;1277:22;1256:53;:::i;:::-;1246:63;;1218:97;1346:2;1364:53;1409:7;1400:6;1389:9;1385:22;1364:53;:::i;:::-;1354:63;;1325:98;1150:283;;;;;:::o;1440:491::-;;;;1578:2;1566:9;1557:7;1553:23;1549:32;1546:2;;;1594:1;1591;1584:12;1546:2;1629:1;1646:53;1691:7;1682:6;1671:9;1667:22;1646:53;:::i;:::-;1636:63;;1608:97;1736:2;1754:53;1799:7;1790:6;1779:9;1775:22;1754:53;:::i;:::-;1744:63;;1715:98;1844:2;1862:53;1907:7;1898:6;1887:9;1883:22;1862:53;:::i;:::-;1852:63;;1823:98;1540:391;;;;;:::o;1938:366::-;;;2059:2;2047:9;2038:7;2034:23;2030:32;2027:2;;;2075:1;2072;2065:12;2027:2;2110:1;2127:53;2172:7;2163:6;2152:9;2148:22;2127:53;:::i;:::-;2117:63;;2089:97;2217:2;2235:53;2280:7;2271:6;2260:9;2256:22;2235:53;:::i;:::-;2225:63;;2196:98;2021:283;;;;;:::o;2311:865::-;;;;;;;2498:3;2486:9;2477:7;2473:23;2469:33;2466:2;;;2515:1;2512;2505:12;2466:2;2550:1;2567:53;2612:7;2603:6;2592:9;2588:22;2567:53;:::i;:::-;2557:63;;2529:97;2657:2;2675:53;2720:7;2711:6;2700:9;2696:22;2675:53;:::i;:::-;2665:63;;2636:98;2765:2;2783:53;2828:7;2819:6;2808:9;2804:22;2783:53;:::i;:::-;2773:63;;2744:98;2873:2;2891:51;2934:7;2925:6;2914:9;2910:22;2891:51;:::i;:::-;2881:61;;2852:96;2979:3;2998:53;3043:7;3034:6;3023:9;3019:22;2998:53;:::i;:::-;2988:63;;2958:99;3088:3;3107:53;3152:7;3143:6;3132:9;3128:22;3107:53;:::i;:::-;3097:63;;3067:99;2460:716;;;;;;;;:::o;3183:364::-;;;3303:2;3291:9;3282:7;3278:23;3274:32;3271:2;;;3319:1;3316;3309:12;3271:2;3354:1;3371:53;3416:7;3407:6;3396:9;3392:22;3371:53;:::i;:::-;3361:63;;3333:97;3461:2;3479:52;3523:7;3514:6;3503:9;3499:22;3479:52;:::i;:::-;3469:62;;3440:97;3265:282;;;;;:::o;3554:257::-;;3666:2;3654:9;3645:7;3641:23;3637:32;3634:2;;;3682:1;3679;3672:12;3634:2;3717:1;3734:61;3787:7;3778:6;3767:9;3763:22;3734:61;:::i;:::-;3724:71;;3696:105;3628:183;;;;:::o;3818:142::-;3909:45;3948:5;3909:45;:::i;:::-;3904:3;3897:58;3891:69;;:::o;3967:113::-;4050:24;4068:5;4050:24;:::i;:::-;4045:3;4038:37;4032:48;;:::o;4087:104::-;4164:21;4179:5;4164:21;:::i;:::-;4159:3;4152:34;4146:45;;:::o;4198:113::-;4281:24;4299:5;4281:24;:::i;:::-;4276:3;4269:37;4263:48;;:::o;4318:152::-;4419:45;4439:24;4457:5;4439:24;:::i;:::-;4419:45;:::i;:::-;4414:3;4407:58;4401:69;;:::o;4477:168::-;4581:58;4633:5;4581:58;:::i;:::-;4576:3;4569:71;4563:82;;:::o;4652:347::-;;4764:39;4797:5;4764:39;:::i;:::-;4815:71;4879:6;4874:3;4815:71;:::i;:::-;4808:78;;4891:52;4936:6;4931:3;4924:4;4917:5;4913:16;4891:52;:::i;:::-;4964:29;4986:6;4964:29;:::i;:::-;4959:3;4955:39;4948:46;;4744:255;;;;;:::o;5007:331::-;;5167:67;5231:2;5226:3;5167:67;:::i;:::-;5160:74;;5267:33;5263:1;5258:3;5254:11;5247:54;5329:2;5324:3;5320:12;5313:19;;5153:185;;;:::o;5347:324::-;;5507:67;5571:2;5566:3;5507:67;:::i;:::-;5500:74;;5607:26;5603:1;5598:3;5594:11;5587:47;5662:2;5657:3;5653:12;5646:19;;5493:178;;;:::o;5680:375::-;;5840:67;5904:2;5899:3;5840:67;:::i;:::-;5833:74;;5940:34;5936:1;5931:3;5927:11;5920:55;6009:8;6004:2;5999:3;5995:12;5988:30;6046:2;6041:3;6037:12;6030:19;;5826:229;;;:::o;6064:375::-;;6224:67;6288:2;6283:3;6224:67;:::i;:::-;6217:74;;6324:34;6320:1;6315:3;6311:11;6304:55;6393:8;6388:2;6383:3;6379:12;6372:30;6430:2;6425:3;6421:12;6414:19;;6210:229;;;:::o;6448:398::-;;6626:84;6708:1;6703:3;6626:84;:::i;:::-;6619:91;;6743:66;6739:1;6734:3;6730:11;6723:87;6838:1;6833:3;6829:11;6822:18;;6612:234;;;:::o;6855:376::-;;7015:67;7079:2;7074:3;7015:67;:::i;:::-;7008:74;;7115:34;7111:1;7106:3;7102:11;7095:55;7184:9;7179:2;7174:3;7170:12;7163:31;7222:2;7217:3;7213:12;7206:19;;7001:230;;;:::o;7240:313::-;;7400:67;7464:2;7459:3;7400:67;:::i;:::-;7393:74;;7500:15;7496:1;7491:3;7487:11;7480:36;7544:2;7539:3;7535:12;7528:19;;7386:167;;;:::o;7562:332::-;;7722:67;7786:2;7781:3;7722:67;:::i;:::-;7715:74;;7822:34;7818:1;7813:3;7809:11;7802:55;7885:2;7880:3;7876:12;7869:19;;7708:186;;;:::o;7903:371::-;;8063:67;8127:2;8122:3;8063:67;:::i;:::-;8056:74;;8163:34;8159:1;8154:3;8150:11;8143:55;8232:4;8227:2;8222:3;8218:12;8211:26;8265:2;8260:3;8256:12;8249:19;;8049:225;;;:::o;8283:328::-;;8443:67;8507:2;8502:3;8443:67;:::i;:::-;8436:74;;8543:30;8539:1;8534:3;8530:11;8523:51;8602:2;8597:3;8593:12;8586:19;;8429:182;;;:::o;8620:329::-;;8780:67;8844:2;8839:3;8780:67;:::i;:::-;8773:74;;8880:31;8876:1;8871:3;8867:11;8860:52;8940:2;8935:3;8931:12;8924:19;;8766:183;;;:::o;8958:327::-;;9118:67;9182:2;9177:3;9118:67;:::i;:::-;9111:74;;9218:29;9214:1;9209:3;9205:11;9198:50;9276:2;9271:3;9267:12;9260:19;;9104:181;;;:::o;9294:327::-;;9454:67;9518:2;9513:3;9454:67;:::i;:::-;9447:74;;9554:29;9550:1;9545:3;9541:11;9534:50;9612:2;9607:3;9603:12;9596:19;;9440:181;;;:::o;9629:113::-;9712:24;9730:5;9712:24;:::i;:::-;9707:3;9700:37;9694:48;;:::o;9749:110::-;9830:23;9847:5;9830:23;:::i;:::-;9825:3;9818:36;9812:47;;:::o;9866:107::-;9945:22;9961:5;9945:22;:::i;:::-;9940:3;9933:35;9927:46;;:::o;9980:124::-;10062:36;10092:5;10062:36;:::i;:::-;10057:3;10050:49;10044:60;;:::o;10111:110::-;10192:23;10209:5;10192:23;:::i;:::-;10187:3;10180:36;10174:47;;:::o;10228:659::-;;10492:148;10636:3;10492:148;:::i;:::-;10485:155;;10651:75;10722:3;10713:6;10651:75;:::i;:::-;10748:2;10743:3;10739:12;10732:19;;10762:75;10833:3;10824:6;10762:75;:::i;:::-;10859:2;10854:3;10850:12;10843:19;;10879:3;10872:10;;10473:414;;;;;:::o;10894:222::-;;11021:2;11010:9;11006:18;10998:26;;11035:71;11103:1;11092:9;11088:17;11079:6;11035:71;:::i;:::-;10992:124;;;;:::o;11123:460::-;;11314:2;11303:9;11299:18;11291:26;;11328:79;11404:1;11393:9;11389:17;11380:6;11328:79;:::i;:::-;11418:72;11486:2;11475:9;11471:18;11462:6;11418:72;:::i;:::-;11501;11569:2;11558:9;11554:18;11545:6;11501:72;:::i;:::-;11285:298;;;;;;:::o;11590:333::-;;11745:2;11734:9;11730:18;11722:26;;11759:71;11827:1;11816:9;11812:17;11803:6;11759:71;:::i;:::-;11841:72;11909:2;11898:9;11894:18;11885:6;11841:72;:::i;:::-;11716:207;;;;;:::o;11930:210::-;;12051:2;12040:9;12036:18;12028:26;;12065:65;12127:1;12116:9;12112:17;12103:6;12065:65;:::i;:::-;12022:118;;;;:::o;12147:222::-;;12274:2;12263:9;12259:18;12251:26;;12288:71;12356:1;12345:9;12341:17;12332:6;12288:71;:::i;:::-;12245:124;;;;:::o;12376:556::-;;12587:3;12576:9;12572:19;12564:27;;12602:71;12670:1;12659:9;12655:17;12646:6;12602:71;:::i;:::-;12684:72;12752:2;12741:9;12737:18;12728:6;12684:72;:::i;:::-;12767;12835:2;12824:9;12820:18;12811:6;12767:72;:::i;:::-;12850;12918:2;12907:9;12903:18;12894:6;12850:72;:::i;:::-;12558:374;;;;;;;:::o;12939:556::-;;13150:3;13139:9;13135:19;13127:27;;13165:71;13233:1;13222:9;13218:17;13209:6;13165:71;:::i;:::-;13247:72;13315:2;13304:9;13300:18;13291:6;13247:72;:::i;:::-;13330;13398:2;13387:9;13383:18;13374:6;13330:72;:::i;:::-;13413;13481:2;13470:9;13466:18;13457:6;13413:72;:::i;:::-;13121:374;;;;;;;:::o;13502:548::-;;13709:3;13698:9;13694:19;13686:27;;13724:71;13792:1;13781:9;13777:17;13768:6;13724:71;:::i;:::-;13806:68;13870:2;13859:9;13855:18;13846:6;13806:68;:::i;:::-;13885:72;13953:2;13942:9;13938:18;13929:6;13885:72;:::i;:::-;13968;14036:2;14025:9;14021:18;14012:6;13968:72;:::i;:::-;13680:370;;;;;;;:::o;14057:264::-;;14205:2;14194:9;14190:18;14182:26;;14219:92;14308:1;14297:9;14293:17;14284:6;14219:92;:::i;:::-;14176:145;;;;:::o;14328:310::-;;14475:2;14464:9;14460:18;14452:26;;14525:9;14519:4;14515:20;14511:1;14500:9;14496:17;14489:47;14550:78;14623:4;14614:6;14550:78;:::i;:::-;14542:86;;14446:192;;;;:::o;14645:416::-;;14845:2;14834:9;14830:18;14822:26;;14895:9;14889:4;14885:20;14881:1;14870:9;14866:17;14859:47;14920:131;15046:4;14920:131;:::i;:::-;14912:139;;14816:245;;;:::o;15068:416::-;;15268:2;15257:9;15253:18;15245:26;;15318:9;15312:4;15308:20;15304:1;15293:9;15289:17;15282:47;15343:131;15469:4;15343:131;:::i;:::-;15335:139;;15239:245;;;:::o;15491:416::-;;15691:2;15680:9;15676:18;15668:26;;15741:9;15735:4;15731:20;15727:1;15716:9;15712:17;15705:47;15766:131;15892:4;15766:131;:::i;:::-;15758:139;;15662:245;;;:::o;15914:416::-;;16114:2;16103:9;16099:18;16091:26;;16164:9;16158:4;16154:20;16150:1;16139:9;16135:17;16128:47;16189:131;16315:4;16189:131;:::i;:::-;16181:139;;16085:245;;;:::o;16337:416::-;;16537:2;16526:9;16522:18;16514:26;;16587:9;16581:4;16577:20;16573:1;16562:9;16558:17;16551:47;16612:131;16738:4;16612:131;:::i;:::-;16604:139;;16508:245;;;:::o;16760:416::-;;16960:2;16949:9;16945:18;16937:26;;17010:9;17004:4;17000:20;16996:1;16985:9;16981:17;16974:47;17035:131;17161:4;17035:131;:::i;:::-;17027:139;;16931:245;;;:::o;17183:416::-;;17383:2;17372:9;17368:18;17360:26;;17433:9;17427:4;17423:20;17419:1;17408:9;17404:17;17397:47;17458:131;17584:4;17458:131;:::i;:::-;17450:139;;17354:245;;;:::o;17606:416::-;;17806:2;17795:9;17791:18;17783:26;;17856:9;17850:4;17846:20;17842:1;17831:9;17827:17;17820:47;17881:131;18007:4;17881:131;:::i;:::-;17873:139;;17777:245;;;:::o;18029:416::-;;18229:2;18218:9;18214:18;18206:26;;18279:9;18273:4;18269:20;18265:1;18254:9;18250:17;18243:47;18304:131;18430:4;18304:131;:::i;:::-;18296:139;;18200:245;;;:::o;18452:416::-;;18652:2;18641:9;18637:18;18629:26;;18702:9;18696:4;18692:20;18688:1;18677:9;18673:17;18666:47;18727:131;18853:4;18727:131;:::i;:::-;18719:139;;18623:245;;;:::o;18875:416::-;;19075:2;19064:9;19060:18;19052:26;;19125:9;19119:4;19115:20;19111:1;19100:9;19096:17;19089:47;19150:131;19276:4;19150:131;:::i;:::-;19142:139;;19046:245;;;:::o;19298:416::-;;19498:2;19487:9;19483:18;19475:26;;19548:9;19542:4;19538:20;19534:1;19523:9;19519:17;19512:47;19573:131;19699:4;19573:131;:::i;:::-;19565:139;;19469:245;;;:::o;19721:222::-;;19848:2;19837:9;19833:18;19825:26;;19862:71;19930:1;19919:9;19915:17;19906:6;19862:71;:::i;:::-;19819:124;;;;:::o;19950:218::-;;20075:2;20064:9;20060:18;20052:26;;20089:69;20155:1;20144:9;20140:17;20131:6;20089:69;:::i;:::-;20046:122;;;;:::o;20175:325::-;;20326:2;20315:9;20311:18;20303:26;;20340:69;20406:1;20395:9;20391:17;20382:6;20340:69;:::i;:::-;20420:70;20486:2;20475:9;20471:18;20462:6;20420:70;:::i;:::-;20297:203;;;;;:::o;20507:214::-;;20630:2;20619:9;20615:18;20607:26;;20644:67;20708:1;20697:9;20693:17;20684:6;20644:67;:::i;:::-;20601:120;;;;:::o;20728:218::-;;20853:2;20842:9;20838:18;20830:26;;20867:69;20933:1;20922:9;20918:17;20909:6;20867:69;:::i;:::-;20824:122;;;;:::o;20953:329::-;;21106:2;21095:9;21091:18;21083:26;;21120:70;21187:1;21176:9;21172:17;21163:6;21120:70;:::i;:::-;21201:71;21268:2;21257:9;21253:18;21244:6;21201:71;:::i;:::-;21077:205;;;;;:::o;21289:122::-;;21383:5;21377:12;21367:22;;21348:63;;;:::o;21419:163::-;;21534:6;21529:3;21522:19;21571:4;21566:3;21562:14;21547:29;;21515:67;;;;:::o;21591:145::-;;21727:3;21712:18;;21705:31;;;;:::o;21744:91::-;;21806:24;21824:5;21806:24;:::i;:::-;21795:35;;21789:46;;;:::o;21842:85::-;;21915:5;21908:13;21901:21;21890:32;;21884:43;;;:::o;21934:72::-;;21996:5;21985:16;;21979:27;;;:::o;22013:121::-;;22086:42;22079:5;22075:54;22064:65;;22058:76;;;:::o;22141:72::-;;22203:5;22192:16;;22186:27;;;:::o;22220:88::-;;22292:10;22285:5;22281:22;22270:33;;22264:44;;;:::o;22315:81::-;;22386:4;22379:5;22375:16;22364:27;;22358:38;;;:::o;22403:104::-;;22475:26;22468:5;22464:38;22453:49;;22447:60;;;:::o;22514:129::-;;22601:37;22632:5;22601:37;:::i;:::-;22588:50;;22582:61;;;:::o;22650:163::-;;22750:58;22802:5;22750:58;:::i;:::-;22737:71;;22731:82;;;:::o;22820:129::-;;22920:24;22938:5;22920:24;:::i;:::-;22907:37;;22901:48;;;:::o;22956:121::-;;23035:37;23066:5;23035:37;:::i;:::-;23022:50;;23016:61;;;:::o;23084:108::-;;23163:24;23181:5;23163:24;:::i;:::-;23150:37;;23144:48;;;:::o;23199:106::-;;23277:23;23294:5;23277:23;:::i;:::-;23264:36;;23258:47;;;:::o;23313:268::-;23378:1;23385:101;23399:6;23396:1;23393:13;23385:101;;;23475:1;23470:3;23466:11;23460:18;23456:1;23451:3;23447:11;23440:39;23421:2;23418:1;23414:10;23409:15;;23385:101;;;23501:6;23498:1;23495:13;23492:2;;;23566:1;23557:6;23552:3;23548:16;23541:27;23492:2;23362:219;;;;:::o;23589:74::-;;23653:5;23642:16;;23636:27;;;:::o;23670:97::-;;23758:2;23754:7;23749:2;23742:5;23738:14;23734:28;23724:38;;23718:49;;;:::o;23775:117::-;23844:24;23862:5;23844:24;:::i;:::-;23837:5;23834:35;23824:2;;23883:1;23880;23873:12;23824:2;23818:74;:::o;23899:111::-;23965:21;23980:5;23965:21;:::i;:::-;23958:5;23955:32;23945:2;;24001:1;23998;23991:12;23945:2;23939:71;:::o;24017:117::-;24086:24;24104:5;24086:24;:::i;:::-;24079:5;24076:35;24066:2;;24125:1;24122;24115:12;24066:2;24060:74;:::o;24141:117::-;24210:24;24228:5;24210:24;:::i;:::-;24203:5;24200:35;24190:2;;24249:1;24246;24239:12;24190:2;24184:74;:::o;24265:115::-;24333:23;24350:5;24333:23;:::i;:::-;24326:5;24323:34;24313:2;;24371:1;24368;24361:12;24313:2;24307:73;:::o;24387:113::-;24454:22;24470:5;24454:22;:::i;:::-;24447:5;24444:33;24434:2;;24491:1;24488;24481:12;24434:2;24428:72;:::o
Swarm Source
ipfs://d0782772c8f79ab74f43bb500598a04c6522610adb0397a7ac38753d4738ef32
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.