More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 9,118 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim Shards Fro... | 21727521 | 78 days ago | IN | 0 ETH | 0.00014479 | ||||
Claim Shards Fro... | 21727515 | 78 days ago | IN | 0 ETH | 0.0001458 | ||||
Claim Shards Fro... | 21626651 | 93 days ago | IN | 0 ETH | 0.00028836 | ||||
Claim Shards Fro... | 21626589 | 93 days ago | IN | 0 ETH | 0.00016174 | ||||
Withdraw | 21602582 | 96 days ago | IN | 0 ETH | 0.00044462 | ||||
Claim Shards Fro... | 21466406 | 115 days ago | IN | 0 ETH | 0.00101237 | ||||
Claim Shards Fro... | 21437867 | 119 days ago | IN | 0 ETH | 0.00127454 | ||||
Withdraw | 21407321 | 123 days ago | IN | 0 ETH | 0.00125064 | ||||
Withdraw | 21407310 | 123 days ago | IN | 0 ETH | 0.00143099 | ||||
Withdraw | 21353165 | 131 days ago | IN | 0 ETH | 0.00143728 | ||||
Withdraw | 20973977 | 184 days ago | IN | 0 ETH | 0.00185376 | ||||
Claim Shards Fro... | 20973975 | 184 days ago | IN | 0 ETH | 0.00156591 | ||||
Withdraw | 20810574 | 206 days ago | IN | 0 ETH | 0.00373075 | ||||
Withdraw | 20810558 | 206 days ago | IN | 0 ETH | 0.00297721 | ||||
Claim Shards Fro... | 20279332 | 281 days ago | IN | 0 ETH | 0.00005812 | ||||
Withdraw | 20256691 | 284 days ago | IN | 0 ETH | 0.00015111 | ||||
Withdraw | 20256655 | 284 days ago | IN | 0 ETH | 0.0001813 | ||||
Claim Shards Fro... | 20256654 | 284 days ago | IN | 0 ETH | 0.00011806 | ||||
Withdraw | 20203315 | 291 days ago | IN | 0 ETH | 0.00053116 | ||||
Withdraw | 20203308 | 291 days ago | IN | 0 ETH | 0.00055581 | ||||
Withdraw | 20043999 | 314 days ago | IN | 0 ETH | 0.00107889 | ||||
Claim Shards Fro... | 19791532 | 349 days ago | IN | 0 ETH | 0.0003735 | ||||
Withdraw | 19667025 | 366 days ago | IN | 0 ETH | 0.00133638 | ||||
Withdraw | 19630295 | 371 days ago | IN | 0 ETH | 0.00610087 | ||||
Withdraw | 19630277 | 371 days ago | IN | 0 ETH | 0.00622918 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
Frame
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-07-16 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface MP { function balanceOf(address wallet) external view returns(uint256); function transferFrom(address from, address to, uint256 tokenId) external; function isApprovedForAll(address wallet, address stakingAddress) external view returns(bool); } interface Shard { function determineYield(uint256 timestamp) external view returns(uint256); function mintShards(address wallet, uint256 amount) external; } /* ⠀*⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⢀⣀⣀⣠⣴⣾⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣄⣀⣀⡀⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⢸⣿⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⠛⣿⡇⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⢸⣿⠀⢸⣿⣿⣿⣿⡿⠟⠁⠀⠀⣀⣾⣿⣿⠀⣿⡇⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⢸⣿⠀⢸⣿⣿⡿⠋⠀⠀⠀⣠⣾⣿⡿⠋⠁⠀⣿⡇⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⢸⣿⠀⢸⠟⠉⠀⠀⢀⣴⣾⣿⠿⠋⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⣠⣴⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⢸⣿⠀⠀⣠⣾⣿⡿⠋⠁⠀⠀⠀⠀⠀⣠⣶⠀⣿⡇⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⢸⣿⠀⢸⣿⠿⠋⠀⠀⠀⠀⠀⢀⣠⣾⡿⠟⠀⣿⡇⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⢸⣿⠀⠘⠁⠀⠀⠀⠀⠀⢀⣴⣿⡿⠋⣠⣴⠀⣿⡇⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠀⣠⣾⣿⠟⢁⣠⣾⣿⣿⠀⣿⡇⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⢸⣿⠀⠀⠀⢀⣠⣾⡿⠋⢁⣴⣿⣿⣿⣿⣿⠀⣿⡇⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⢸⣿⣀⣀⣀⣈⣉⣉⣀⣀⣉⣉⣉⣉⣉⣉⣉⣀⣿⡇⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⠘⠛⠛⠛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠛⠛⠃⠀⠀⠀⠀⠀ ⠀*⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠛⠛⠛⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ * MIRRORPASS.XYZ */ contract Frame is Ownable { MP private mp; Shard private shards; struct LockedUp { address owner; uint256 until; uint256 token; bool hasToken; } bool public stakingAvailable = false; bool public lockupAvailable = false; bool public claimingAvailable = false; uint256 public totalStaked = 0; mapping(address => uint256[]) private tokensHeld; mapping(address => LockedUp) private lockedup; mapping(uint256 => uint256) private tokenYield; mapping(uint256 => address) private tokenToOwner; event StakedToken(address wallet, uint256[] tokens, uint256 timestamp); event WithdrewToken(address wallet, uint256 tokenId, uint256 timestamp); event LockedToken(address wallet, uint256 tokenId, uint256 timestamp); event FreeToken(address wallet, uint256 tokenId); modifier isNotContract() { require(tx.origin == msg.sender, "No contracts allowed"); _; } modifier isStakingAvailable() { require(stakingAvailable, "Staking is currently disabled"); _; } modifier isLockupAvailable() { require(lockupAvailable, "Lock Up is currently disabled"); _; } // this returns the index of the token we're looking for in the deposited wallets function findToken(uint256 token, uint256[] memory tokens) private pure returns(uint256) { uint256 index = 0; while (tokens[index] != token) { index++; } return index; } // this allows the user to start staking their tokens and it keeps track of the // tokens that are staked, as well as the timestamp that they were deposited with function stake(uint256[] memory tokens) public isStakingAvailable isNotContract { require(tokens.length >= 1 && tokens.length <= 5, "Invalid token amount"); uint256[] storage _deposits = tokensHeld[msg.sender]; for (uint256 x = 0;x < tokens.length;x++) { uint256 _token = tokens[x]; mp.transferFrom(msg.sender, address(this), _token); _deposits.push(_token); tokenYield[_token] = block.timestamp; tokenToOwner[_token] = msg.sender; } totalStaked += tokens.length; emit StakedToken(msg.sender, tokens, block.timestamp); } // this withdraws the staked tokens and claims any shards that weren't claimed function withdraw(uint256[] memory tokens) public isNotContract { require(tokens.length >= 1 && tokens.length <= 5, "Invalid token amount"); uint256 shardsGained = 0; uint256[] storage _deposits = tokensHeld[msg.sender]; for (uint256 x = 0;x < tokens.length;x++) { uint256 _token = tokens[x]; address _owner = tokenToOwner[_token]; require(_owner == msg.sender, "You didn't deposit these"); mp.transferFrom(address(this), _owner, _token); uint256 index = findToken(_token, _deposits); delete _deposits[index]; // this accumulates the shards the wallet gained from all the tokens if (claimingAvailable) { shardsGained += shards.determineYield(tokenYield[_token]); } emit WithdrewToken(_owner, _token, tokenYield[_token]); tokenYield[_token] = 0; delete _owner; } if (claimingAvailable) { shards.mintShards(msg.sender, shardsGained); } totalStaked -= tokens.length; delete shardsGained; } // this allows you to "withdraw" your erc20 tokens from the staked tokens function claimShardsFromTokens(uint256[] memory tokens) public isNotContract { require(claimingAvailable, "You're not able to withdraw your shards right now"); uint256 shardsGained = 0; for (uint256 x = 0;x < tokens.length;x++) { uint256 _token = tokens[x]; require(tokenToOwner[_token] == msg.sender, "You didn't deposit these"); shardsGained += shards.determineYield(tokenYield[_token]); tokenYield[_token] = block.timestamp; delete _token; } shards.mintShards(msg.sender, shardsGained); delete shardsGained; } // this returns the timestamp of when the token was staked, used for determining // the yield each token gives function getTimeFromToken(uint256 token) public view returns (uint256) { return tokenYield[token]; } // returns the total amount of tokens that are staked, used on the UI & for calculating yield function getTokensStaked(address wallet) public view returns (uint256[] memory) { return tokensHeld[wallet]; } // this locks in the pass into the staking contract for X amount of time, this will give access // to the application until the lock up period is over function lockIn(uint256 tokenId, uint256 period) public isLockupAvailable isNotContract { LockedUp storage _lockedup = lockedup[msg.sender]; require(!_lockedup.hasToken, "You need to withdraw your current token first"); require(period > 0 && period <= 3, "You can only lock in your token for 30 to 90 days!"); mp.transferFrom(msg.sender, address(this), tokenId); _lockedup.owner = msg.sender; _lockedup.until = block.timestamp + (30 days * period); _lockedup.token = tokenId; _lockedup.hasToken = true; totalStaked += 1; emit LockedToken(msg.sender, tokenId, _lockedup.until); } // once the users lock in period is over, they are able to withdraw the token using this function withdrawLockedUp() public isNotContract { LockedUp storage _lockedup = lockedup[msg.sender]; require(block.timestamp >= _lockedup.until, "Your lock in period is not over yet"); mp.transferFrom(address(this), _lockedup.owner, _lockedup.token); _lockedup.hasToken = false; _lockedup.until = 0; totalStaked -= 1; emit FreeToken(_lockedup.owner, _lockedup.token); } // this returns the timestamp of when the locked up period ends function getLockedInTime(address wallet) public view returns (uint256) { LockedUp storage _lockedup = lockedup[wallet]; return _lockedup.until; } // this is more of a emergency case incase anything happens that requires // people to withdraw their tokens function clearLockedupUntil(address[] memory addresses) public onlyOwner { for (uint x = 0;x < addresses.length;x++) { LockedUp storage _lockedup = lockedup[addresses[x]]; _lockedup.until = 0; } } // this is a emergency withdraw for locked in tokens if we need to do this any reason function emergencyWithdrawLockedup(address[] memory addresses) public onlyOwner { for (uint x = 0;x < addresses.length;x++) { LockedUp storage _lockedup = lockedup[addresses[x]]; if (_lockedup.hasToken) { mp.transferFrom(address(this), _lockedup.owner, _lockedup.token); _lockedup.until = 0; _lockedup.hasToken = false; totalStaked -= 1; } } } // this is used on the dashboard to calculate the pending shards function calculateTotalPendingShards(uint256[] memory tokens) public view returns(uint256) { uint256 possibleShards = 0; for (uint256 x = 0;x < tokens.length;x++) { uint256 _token = tokens[x]; possibleShards += shards.determineYield(tokenYield[_token]); delete _token; } return possibleShards; } // this is the erc721 contract that holds the OG mirror pass function setTokenContract(address tokenContract) public onlyOwner { mp = MP(tokenContract); } // this is the erc20 token that interacts with the ECOSYSTEM function setShardsContract(address shardsContract) public onlyOwner { shards = Shard(shardsContract); } // this enables / dsiables stake function setStakingState(bool available) public onlyOwner { stakingAvailable = available; } // this enables / disables lockIn function setLockupState(bool available) public onlyOwner { lockupAvailable = available; } // this enables / disable erc20 token minting incase something occurs // where we need to disable this function setShardMinting(bool available) public onlyOwner { claimingAvailable = available; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"FreeToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"LockedToken","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"tokens","type":"uint256[]"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"StakedToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"WithdrewToken","type":"event"},{"inputs":[{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"calculateTotalPendingShards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"claimShardsFromTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimingAvailable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"clearLockedupUntil","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"emergencyWithdrawLockedup","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"getLockedInTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"token","type":"uint256"}],"name":"getTimeFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"getTokensStaked","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint256","name":"period","type":"uint256"}],"name":"lockIn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockupAvailable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"available","type":"bool"}],"name":"setLockupState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"available","type":"bool"}],"name":"setShardMinting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"shardsContract","type":"address"}],"name":"setShardsContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"available","type":"bool"}],"name":"setStakingState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenContract","type":"address"}],"name":"setTokenContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakingAvailable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawLockedUp","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526002805462ffffff60a01b19169055600060035534801561002457600080fd5b5061002e33610033565b610083565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b611953806100926000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063896ee377116100c3578063aae8c0531161007c578063aae8c053146102cd578063bbcd5bbe146102e1578063c57bafad146102f4578063c7dc49fc14610320578063cfffa66914610333578063f2fde38b1461033b57600080fd5b8063896ee377146102415780638da5cb5b14610254578063983d95ce1461026f578063989072f014610282578063a1750db6146102a6578063a21bbdc5146102ba57600080fd5b806352eb77961161011557806352eb7796146101b3578063531ab193146101dc5780636c2c3491146101ef578063715018a61461021d578063817b1cd21461022557806384ff23ff1461022e57600080fd5b80630fbf0a931461015257806315ddc93314610167578063173411d81461017a5780631b62ecd51461018d5780633b51e5cf146101a0575b600080fd5b610165610160366004611612565b61034e565b005b61016561017536600461156e565b61056d565b6101656101883660046116f2565b6106a0565b61016561019b36600461156e565b610916565b6101656101ae36600461169e565b6109a0565b6101c66101c1366004611553565b6109e8565b6040516101d391906117a7565b60405180910390f35b6101656101ea36600461169e565b610a54565b61020f6101fd3660046116c0565b60009081526006602052604090205490565b6040519081526020016101d3565b610165610a9c565b61020f60035481565b61016561023c366004611612565b610ad2565b61016561024f366004611553565b610d21565b6000546040516001600160a01b0390911681526020016101d3565b61016561027d366004611612565b610d6d565b60025461029690600160a01b900460ff1681565b60405190151581526020016101d3565b60025461029690600160a81b900460ff1681565b61020f6102c8366004611612565b611123565b60025461029690600160b01b900460ff1681565b6101656102ef366004611553565b611206565b61020f610302366004611553565b6001600160a01b031660009081526005602052604090206001015490565b61016561032e36600461169e565b611252565b61016561129a565b610165610349366004611553565b61140f565b600254600160a01b900460ff166103ac5760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e672069732063757272656e746c792064697361626c656400000060448201526064015b60405180910390fd5b3233146103cb5760405162461bcd60e51b81526004016103a3906117ef565b60018151101580156103df57506005815111155b6104225760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a59081d1bdad95b88185b5bdd5b9d60621b60448201526064016103a3565b336000908152600460205260408120905b8251811015610514576000838281518110610450576104506118f1565b60209081029190910101516001546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd906104909033903090869060040161174f565b600060405180830381600087803b1580156104aa57600080fd5b505af11580156104be573d6000803e3d6000fd5b5050845460018101865560008681526020808220909201859055938452600681526040808520429055600790915290922080546001600160a01b031916331790555081905061050c816118c0565b915050610433565b508151600360008282546105289190611872565b90915550506040517f31afb4434291156233127bc71455b509c4545ab840846e50605e9d7a23f710709061056190339085904290611773565b60405180910390a15050565b6000546001600160a01b031633146105975760405162461bcd60e51b81526004016103a3906117ba565b60005b815181101561069c576000600560008484815181106105bb576105bb6118f1565b6020908102919091018101516001600160a01b03168252810191909152604001600020600381015490915060ff161561068957600154815460028301546040516323b872dd60e01b81526001600160a01b03938416936323b872dd9361062a933093929091169160040161174f565b600060405180830381600087803b15801561064457600080fd5b505af1158015610658573d6000803e3d6000fd5b5050600060018085018290556003808601805460ff19169055805491945092506106839084906118a9565b90915550505b5080610694816118c0565b91505061059a565b5050565b600254600160a81b900460ff166106f95760405162461bcd60e51b815260206004820152601d60248201527f4c6f636b2055702069732063757272656e746c792064697361626c656400000060448201526064016103a3565b3233146107185760405162461bcd60e51b81526004016103a3906117ef565b336000908152600560205260409020600381015460ff16156107925760405162461bcd60e51b815260206004820152602d60248201527f596f75206e65656420746f20776974686472617720796f75722063757272656e60448201526c1d081d1bdad95b88199a5c9cdd609a1b60648201526084016103a3565b6000821180156107a3575060038211155b61080a5760405162461bcd60e51b815260206004820152603260248201527f596f752063616e206f6e6c79206c6f636b20696e20796f757220746f6b656e20604482015271666f7220333020746f20393020646179732160701b60648201526084016103a3565b6001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd9061083e9033903090889060040161174f565b600060405180830381600087803b15801561085857600080fd5b505af115801561086c573d6000803e3d6000fd5b505082546001600160a01b031916331783555061088e90508262278d0061188a565b6108989042611872565b600180830191909155600282018490556003808301805460ff19168317905580546000906108c7908490611872565b90915550506001810154604080513381526020810186905280820192909252517f0af257d4408cfb10d11d9a8ca5cf70057deecfcf6d99090a4d10b2b64de25e2a9181900360600190a1505050565b6000546001600160a01b031633146109405760405162461bcd60e51b81526004016103a3906117ba565b60005b815181101561069c57600060056000848481518110610964576109646118f1565b6020908102919091018101516001600160a01b031682528101919091526040016000908120600101555080610998816118c0565b915050610943565b6000546001600160a01b031633146109ca5760405162461bcd60e51b81526004016103a3906117ba565b60028054911515600160a01b0260ff60a01b19909216919091179055565b6001600160a01b038116600090815260046020908152604091829020805483518184028101840190945280845260609392830182828015610a4857602002820191906000526020600020905b815481526020019060010190808311610a34575b50505050509050919050565b6000546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016103a3906117ba565b60028054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314610ac65760405162461bcd60e51b81526004016103a3906117ba565b610ad060006114aa565b565b323314610af15760405162461bcd60e51b81526004016103a3906117ef565b600254600160b01b900460ff16610b645760405162461bcd60e51b815260206004820152603160248201527f596f75277265206e6f742061626c6520746f20776974686472617720796f757260448201527020736861726473207269676874206e6f7760781b60648201526084016103a3565b6000805b8251811015610cb8576000838281518110610b8557610b856118f1565b602090810291909101810151600081815260079092526040909120549091506001600160a01b03163314610bf65760405162461bcd60e51b8152602060048201526018602482015277596f75206469646e2774206465706f73697420746865736560401b60448201526064016103a3565b60025460008281526006602052604090819020549051636342728b60e11b81526001600160a01b039092169163c684e51691610c389160040190815260200190565b60206040518083038186803b158015610c5057600080fd5b505afa158015610c64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8891906116d9565b610c929084611872565b600091825260066020526040909120429055915080610cb0816118c0565b915050610b68565b506002546040516317bbddf760e01b8152336004820152602481018390526001600160a01b03909116906317bbddf790604401600060405180830381600087803b158015610d0557600080fd5b505af1158015610d19573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610d4b5760405162461bcd60e51b81526004016103a3906117ba565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b323314610d8c5760405162461bcd60e51b81526004016103a3906117ef565b6001815110158015610da057506005815111155b610de35760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a59081d1bdad95b88185b5bdd5b9d60621b60448201526064016103a3565b336000908152600460205260408120815b835181101561108e576000848281518110610e1157610e116118f1565b602090810291909101810151600081815260079092526040909120549091506001600160a01b0316338114610e835760405162461bcd60e51b8152602060048201526018602482015277596f75206469646e2774206465706f73697420746865736560401b60448201526064016103a3565b6001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610eb79030908590879060040161174f565b600060405180830381600087803b158015610ed157600080fd5b505af1158015610ee5573d6000803e3d6000fd5b505050506000610f448386805480602002602001604051908101604052809291908181526020018280548015610f3a57602002820191906000526020600020905b815481526020019060010190808311610f26575b50505050506114fa565b9050848181548110610f5857610f586118f1565b6000918252602082200155600254600160b01b900460ff16156110145760025460008481526006602052604090819020549051636342728b60e11b81526001600160a01b039092169163c684e51691610fb79160040190815260200190565b60206040518083038186803b158015610fcf57600080fd5b505afa158015610fe3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100791906116d9565b6110119087611872565b95505b6000838152600660209081526040918290205482516001600160a01b03861681529182018690528183015290517f67ac9962d590524363ad34bbe221d3327ef9c8eea138c6ff4c8440d0223ae92c9181900360600190a1505060009081526006602052604081205580611086816118c0565b915050610df4565b50600254600160b01b900460ff1615611106576002546040516317bbddf760e01b8152336004820152602481018490526001600160a01b03909116906317bbddf790604401600060405180830381600087803b1580156110ed57600080fd5b505af1158015611101573d6000803e3d6000fd5b505050505b82516003600082825461111991906118a9565b9091555050505050565b600080805b83518110156111ff576000848281518110611145576111456118f1565b60209081029190910181015160025460008281526006909352604092839020549251636342728b60e11b815260048101939093529092506001600160a01b03169063c684e5169060240160206040518083038186803b1580156111a757600080fd5b505afa1580156111bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111df91906116d9565b6111e99084611872565b92508190506111f7816118c0565b915050611128565b5092915050565b6000546001600160a01b031633146112305760405162461bcd60e51b81526004016103a3906117ba565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461127c5760405162461bcd60e51b81526004016103a3906117ba565b60028054911515600160b01b0260ff60b01b19909216919091179055565b3233146112b95760405162461bcd60e51b81526004016103a3906117ef565b33600090815260056020526040902060018101544210156113285760405162461bcd60e51b815260206004820152602360248201527f596f7572206c6f636b20696e20706572696f64206973206e6f74206f766572206044820152621e595d60ea1b60648201526084016103a3565b600154815460028301546040516323b872dd60e01b81526001600160a01b03938416936323b872dd93611364933093929091169160040161174f565b600060405180830381600087803b15801561137e57600080fd5b505af1158015611392573d6000803e3d6000fd5b5050506003808301805460ff191690556000600180850182905582549093506113bc9084906118a9565b909155505080546002820154604080516001600160a01b03909316835260208301919091527f91319c08e2e22862e1f0e490083172f3d95557731332a63f4f4133f531c248da910160405180910390a150565b6000546001600160a01b031633146114395760405162461bcd60e51b81526004016103a3906117ba565b6001600160a01b03811661149e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103a3565b6114a7816114aa565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000805b83838281518110611511576115116118f1565b6020026020010151146115305780611528816118c0565b9150506114fe565b9392505050565b80356001600160a01b038116811461154e57600080fd5b919050565b60006020828403121561156557600080fd5b61153082611537565b6000602080838503121561158157600080fd5b823567ffffffffffffffff81111561159857600080fd5b8301601f810185136115a957600080fd5b80356115bc6115b78261184e565b61181d565b80828252848201915084840188868560051b87010111156115dc57600080fd5b600094505b83851015611606576115f281611537565b8352600194909401939185019185016115e1565b50979650505050505050565b6000602080838503121561162557600080fd5b823567ffffffffffffffff81111561163c57600080fd5b8301601f8101851361164d57600080fd5b803561165b6115b78261184e565b80828252848201915084840188868560051b870101111561167b57600080fd5b600094505b83851015611606578035835260019490940193918501918501611680565b6000602082840312156116b057600080fd5b8135801515811461153057600080fd5b6000602082840312156116d257600080fd5b5035919050565b6000602082840312156116eb57600080fd5b5051919050565b6000806040838503121561170557600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b8381101561174457815187529582019590820190600101611728565b509495945050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b038416815260606020820181905260009061179790830185611714565b9050826040830152949350505050565b6020815260006115306020830184611714565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b602080825260149082015273139bc818dbdb9d1c9858dd1cc8185b1b1bddd95960621b604082015260600190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561184657611846611907565b604052919050565b600067ffffffffffffffff82111561186857611868611907565b5060051b60200190565b60008219821115611885576118856118db565b500190565b60008160001904831182151516156118a4576118a46118db565b500290565b6000828210156118bb576118bb6118db565b500390565b60006000198214156118d4576118d46118db565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220260debbe9b4a780ef1d504d1c658d0c975144b7a8b0a7d1f80a372d6b2a4360a64736f6c63430008070033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063896ee377116100c3578063aae8c0531161007c578063aae8c053146102cd578063bbcd5bbe146102e1578063c57bafad146102f4578063c7dc49fc14610320578063cfffa66914610333578063f2fde38b1461033b57600080fd5b8063896ee377146102415780638da5cb5b14610254578063983d95ce1461026f578063989072f014610282578063a1750db6146102a6578063a21bbdc5146102ba57600080fd5b806352eb77961161011557806352eb7796146101b3578063531ab193146101dc5780636c2c3491146101ef578063715018a61461021d578063817b1cd21461022557806384ff23ff1461022e57600080fd5b80630fbf0a931461015257806315ddc93314610167578063173411d81461017a5780631b62ecd51461018d5780633b51e5cf146101a0575b600080fd5b610165610160366004611612565b61034e565b005b61016561017536600461156e565b61056d565b6101656101883660046116f2565b6106a0565b61016561019b36600461156e565b610916565b6101656101ae36600461169e565b6109a0565b6101c66101c1366004611553565b6109e8565b6040516101d391906117a7565b60405180910390f35b6101656101ea36600461169e565b610a54565b61020f6101fd3660046116c0565b60009081526006602052604090205490565b6040519081526020016101d3565b610165610a9c565b61020f60035481565b61016561023c366004611612565b610ad2565b61016561024f366004611553565b610d21565b6000546040516001600160a01b0390911681526020016101d3565b61016561027d366004611612565b610d6d565b60025461029690600160a01b900460ff1681565b60405190151581526020016101d3565b60025461029690600160a81b900460ff1681565b61020f6102c8366004611612565b611123565b60025461029690600160b01b900460ff1681565b6101656102ef366004611553565b611206565b61020f610302366004611553565b6001600160a01b031660009081526005602052604090206001015490565b61016561032e36600461169e565b611252565b61016561129a565b610165610349366004611553565b61140f565b600254600160a01b900460ff166103ac5760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e672069732063757272656e746c792064697361626c656400000060448201526064015b60405180910390fd5b3233146103cb5760405162461bcd60e51b81526004016103a3906117ef565b60018151101580156103df57506005815111155b6104225760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a59081d1bdad95b88185b5bdd5b9d60621b60448201526064016103a3565b336000908152600460205260408120905b8251811015610514576000838281518110610450576104506118f1565b60209081029190910101516001546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd906104909033903090869060040161174f565b600060405180830381600087803b1580156104aa57600080fd5b505af11580156104be573d6000803e3d6000fd5b5050845460018101865560008681526020808220909201859055938452600681526040808520429055600790915290922080546001600160a01b031916331790555081905061050c816118c0565b915050610433565b508151600360008282546105289190611872565b90915550506040517f31afb4434291156233127bc71455b509c4545ab840846e50605e9d7a23f710709061056190339085904290611773565b60405180910390a15050565b6000546001600160a01b031633146105975760405162461bcd60e51b81526004016103a3906117ba565b60005b815181101561069c576000600560008484815181106105bb576105bb6118f1565b6020908102919091018101516001600160a01b03168252810191909152604001600020600381015490915060ff161561068957600154815460028301546040516323b872dd60e01b81526001600160a01b03938416936323b872dd9361062a933093929091169160040161174f565b600060405180830381600087803b15801561064457600080fd5b505af1158015610658573d6000803e3d6000fd5b5050600060018085018290556003808601805460ff19169055805491945092506106839084906118a9565b90915550505b5080610694816118c0565b91505061059a565b5050565b600254600160a81b900460ff166106f95760405162461bcd60e51b815260206004820152601d60248201527f4c6f636b2055702069732063757272656e746c792064697361626c656400000060448201526064016103a3565b3233146107185760405162461bcd60e51b81526004016103a3906117ef565b336000908152600560205260409020600381015460ff16156107925760405162461bcd60e51b815260206004820152602d60248201527f596f75206e65656420746f20776974686472617720796f75722063757272656e60448201526c1d081d1bdad95b88199a5c9cdd609a1b60648201526084016103a3565b6000821180156107a3575060038211155b61080a5760405162461bcd60e51b815260206004820152603260248201527f596f752063616e206f6e6c79206c6f636b20696e20796f757220746f6b656e20604482015271666f7220333020746f20393020646179732160701b60648201526084016103a3565b6001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd9061083e9033903090889060040161174f565b600060405180830381600087803b15801561085857600080fd5b505af115801561086c573d6000803e3d6000fd5b505082546001600160a01b031916331783555061088e90508262278d0061188a565b6108989042611872565b600180830191909155600282018490556003808301805460ff19168317905580546000906108c7908490611872565b90915550506001810154604080513381526020810186905280820192909252517f0af257d4408cfb10d11d9a8ca5cf70057deecfcf6d99090a4d10b2b64de25e2a9181900360600190a1505050565b6000546001600160a01b031633146109405760405162461bcd60e51b81526004016103a3906117ba565b60005b815181101561069c57600060056000848481518110610964576109646118f1565b6020908102919091018101516001600160a01b031682528101919091526040016000908120600101555080610998816118c0565b915050610943565b6000546001600160a01b031633146109ca5760405162461bcd60e51b81526004016103a3906117ba565b60028054911515600160a01b0260ff60a01b19909216919091179055565b6001600160a01b038116600090815260046020908152604091829020805483518184028101840190945280845260609392830182828015610a4857602002820191906000526020600020905b815481526020019060010190808311610a34575b50505050509050919050565b6000546001600160a01b03163314610a7e5760405162461bcd60e51b81526004016103a3906117ba565b60028054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b03163314610ac65760405162461bcd60e51b81526004016103a3906117ba565b610ad060006114aa565b565b323314610af15760405162461bcd60e51b81526004016103a3906117ef565b600254600160b01b900460ff16610b645760405162461bcd60e51b815260206004820152603160248201527f596f75277265206e6f742061626c6520746f20776974686472617720796f757260448201527020736861726473207269676874206e6f7760781b60648201526084016103a3565b6000805b8251811015610cb8576000838281518110610b8557610b856118f1565b602090810291909101810151600081815260079092526040909120549091506001600160a01b03163314610bf65760405162461bcd60e51b8152602060048201526018602482015277596f75206469646e2774206465706f73697420746865736560401b60448201526064016103a3565b60025460008281526006602052604090819020549051636342728b60e11b81526001600160a01b039092169163c684e51691610c389160040190815260200190565b60206040518083038186803b158015610c5057600080fd5b505afa158015610c64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c8891906116d9565b610c929084611872565b600091825260066020526040909120429055915080610cb0816118c0565b915050610b68565b506002546040516317bbddf760e01b8152336004820152602481018390526001600160a01b03909116906317bbddf790604401600060405180830381600087803b158015610d0557600080fd5b505af1158015610d19573d6000803e3d6000fd5b505050505050565b6000546001600160a01b03163314610d4b5760405162461bcd60e51b81526004016103a3906117ba565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b323314610d8c5760405162461bcd60e51b81526004016103a3906117ef565b6001815110158015610da057506005815111155b610de35760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a59081d1bdad95b88185b5bdd5b9d60621b60448201526064016103a3565b336000908152600460205260408120815b835181101561108e576000848281518110610e1157610e116118f1565b602090810291909101810151600081815260079092526040909120549091506001600160a01b0316338114610e835760405162461bcd60e51b8152602060048201526018602482015277596f75206469646e2774206465706f73697420746865736560401b60448201526064016103a3565b6001546040516323b872dd60e01b81526001600160a01b03909116906323b872dd90610eb79030908590879060040161174f565b600060405180830381600087803b158015610ed157600080fd5b505af1158015610ee5573d6000803e3d6000fd5b505050506000610f448386805480602002602001604051908101604052809291908181526020018280548015610f3a57602002820191906000526020600020905b815481526020019060010190808311610f26575b50505050506114fa565b9050848181548110610f5857610f586118f1565b6000918252602082200155600254600160b01b900460ff16156110145760025460008481526006602052604090819020549051636342728b60e11b81526001600160a01b039092169163c684e51691610fb79160040190815260200190565b60206040518083038186803b158015610fcf57600080fd5b505afa158015610fe3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100791906116d9565b6110119087611872565b95505b6000838152600660209081526040918290205482516001600160a01b03861681529182018690528183015290517f67ac9962d590524363ad34bbe221d3327ef9c8eea138c6ff4c8440d0223ae92c9181900360600190a1505060009081526006602052604081205580611086816118c0565b915050610df4565b50600254600160b01b900460ff1615611106576002546040516317bbddf760e01b8152336004820152602481018490526001600160a01b03909116906317bbddf790604401600060405180830381600087803b1580156110ed57600080fd5b505af1158015611101573d6000803e3d6000fd5b505050505b82516003600082825461111991906118a9565b9091555050505050565b600080805b83518110156111ff576000848281518110611145576111456118f1565b60209081029190910181015160025460008281526006909352604092839020549251636342728b60e11b815260048101939093529092506001600160a01b03169063c684e5169060240160206040518083038186803b1580156111a757600080fd5b505afa1580156111bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111df91906116d9565b6111e99084611872565b92508190506111f7816118c0565b915050611128565b5092915050565b6000546001600160a01b031633146112305760405162461bcd60e51b81526004016103a3906117ba565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461127c5760405162461bcd60e51b81526004016103a3906117ba565b60028054911515600160b01b0260ff60b01b19909216919091179055565b3233146112b95760405162461bcd60e51b81526004016103a3906117ef565b33600090815260056020526040902060018101544210156113285760405162461bcd60e51b815260206004820152602360248201527f596f7572206c6f636b20696e20706572696f64206973206e6f74206f766572206044820152621e595d60ea1b60648201526084016103a3565b600154815460028301546040516323b872dd60e01b81526001600160a01b03938416936323b872dd93611364933093929091169160040161174f565b600060405180830381600087803b15801561137e57600080fd5b505af1158015611392573d6000803e3d6000fd5b5050506003808301805460ff191690556000600180850182905582549093506113bc9084906118a9565b909155505080546002820154604080516001600160a01b03909316835260208301919091527f91319c08e2e22862e1f0e490083172f3d95557731332a63f4f4133f531c248da910160405180910390a150565b6000546001600160a01b031633146114395760405162461bcd60e51b81526004016103a3906117ba565b6001600160a01b03811661149e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103a3565b6114a7816114aa565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000805b83838281518110611511576115116118f1565b6020026020010151146115305780611528816118c0565b9150506114fe565b9392505050565b80356001600160a01b038116811461154e57600080fd5b919050565b60006020828403121561156557600080fd5b61153082611537565b6000602080838503121561158157600080fd5b823567ffffffffffffffff81111561159857600080fd5b8301601f810185136115a957600080fd5b80356115bc6115b78261184e565b61181d565b80828252848201915084840188868560051b87010111156115dc57600080fd5b600094505b83851015611606576115f281611537565b8352600194909401939185019185016115e1565b50979650505050505050565b6000602080838503121561162557600080fd5b823567ffffffffffffffff81111561163c57600080fd5b8301601f8101851361164d57600080fd5b803561165b6115b78261184e565b80828252848201915084840188868560051b870101111561167b57600080fd5b600094505b83851015611606578035835260019490940193918501918501611680565b6000602082840312156116b057600080fd5b8135801515811461153057600080fd5b6000602082840312156116d257600080fd5b5035919050565b6000602082840312156116eb57600080fd5b5051919050565b6000806040838503121561170557600080fd5b50508035926020909101359150565b600081518084526020808501945080840160005b8381101561174457815187529582019590820190600101611728565b509495945050505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b038416815260606020820181905260009061179790830185611714565b9050826040830152949350505050565b6020815260006115306020830184611714565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b602080825260149082015273139bc818dbdb9d1c9858dd1cc8185b1b1bddd95960621b604082015260600190565b604051601f8201601f1916810167ffffffffffffffff8111828210171561184657611846611907565b604052919050565b600067ffffffffffffffff82111561186857611868611907565b5060051b60200190565b60008219821115611885576118856118db565b500190565b60008160001904831182151516156118a4576118a46118db565b500290565b6000828210156118bb576118bb6118db565b500390565b60006000198214156118d4576118d46118db565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea2646970667358221220260debbe9b4a780ef1d504d1c658d0c975144b7a8b0a7d1f80a372d6b2a4360a64736f6c63430008070033
Deployed Bytecode Sourcemap
4880:8882:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6637:655;;;;;;:::i;:::-;;:::i;:::-;;11903:493;;;;;;:::i;:::-;;:::i;9946:689::-;;;;;;:::i;:::-;;:::i;11557:247::-;;;;;;:::i;:::-;;:::i;13277:105::-;;;;;;:::i;:::-;;:::i;9653:124::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13429:103;;;;;;:::i;:::-;;:::i;9432:114::-;;;;;;:::i;:::-;9494:7;9521:17;;;:10;:17;;;;;;;9432:114;;;;9993:25:1;;;9981:2;9966:18;9432:114:0;9847:177:1;2375:94:0;;;:::i;5219:30::-;;;;;;8659:644;;;;;;:::i;:::-;;:::i;13114:117::-;;;;;;:::i;:::-;;:::i;1724:87::-;1770:7;1797:6;1724:87;;-1:-1:-1;;;;;1797:6:0;;;3694:51:1;;3682:2;3667:18;1724:87:0;3548:203:1;7384:1188:0;;;;;;:::i;:::-;;:::i;5090:36::-;;;;;-1:-1:-1;;;5090:36:0;;;;;;;;;5630:14:1;;5623:22;5605:41;;5593:2;5578:18;5090:36:0;5465:187:1;5133:35:0;;;;;-1:-1:-1;;;5133:35:0;;;;;;12475:379;;;;;;:::i;:::-;;:::i;5175:37::-;;;;;-1:-1:-1;;;5175:37:0;;;;;;12929:107;;;;;;:::i;:::-;;:::i;11260:170::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11371:16:0;11322:7;11371:16;;;:8;:16;;;;;11407:15;;;;11260:170;13653:106;;;;;;:::i;:::-;;:::i;10737:446::-;;;:::i;2624:192::-;;;;;;:::i;:::-;;:::i;6637:655::-;5932:16;;-1:-1:-1;;;5932:16:0;;;;5924:58;;;;-1:-1:-1;;;5924:58:0;;8209:2:1;5924:58:0;;;8191:21:1;8248:2;8228:18;;;8221:30;8287:31;8267:18;;;8260:59;8336:18;;5924:58:0;;;;;;;;;5807:9:::1;5820:10;5807:23;5799:56;;;;-1:-1:-1::0;;;5799:56:0::1;;;;;;;:::i;:::-;6753:1:::2;6736:6;:13;:18;;:40;;;;;6775:1;6758:6;:13;:18;;6736:40;6728:73;;;::::0;-1:-1:-1;;;6728:73:0;;7860:2:1;6728:73:0::2;::::0;::::2;7842:21:1::0;7899:2;7879:18;;;7872:30;-1:-1:-1;;;7918:18:1;;;7911:50;7978:18;;6728:73:0::2;7658:344:1::0;6728:73:0::2;6855:10;6814:27;6844:22:::0;;;:10:::2;:22;::::0;;;;;6879:301:::2;6902:6;:13;6898:1;:17;6879:301;;;6936:14;6953:6;6960:1;6953:9;;;;;;;;:::i;:::-;;::::0;;::::2;::::0;;;;;;6979:2:::2;::::0;:50:::2;::::0;-1:-1:-1;;;6979:50:0;;6953:9;;-1:-1:-1;;;;;;6979:2:0::2;::::0;:15:::2;::::0;:50:::2;::::0;6995:10:::2;::::0;7015:4:::2;::::0;6953:9;;6979:50:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;7046:22:0;;::::2;::::0;::::2;::::0;;-1:-1:-1;7046:22:0;;;::::2;::::0;;;;;::::2;::::0;;;7084:18;;;:10:::2;:18:::0;;;;;;7105:15:::2;7084:36:::0;;7135:12:::2;:20:::0;;;;;;:33;;-1:-1:-1;;;;;;7135:33:0::2;7158:10;7135:33;::::0;;-1:-1:-1;6916:3:0;;-1:-1:-1;6916:3:0::2;::::0;::::2;:::i;:::-;;;;6879:301;;;;7207:6;:13;7192:11;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;7236:48:0::2;::::0;::::2;::::0;::::2;::::0;7248:10:::2;::::0;7260:6;;7268:15:::2;::::0;7236:48:::2;:::i;:::-;;;;;;;;6717:575;6637:655:::0;:::o;11903:493::-;1770:7;1797:6;-1:-1:-1;;;;;1797:6:0;680:10;1944:23;1936:68;;;;-1:-1:-1;;;1936:68:0;;;;;;;:::i;:::-;11999:6:::1;11994:395;12014:9;:16;12010:1;:20;11994:395;;;12051:26;12080:8;:22;12089:9;12099:1;12089:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12080:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12080:22:0;12123:18:::1;::::0;::::1;::::0;12080:22;;-1:-1:-1;12123:18:0::1;;12119:259;;;12162:2;::::0;12193:15;;12210::::1;::::0;::::1;::::0;12162:64:::1;::::0;-1:-1:-1;;;12162:64:0;;-1:-1:-1;;;;;12162:2:0;;::::1;::::0;:15:::1;::::0;:64:::1;::::0;12186:4:::1;::::0;12193:15;;;::::1;::::0;12162:64:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;12281:1:0::1;12263:15;::::0;;::::1;:19:::0;;;12301:18:::1;::::0;;::::1;:26:::0;;-1:-1:-1;;12301:26:0::1;::::0;;12346:16;;12263:15;;-1:-1:-1;12301:18:0;-1:-1:-1;12346:16:0::1;::::0;12263:15;;12346:16:::1;:::i;:::-;::::0;;;-1:-1:-1;;12119:259:0::1;-1:-1:-1::0;12031:3:0;::::1;::::0;::::1;:::i;:::-;;;;11994:395;;;;11903:493:::0;:::o;9946:689::-;6058:15;;-1:-1:-1;;;6058:15:0;;;;6050:57;;;;-1:-1:-1;;;6050:57:0;;8981:2:1;6050:57:0;;;8963:21:1;9020:2;9000:18;;;8993:30;9059:31;9039:18;;;9032:59;9108:18;;6050:57:0;8779:353:1;6050:57:0;5807:9:::1;5820:10;5807:23;5799:56;;;;-1:-1:-1::0;;;5799:56:0::1;;;;;;;:::i;:::-;10083:10:::2;10045:26;10074:20:::0;;;:8:::2;:20;::::0;;;;10116:18:::2;::::0;::::2;::::0;::::2;;10115:19;10107:77;;;::::0;-1:-1:-1;;;10107:77:0;;8567:2:1;10107:77:0::2;::::0;::::2;8549:21:1::0;8606:2;8586:18;;;8579:30;8645:34;8625:18;;;8618:62;-1:-1:-1;;;8696:18:1;;;8689:43;8749:19;;10107:77:0::2;8365:409:1::0;10107:77:0::2;10212:1;10203:6;:10;:25;;;;;10227:1;10217:6;:11;;10203:25;10195:88;;;::::0;-1:-1:-1;;;10195:88:0;;6212:2:1;10195:88:0::2;::::0;::::2;6194:21:1::0;6251:2;6231:18;;;6224:30;6290:34;6270:18;;;6263:62;-1:-1:-1;;;6341:18:1;;;6334:48;6399:19;;10195:88:0::2;6010:414:1::0;10195:88:0::2;10296:2;::::0;:51:::2;::::0;-1:-1:-1;;;10296:51:0;;-1:-1:-1;;;;;10296:2:0;;::::2;::::0;:15:::2;::::0;:51:::2;::::0;10312:10:::2;::::0;10332:4:::2;::::0;10339:7;;10296:51:::2;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;::::0;::::2;;;;;-1:-1:-1::0;;10360:28:0;;-1:-1:-1;;;;;;10360:28:0::2;10378:10;10360:28;::::0;;-1:-1:-1;10436:16:0::2;::::0;-1:-1:-1;10446:6:0;10436:7:::2;:16;:::i;:::-;10417:36;::::0;:15:::2;:36;:::i;:::-;10399:15;::::0;;::::2;:54:::0;;;;10464:15:::2;::::0;::::2;:25:::0;;;10500:18:::2;::::0;;::::2;:25:::0;;-1:-1:-1;;10500:25:0::2;::::0;::::2;::::0;;10536:16;;-1:-1:-1;;10536:16:0::2;::::0;10399:15;;10536:16:::2;:::i;:::-;::::0;;;-1:-1:-1;;10603:15:0::2;::::0;::::2;::::0;10570:49:::2;::::0;;10582:10:::2;5051:51:1::0;;5133:2;5118:18;;5111:34;;;5161:18;;;5154:34;;;;10570:49:0;::::2;::::0;;;;5039:2:1;10570:49:0;;::::2;10034:601;9946:689:::0;;:::o;11557:247::-;1770:7;1797:6;-1:-1:-1;;;;;1797:6:0;680:10;1944:23;1936:68;;;;-1:-1:-1;;;1936:68:0;;;;;;;:::i;:::-;11646:6:::1;11641:156;11661:9;:16;11657:1;:20;11641:156;;;11698:26;11727:8;:22;11736:9;11746:1;11736:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;11727:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;11727:22:0;;;11766:15:::1;;:19:::0;-1:-1:-1;11678:3:0;::::1;::::0;::::1;:::i;:::-;;;;11641:156;;13277:105:::0;1770:7;1797:6;-1:-1:-1;;;;;1797:6:0;680:10;1944:23;1936:68;;;;-1:-1:-1;;;1936:68:0;;;;;;;:::i;:::-;13346:16:::1;:28:::0;;;::::1;;-1:-1:-1::0;;;13346:28:0::1;-1:-1:-1::0;;;;13346:28:0;;::::1;::::0;;;::::1;::::0;;13277:105::o;9653:124::-;-1:-1:-1;;;;;9751:18:0;;;;;;:10;:18;;;;;;;;;9744:25;;;;;;;;;;;;;;;;;9715:16;;9744:25;;;9751:18;9744:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9653:124;;;:::o;13429:103::-;1770:7;1797:6;-1:-1:-1;;;;;1797:6:0;680:10;1944:23;1936:68;;;;-1:-1:-1;;;1936:68:0;;;;;;;:::i;:::-;13497:15:::1;:27:::0;;;::::1;;-1:-1:-1::0;;;13497:27:0::1;-1:-1:-1::0;;;;13497:27:0;;::::1;::::0;;;::::1;::::0;;13429:103::o;2375:94::-;1770:7;1797:6;-1:-1:-1;;;;;1797:6:0;680:10;1944:23;1936:68;;;;-1:-1:-1;;;1936:68:0;;;;;;;:::i;:::-;2440:21:::1;2458:1;2440:9;:21::i;:::-;2375:94::o:0;8659:644::-;5807:9;5820:10;5807:23;5799:56;;;;-1:-1:-1;;;5799:56:0;;;;;;;:::i;:::-;8755:17:::1;::::0;-1:-1:-1;;;8755:17:0;::::1;;;8747:79;;;::::0;-1:-1:-1;;;8747:79:0;;6631:2:1;8747:79:0::1;::::0;::::1;6613:21:1::0;6670:2;6650:18;;;6643:30;6709:34;6689:18;;;6682:62;-1:-1:-1;;;6760:18:1;;;6753:47;6817:19;;8747:79:0::1;6429:413:1::0;8747:79:0::1;8839:20;8881:9:::0;8876:334:::1;8899:6;:13;8895:1;:17;8876:334;;;8933:14;8950:6;8957:1;8950:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;8982:20:::1;::::0;;;:12:::1;:20:::0;;;;;;;;8950:9;;-1:-1:-1;;;;;;8982:20:0::1;9006:10;8982:34;8974:71;;;::::0;-1:-1:-1;;;8974:71:0;;5859:2:1;8974:71:0::1;::::0;::::1;5841:21:1::0;5898:2;5878:18;;;5871:30;-1:-1:-1;;;5917:18:1;;;5910:54;5981:18;;8974:71:0::1;5657:348:1::0;8974:71:0::1;9078:6;::::0;::::1;9100:18:::0;;;:10:::1;:18;::::0;;;;;;;9078:41;;-1:-1:-1;;;9078:41:0;;-1:-1:-1;;;;;9078:6:0;;::::1;::::0;:21:::1;::::0;:41:::1;::::0;::::1;;9993:25:1::0;;;9981:2;9966:18;;9847:177;9078:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9062:57;::::0;;::::1;:::i;:::-;9134:18;::::0;;;:10:::1;:18;::::0;;;;;9155:15:::1;9134:36:::0;;9062:57;-1:-1:-1;8913:3:0;::::1;::::0;::::1;:::i;:::-;;;;8876:334;;;-1:-1:-1::0;9222:6:0::1;::::0;:43:::1;::::0;-1:-1:-1;;;9222:43:0;;9240:10:::1;9222:43;::::0;::::1;4744:51:1::0;4811:18;;;4804:34;;;-1:-1:-1;;;;;9222:6:0;;::::1;::::0;:17:::1;::::0;4717:18:1;;9222:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;;;;8659:644:0:o;13114:117::-;1770:7;1797:6;-1:-1:-1;;;;;1797:6:0;680:10;1944:23;1936:68;;;;-1:-1:-1;;;1936:68:0;;;;;;;:::i;:::-;13193:6:::1;:30:::0;;-1:-1:-1;;;;;;13193:30:0::1;-1:-1:-1::0;;;;;13193:30:0;;;::::1;::::0;;;::::1;::::0;;13114:117::o;7384:1188::-;5807:9;5820:10;5807:23;5799:56;;;;-1:-1:-1;;;5799:56:0;;;;;;;:::i;:::-;7484:1:::1;7467:6;:13;:18;;:40;;;;;7506:1;7489:6;:13;:18;;7467:40;7459:73;;;::::0;-1:-1:-1;;;7459:73:0;;7860:2:1;7459:73:0::1;::::0;::::1;7842:21:1::0;7899:2;7879:18;;;7872:30;-1:-1:-1;;;7918:18:1;;;7911:50;7978:18;;7459:73:0::1;7658:344:1::0;7459:73:0::1;7621:10;7545:20;7610:22:::0;;;:10:::1;:22;::::0;;;;7545:20;7645:744:::1;7668:6;:13;7664:1;:17;7645:744;;;7702:14;7719:6;7726:1;7719:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;7743:14:::1;7760:20:::0;;;:12:::1;:20:::0;;;;;;;;7719:9;;-1:-1:-1;;;;;;7760:20:0::1;7815:10;7805:20:::0;::::1;7797:57;;;::::0;-1:-1:-1;;;7797:57:0;;5859:2:1;7797:57:0::1;::::0;::::1;5841:21:1::0;5898:2;5878:18;;;5871:30;-1:-1:-1;;;5917:18:1;;;5910:54;5981:18;;7797:57:0::1;5657:348:1::0;7797:57:0::1;7869:2;::::0;:46:::1;::::0;-1:-1:-1;;;7869:46:0;;-1:-1:-1;;;;;7869:2:0;;::::1;::::0;:15:::1;::::0;:46:::1;::::0;7893:4:::1;::::0;7900:6;;7908;;7869:46:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;7944:13;7960:28;7970:6;7978:9;7960:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:28::i;:::-;7944:44;;8010:9;8020:5;8010:16;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;::::1;8003:23:::0;8129:17:::1;::::0;-1:-1:-1;;;8129:17:0;::::1;;;8125:115;;;8183:6;::::0;::::1;8205:18:::0;;;:10:::1;:18;::::0;;;;;;;8183:41;;-1:-1:-1;;;8183:41:0;;-1:-1:-1;;;;;8183:6:0;;::::1;::::0;:21:::1;::::0;:41:::1;::::0;::::1;;9993:25:1::0;;;9981:2;9966:18;;9847:177;8183:41:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8167:57;::::0;;::::1;:::i;:::-;;;8125:115;8291:18;::::0;;;:10:::1;:18;::::0;;;;;;;;;8261:49;;-1:-1:-1;;;;;5069:32:1;;5051:51;;5118:18;;;5111:34;;;5161:18;;;5154:34;8261:49:0;;::::1;::::0;;;;5039:2:1;8261:49:0;;::::1;-1:-1:-1::0;;8348:1:0::1;8327:18:::0;;;:10:::1;:18;::::0;;;;:22;7682:3;::::1;::::0;::::1;:::i;:::-;;;;7645:744;;;-1:-1:-1::0;8405:17:0::1;::::0;-1:-1:-1;;;8405:17:0;::::1;;;8401:93;;;8439:6;::::0;:43:::1;::::0;-1:-1:-1;;;8439:43:0;;8457:10:::1;8439:43;::::0;::::1;4744:51:1::0;4811:18;;;4804:34;;;-1:-1:-1;;;;;8439:6:0;;::::1;::::0;:17:::1;::::0;4717:18:1;;8439:43:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8401:93;8521:6;:13;8506:11;;:28;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;;;;7384:1188:0:o;12475:379::-;12557:7;;;12616:197;12639:6;:13;12635:1;:17;12616:197;;;12673:14;12690:6;12697:1;12690:9;;;;;;;;:::i;:::-;;;;;;;;;;;;12732:6;;;12754:18;;;:10;:18;;;;;;;;;12732:41;;-1:-1:-1;;;12732:41:0;;;;;9993:25:1;;;;12690:9:0;;-1:-1:-1;;;;;;12732:6:0;;:21;;9966:18:1;;12732:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12714:59;;;;:::i;:::-;;-1:-1:-1;12653:3:0;;-1:-1:-1;12653:3:0;;;:::i;:::-;;;;12616:197;;;-1:-1:-1;12832:14:0;12475:379;-1:-1:-1;;12475:379:0:o;12929:107::-;1770:7;1797:6;-1:-1:-1;;;;;1797:6:0;680:10;1944:23;1936:68;;;;-1:-1:-1;;;1936:68:0;;;;;;;:::i;:::-;13006:2:::1;:22:::0;;-1:-1:-1;;;;;;13006:22:0::1;-1:-1:-1::0;;;;;13006:22:0;;;::::1;::::0;;;::::1;::::0;;12929:107::o;13653:106::-;1770:7;1797:6;-1:-1:-1;;;;;1797:6:0;680:10;1944:23;1936:68;;;;-1:-1:-1;;;1936:68:0;;;;;;;:::i;:::-;13722:17:::1;:29:::0;;;::::1;;-1:-1:-1::0;;;13722:29:0::1;-1:-1:-1::0;;;;13722:29:0;;::::1;::::0;;;::::1;::::0;;13653:106::o;10737:446::-;5807:9;5820:10;5807:23;5799:56;;;;-1:-1:-1;;;5799:56:0;;;;;;;:::i;:::-;10835:10:::1;10797:26;10826:20:::0;;;:8:::1;:20;::::0;;;;10886:15:::1;::::0;::::1;::::0;10867::::1;:34;;10859:82;;;::::0;-1:-1:-1;;;10859:82:0;;7049:2:1;10859:82:0::1;::::0;::::1;7031:21:1::0;7088:2;7068:18;;;7061:30;7127:34;7107:18;;;7100:62;-1:-1:-1;;;7178:18:1;;;7171:33;7221:19;;10859:82:0::1;6847:399:1::0;10859:82:0::1;10954:2;::::0;10985:15;;11002::::1;::::0;::::1;::::0;10954:64:::1;::::0;-1:-1:-1;;;10954:64:0;;-1:-1:-1;;;;;10954:2:0;;::::1;::::0;:15:::1;::::0;:64:::1;::::0;10978:4:::1;::::0;10985:15;;;::::1;::::0;10954:64:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;;11031:18:0::1;::::0;;::::1;:26:::0;;-1:-1:-1;;11031:26:0::1;::::0;;11052:5:::1;11031:26:::0;11068:15;;::::1;:19:::0;;;11098:16;;11031:26;;-1:-1:-1;11098:16:0::1;::::0;11031:26;;11098:16:::1;:::i;:::-;::::0;;;-1:-1:-1;;11142:15:0;;11159::::1;::::0;::::1;::::0;11132:43:::1;::::0;;-1:-1:-1;;;;;11142:15:0;;::::1;4744:51:1::0;;4826:2;4811:18;;4804:34;;;;11132:43:0::1;::::0;4717:18:1;11132:43:0::1;;;;;;;10786:397;10737:446::o:0;2624:192::-;1770:7;1797:6;-1:-1:-1;;;;;1797:6:0;680:10;1944:23;1936:68;;;;-1:-1:-1;;;1936:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2713:22:0;::::1;2705:73;;;::::0;-1:-1:-1;;;2705:73:0;;7453:2:1;2705:73:0::1;::::0;::::1;7435:21:1::0;7492:2;7472:18;;;7465:30;7531:34;7511:18;;;7504:62;-1:-1:-1;;;7582:18:1;;;7575:36;7628:19;;2705:73:0::1;7251:402:1::0;2705:73:0::1;2789:19;2799:8;2789:9;:19::i;:::-;2624:192:::0;:::o;2824:173::-;2880:16;2899:6;;-1:-1:-1;;;;;2916:17:0;;;-1:-1:-1;;;;;;2916:17:0;;;;;;2949:40;;2899:6;;;;;;;2949:40;;2880:16;2949:40;2869:128;2824:173;:::o;6222:235::-;6302:7;;6352:65;6376:5;6359:6;6366:5;6359:13;;;;;;;;:::i;:::-;;;;;;;:22;6352:65;;6398:7;;;;:::i;:::-;;;;6352:65;;;6444:5;6222:235;-1:-1:-1;;;6222:235:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:186::-;251:6;304:2;292:9;283:7;279:23;275:32;272:52;;;320:1;317;310:12;272:52;343:29;362:9;343:29;:::i;383:908::-;467:6;498:2;541;529:9;520:7;516:23;512:32;509:52;;;557:1;554;547:12;509:52;597:9;584:23;630:18;622:6;619:30;616:50;;;662:1;659;652:12;616:50;685:22;;738:4;730:13;;726:27;-1:-1:-1;716:55:1;;767:1;764;757:12;716:55;803:2;790:16;826:60;842:43;882:2;842:43;:::i;:::-;826:60;:::i;:::-;908:3;932:2;927:3;920:15;960:2;955:3;951:12;944:19;;991:2;987;983:11;1039:7;1034:2;1028;1025:1;1021:10;1017:2;1013:19;1009:28;1006:41;1003:61;;;1060:1;1057;1050:12;1003:61;1082:1;1073:10;;1092:169;1106:2;1103:1;1100:9;1092:169;;;1163:23;1182:3;1163:23;:::i;:::-;1151:36;;1124:1;1117:9;;;;;1207:12;;;;1239;;1092:169;;;-1:-1:-1;1280:5:1;383:908;-1:-1:-1;;;;;;;383:908:1:o;1296:902::-;1380:6;1411:2;1454;1442:9;1433:7;1429:23;1425:32;1422:52;;;1470:1;1467;1460:12;1422:52;1510:9;1497:23;1543:18;1535:6;1532:30;1529:50;;;1575:1;1572;1565:12;1529:50;1598:22;;1651:4;1643:13;;1639:27;-1:-1:-1;1629:55:1;;1680:1;1677;1670:12;1629:55;1716:2;1703:16;1739:60;1755:43;1795:2;1755:43;:::i;1739:60::-;1821:3;1845:2;1840:3;1833:15;1873:2;1868:3;1864:12;1857:19;;1904:2;1900;1896:11;1952:7;1947:2;1941;1938:1;1934:10;1930:2;1926:19;1922:28;1919:41;1916:61;;;1973:1;1970;1963:12;1916:61;1995:1;1986:10;;2005:163;2019:2;2016:1;2013:9;2005:163;;;2076:17;;2064:30;;2037:1;2030:9;;;;;2114:12;;;;2146;;2005:163;;2203:273;2259:6;2312:2;2300:9;2291:7;2287:23;2283:32;2280:52;;;2328:1;2325;2318:12;2280:52;2367:9;2354:23;2420:5;2413:13;2406:21;2399:5;2396:32;2386:60;;2442:1;2439;2432:12;2481:180;2540:6;2593:2;2581:9;2572:7;2568:23;2564:32;2561:52;;;2609:1;2606;2599:12;2561:52;-1:-1:-1;2632:23:1;;2481:180;-1:-1:-1;2481:180:1:o;2666:184::-;2736:6;2789:2;2777:9;2768:7;2764:23;2760:32;2757:52;;;2805:1;2802;2795:12;2757:52;-1:-1:-1;2828:16:1;;2666:184;-1:-1:-1;2666:184:1:o;2855:248::-;2923:6;2931;2984:2;2972:9;2963:7;2959:23;2955:32;2952:52;;;3000:1;2997;2990:12;2952:52;-1:-1:-1;;3023:23:1;;;3093:2;3078:18;;;3065:32;;-1:-1:-1;2855:248:1:o;3108:435::-;3161:3;3199:5;3193:12;3226:6;3221:3;3214:19;3252:4;3281:2;3276:3;3272:12;3265:19;;3318:2;3311:5;3307:14;3339:1;3349:169;3363:6;3360:1;3357:13;3349:169;;;3424:13;;3412:26;;3458:12;;;;3493:15;;;;3385:1;3378:9;3349:169;;;-1:-1:-1;3534:3:1;;3108:435;-1:-1:-1;;;;;3108:435:1:o;3756:375::-;-1:-1:-1;;;;;4014:15:1;;;3996:34;;4066:15;;;;4061:2;4046:18;;4039:43;4113:2;4098:18;;4091:34;;;;3946:2;3931:18;;3756:375::o;4136:429::-;-1:-1:-1;;;;;4371:32:1;;4353:51;;4440:2;4435;4420:18;;4413:30;;;-1:-1:-1;;4460:56:1;;4497:18;;4489:6;4460:56;:::i;:::-;4452:64;;4552:6;4547:2;4536:9;4532:18;4525:34;4136:429;;;;;;:::o;5199:261::-;5378:2;5367:9;5360:21;5341:4;5398:56;5450:2;5439:9;5435:18;5427:6;5398:56;:::i;9137:356::-;9339:2;9321:21;;;9358:18;;;9351:30;9417:34;9412:2;9397:18;;9390:62;9484:2;9469:18;;9137:356::o;9498:344::-;9700:2;9682:21;;;9739:2;9719:18;;;9712:30;-1:-1:-1;;;9773:2:1;9758:18;;9751:50;9833:2;9818:18;;9498:344::o;10029:275::-;10100:2;10094:9;10165:2;10146:13;;-1:-1:-1;;10142:27:1;10130:40;;10200:18;10185:34;;10221:22;;;10182:62;10179:88;;;10247:18;;:::i;:::-;10283:2;10276:22;10029:275;;-1:-1:-1;10029:275:1:o;10309:183::-;10369:4;10402:18;10394:6;10391:30;10388:56;;;10424:18;;:::i;:::-;-1:-1:-1;10469:1:1;10465:14;10481:4;10461:25;;10309:183::o;10497:128::-;10537:3;10568:1;10564:6;10561:1;10558:13;10555:39;;;10574:18;;:::i;:::-;-1:-1:-1;10610:9:1;;10497:128::o;10630:168::-;10670:7;10736:1;10732;10728:6;10724:14;10721:1;10718:21;10713:1;10706:9;10699:17;10695:45;10692:71;;;10743:18;;:::i;:::-;-1:-1:-1;10783:9:1;;10630:168::o;10803:125::-;10843:4;10871:1;10868;10865:8;10862:34;;;10876:18;;:::i;:::-;-1:-1:-1;10913:9:1;;10803:125::o;10933:135::-;10972:3;-1:-1:-1;;10993:17:1;;10990:43;;;11013:18;;:::i;:::-;-1:-1:-1;11060:1:1;11049:13;;10933:135::o;11073:127::-;11134:10;11129:3;11125:20;11122:1;11115:31;11165:4;11162:1;11155:15;11189:4;11186:1;11179:15;11205:127;11266:10;11261:3;11257:20;11254:1;11247:31;11297:4;11294:1;11287:15;11321:4;11318:1;11311:15;11337:127;11398:10;11393:3;11389:20;11386:1;11379:31;11429:4;11426:1;11419:15;11453:4;11450:1;11443:15
Swarm Source
ipfs://260debbe9b4a780ef1d504d1c658d0c975144b7a8b0a7d1f80a372d6b2a4360a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
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.