More Info
Private Name Tags
ContractCreator
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
YieldGuilderRewarder2
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-24 */ // File @boringcrypto/boring-solidity/contracts/interfaces/[email protected] // SPDX-License-Identifier: MIT pragma solidity 0.6.12; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); // EIP 2612 function permit(address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) external; } // File @boringcrypto/boring-solidity/contracts/libraries/[email protected] pragma solidity 0.6.12; library BoringERC20 { function safeSymbol(IERC20 token) internal view returns(string memory) { (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x95d89b41)); return success && data.length > 0 ? abi.decode(data, (string)) : "???"; } function safeName(IERC20 token) internal view returns(string memory) { (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x06fdde03)); return success && data.length > 0 ? abi.decode(data, (string)) : "???"; } function safeDecimals(IERC20 token) internal view returns (uint8) { (bool success, bytes memory data) = address(token).staticcall(abi.encodeWithSelector(0x313ce567)); return success && data.length == 32 ? abi.decode(data, (uint8)) : 18; } function safeTransfer(IERC20 token, address to, uint256 amount) internal { (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(0xa9059cbb, to, amount)); require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: Transfer failed"); } function safeTransferFrom(IERC20 token, address from, address to, uint256 amount) internal { (bool success, bytes memory data) = address(token).call(abi.encodeWithSelector(0x23b872dd, from, to, amount)); require(success && (data.length == 0 || abi.decode(data, (bool))), "BoringERC20: TransferFrom failed"); } } // File contracts/interfaces/IRewarder.sol pragma solidity 0.6.12; interface IRewarder { using BoringERC20 for IERC20; function onSushiReward(uint256 pid, address user, address recipient, uint256 sushiAmount, uint256 newLpAmount) external; function pendingTokens(uint256 pid, address user, uint256 sushiAmount) external view returns (IERC20[] memory, uint256[] memory); } // File @boringcrypto/boring-solidity/contracts/libraries/[email protected] pragma solidity 0.6.12; // a library for performing overflow-safe math, updated with awesomeness from of DappHub (https://github.com/dapphub/ds-math) library BoringMath { function add(uint256 a, uint256 b) internal pure returns (uint256 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");} function sub(uint256 a, uint256 b) internal pure returns (uint256 c) {require((c = a - b) <= a, "BoringMath: Underflow");} function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {require(b == 0 || (c = a * b)/b == a, "BoringMath: Mul Overflow");} function to128(uint256 a) internal pure returns (uint128 c) { require(a <= uint128(-1), "BoringMath: uint128 Overflow"); c = uint128(a); } function to64(uint256 a) internal pure returns (uint64 c) { require(a <= uint64(-1), "BoringMath: uint64 Overflow"); c = uint64(a); } function to32(uint256 a) internal pure returns (uint32 c) { require(a <= uint32(-1), "BoringMath: uint32 Overflow"); c = uint32(a); } } library BoringMath128 { function add(uint128 a, uint128 b) internal pure returns (uint128 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");} function sub(uint128 a, uint128 b) internal pure returns (uint128 c) {require((c = a - b) <= a, "BoringMath: Underflow");} } library BoringMath64 { function add(uint64 a, uint64 b) internal pure returns (uint64 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");} function sub(uint64 a, uint64 b) internal pure returns (uint64 c) {require((c = a - b) <= a, "BoringMath: Underflow");} } library BoringMath32 { function add(uint32 a, uint32 b) internal pure returns (uint32 c) {require((c = a + b) >= b, "BoringMath: Add Overflow");} function sub(uint32 a, uint32 b) internal pure returns (uint32 c) {require((c = a - b) <= a, "BoringMath: Underflow");} } // File @boringcrypto/boring-solidity/contracts/[email protected] // Audit on 5-Jan-2021 by Keno and BoringCrypto // P1 - P3: OK pragma solidity 0.6.12; // Source: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol + Claimable.sol // Edited by BoringCrypto // T1 - T4: OK contract BoringOwnableData { // V1 - V5: OK address public owner; // V1 - V5: OK address public pendingOwner; } // T1 - T4: OK contract BoringOwnable is BoringOwnableData { // E1: OK event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () public { owner = msg.sender; emit OwnershipTransferred(address(0), msg.sender); } // F1 - F9: OK // C1 - C21: OK function transferOwnership(address newOwner, bool direct, bool renounce) public onlyOwner { if (direct) { // Checks require(newOwner != address(0) || renounce, "Ownable: zero address"); // Effects emit OwnershipTransferred(owner, newOwner); owner = newOwner; pendingOwner = address(0); } else { // Effects pendingOwner = newOwner; } } // F1 - F9: OK // C1 - C21: OK function claimOwnership() public { address _pendingOwner = pendingOwner; // Checks require(msg.sender == _pendingOwner, "Ownable: caller != pending owner"); // Effects emit OwnershipTransferred(owner, _pendingOwner); owner = _pendingOwner; pendingOwner = address(0); } // M1 - M5: OK // C1 - C21: OK modifier onlyOwner() { require(msg.sender == owner, "Ownable: caller is not the owner"); _; } } // File contracts/mocks/CloneRewarderTime.sol pragma solidity 0.6.12; pragma experimental ABIEncoderV2; interface IMasterChefV2 { function lpToken(uint256 pid) external view returns (IERC20 _lpToken); } /// @author @0xKeno contract YieldGuilderRewarder2 is IRewarder, BoringOwnable{ using BoringMath for uint256; using BoringMath128 for uint128; using BoringERC20 for IERC20; IERC20 public rewardToken; /// @notice Info of each Rewarder user. /// `amount` LP token amount the user has provided. /// `rewardDebt` The amount of Reward Token entitled to the user. struct UserInfo { uint256 amount; uint256 rewardDebt; uint256 unpaidRewards; } /// @notice Info of the rewarder pool struct PoolInfo { uint128 accToken1PerShare; uint64 lastRewardTime; } /// @notice Mapping to track the rewarder pool. mapping (uint256 => PoolInfo) public poolInfo; /// @notice Info of each user that stakes LP tokens. mapping (uint256 => mapping (address => UserInfo)) public userInfo; uint256 public rewardPerSecond; IERC20 public masterLpToken; uint256 private constant ACC_TOKEN_PRECISION = 1e12; address public immutable MASTERCHEF_V2; uint256 internal unlocked; modifier lock() { require(unlocked == 1, "LOCKED"); unlocked = 2; _; unlocked = 1; } event LogOnReward(address indexed user, uint256 indexed pid, uint256 amount, address indexed to); event LogUpdatePool(uint256 indexed pid, uint64 lastRewardTime, uint256 lpSupply, uint256 accToken1PerShare); event LogRewardPerSecond(uint256 rewardPerSecond); event LogInit(IERC20 indexed rewardToken, address owner, uint256 rewardPerSecond, IERC20 indexed masterLpToken); constructor (address _MASTERCHEF_V2) public { MASTERCHEF_V2 = _MASTERCHEF_V2; } /// @notice Serves as the constructor for clones, as clones can't have a regular constructor /// @dev `data` is abi encoded in the format: (IERC20 collateral, IERC20 asset, IOracle oracle, bytes oracleData) function init(bytes calldata data) public payable { require(rewardToken == IERC20(0), "Rewarder: already initialized"); (rewardToken, owner, rewardPerSecond, masterLpToken) = abi.decode(data, (IERC20, address, uint256, IERC20)); require(rewardToken != IERC20(0), "Rewarder: bad token"); unlocked = 1; emit LogInit(rewardToken, owner, rewardPerSecond, masterLpToken); } function onSushiReward (uint256 pid, address _user, address to, uint256, uint256 lpTokenAmount) onlyMCV2 lock override external { require(IMasterChefV2(MASTERCHEF_V2).lpToken(pid) == masterLpToken); PoolInfo memory pool = updatePool(pid); UserInfo storage user = userInfo[pid][_user]; uint256 pending; if (user.amount > 0) { pending = (user.amount.mul(pool.accToken1PerShare) / ACC_TOKEN_PRECISION).sub( user.rewardDebt ).add(user.unpaidRewards); uint256 balance = rewardToken.balanceOf(address(this)); if (pending > balance) { rewardToken.safeTransfer(to, balance); user.unpaidRewards = pending - balance; } else { rewardToken.safeTransfer(to, pending); user.unpaidRewards = 0; } } user.amount = lpTokenAmount; user.rewardDebt = lpTokenAmount.mul(pool.accToken1PerShare) / ACC_TOKEN_PRECISION; emit LogOnReward(_user, pid, pending - user.unpaidRewards, to); } function pendingTokens(uint256 pid, address user, uint256) override external view returns (IERC20[] memory rewardTokens, uint256[] memory rewardAmounts) { IERC20[] memory _rewardTokens = new IERC20[](1); _rewardTokens[0] = (rewardToken); uint256[] memory _rewardAmounts = new uint256[](1); _rewardAmounts[0] = pendingToken(pid, user); return (_rewardTokens, _rewardAmounts); } function rewardRates() external view returns (uint256[] memory) { uint256[] memory _rewardRates = new uint256[](1); _rewardRates[0] = rewardPerSecond; return (_rewardRates); } /// @notice Sets the sushi per second to be distributed. Can only be called by the owner. /// @param _rewardPerSecond The amount of Sushi to be distributed per second. function setRewardPerSecond(uint256 _rewardPerSecond) public onlyOwner { rewardPerSecond = _rewardPerSecond; emit LogRewardPerSecond(_rewardPerSecond); } /// @notice Allows owner to reclaim/withdraw any tokens (including reward tokens) held by this contract /// @param token Token to reclaim, use 0x00 for Ethereum /// @param amount Amount of tokens to reclaim /// @param to Receiver of the tokens, first of his name, rightful heir to the lost tokens, /// reightful owner of the extra tokens, and ether, protector of mistaken transfers, mother of token reclaimers, /// the Khaleesi of the Great Token Sea, the Unburnt, the Breaker of blockchains. function reclaimTokens(address token, uint256 amount, address payable to) public onlyOwner { if (token == address(0)) { to.transfer(amount); } else { IERC20(token).safeTransfer(to, amount); } } modifier onlyMCV2 { require( msg.sender == MASTERCHEF_V2, "Only MCV2 can call this function." ); _; } /// @notice View function to see pending Token /// @param _pid The index of the pool. See `poolInfo`. /// @param _user Address of user. /// @return pending SUSHI reward for a given user. function pendingToken(uint256 _pid, address _user) public view returns (uint256 pending) { PoolInfo memory pool = poolInfo[_pid]; UserInfo storage user = userInfo[_pid][_user]; uint256 accToken1PerShare = pool.accToken1PerShare; uint256 lpSupply = IMasterChefV2(MASTERCHEF_V2).lpToken(_pid).balanceOf(MASTERCHEF_V2); if (block.timestamp > pool.lastRewardTime && lpSupply != 0) { uint256 time = block.timestamp.sub(pool.lastRewardTime); uint256 sushiReward = time.mul(rewardPerSecond); accToken1PerShare = accToken1PerShare.add(sushiReward.mul(ACC_TOKEN_PRECISION) / lpSupply); } pending = (user.amount.mul(accToken1PerShare) / ACC_TOKEN_PRECISION).sub(user.rewardDebt).add(user.unpaidRewards); } /// @notice Update reward variables of the given pool. /// @param pid The index of the pool. See `poolInfo`. /// @return pool Returns the pool that was updated. function updatePool(uint256 pid) public returns (PoolInfo memory pool) { pool = poolInfo[pid]; if (block.timestamp > pool.lastRewardTime) { uint256 lpSupply = IMasterChefV2(MASTERCHEF_V2).lpToken(pid).balanceOf(MASTERCHEF_V2); if (lpSupply > 0) { uint256 time = block.timestamp.sub(pool.lastRewardTime); uint256 sushiReward = time.mul(rewardPerSecond); pool.accToken1PerShare = pool.accToken1PerShare.add((sushiReward.mul(ACC_TOKEN_PRECISION) / lpSupply).to128()); } pool.lastRewardTime = block.timestamp.to64(); poolInfo[pid] = pool; emit LogUpdatePool(pid, pool.lastRewardTime, lpSupply, pool.accToken1PerShare); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_MASTERCHEF_V2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract IERC20","name":"rewardToken","type":"address"},{"indexed":false,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"rewardPerSecond","type":"uint256"},{"indexed":true,"internalType":"contract IERC20","name":"masterLpToken","type":"address"}],"name":"LogInit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"LogOnReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"rewardPerSecond","type":"uint256"}],"name":"LogRewardPerSecond","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"pid","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"lastRewardTime","type":"uint64"},{"indexed":false,"internalType":"uint256","name":"lpSupply","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"accToken1PerShare","type":"uint256"}],"name":"LogUpdatePool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[],"name":"MASTERCHEF_V2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"init","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"masterLpToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"lpTokenAmount","type":"uint256"}],"name":"onSushiReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pid","type":"uint256"},{"internalType":"address","name":"_user","type":"address"}],"name":"pendingToken","outputs":[{"internalType":"uint256","name":"pending","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"},{"internalType":"address","name":"user","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"pendingTokens","outputs":[{"internalType":"contract IERC20[]","name":"rewardTokens","type":"address[]"},{"internalType":"uint256[]","name":"rewardAmounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"poolInfo","outputs":[{"internalType":"uint128","name":"accToken1PerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address payable","name":"to","type":"address"}],"name":"reclaimTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardPerSecond","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardRates","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardPerSecond","type":"uint256"}],"name":"setRewardPerSecond","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"},{"internalType":"bool","name":"direct","type":"bool"},{"internalType":"bool","name":"renounce","type":"bool"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"pid","type":"uint256"}],"name":"updatePool","outputs":[{"components":[{"internalType":"uint128","name":"accToken1PerShare","type":"uint128"},{"internalType":"uint64","name":"lastRewardTime","type":"uint64"}],"internalType":"struct YieldGuilderRewarder2.PoolInfo","name":"pool","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"address","name":"","type":"address"}],"name":"userInfo","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"rewardDebt","type":"uint256"},{"internalType":"uint256","name":"unpaidRewards","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60a060405234801561001057600080fd5b50604051611aa9380380611aa983398101604081905261002f91610083565b600080546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a360601b6001600160601b0319166080526100b1565b600060208284031215610094578081fd5b81516001600160a01b03811681146100aa578182fd5b9392505050565b60805160601c6119bd6100ec600039806104f0528061058552806108d152806109665280610b2f5280610bc65280610c4852506119bd6000f3fe6080604052600436106101095760003560e01c80638da5cb5b11610095578063a88a5c1611610064578063a88a5c16146102b9578063c1ea3868146102db578063d63b3c49146102fb578063e30c397814610329578063f7c618c11461033e57610109565b80638da5cb5b1461024b5780638f10369a1461026057806393f1a40b14610275578063a8594dab146102a457610109565b80634e71e0c8116100dc5780634e71e0c8146101a757806351eb05a6146101bc5780635a894421146101e957806366da58151461020b5780638bf637421461022b57610109565b8063078dfbe71461010e5780631526fe271461013057806348e43af4146101675780634ddf47d414610194575b600080fd5b34801561011a57600080fd5b5061012e6101293660046112b2565b610353565b005b34801561013c57600080fd5b5061015061014b366004611430565b610442565b60405161015e9291906118f4565b60405180910390f35b34801561017357600080fd5b50610187610182366004611460565b610470565b60405161015e9190611917565b61012e6101a2366004611355565b6106e5565b3480156101b357600080fd5b5061012e6107dc565b3480156101c857600080fd5b506101dc6101d7366004611430565b610869565b60405161015e91906118ca565b3480156101f557600080fd5b506101fe610b2d565b60405161015e919061158a565b34801561021757600080fd5b5061012e610226366004611430565b610b51565b34801561023757600080fd5b5061012e61024636600461148f565b610bbb565b34801561025757600080fd5b506101fe610ebe565b34801561026c57600080fd5b50610187610ecd565b34801561028157600080fd5b50610295610290366004611460565b610ed3565b60405161015e93929190611920565b3480156102b057600080fd5b506101fe610eff565b3480156102c557600080fd5b506102ce610f0e565b60405161015e9190611617565b3480156102e757600080fd5b5061012e6102f63660046112fc565b610f53565b34801561030757600080fd5b5061031b6103163660046114e0565b610fdb565b60405161015e9291906115b7565b34801561033557600080fd5b506101fe611086565b34801561034a57600080fd5b506101fe611095565b6000546001600160a01b031633146103865760405162461bcd60e51b815260040161037d9061176e565b60405180910390fd5b8115610421576001600160a01b0383161515806103a05750805b6103bc5760405162461bcd60e51b815260040161037d906116d1565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b03199182161790915560018054909116905561043d565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6003602052600090815260409020546001600160801b03811690600160801b900467ffffffffffffffff1682565b600061047a61129b565b5060008381526003602090815260408083208151808301835290546001600160801b038082168352600160801b90910467ffffffffffffffff168285015287855260048085528386206001600160a01b0389811688529552838620835194516378ed5d1f60e01b815293969095949092169391927f0000000000000000000000000000000000000000000000000000000000000000909216916378ed5d1f91610525918b9101611917565b60206040518083038186803b15801561053d57600080fd5b505afa158015610551573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057591906113c2565b6001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016105c0919061158a565b60206040518083038186803b1580156105d857600080fd5b505afa1580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106109190611448565b9050836020015167ffffffffffffffff164211801561062e57508015155b15610699576000610656856020015167ffffffffffffffff16426110a490919063ffffffff16565b9050600061066f600554836110cd90919063ffffffff16565b9050610694836106848364e8d4a510006110cd565b8161068b57fe5b86919004611104565b935050505b6106da83600201546106d4856001015464e8d4a510006106c68789600001546110cd90919063ffffffff16565b816106cd57fe5b04906110a4565b90611104565b979650505050505050565b6002546001600160a01b03161561070e5760405162461bcd60e51b815260040161037d90611866565b61071a818301836113de565b600680546001600160a01b03199081166001600160a01b0393841617909155600592909255600080548316938216939093179092556002805490911692821692909217918290551661077e5760405162461bcd60e51b815260040161037d9061189d565b60016007556006546002546000546005546040516001600160a01b0394851694938416937f4df6005d9c1e62d1d95592850d1c3256ee902631dd819a342f1756ab83489439936107d09391169161159e565b60405180910390a35050565b6001546001600160a01b03163381146108075760405162461bcd60e51b815260040161037d906117a3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b61087161129b565b506000818152600360209081526040918290208251808401909352546001600160801b0381168352600160801b900467ffffffffffffffff16908201819052421115610b28576040516378ed5d1f60e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906378ed5d1f90610906908690600401611917565b60206040518083038186803b15801561091e57600080fd5b505afa158015610932573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095691906113c2565b6001600160a01b03166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016109a1919061158a565b60206040518083038186803b1580156109b957600080fd5b505afa1580156109cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f19190611448565b90508015610a79576000610a1c836020015167ffffffffffffffff16426110a490919063ffffffff16565b90506000610a35600554836110cd90919063ffffffff16565b9050610a6b610a5a84610a4d8464e8d4a510006110cd565b81610a5457fe5b04611127565b85516001600160801b031690611154565b6001600160801b0316845250505b610a8242611183565b67ffffffffffffffff9081166020848101918252600086815260039091526040908190208551815493516fffffffffffffffffffffffffffffffff199094166001600160801b0382161767ffffffffffffffff60801b1916600160801b958516959095029490941790555185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad35392610b1e9290918691611936565b60405180910390a2505b919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03163314610b7b5760405162461bcd60e51b815260040161037d9061176e565b60058190556040517fde89cb17ac7f58f94792b3e91e086ed85403819c24ceea882491f960ccb1a27890610bb0908390611917565b60405180910390a150565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c035760405162461bcd60e51b815260040161037d90611690565b600754600114610c255760405162461bcd60e51b815260040161037d9061180f565b60026007556006546040516378ed5d1f60e01b81526001600160a01b03918216917f000000000000000000000000000000000000000000000000000000000000000016906378ed5d1f90610c7d908990600401611917565b60206040518083038186803b158015610c9557600080fd5b505afa158015610ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccd91906113c2565b6001600160a01b031614610ce057600080fd5b610ce861129b565b610cf186610869565b60008781526004602090815260408083206001600160a01b038a168452909152812080549293509115610e2d57610d5882600201546106d4846001015464e8d4a510006106c688600001516001600160801b031688600001546110cd90919063ffffffff16565b6002546040516370a0823160e01b81529192506000916001600160a01b03909116906370a0823190610d8e90309060040161158a565b60206040518083038186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190611448565b905080821115610e0c57600254610dff906001600160a01b031688836111ad565b8082036002840155610e2b565b600254610e23906001600160a01b031688846111ad565b600060028401555b505b838255825164e8d4a5100090610e4d9086906001600160801b03166110cd565b81610e5457fe5b048260010181905550856001600160a01b031688886001600160a01b03167f2ece88ca2bc08dd018db50e1d25a20bf1241e5fab1c396caa51f01a54bd2f75b85600201548503604051610ea79190611917565b60405180910390a450506001600755505050505050565b6000546001600160a01b031681565b60055481565b600460209081526000928352604080842090915290825290208054600182015460029092015490919083565b6006546001600160a01b031681565b6040805160018082528183019092526060918291906020808301908036833701905050905060055481600081518110610f4357fe5b6020908102919091010152905090565b6000546001600160a01b03163314610f7d5760405162461bcd60e51b815260040161037d9061176e565b6001600160a01b038316610fc7576040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015610fc1573d6000803e3d6000fd5b5061043d565b61043d6001600160a01b03841682846111ad565b6040805160018082528183019092526060918291829160208083019080368337505060025482519293506001600160a01b03169183915060009061101b57fe5b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526060918160200160208202803683370190505090506110628787610470565b8160008151811061106f57fe5b602090810291909101015290969095509350505050565b6001546001600160a01b031681565b6002546001600160a01b031681565b808203828111156110c75760405162461bcd60e51b815260040161037d9061162a565b92915050565b60008115806110e8575050808202828282816110e557fe5b04145b6110c75760405162461bcd60e51b815260040161037d9061182f565b818101818110156110c75760405162461bcd60e51b815260040161037d90611737565b60006001600160801b038211156111505760405162461bcd60e51b815260040161037d90611700565b5090565b8181016001600160801b0380831690821610156110c75760405162461bcd60e51b815260040161037d90611737565b600067ffffffffffffffff8211156111505760405162461bcd60e51b815260040161037d906117d8565b60006060846001600160a01b031663a9059cbb85856040516024016111d392919061159e565b6040516020818303038152906040529060e01b6020820180516001600160e01b03838183161783525050505060405161120c9190611551565b6000604051808303816000865af19150503d8060008114611249576040519150601f19603f3d011682016040523d82523d6000602084013e61124e565b606091505b50915091508180156112785750805115806112785750808060200190518101906112789190611332565b6112945760405162461bcd60e51b815260040161037d90611659565b5050505050565b604080518082019091526000808252602082015290565b6000806000606084860312156112c6578283fd5b83356112d181611961565b925060208401356112e181611979565b915060408401356112f181611979565b809150509250925092565b600080600060608486031215611310578283fd5b833561131b81611961565b92506020840135915060408401356112f181611961565b600060208284031215611343578081fd5b815161134e81611979565b9392505050565b60008060208385031215611367578182fd5b823567ffffffffffffffff8082111561137e578384fd5b818501915085601f830112611391578384fd5b81358181111561139f578485fd5b8660208285010111156113b0578485fd5b60209290920196919550909350505050565b6000602082840312156113d3578081fd5b815161134e81611961565b600080600080608085870312156113f3578081fd5b84356113fe81611961565b9350602085013561140e81611961565b925060408501359150606085013561142581611961565b939692955090935050565b600060208284031215611441578081fd5b5035919050565b600060208284031215611459578081fd5b5051919050565b60008060408385031215611472578182fd5b82359150602083013561148481611961565b809150509250929050565b600080600080600060a086880312156114a6578081fd5b8535945060208601356114b881611961565b935060408601356114c881611961565b94979396509394606081013594506080013592915050565b6000806000606084860312156114f4578283fd5b83359250602084013561150681611961565b929592945050506040919091013590565b6000815180845260208085019450808401835b838110156115465781518752958201959082019060010161152a565b509495945050505050565b60008251815b818110156115715760208186018101518583015201611557565b8181111561157f5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b828110156115f95781516001600160a01b0316845292840192908401906001016115d4565b5050508381038285015261160d8186611517565b9695505050505050565b60006020825261134e6020830184611517565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e6040820152601760f91b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b6020808252600690820152651313d0d2d15160d21b604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b6020808252601d908201527f52657761726465723a20616c726561647920696e697469616c697a6564000000604082015260600190565b6020808252601390820152722932bbb0b93232b91d103130b2103a37b5b2b760691b604082015260600190565b81516001600160801b0316815260209182015167ffffffffffffffff169181019190915260400190565b6001600160801b0392909216825267ffffffffffffffff16602082015260400190565b90815260200190565b9283526020830191909152604082015260600190565b67ffffffffffffffff93909316835260208301919091526001600160801b0316604082015260600190565b6001600160a01b038116811461197657600080fd5b50565b801515811461197657600080fdfea2646970667358221220fdf5ab05bf1472838ac30322b29284d4240a773efab977d6346dc27ef203531c64736f6c634300060c0033000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d
Deployed Bytecode
0x6080604052600436106101095760003560e01c80638da5cb5b11610095578063a88a5c1611610064578063a88a5c16146102b9578063c1ea3868146102db578063d63b3c49146102fb578063e30c397814610329578063f7c618c11461033e57610109565b80638da5cb5b1461024b5780638f10369a1461026057806393f1a40b14610275578063a8594dab146102a457610109565b80634e71e0c8116100dc5780634e71e0c8146101a757806351eb05a6146101bc5780635a894421146101e957806366da58151461020b5780638bf637421461022b57610109565b8063078dfbe71461010e5780631526fe271461013057806348e43af4146101675780634ddf47d414610194575b600080fd5b34801561011a57600080fd5b5061012e6101293660046112b2565b610353565b005b34801561013c57600080fd5b5061015061014b366004611430565b610442565b60405161015e9291906118f4565b60405180910390f35b34801561017357600080fd5b50610187610182366004611460565b610470565b60405161015e9190611917565b61012e6101a2366004611355565b6106e5565b3480156101b357600080fd5b5061012e6107dc565b3480156101c857600080fd5b506101dc6101d7366004611430565b610869565b60405161015e91906118ca565b3480156101f557600080fd5b506101fe610b2d565b60405161015e919061158a565b34801561021757600080fd5b5061012e610226366004611430565b610b51565b34801561023757600080fd5b5061012e61024636600461148f565b610bbb565b34801561025757600080fd5b506101fe610ebe565b34801561026c57600080fd5b50610187610ecd565b34801561028157600080fd5b50610295610290366004611460565b610ed3565b60405161015e93929190611920565b3480156102b057600080fd5b506101fe610eff565b3480156102c557600080fd5b506102ce610f0e565b60405161015e9190611617565b3480156102e757600080fd5b5061012e6102f63660046112fc565b610f53565b34801561030757600080fd5b5061031b6103163660046114e0565b610fdb565b60405161015e9291906115b7565b34801561033557600080fd5b506101fe611086565b34801561034a57600080fd5b506101fe611095565b6000546001600160a01b031633146103865760405162461bcd60e51b815260040161037d9061176e565b60405180910390fd5b8115610421576001600160a01b0383161515806103a05750805b6103bc5760405162461bcd60e51b815260040161037d906116d1565b600080546040516001600160a01b03808716939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0385166001600160a01b03199182161790915560018054909116905561043d565b600180546001600160a01b0319166001600160a01b0385161790555b505050565b6003602052600090815260409020546001600160801b03811690600160801b900467ffffffffffffffff1682565b600061047a61129b565b5060008381526003602090815260408083208151808301835290546001600160801b038082168352600160801b90910467ffffffffffffffff168285015287855260048085528386206001600160a01b0389811688529552838620835194516378ed5d1f60e01b815293969095949092169391927f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d909216916378ed5d1f91610525918b9101611917565b60206040518083038186803b15801561053d57600080fd5b505afa158015610551573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057591906113c2565b6001600160a01b03166370a082317f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d6040518263ffffffff1660e01b81526004016105c0919061158a565b60206040518083038186803b1580156105d857600080fd5b505afa1580156105ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106109190611448565b9050836020015167ffffffffffffffff164211801561062e57508015155b15610699576000610656856020015167ffffffffffffffff16426110a490919063ffffffff16565b9050600061066f600554836110cd90919063ffffffff16565b9050610694836106848364e8d4a510006110cd565b8161068b57fe5b86919004611104565b935050505b6106da83600201546106d4856001015464e8d4a510006106c68789600001546110cd90919063ffffffff16565b816106cd57fe5b04906110a4565b90611104565b979650505050505050565b6002546001600160a01b03161561070e5760405162461bcd60e51b815260040161037d90611866565b61071a818301836113de565b600680546001600160a01b03199081166001600160a01b0393841617909155600592909255600080548316938216939093179092556002805490911692821692909217918290551661077e5760405162461bcd60e51b815260040161037d9061189d565b60016007556006546002546000546005546040516001600160a01b0394851694938416937f4df6005d9c1e62d1d95592850d1c3256ee902631dd819a342f1756ab83489439936107d09391169161159e565b60405180910390a35050565b6001546001600160a01b03163381146108075760405162461bcd60e51b815260040161037d906117a3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b61087161129b565b506000818152600360209081526040918290208251808401909352546001600160801b0381168352600160801b900467ffffffffffffffff16908201819052421115610b28576040516378ed5d1f60e01b81526000906001600160a01b037f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d16906378ed5d1f90610906908690600401611917565b60206040518083038186803b15801561091e57600080fd5b505afa158015610932573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095691906113c2565b6001600160a01b03166370a082317f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d6040518263ffffffff1660e01b81526004016109a1919061158a565b60206040518083038186803b1580156109b957600080fd5b505afa1580156109cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f19190611448565b90508015610a79576000610a1c836020015167ffffffffffffffff16426110a490919063ffffffff16565b90506000610a35600554836110cd90919063ffffffff16565b9050610a6b610a5a84610a4d8464e8d4a510006110cd565b81610a5457fe5b04611127565b85516001600160801b031690611154565b6001600160801b0316845250505b610a8242611183565b67ffffffffffffffff9081166020848101918252600086815260039091526040908190208551815493516fffffffffffffffffffffffffffffffff199094166001600160801b0382161767ffffffffffffffff60801b1916600160801b958516959095029490941790555185927f0fc9545022a542541ad085d091fb09a2ab36fee366a4576ab63714ea907ad35392610b1e9290918691611936565b60405180910390a2505b919050565b7f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d81565b6000546001600160a01b03163314610b7b5760405162461bcd60e51b815260040161037d9061176e565b60058190556040517fde89cb17ac7f58f94792b3e91e086ed85403819c24ceea882491f960ccb1a27890610bb0908390611917565b60405180910390a150565b336001600160a01b037f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d1614610c035760405162461bcd60e51b815260040161037d90611690565b600754600114610c255760405162461bcd60e51b815260040161037d9061180f565b60026007556006546040516378ed5d1f60e01b81526001600160a01b03918216917f000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d16906378ed5d1f90610c7d908990600401611917565b60206040518083038186803b158015610c9557600080fd5b505afa158015610ca9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccd91906113c2565b6001600160a01b031614610ce057600080fd5b610ce861129b565b610cf186610869565b60008781526004602090815260408083206001600160a01b038a168452909152812080549293509115610e2d57610d5882600201546106d4846001015464e8d4a510006106c688600001516001600160801b031688600001546110cd90919063ffffffff16565b6002546040516370a0823160e01b81529192506000916001600160a01b03909116906370a0823190610d8e90309060040161158a565b60206040518083038186803b158015610da657600080fd5b505afa158015610dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dde9190611448565b905080821115610e0c57600254610dff906001600160a01b031688836111ad565b8082036002840155610e2b565b600254610e23906001600160a01b031688846111ad565b600060028401555b505b838255825164e8d4a5100090610e4d9086906001600160801b03166110cd565b81610e5457fe5b048260010181905550856001600160a01b031688886001600160a01b03167f2ece88ca2bc08dd018db50e1d25a20bf1241e5fab1c396caa51f01a54bd2f75b85600201548503604051610ea79190611917565b60405180910390a450506001600755505050505050565b6000546001600160a01b031681565b60055481565b600460209081526000928352604080842090915290825290208054600182015460029092015490919083565b6006546001600160a01b031681565b6040805160018082528183019092526060918291906020808301908036833701905050905060055481600081518110610f4357fe5b6020908102919091010152905090565b6000546001600160a01b03163314610f7d5760405162461bcd60e51b815260040161037d9061176e565b6001600160a01b038316610fc7576040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015610fc1573d6000803e3d6000fd5b5061043d565b61043d6001600160a01b03841682846111ad565b6040805160018082528183019092526060918291829160208083019080368337505060025482519293506001600160a01b03169183915060009061101b57fe5b6001600160a01b0392909216602092830291909101909101526040805160018082528183019092526060918160200160208202803683370190505090506110628787610470565b8160008151811061106f57fe5b602090810291909101015290969095509350505050565b6001546001600160a01b031681565b6002546001600160a01b031681565b808203828111156110c75760405162461bcd60e51b815260040161037d9061162a565b92915050565b60008115806110e8575050808202828282816110e557fe5b04145b6110c75760405162461bcd60e51b815260040161037d9061182f565b818101818110156110c75760405162461bcd60e51b815260040161037d90611737565b60006001600160801b038211156111505760405162461bcd60e51b815260040161037d90611700565b5090565b8181016001600160801b0380831690821610156110c75760405162461bcd60e51b815260040161037d90611737565b600067ffffffffffffffff8211156111505760405162461bcd60e51b815260040161037d906117d8565b60006060846001600160a01b031663a9059cbb85856040516024016111d392919061159e565b6040516020818303038152906040529060e01b6020820180516001600160e01b03838183161783525050505060405161120c9190611551565b6000604051808303816000865af19150503d8060008114611249576040519150601f19603f3d011682016040523d82523d6000602084013e61124e565b606091505b50915091508180156112785750805115806112785750808060200190518101906112789190611332565b6112945760405162461bcd60e51b815260040161037d90611659565b5050505050565b604080518082019091526000808252602082015290565b6000806000606084860312156112c6578283fd5b83356112d181611961565b925060208401356112e181611979565b915060408401356112f181611979565b809150509250925092565b600080600060608486031215611310578283fd5b833561131b81611961565b92506020840135915060408401356112f181611961565b600060208284031215611343578081fd5b815161134e81611979565b9392505050565b60008060208385031215611367578182fd5b823567ffffffffffffffff8082111561137e578384fd5b818501915085601f830112611391578384fd5b81358181111561139f578485fd5b8660208285010111156113b0578485fd5b60209290920196919550909350505050565b6000602082840312156113d3578081fd5b815161134e81611961565b600080600080608085870312156113f3578081fd5b84356113fe81611961565b9350602085013561140e81611961565b925060408501359150606085013561142581611961565b939692955090935050565b600060208284031215611441578081fd5b5035919050565b600060208284031215611459578081fd5b5051919050565b60008060408385031215611472578182fd5b82359150602083013561148481611961565b809150509250929050565b600080600080600060a086880312156114a6578081fd5b8535945060208601356114b881611961565b935060408601356114c881611961565b94979396509394606081013594506080013592915050565b6000806000606084860312156114f4578283fd5b83359250602084013561150681611961565b929592945050506040919091013590565b6000815180845260208085019450808401835b838110156115465781518752958201959082019060010161152a565b509495945050505050565b60008251815b818110156115715760208186018101518583015201611557565b8181111561157f5782828501525b509190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b604080825283519082018190526000906020906060840190828701845b828110156115f95781516001600160a01b0316845292840192908401906001016115d4565b5050508381038285015261160d8186611517565b9695505050505050565b60006020825261134e6020830184611517565b602080825260159082015274426f72696e674d6174683a20556e646572666c6f7760581b604082015260600190565b6020808252601c908201527f426f72696e6745524332303a205472616e73666572206661696c656400000000604082015260600190565b60208082526021908201527f4f6e6c79204d4356322063616e2063616c6c20746869732066756e6374696f6e6040820152601760f91b606082015260800190565b6020808252601590820152744f776e61626c653a207a65726f206164647265737360581b604082015260600190565b6020808252601c908201527f426f72696e674d6174683a2075696e74313238204f766572666c6f7700000000604082015260600190565b60208082526018908201527f426f72696e674d6174683a20416464204f766572666c6f770000000000000000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c657220213d2070656e64696e67206f776e6572604082015260600190565b6020808252601b908201527f426f72696e674d6174683a2075696e743634204f766572666c6f770000000000604082015260600190565b6020808252600690820152651313d0d2d15160d21b604082015260600190565b60208082526018908201527f426f72696e674d6174683a204d756c204f766572666c6f770000000000000000604082015260600190565b6020808252601d908201527f52657761726465723a20616c726561647920696e697469616c697a6564000000604082015260600190565b6020808252601390820152722932bbb0b93232b91d103130b2103a37b5b2b760691b604082015260600190565b81516001600160801b0316815260209182015167ffffffffffffffff169181019190915260400190565b6001600160801b0392909216825267ffffffffffffffff16602082015260400190565b90815260200190565b9283526020830191909152604082015260600190565b67ffffffffffffffff93909316835260208301919091526001600160801b0316604082015260600190565b6001600160a01b038116811461197657600080fd5b50565b801515811461197657600080fdfea2646970667358221220fdf5ab05bf1472838ac30322b29284d4240a773efab977d6346dc27ef203531c64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d
-----Decoded View---------------
Arg [0] : _MASTERCHEF_V2 (address): 0xEF0881eC094552b2e128Cf945EF17a6752B4Ec5d
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000ef0881ec094552b2e128cf945ef17a6752b4ec5d
Deployed Bytecode Sourcemap
6900:7448:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5611:472;;;;;;;;;;-1:-1:-1;5611:472:0;;;;;:::i;:::-;;:::i;:::-;;7597:45;;;;;;;;;;-1:-1:-1;7597:45:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;12578:802;;;;;;;;;;-1:-1:-1;12578:802:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8841:418::-;;;;;;:::i;:::-;;:::i;6132:348::-;;;;;;;;;;;;;:::i;13564:781::-;;;;;;;;;;-1:-1:-1;13564:781:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7917:38::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11238:176::-;;;;;;;;;;-1:-1:-1;11238:176:0;;;;;:::i;:::-;;:::i;9267:1136::-;;;;;;;;;;-1:-1:-1;9267:1136:0;;;;;:::i;:::-;;:::i;5187:20::-;;;;;;;;;;;;;:::i;7786:30::-;;;;;;;;;;;;;:::i;7711:66::-;;;;;;;;;;-1:-1:-1;7711:66:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;7823:27::-;;;;;;;;;;;;;:::i;10845:207::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;11945:251::-;;;;;;;;;;-1:-1:-1;11945:251:0;;;;;:::i;:::-;;:::i;10411:426::-;;;;;;;;;;-1:-1:-1;10411:426:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;5234:27::-;;;;;;;;;;;;;:::i;7076:25::-;;;;;;;;;;;;;:::i;5611:472::-;6583:5;;-1:-1:-1;;;;;6583:5:0;6569:10;:19;6561:64;;;;-1:-1:-1;;;6561:64:0;;;;;;;:::i;:::-;;;;;;;;;5716:6:::1;5712:364;;;-1:-1:-1::0;;;;;5770:22:0;::::1;::::0;::::1;::::0;:34:::1;;;5796:8;5770:34;5762:68;;;;-1:-1:-1::0;;;5762:68:0::1;;;;;;;:::i;:::-;5897:5;::::0;;5876:37:::1;::::0;-1:-1:-1;;;;;5876:37:0;;::::1;::::0;5897:5;::::1;::::0;5876:37:::1;::::0;::::1;5928:5;:16:::0;;-1:-1:-1;;;;;5928:16:0;::::1;-1:-1:-1::0;;;;;;5928:16:0;;::::1;;::::0;;;;5959:25;;;;::::1;::::0;;5712:364:::1;;;6041:12;:23:::0;;-1:-1:-1;;;;;;6041:23:0::1;-1:-1:-1::0;;;;;6041:23:0;::::1;;::::0;;5712:364:::1;5611:472:::0;;;:::o;7597:45::-;;;;;;;;;;;;-1:-1:-1;;;;;7597:45:0;;;-1:-1:-1;;;7597:45:0;;;;;:::o;12578:802::-;12650:15;12678:20;;:::i;:::-;-1:-1:-1;12701:14:0;;;;:8;:14;;;;;;;;12678:37;;;;;;;;;-1:-1:-1;;;;;12678:37:0;;;;;-1:-1:-1;;;12678:37:0;;;;;;;;;12750:14;;;:8;:14;;;;;;-1:-1:-1;;;;;12750:21:0;;;;;;;;;;12810:22;;12862:42;;-1:-1:-1;;;12862:42:0;;12678:37;;12750:21;;12782:50;;;;;12701:14;;12876:13;12862:36;;;;;;:42;;12701:14;;12862:42;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12862:52:0;;12915:13;12862:67;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12843:86;;12962:4;:19;;;12944:37;;:15;:37;:54;;;;-1:-1:-1;12985:13:0;;;12944:54;12940:309;;;13015:12;13030:40;13050:4;:19;;;13030:40;;:15;:19;;:40;;;;:::i;:::-;13015:55;;13085:19;13107:25;13116:15;;13107:4;:8;;:25;;;;:::i;:::-;13085:47;-1:-1:-1;13167:70:0;13228:8;13189:36;13085:47;7904:4;13189:15;:36::i;:::-;:47;;;;;13167:17;;13189:47;;13167:21;:70::i;:::-;13147:90;;12940:309;;;13269:103;13353:4;:18;;;13269:79;13332:4;:15;;;7904:4;13270:34;13286:17;13270:4;:11;;;:15;;:34;;;;:::i;:::-;:56;;;;;;;13269:62;:79::i;:::-;:83;;:103::i;:::-;13259:113;12578:802;-1:-1:-1;;;;;;;12578:802:0:o;8841:418::-;8910:11;;-1:-1:-1;;;;;8910:11:0;:24;8902:66;;;;-1:-1:-1;;;8902:66:0;;;;;;;:::i;:::-;9034:52;;;;9045:4;9034:52;:::i;:::-;9017:13;8979:107;;-1:-1:-1;;;;;;8979:107:0;;;-1:-1:-1;;;;;8979:107:0;;;;;;;9000:15;8979:107;;;;-1:-1:-1;8979:107:0;;;;;;;;;;;;;;8980:11;8979:107;;;;;;;;;;;;;;;;9105:11;9097:56;;;;-1:-1:-1;;;9097:56:0;;;;;;;:::i;:::-;9175:1;9164:8;:12;9237:13;;9200:11;;9237:13;9213:5;9220:15;;9192:59;;-1:-1:-1;;;;;9237:13:0;;;;9200:11;;;;9192:59;;;;9213:5;;;9192:59;:::i;:::-;;;;;;;;8841:418;;:::o;6132:348::-;6200:12;;-1:-1:-1;;;;;6200:12:0;6260:10;:27;;6252:72;;;;-1:-1:-1;;;6252:72:0;;;;;;;:::i;:::-;6383:5;;;6362:42;;-1:-1:-1;;;;;6362:42:0;;;;6383:5;;;6362:42;;;6415:5;:21;;-1:-1:-1;;;;;6415:21:0;;;-1:-1:-1;;;;;;6415:21:0;;;;;;;6447:25;;;;;;;6132:348::o;13564:781::-;13613:20;;:::i;:::-;-1:-1:-1;13653:13:0;;;;:8;:13;;;;;;;;;13646:20;;;;;;;;;-1:-1:-1;;;;;13646:20:0;;;;-1:-1:-1;;;13646:20:0;;;;;;;;;;13681:15;:37;13677:661;;;13754:41;;-1:-1:-1;;;13754:41:0;;13735:16;;-1:-1:-1;;;;;13768:13:0;13754:36;;;;:41;;13791:3;;13754:41;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13754:51:0;;13806:13;13754:66;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13735:85;-1:-1:-1;13841:12:0;;13837:303;;13874:12;13889:40;13909:4;:19;;;13889:40;;:15;:19;;:40;;;;:::i;:::-;13874:55;;13948:19;13970:25;13979:15;;13970:4;:8;;:25;;;;:::i;:::-;13948:47;-1:-1:-1;14039:85:0;14066:57;14106:8;14067:36;13948:47;7904:4;14067:15;:36::i;:::-;:47;;;;;;14066:55;:57::i;:::-;14039:22;;-1:-1:-1;;;;;14039:26:0;;;:85::i;:::-;-1:-1:-1;;;;;14014:110:0;;;-1:-1:-1;;13837:303:0;14176:22;:15;:20;:22::i;:::-;14154:44;;;;:19;;;;:44;;;14213:13;;;;:8;:13;;;;;;;;:20;;;;;;-1:-1:-1;;14213:20:0;;;-1:-1:-1;;;;;14213:20:0;;;-1:-1:-1;;;;14213:20:0;-1:-1:-1;;;14213:20:0;;;;;;;;;;;;;14253:73;14213:13;;14253:73;;;;14213:20;;14293:8;;14253:73;:::i;:::-;;;;;;;;13677:661;;13564:781;;;:::o;7917:38::-;;;:::o;11238:176::-;6583:5;;-1:-1:-1;;;;;6583:5:0;6569:10;:19;6561:64;;;;-1:-1:-1;;;6561:64:0;;;;;;;:::i;:::-;11320:15:::1;:34:::0;;;11370:36:::1;::::0;::::1;::::0;::::1;::::0;11338:16;;11370:36:::1;:::i;:::-;;;;;;;;11238:176:::0;:::o;9267:1136::-;12255:10;-1:-1:-1;;;;;12269:13:0;12255:27;;12233:110;;;;-1:-1:-1;;;12233:110:0;;;;;;;:::i;:::-;8031:8:::1;;8043:1;8031:13;8023:32;;;;-1:-1:-1::0;;;8023:32:0::1;;;;;;;:::i;:::-;8077:1;8066:8;:12:::0;9459:13:::2;::::0;9414:41:::2;::::0;-1:-1:-1;;;9414:41:0;;-1:-1:-1;;;;;9459:13:0;;::::2;::::0;9428::::2;9414:36;::::0;::::2;::::0;:41:::2;::::0;9451:3;;9414:41:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9414:58:0::2;;9406:67;;;::::0;::::2;;9486:20;;:::i;:::-;9509:15;9520:3;9509:10;:15::i;:::-;9535:21;9559:13:::0;;;:8:::2;:13;::::0;;;;;;;-1:-1:-1;;;;;9559:20:0;::::2;::::0;;;;;;;9620:11;;9486:38;;-1:-1:-1;9559:20:0;9620:15;9616:577:::2;;9679:148;9808:4;:18;;;9679:124;9769:4;:15;;;7904:4;9680:39;9696:4;:22;;;-1:-1:-1::0;;;;;9680:39:0::2;:4;:11;;;:15;;:39;;;;:::i;9679:148::-;9860:11;::::0;:36:::2;::::0;-1:-1:-1;;;9860:36:0;;9652:175;;-1:-1:-1;9842:15:0::2;::::0;-1:-1:-1;;;;;9860:11:0;;::::2;::::0;:21:::2;::::0;:36:::2;::::0;9890:4:::2;::::0;9860:36:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9842:54;;9925:7;9915;:17;9911:271;;;9953:11;::::0;:37:::2;::::0;-1:-1:-1;;;;;9953:11:0::2;9978:2:::0;9982:7;9953:24:::2;:37::i;:::-;10030:17:::0;;::::2;10009:18;::::0;::::2;:38:::0;9911:271:::2;;;10088:11;::::0;:37:::2;::::0;-1:-1:-1;;;;;10088:11:0::2;10113:2:::0;10117:7;10088:24:::2;:37::i;:::-;10165:1;10144:18;::::0;::::2;:22:::0;9911:271:::2;9616:577;;10203:27:::0;;;10277:22;;7904:4:::2;::::0;10259:41:::2;::::0;10217:13;;-1:-1:-1;;;;;10259:41:0::2;:17;:41::i;:::-;:63;;;;;;10241:4;:15;;:81;;;;10392:2;-1:-1:-1::0;;;;;10338:57:0::2;10357:3;10350:5;-1:-1:-1::0;;;;;10338:57:0::2;;10372:4;:18;;;10362:7;:28;10338:57;;;;;;:::i;:::-;;;;;;;;-1:-1:-1::0;;8112:1:0::1;8101:8;:12:::0;-1:-1:-1;;;;;;9267:1136:0:o;5187:20::-;;;-1:-1:-1;;;;;5187:20:0;;:::o;7786:30::-;;;;:::o;7711:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7823:27::-;;;-1:-1:-1;;;;;7823:27:0;;:::o;10845:207::-;10952:16;;;10966:1;10952:16;;;;;;;;;10891;;;;10952;;;;;;;;;;;;-1:-1:-1;10952:16:0;10920:48;;10997:15;;10979:12;10992:1;10979:15;;;;;;;;;;;;;;;;;:33;11031:12;-1:-1:-1;10845:207:0;:::o;11945:251::-;6583:5;;-1:-1:-1;;;;;6583:5:0;6569:10;:19;6561:64;;;;-1:-1:-1;;;6561:64:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12051:19:0;::::1;12047:142;;12087:19;::::0;-1:-1:-1;;;;;12087:11:0;::::1;::::0;:19;::::1;;;::::0;12099:6;;12087:19:::1;::::0;;;12099:6;12087:11;:19;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12047:142;;;12139:38;-1:-1:-1::0;;;;;12139:26:0;::::1;12166:2:::0;12170:6;12139:26:::1;:38::i;10411:426::-:0;10607:15;;;10620:1;10607:15;;;;;;;;;10502:28;;;;;;10607:15;;;;;;;;;-1:-1:-1;;10653:11:0;;10633:16;;;;-1:-1:-1;;;;;;10653:11:0;;10633:16;;-1:-1:-1;10653:11:0;;10633:16;;;;-1:-1:-1;;;;;10633:32:0;;;;:16;;;;;;;;;;;:32;10710:16;;;10724:1;10710:16;;;;;;;;;10676:31;;10710:16;;;;;;;;;;;;-1:-1:-1;10710:16:0;10676:50;;10757:23;10770:3;10775:4;10757:12;:23::i;:::-;10737:14;10752:1;10737:17;;;;;;;;;;;;;;;;;:43;10799:13;;;;-1:-1:-1;10411:426:0;-1:-1:-1;;;;10411:426:0:o;5234:27::-;;;-1:-1:-1;;;;;5234:27:0;;:::o;7076:25::-;;;-1:-1:-1;;;;;7076:25:0;;:::o;3178:122::-;3261:5;;;3256:16;;;;3248:50;;;;-1:-1:-1;;;3248:50:0;;;;;;;:::i;:::-;3178:122;;;;:::o;3306:137::-;3364:9;3384:6;;;:28;;-1:-1:-1;;3399:5:0;;;3411:1;3406;3399:5;3406:1;3394:13;;;;;:18;3384:28;3376:65;;;;-1:-1:-1;;;3376:65:0;;;;;;;:::i;3047:125::-;3130:5;;;3125:16;;;;3117:53;;;;-1:-1:-1;;;3117:53:0;;;;;;;:::i;3449:161::-;3498:9;-1:-1:-1;;;;;3528:16:0;;;3520:57;;;;-1:-1:-1;;;3520:57:0;;;;;;;:::i;:::-;-1:-1:-1;3600:1:0;3449:161::o;3970:125::-;4053:5;;;-1:-1:-1;;;;;4048:16:0;;;;;;;;4040:53;;;;-1:-1:-1;;;4040:53:0;;;;;;;:::i;3616:156::-;3664:8;3693:15;;;;3685:55;;;;-1:-1:-1;;;3685:55:0;;;;;;;:::i;1734:304::-;1819:12;1833:17;1862:5;-1:-1:-1;;;;;1854:19:0;1897:10;1909:2;1913:6;1874:46;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1874:46:0;;;;;;;;;;;1854:67;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1818:103;;;;1940:7;:57;;;;-1:-1:-1;1952:11:0;;:16;;:44;;;1983:4;1972:24;;;;;;;;;;;;:::i;:::-;1932:98;;;;-1:-1:-1;;;1932:98:0;;;;;;;:::i;:::-;1734:304;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;1527:479::-;;;;1659:2;1647:9;1638:7;1634:23;1630:32;1627:2;;;-1:-1;;1665:12;1627:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;1717:63;-1:-1;1817:2;1853:22;;359:20;384:30;359:20;384:30;:::i;:::-;1825:60;-1:-1;1922:2;1958:22;;359:20;384:30;359:20;384:30;:::i;:::-;1930:60;;;;1621:385;;;;;:::o;2013:507::-;;;;2159:2;2147:9;2138:7;2134:23;2130:32;2127:2;;;-1:-1;;2165:12;2127:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;2217:63;-1:-1;2317:2;2356:22;;1316:20;;-1:-1;2425:2;2472:22;;217:20;242:41;217:20;242:41;:::i;2527:257::-;;2639:2;2627:9;2618:7;2614:23;2610:32;2607:2;;;-1:-1;;2645:12;2607:2;507:6;501:13;519:30;543:5;519:30;:::i;:::-;2697:71;2601:183;-1:-1;;;2601:183::o;2791:365::-;;;2914:2;2902:9;2893:7;2889:23;2885:32;2882:2;;;-1:-1;;2920:12;2882:2;2978:17;2965:31;3016:18;;3008:6;3005:30;3002:2;;;-1:-1;;3038:12;3002:2;3123:6;3112:9;3108:22;;;689:3;682:4;674:6;670:17;666:27;656:2;;-1:-1;;697:12;656:2;740:6;727:20;3016:18;759:6;756:30;753:2;;;-1:-1;;789:12;753:2;884:3;2914:2;864:17;825:6;850:32;;847:41;844:2;;;-1:-1;;891:12;844:2;2914;821:17;;;;;3058:82;;-1:-1;2876:280;;-1:-1;;;;2876:280::o;3163:289::-;;3291:2;3279:9;3270:7;3266:23;3262:32;3259:2;;;-1:-1;;3297:12;3259:2;1179:6;1173:13;1191:46;1231:5;1191:46;:::i;3459:685::-;;;;;3648:3;3636:9;3627:7;3623:23;3619:33;3616:2;;;-1:-1;;3655:12;3616:2;1012:6;999:20;1024:46;1064:5;1024:46;:::i;:::-;3707:76;-1:-1;3820:2;3867:22;;217:20;242:41;217:20;242:41;:::i;:::-;3828:71;-1:-1;3936:2;3975:22;;1316:20;;-1:-1;4044:2;4096:22;;999:20;1024:46;999:20;1024:46;:::i;:::-;3610:534;;;;-1:-1;3610:534;;-1:-1;;3610:534::o;4151:241::-;;4255:2;4243:9;4234:7;4230:23;4226:32;4223:2;;;-1:-1;;4261:12;4223:2;-1:-1;1316:20;;4217:175;-1:-1;4217:175::o;4399:263::-;;4514:2;4502:9;4493:7;4489:23;4485:32;4482:2;;;-1:-1;;4520:12;4482:2;-1:-1;1464:13;;4476:186;-1:-1;4476:186::o;4669:366::-;;;4790:2;4778:9;4769:7;4765:23;4761:32;4758:2;;;-1:-1;;4796:12;4758:2;1329:6;1316:20;4848:63;;4948:2;4991:9;4987:22;72:20;97:33;124:5;97:33;:::i;:::-;4956:63;;;;4752:283;;;;;:::o;5042:743::-;;;;;;5214:3;5202:9;5193:7;5189:23;5185:33;5182:2;;;-1:-1;;5221:12;5182:2;1329:6;1316:20;5273:63;;5373:2;5416:9;5412:22;72:20;97:33;124:5;97:33;:::i;:::-;5381:63;-1:-1;5481:2;5520:22;;72:20;97:33;72:20;97:33;:::i;:::-;5176:609;;;;-1:-1;5489:63;;5589:2;5628:22;;1316:20;;-1:-1;5697:3;5737:22;1316:20;;5176:609;-1:-1;;5176:609::o;5792:491::-;;;;5930:2;5918:9;5909:7;5905:23;5901:32;5898:2;;;-1:-1;;5936:12;5898:2;1329:6;1316:20;5988:63;;6088:2;6131:9;6127:22;72:20;97:33;124:5;97:33;:::i;:::-;5892:391;;6096:63;;-1:-1;;;6196:2;6235:22;;;;1316:20;;5892:391::o;7633:690::-;;7826:5;24662:12;25349:6;25344:3;25337:19;25386:4;;25381:3;25377:14;7838:93;;25386:4;8002:5;24345:14;-1:-1;8041:260;8066:6;8063:1;8060:13;8041:260;;;8127:13;;14392:37;;6652:14;;;;25077;;;;8088:1;8081:9;8041:260;;;-1:-1;8307:10;;7757:566;-1:-1;;;;;7757:566::o;14785:271::-;;8491:5;24662:12;-1:-1;27224:101;27238:6;27235:1;27232:13;27224:101;;;8635:4;27305:11;;;;;27299:18;27286:11;;;27279:39;27253:10;27224:101;;;27340:6;27337:1;27334:13;27331:2;;;-1:-1;27396:6;27391:3;27387:16;27380:27;27331:2;-1:-1;8666:16;;;;;14919:137;-1:-1;;14919:137::o;15063:222::-;-1:-1;;;;;26506:54;;;;6751:37;;15190:2;15175:18;;15161:124::o;15292:333::-;-1:-1;;;;;26506:54;;;;6751:37;;15611:2;15596:18;;14392:37;15447:2;15432:18;;15418:207::o;15632:655::-;15900:2;15914:47;;;24662:12;;15885:18;;;25337:19;;;15632:655;;25386:4;;25377:14;;;;24345;;;15632:655;7286:286;7311:6;7308:1;7305:13;7286:286;;;7372:13;;-1:-1;;;;;26506:54;8768:63;;6470:14;;;;25077;;;;3016:18;7326:9;7286:286;;;7290:14;;;16144:9;16138:4;16134:20;25386:4;16118:9;16114:18;16107:48;16169:108;16272:4;16263:6;16169:108;:::i;:::-;16161:116;15871:416;-1:-1;;;;;;15871:416::o;16294:370::-;;16471:2;16492:17;16485:47;16546:108;16471:2;16460:9;16456:18;16640:6;16546:108;:::i;16926:416::-;17126:2;17140:47;;;9227:2;17111:18;;;25337:19;-1:-1;;;25377:14;;;9243:44;9306:12;;;17097:245::o;17349:416::-;17549:2;17563:47;;;9557:2;17534:18;;;25337:19;9593:30;25377:14;;;9573:51;9643:12;;;17520:245::o;17772:416::-;17972:2;17986:47;;;9894:2;17957:18;;;25337:19;9930:34;25377:14;;;9910:55;-1:-1;;;9985:12;;;9978:25;10022:12;;;17943:245::o;18195:416::-;18395:2;18409:47;;;10273:2;18380:18;;;25337:19;-1:-1;;;25377:14;;;10289:44;10352:12;;;18366:245::o;18618:416::-;18818:2;18832:47;;;10603:2;18803:18;;;25337:19;10639:30;25377:14;;;10619:51;10689:12;;;18789:245::o;19041:416::-;19241:2;19255:47;;;10940:2;19226:18;;;25337:19;10976:26;25377:14;;;10956:47;11022:12;;;19212:245::o;19464:416::-;19664:2;19678:47;;;19649:18;;;25337:19;11309:34;25377:14;;;11289:55;11363:12;;;19635:245::o;19887:416::-;20087:2;20101:47;;;20072:18;;;25337:19;11650:34;25377:14;;;11630:55;11704:12;;;20058:245::o;20310:416::-;20510:2;20524:47;;;11955:2;20495:18;;;25337:19;11991:29;25377:14;;;11971:50;12040:12;;;20481:245::o;20733:416::-;20933:2;20947:47;;;12291:1;20918:18;;;25337:19;-1:-1;;;25377:14;;;12306:29;12354:12;;;20904:245::o;21156:416::-;21356:2;21370:47;;;12605:2;21341:18;;;25337:19;12641:26;25377:14;;;12621:47;12687:12;;;21327:245::o;21579:416::-;21779:2;21793:47;;;12938:2;21764:18;;;25337:19;12974:31;25377:14;;;12954:52;13025:12;;;21750:245::o;22002:416::-;22202:2;22216:47;;;13276:2;22187:18;;;25337:19;-1:-1;;;25377:14;;;13292:42;13353:12;;;22173:245::o;22425:322::-;13686:23;;-1:-1;;;;;26386:46;14029:37;;13867:4;13856:16;;;13850:23;26723:18;26712:30;13925:14;;;14620:36;;;;22602:2;22587:18;;22573:174::o;22754:329::-;-1:-1;;;;;26386:46;;;;14029:37;;26723:18;26712:30;23069:2;23054:18;;14620:36;22907:2;22892:18;;22878:205::o;23090:222::-;14392:37;;;23217:2;23202:18;;23188:124::o;23319:444::-;14392:37;;;23666:2;23651:18;;14392:37;;;;23749:2;23734:18;;14392:37;23502:2;23487:18;;23473:290::o;23770:440::-;26723:18;26712:30;;;;14620:36;;24113:2;24098:18;;14392:37;;;;-1:-1;;;;;26386:46;24196:2;24181:18;;14269:50;23951:2;23936:18;;23922:288::o;27428:117::-;-1:-1;;;;;26506:54;;27487:35;;27477:2;;27536:1;;27526:12;27477:2;27471:74;:::o;27692:111::-;27773:5;26187:13;26180:21;27751:5;27748:32;27738:2;;27794:1;;27784:12
Swarm Source
ipfs://fdf5ab05bf1472838ac30322b29284d4240a773efab977d6346dc27ef203531c
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.