Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,251 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Claim | 15130550 | 868 days ago | IN | 0 ETH | 0.00279018 | ||||
Claim | 15062593 | 879 days ago | IN | 0 ETH | 0.00181119 | ||||
Claim | 14860065 | 914 days ago | IN | 0 ETH | 0.00299096 | ||||
Claim | 14448740 | 979 days ago | IN | 0 ETH | 0.00283803 | ||||
Claim | 14448505 | 979 days ago | IN | 0 ETH | 0.00314515 | ||||
Claim | 14073879 | 1037 days ago | IN | 0 ETH | 0.01152477 | ||||
Claim | 13561759 | 1117 days ago | IN | 0 ETH | 0.01507398 | ||||
Claim | 13484899 | 1129 days ago | IN | 0 ETH | 0.00769682 | ||||
Claim | 13404539 | 1142 days ago | IN | 0 ETH | 0.01366174 | ||||
Claim | 13389136 | 1144 days ago | IN | 0 ETH | 0.00790592 | ||||
Claim | 13350022 | 1150 days ago | IN | 0 ETH | 0.00766844 | ||||
Claim | 13349597 | 1150 days ago | IN | 0 ETH | 0.00797828 | ||||
Claim | 13274930 | 1162 days ago | IN | 0 ETH | 0.00512208 | ||||
Claim | 13268988 | 1163 days ago | IN | 0 ETH | 0.00500395 | ||||
Claim | 13255187 | 1165 days ago | IN | 0 ETH | 0.00727302 | ||||
Claim | 13255177 | 1165 days ago | IN | 0 ETH | 0.00615531 | ||||
Claim | 13254250 | 1165 days ago | IN | 0 ETH | 0.00516657 | ||||
Claim | 13228100 | 1169 days ago | IN | 0 ETH | 0.00825953 | ||||
Claim | 13226765 | 1169 days ago | IN | 0 ETH | 0.00582187 | ||||
Claim | 13224165 | 1170 days ago | IN | 0 ETH | 0.01291142 | ||||
Claim | 13223480 | 1170 days ago | IN | 0 ETH | 0.00504526 | ||||
Claim | 13223400 | 1170 days ago | IN | 0 ETH | 0.00550039 | ||||
Claim | 13222401 | 1170 days ago | IN | 0 ETH | 0.00532053 | ||||
Claim | 13220542 | 1170 days ago | IN | 0 ETH | 0.00787958 | ||||
Claim | 13220535 | 1170 days ago | IN | 0 ETH | 0.0089545 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
PepemonStake
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-01-31 */ pragma solidity ^0.6.0; pragma experimental ABIEncoderV2; /* * @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 GSN 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. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 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. * * 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. */ 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 () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } /** * @dev Returns true if the caller is the current owner. */ function isOwner() public view returns (bool) { return _msgSender() == _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 onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = 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 onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } interface IPepemonFactory { function balanceOf(address _owner, uint256 _id) external view returns (uint256); function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory); function mint(address _to, uint256 _id, uint256 _quantity, bytes calldata _data) external; function burn(address _account, uint256 _id, uint256 _amount) external; function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _amount, bytes calldata _data) external; function safeBatchTransferFrom(address _from, address _to, uint256[] calldata _ids, uint256[] calldata _amounts, bytes calldata _data) external; } contract PepemonStake is Ownable { using SafeMath for uint256; IPepemonFactory public pepemonFactory; struct StakingEvent { uint256[] cardIdList; uint256 cardAmountAny; // If this is > 0, cardAmountList will be ignored, and user will be able to stake multiple cards of any card accepted uint256[] cardAmountList; // Will be ignored if cardAmountAny > 0 uint256 cardRewardId; uint256 blockStakeLength; // Amounts of blocks of staking required to complete the event uint256 blockEventClose; // Block at which this event will not accept any new stake uint256[] toBurnIdList; // Id list of cards to burn on completion of event uint256[] toBurnAmountList; // Amount list of cards to burn on completion of event } struct UserInfo { bool isCompleted; uint256 blockEnd; // Block at which user will have completed the event (If this is not 0, user is currently staking) } StakingEvent[] public stakingEvents; mapping (address => mapping(uint256 => UserInfo)) public userInfo; mapping (address => mapping(uint256 => mapping(uint256 => uint256))) public cardsStaked; // address => eventId => cardId => amountStaked //// // Events //// event StakingEventCreated(uint256 eventId); event StakingEventEntered(address indexed user, uint256 eventId); event StakingEventCompleted(address indexed user, uint256 eventId); event StakingEventCancelled(address indexed user, uint256 eventId); ////////////// constructor(IPepemonFactory _pepemonFactoryAddress) public { pepemonFactory = _pepemonFactoryAddress; } //// // View //// function getStakingEventsLength() external view returns(uint256) { return stakingEvents.length; } // Return all staking events function getAllEvents() public view returns(StakingEvent[] memory) { return stakingEvents; } // Returns the id list of all active events function getActiveEvents() external view returns(uint256[] memory) { StakingEvent[] memory _events = getAllEvents(); uint256 nbActive = 0; for (uint256 i = 0; i < _events.length; i++) { if (_events[i].blockEventClose >= block.number) { nbActive++; } } uint256[] memory _result = new uint256[](nbActive); uint256 idx = 0; for (uint256 i = 0; i < _events.length; i++) { if (_events[i].blockEventClose >= block.number) { _result[idx] = i; idx++; } } return _result; } // Returns the id list of all closed events function getClosedEvents() external view returns(uint256[] memory) { StakingEvent[] memory _events = getAllEvents(); uint256 nbCompleted = 0; for (uint256 i = 0; i < _events.length; i++) { if (_events[i].blockEventClose < block.number) { nbCompleted++; } } uint256[] memory _result = new uint256[](nbCompleted); uint256 idx = 0; for (uint256 i = 0; i < _events.length; i++) { if (_events[i].blockEventClose < block.number) { _result[idx] = i; idx++; } } return _result; } function getCardIdListOfEvent(uint256 _eventId) external view returns(uint256[] memory) { return stakingEvents[_eventId].cardIdList; } function getCardAmountListOfEvent(uint256 _eventId) external view returns(uint256[] memory) { return stakingEvents[_eventId].cardAmountList; } // Returns the % progress of the user towards completion of the event (100% = 1e5) function getUserProgress(address _user, uint256 _eventId) external view returns(uint256) { StakingEvent memory _event = stakingEvents[_eventId]; UserInfo memory _userInfo = userInfo[_user][_eventId]; if (_userInfo.blockEnd == 0) { return 0; } if (_userInfo.isCompleted || block.number >= _userInfo.blockEnd) { return 1e5; } uint256 blocksLeft = _userInfo.blockEnd.sub(block.number); // Amount of blocks the user has been staked for this event uint256 blocksStaked = _event.blockStakeLength.sub(blocksLeft); return blocksStaked.mul(1e5).div(_event.blockStakeLength); } ////////////// // Create a new staking event function createStakingEvent(uint256[] memory _cardIdList, uint256 _cardAmountAny, uint256[] memory _cardAmountList, uint256 _cardRewardId, uint256 _blockStakeLength, uint256 _blockEventClose, uint256[] memory _toBurnIdList, uint256[] memory _toBurnAmountList) public onlyOwner { require(_cardIdList.length > 0, "Accepted card list is empty"); require(_cardAmountAny > 0 || _cardAmountList.length > 0, "Card amount required not specified"); require(_blockEventClose > block.number, "blockEventClose < current block"); require(_toBurnIdList.length == _toBurnAmountList.length, "ToBurn arrays have different length"); require(_cardAmountAny == 0 || _toBurnIdList.length == 0, "ToBurn not supported with anyEvent"); stakingEvents.push(StakingEvent({ cardIdList: _cardIdList, cardAmountAny: _cardAmountAny, cardAmountList: _cardAmountList, cardRewardId: _cardRewardId, blockStakeLength: _blockStakeLength, blockEventClose: _blockEventClose, toBurnIdList: _toBurnIdList, toBurnAmountList: _toBurnAmountList })); emit StakingEventCreated(stakingEvents.length - 1); } // Close prematurely a staking event function closeStakingEvent(uint256 _eventId) public onlyOwner { require(stakingEvents[_eventId].blockEventClose > block.number, "Event already closed"); stakingEvents[_eventId].blockEventClose = block.number; } ////////////// // Stake cards into a staking event function stakeAny(uint256 _eventId, uint256[] memory _cardIdList, uint256[] memory _cardAmountList) public { require(_cardIdList.length == _cardAmountList.length, "Arrays have different length"); StakingEvent storage _event = stakingEvents[_eventId]; UserInfo storage _userInfo = userInfo[msg.sender][_eventId]; require(block.number <= _event.blockEventClose, "Event is closed"); require(_userInfo.isCompleted == false, "Address already completed event"); require(_userInfo.blockEnd == 0, "Address already staked for this event"); require(_event.cardAmountAny > 0, "Not a stakeAny event"); for (uint256 i = 0; i < _cardIdList.length; i++) { require(_isInArray(_cardIdList[i], _event.cardIdList), "Card not accepted"); } uint256 total = 0; for (uint256 i = 0; i < _cardAmountList.length; i++) { total = total.add(_cardAmountList[i]); } require(total == _event.cardAmountAny, "Wrong card total"); pepemonFactory.safeBatchTransferFrom(msg.sender, address(this), _cardIdList, _cardAmountList, ""); // Save list cards staked in storage for (uint256 i = 0; i < _cardIdList.length; i++) { uint256 cardId = _cardIdList[i]; uint256 amount = _cardAmountList[i]; cardsStaked[msg.sender][_eventId][cardId] = amount; } _userInfo.blockEnd = block.number.add(_event.blockStakeLength); emit StakingEventEntered(msg.sender, _eventId); } // Function to use for staking with an event where cardId and cardAmount are fixed function stake(uint256 _eventId) public { StakingEvent storage _event = stakingEvents[_eventId]; UserInfo storage _userInfo = userInfo[msg.sender][_eventId]; require(block.number <= _event.blockEventClose, "Event is closed"); require(_userInfo.isCompleted == false, "Address already completed event"); require(_userInfo.blockEnd == 0, "Address already staked for this event"); pepemonFactory.safeBatchTransferFrom(msg.sender, address(this), _event.cardIdList, _event.cardAmountList, ""); // Save list cards staked in storage for (uint256 i = 0; i < _event.cardIdList.length; i++) { uint256 cardId = _event.cardIdList[i]; uint256 amount = _event.cardAmountList[i]; cardsStaked[msg.sender][_eventId][cardId] = amount; } _userInfo.blockEnd = block.number.add(_event.blockStakeLength); emit StakingEventEntered(msg.sender, _eventId); } // Claim staked cards + reward function claim(uint256 _eventId) public { StakingEvent storage _event = stakingEvents[_eventId]; UserInfo storage _userInfo = userInfo[msg.sender][_eventId]; require(block.number >= _userInfo.blockEnd, "BlockEnd not reached"); _userInfo.isCompleted = true; pepemonFactory.mint(msg.sender, _event.cardRewardId, 1, ""); _withdrawCardsStaked(_eventId, true); emit StakingEventCompleted(msg.sender, _eventId); } // Withdraw staked cards, but reset event progress function cancel(uint256 _eventId) public { UserInfo storage _userInfo = userInfo[msg.sender][_eventId]; require(_userInfo.isCompleted == false, "Address already completed event"); require(_userInfo.blockEnd != 0, "Address is not staked for this event"); delete _userInfo.isCompleted; delete _userInfo.blockEnd; _withdrawCardsStaked(_eventId, false); emit StakingEventCancelled(msg.sender, _eventId); } function _withdrawCardsStaked(uint256 _eventId, bool _burn) internal { StakingEvent storage _event = stakingEvents[_eventId]; uint256[] memory _cardIdList = _event.cardIdList; uint256[] memory _cardAmountList = new uint256[](_cardIdList.length); uint256[] memory _toBurnIdList = _event.toBurnIdList; uint256[] memory _toBurnAmountList = _event.toBurnAmountList; // Burn cards which needs to be burn to complete the evend if (_burn == true) { for (uint256 i = 0; i < _toBurnIdList.length; i++) { uint256 cardId = _toBurnIdList[i]; uint256 amount = _toBurnAmountList[i]; cardsStaked[msg.sender][_eventId][cardId] = cardsStaked[msg.sender][_eventId][cardId].sub(amount); pepemonFactory.burn(address(this), cardId, amount); } } // Get all cards staked by address, and set to 0 amount staked for (uint256 i = 0; i < _cardIdList.length; i++) { uint256 cardId = _cardIdList[i]; _cardAmountList[i] = cardsStaked[msg.sender][_eventId][cardId]; delete cardsStaked[msg.sender][_eventId][cardId]; } pepemonFactory.safeBatchTransferFrom(address(this), msg.sender, _cardIdList, _cardAmountList, ""); } // Utility function to check if a value is inside an array function _isInArray(uint256 _value, uint256[] memory _array) internal pure returns(bool) { uint256 length = _array.length; for (uint256 i = 0; i < length; ++i) { if (_array[i] == _value) { return true; } } return false; } ///////// ///////// ///////// /** * @notice Handle the receipt of a single ERC1155 token type * @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated * This function MAY throw to revert and reject the transfer * Return of other amount than the magic value MUST result in the transaction being reverted * Note: The token contract address is always the message sender * @param _operator The address which called the `safeTransferFrom` function * @param _from The address which previously owned the token * @param _id The id of the token being transferred * @param _amount The amount of tokens being transferred * @param _data Additional data with no specified format * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` */ function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _amount, bytes calldata _data) external returns(bytes4) { return 0xf23a6e61; } /** * @notice Handle the receipt of multiple ERC1155 token types * @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated * This function MAY throw to revert and reject the transfer * Return of other amount than the magic value WILL result in the transaction being reverted * Note: The token contract address is always the message sender * @param _operator The address which called the `safeBatchTransferFrom` function * @param _from The address which previously owned the token * @param _ids An array containing ids of each token being transferred * @param _amounts An array containing amounts of each token being transferred * @param _data Additional data with no specified format * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` */ function onERC1155BatchReceived(address _operator, address _from, uint256[] calldata _ids, uint256[] calldata _amounts, bytes calldata _data) external returns(bytes4) { return 0xbc197c81; } /** * @notice Indicates whether a contract implements the `ERC1155TokenReceiver` functions and so can accept ERC1155 token types. * @param interfaceID The ERC-165 interface ID that is queried for support.s * @dev This function MUST return true if it implements the ERC1155TokenReceiver interface and ERC-165 interface. * This function MUST NOT consume more than 5,000 gas. * @return Wheter ERC-165 or ERC1155TokenReceiver interfaces are supported. */ function supportsInterface(bytes4 interfaceID) external view returns (bool) { return interfaceID == 0x01ffc9a7 || // ERC-165 support (i.e. `bytes4(keccak256('supportsInterface(bytes4)'))`). interfaceID == 0x4e2312e0; // ERC-1155 `ERC1155TokenReceiver` support (i.e. `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)")) ^ bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))`). } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract IPepemonFactory","name":"_pepemonFactoryAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"eventId","type":"uint256"}],"name":"StakingEventCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"eventId","type":"uint256"}],"name":"StakingEventCompleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"eventId","type":"uint256"}],"name":"StakingEventCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"eventId","type":"uint256"}],"name":"StakingEventEntered","type":"event"},{"inputs":[{"internalType":"uint256","name":"_eventId","type":"uint256"}],"name":"cancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"cardsStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eventId","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eventId","type":"uint256"}],"name":"closeStakingEvent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_cardIdList","type":"uint256[]"},{"internalType":"uint256","name":"_cardAmountAny","type":"uint256"},{"internalType":"uint256[]","name":"_cardAmountList","type":"uint256[]"},{"internalType":"uint256","name":"_cardRewardId","type":"uint256"},{"internalType":"uint256","name":"_blockStakeLength","type":"uint256"},{"internalType":"uint256","name":"_blockEventClose","type":"uint256"},{"internalType":"uint256[]","name":"_toBurnIdList","type":"uint256[]"},{"internalType":"uint256[]","name":"_toBurnAmountList","type":"uint256[]"}],"name":"createStakingEvent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getActiveEvents","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllEvents","outputs":[{"components":[{"internalType":"uint256[]","name":"cardIdList","type":"uint256[]"},{"internalType":"uint256","name":"cardAmountAny","type":"uint256"},{"internalType":"uint256[]","name":"cardAmountList","type":"uint256[]"},{"internalType":"uint256","name":"cardRewardId","type":"uint256"},{"internalType":"uint256","name":"blockStakeLength","type":"uint256"},{"internalType":"uint256","name":"blockEventClose","type":"uint256"},{"internalType":"uint256[]","name":"toBurnIdList","type":"uint256[]"},{"internalType":"uint256[]","name":"toBurnAmountList","type":"uint256[]"}],"internalType":"struct PepemonStake.StakingEvent[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eventId","type":"uint256"}],"name":"getCardAmountListOfEvent","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eventId","type":"uint256"}],"name":"getCardIdListOfEvent","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getClosedEvents","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakingEventsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_eventId","type":"uint256"}],"name":"getUserProgress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pepemonFactory","outputs":[{"internalType":"contract IPepemonFactory","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eventId","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_eventId","type":"uint256"},{"internalType":"uint256[]","name":"_cardIdList","type":"uint256[]"},{"internalType":"uint256[]","name":"_cardAmountList","type":"uint256[]"}],"name":"stakeAny","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakingEvents","outputs":[{"internalType":"uint256","name":"cardAmountAny","type":"uint256"},{"internalType":"uint256","name":"cardRewardId","type":"uint256"},{"internalType":"uint256","name":"blockStakeLength","type":"uint256"},{"internalType":"uint256","name":"blockEventClose","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userInfo","outputs":[{"internalType":"bool","name":"isCompleted","type":"bool"},{"internalType":"uint256","name":"blockEnd","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50604051620041393803806200413983398181016040528101906200003791906200014e565b6000620000496200012f60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050620001dc565b600033905090565b6000815190506200014881620001c2565b92915050565b6000602082840312156200016157600080fd5b6000620001718482850162000137565b91505092915050565b60006200018782620001a2565b9050919050565b60006200019b826200017a565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620001cd816200018e565b8114620001d957600080fd5b50565b613f4d80620001ec6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063c27a500d1161007c578063c27a500d146103dd578063c719eafd146103fb578063d6b4a22114610417578063f23a6e6114610447578063f2fde38b14610477578063f5e620901461049357610158565b80638da5cb5b146103045780638f32d59b14610322578063991ea45114610340578063a694fc3a14610373578063bc197c811461038f578063c15adaa6146103bf57610158565b806340e58ee51161011557806340e58ee5146102585780634f8e9f2c1461027457806351de989b1461029057806358f11a02146102c05780636880e4be146102de578063715018a6146102fa57610158565b806301ffc9a71461015d5780631ea4a45d1461018d57806321ce919d146101bd57806322fb58f7146101ee5780633612280f1461021e578063379607f51461023c575b600080fd5b61017760048036038101906101729190612cdd565b6104b1565b60405161018491906138dc565b60405180910390f35b6101a760048036038101906101a29190612b40565b610513565b6040516101b49190613bd8565b60405180910390f35b6101d760048036038101906101d29190612b40565b610805565b6040516101e59291906138f7565b60405180910390f35b61020860048036038101906102039190612d06565b610843565b60405161021591906138ba565b60405180910390f35b6102266108b9565b60405161023391906138ba565b60405180910390f35b61025660048036038101906102519190612d06565b6109c6565b005b610272600480360381019061026d9190612d06565b610b91565b005b61028e60048036038101906102899190612d2f565b610cfe565b005b6102aa60048036038101906102a59190612d06565b6111fa565b6040516102b791906138ba565b60405180910390f35b6102c8611270565b6040516102d5919061393b565b60405180910390f35b6102f860048036038101906102f39190612d06565b611296565b005b610302611363565b005b61030c611469565b60405161031991906136ca565b60405180910390f35b61032a611492565b60405161033791906138dc565b60405180910390f35b61035a60048036038101906103559190612d06565b6114f0565b60405161036a9493929190613bf3565b60405180910390f35b61038d60048036038101906103889190612d06565b61152d565b005b6103a960048036038101906103a491906129e2565b611858565b6040516103b69190613920565b60405180910390f35b6103c7611870565b6040516103d49190613bd8565b60405180910390f35b6103e561187d565b6040516103f29190613898565b60405180910390f35b61041560048036038101906104109190612bcb565b611a65565b005b610431600480360381019061042c9190612b7c565b611d60565b60405161043e9190613bd8565b60405180910390f35b610461600480360381019061045c9190612aae565b611d92565b60405161046e9190613920565b60405180910390f35b610491600480360381019061048c91906129b9565b611da8565b005b61049b611dfb565b6040516104a891906138ba565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061050c5750634e2312e060e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600061051d612790565b6002838154811061052a57fe5b9060005260206000209060080201604051806101000160405290816000820180548060200260200160405190810160405280929190818152602001828054801561059357602002820191906000526020600020905b81548152602001906001019080831161057f575b5050505050815260200160018201548152602001600282018054806020026020016040519081016040528092919081815260200182805480156105f557602002820191906000526020600020905b8154815260200190600101908083116105e1575b505050505081526020016003820154815260200160048201548152602001600582015481526020016006820180548060200260200160405190810160405280929190818152602001828054801561066b57602002820191906000526020600020905b815481526020019060010190808311610657575b50505050508152602001600782018054806020026020016040519081016040528092919081815260200182805480156106c357602002820191906000526020600020905b8154815260200190600101908083116106af575b50505050508152505090506106d66127d5565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250509050600081602001511415610770576000925050506107ff565b806000015180610784575080602001514310155b1561079657620186a0925050506107ff565b60006107af438360200151611f0a90919063ffffffff16565b905060006107ca828560800151611f0a90919063ffffffff16565b90506107f884608001516107ea620186a084611f5490919063ffffffff16565b611fc490919063ffffffff16565b9450505050505b92915050565b6003602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900460ff16908060010154905082565b60606002828154811061085257fe5b90600052602060002090600802016002018054806020026020016040519081016040528092919081815260200182805480156108ad57602002820191906000526020600020905b815481526020019060010190808311610899575b50505050509050919050565b6060806108c461187d565b9050600080905060008090505b825181101561090e57438382815181106108e757fe5b602002602001015160a00151106109015781806001019250505b80806001019150506108d1565b5060608167ffffffffffffffff8111801561092857600080fd5b506040519080825280602002602001820160405280156109575781602001602082028036833780820191505090505b509050600080905060008090505b84518110156109bb574385828151811061097b57fe5b602002602001015160a00151106109ae578083838151811061099957fe5b60200260200101818152505081806001019250505b8080600101915050610965565b508194505050505090565b6000600282815481106109d557fe5b906000526020600020906008020190506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002090508060010154431015610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7790613b98565b60405180910390fd5b60018160000160006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663731133e933846003015460016040518463ffffffff1660e01b8152600401610b01939291906137b1565b600060405180830381600087803b158015610b1b57600080fd5b505af1158015610b2f573d6000803e3d6000fd5b50505050610b3e83600161200e565b3373ffffffffffffffffffffffffffffffffffffffff167f4024be4510660e8ca20084467741d06306c1ccda37258091ccb14f895b44fdd184604051610b849190613bd8565b60405180910390a2505050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000209050600015158160000160009054906101000a900460ff16151514610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490613a58565b60405180910390fd5b600081600101541415610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c90613bb8565b60405180910390fd5b8060000160006101000a81549060ff02191690558060010160009055610cac82600061200e565b3373ffffffffffffffffffffffffffffffffffffffff167f4ab09103bc62ec7f307b071d4dabd73022d639c34874559ccfb20a0a143704b083604051610cf29190613bd8565b60405180910390a25050565b8051825114610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3990613b58565b60405180910390fd5b600060028481548110610d5157fe5b906000526020600020906008020190506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002090508160050154431115610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390613ab8565b60405180910390fd5b600015158160000160009054906101000a900460ff16151514610e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4b90613a58565b60405180910390fd5b6000816001015414610e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9290613a78565b60405180910390fd5b6000826001015411610ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed990613a38565b60405180910390fd5b60008090505b8451811015610fac57610f60858281518110610f0057fe5b602002602001015184600001805480602002602001604051908101604052809291908181526020018280548015610f5657602002820191906000526020600020905b815481526020019060010190808311610f42575b50505050506124f6565b610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9690613af8565b60405180910390fd5b8080600101915050610ee8565b50600080905060008090505b8451811015610ff657610fe7858281518110610fd057fe5b60200260200101518361254990919063ffffffff16565b91508080600101915050610fb8565b508260010154811461103d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103490613998565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632eb2c2d6333088886040518563ffffffff1660e01b815260040161109e94939291906136e5565b600060405180830381600087803b1580156110b857600080fd5b505af11580156110cc573d6000803e3d6000fd5b5050505060008090505b85518110156111845760008682815181106110ed57fe5b60200260200101519050600086838151811061110557fe5b6020026020010151905080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b8152602001908152602001600020600084815260200190815260200160002081905550505080806001019150506110d6565b5061119c83600401544361254990919063ffffffff16565b82600101819055503373ffffffffffffffffffffffffffffffffffffffff167f5171a8515feefa86088c51257c516029be643e3804d0e5b4f6532d672ba433b1876040516111ea9190613bd8565b60405180910390a2505050505050565b60606002828154811061120957fe5b906000526020600020906008020160000180548060200260200160405190810160405280929190818152602001828054801561126457602002820191906000526020600020905b815481526020019060010190808311611250575b50505050509050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61129e611492565b6112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490613b38565b60405180910390fd5b43600282815481106112eb57fe5b9060005260206000209060080201600501541161133d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611334906139f8565b60405180910390fd5b436002828154811061134b57fe5b90600052602060002090600802016005018190555050565b61136b611492565b6113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190613b38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114d461259e565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600281815481106114fd57fe5b90600052602060002090600802016000915090508060010154908060030154908060040154908060050154905084565b60006002828154811061153c57fe5b906000526020600020906008020190506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020905081600501544311156115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90613ab8565b60405180910390fd5b600015158160000160009054906101000a900460ff1615151461163f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163690613a58565b60405180910390fd5b6000816001015414611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d90613a78565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632eb2c2d6333085600001866002016040518563ffffffff1660e01b81526004016116ed949392919061374b565b600060405180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b5050505060008090505b82600001805490508110156117e557600083600001828154811061174557fe5b90600052602060002001549050600084600201838154811061176357fe5b9060005260206000200154905080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060008481526020019081526020016000208190555050508080600101915050611725565b506117fd82600401544361254990919063ffffffff16565b81600101819055503373ffffffffffffffffffffffffffffffffffffffff167f5171a8515feefa86088c51257c516029be643e3804d0e5b4f6532d672ba433b18460405161184b9190613bd8565b60405180910390a2505050565b600063bc197c8160e01b905098975050505050505050565b6000600280549050905090565b60606002805480602002602001604051908101604052809291908181526020016000905b82821015611a5c5783829060005260206000209060080201604051806101000160405290816000820180548060200260200160405190810160405280929190818152602001828054801561191457602002820191906000526020600020905b815481526020019060010190808311611900575b50505050508152602001600182015481526020016002820180548060200260200160405190810160405280929190818152602001828054801561197657602002820191906000526020600020905b815481526020019060010190808311611962575b50505050508152602001600382015481526020016004820154815260200160058201548152602001600682018054806020026020016040519081016040528092919081815260200182805480156119ec57602002820191906000526020600020905b8154815260200190600101908083116119d8575b5050505050815260200160078201805480602002602001604051908101604052809291908181526020018280548015611a4457602002820191906000526020600020905b815481526020019060010190808311611a30575b505050505081525050815260200190600101906118a1565b50505050905090565b611a6d611492565b611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa390613b38565b60405180910390fd5b6000885111611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae790613978565b60405180910390fd5b6000871180611b00575060008651115b611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3690613b78565b60405180910390fd5b438311611b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b78906139d8565b60405180910390fd5b8051825114611bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbc90613ad8565b60405180910390fd5b6000871480611bd5575060008251145b611c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0b90613a98565b60405180910390fd5b60026040518061010001604052808a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381525090806001815401808255809150506001900390600052602060002090600802016000909190919091506000820151816000019080519060200190611c959291906127f1565b50602082015181600101556040820151816002019080519060200190611cbc9291906127f1565b50606082015181600301556080820151816004015560a0820151816005015560c0820151816006019080519060200190611cf79291906127f1565b5060e0820151816007019080519060200190611d149291906127f1565b5050507f9287a6bb6f0e7d619dad6cef4d83f30cde264a69ce8014cf38792efbd7340248600160028054905003604051611d4e9190613bd8565b60405180910390a15050505050505050565b600460205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b600063f23a6e6160e01b90509695505050505050565b611db0611492565b611def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de690613b38565b60405180910390fd5b611df8816125a6565b50565b606080611e0661187d565b9050600080905060008090505b8251811015611e515743838281518110611e2957fe5b602002602001015160a001511015611e445781806001019250505b8080600101915050611e13565b5060608167ffffffffffffffff81118015611e6b57600080fd5b50604051908082528060200260200182016040528015611e9a5781602001602082028036833780820191505090505b509050600080905060008090505b8451811015611eff5743858281518110611ebe57fe5b602002602001015160a001511015611ef25780838381518110611edd57fe5b60200260200101818152505081806001019250505b8080600101915050611ea8565b508194505050505090565b6000611f4c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126d4565b905092915050565b600080831415611f675760009050611fbe565b6000828402905082848281611f7857fe5b0414611fb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb090613b18565b60405180910390fd5b809150505b92915050565b600061200683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061272f565b905092915050565b60006002838154811061201d57fe5b9060005260206000209060080201905060608160000180548060200260200160405190810160405280929190818152602001828054801561207d57602002820191906000526020600020905b815481526020019060010190808311612069575b505050505090506060815167ffffffffffffffff8111801561209e57600080fd5b506040519080825280602002602001820160405280156120cd5781602001602082028036833780820191505090505b50905060608360060180548060200260200160405190810160405280929190818152602001828054801561212057602002820191906000526020600020905b81548152602001906001019080831161210c575b5050505050905060608460070180548060200260200160405190810160405280929190818152602001828054801561217757602002820191906000526020600020905b815481526020019060010190808311612163575b505050505090506001151586151514156123455760008090505b82518110156123435760008382815181106121a857fe5b6020026020010151905060008383815181106121c057fe5b6020026020010151905061223e81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d8152602001908152602001600020600085815260200190815260200160002054611f0a90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c8152602001908152602001600020600084815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca3084846040518463ffffffff1660e01b815260040161230293929190613861565b600060405180830381600087803b15801561231c57600080fd5b505af1158015612330573d6000803e3d6000fd5b5050505050508080600101915050612191565b505b60008090505b845181101561245957600085828151811061236257fe5b60200260200101519050600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a81526020019081526020016000206000828152602001908152602001600020548583815181106123da57fe5b602002602001018181525050600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a815260200190815260200160002060008281526020019081526020016000206000905550808060010191505061234b565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632eb2c2d6303387876040518563ffffffff1660e01b81526004016124bb94939291906137fb565b600060405180830381600087803b1580156124d557600080fd5b505af11580156124e9573d6000803e3d6000fd5b5050505050505050505050565b6000808251905060008090505b8181101561253c578484828151811061251857fe5b6020026020010151141561253157600192505050612543565b806001019050612503565b5060009150505b92915050565b600080828401905083811015612594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258b90613a18565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260d906139b8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600083831115829061271c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127139190613956565b60405180910390fd5b5060008385039050809150509392505050565b60008083118290612776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276d9190613956565b60405180910390fd5b50600083858161278257fe5b049050809150509392505050565b60405180610100016040528060608152602001600081526020016060815260200160008152602001600081526020016000815260200160608152602001606081525090565b6040518060400160405280600015158152602001600081525090565b82805482825590600052602060002090810192821561282d579160200282015b8281111561282c578251825591602001919060010190612811565b5b50905061283a919061283e565b5090565b61286091905b8082111561285c576000816000905550600101612844565b5090565b90565b60008135905061287281613ed2565b92915050565b60008083601f84011261288a57600080fd5b8235905067ffffffffffffffff8111156128a357600080fd5b6020830191508360208202830111156128bb57600080fd5b9250929050565b600082601f8301126128d357600080fd5b81356128e66128e182613c65565b613c38565b9150818183526020840193506020810190508385602084028201111561290b57600080fd5b60005b8381101561293b578161292188826129a4565b84526020840193506020830192505060018101905061290e565b5050505092915050565b60008135905061295481613ee9565b92915050565b60008083601f84011261296c57600080fd5b8235905067ffffffffffffffff81111561298557600080fd5b60208301915083600182028301111561299d57600080fd5b9250929050565b6000813590506129b381613f00565b92915050565b6000602082840312156129cb57600080fd5b60006129d984828501612863565b91505092915050565b60008060008060008060008060a0898b0312156129fe57600080fd5b6000612a0c8b828c01612863565b9850506020612a1d8b828c01612863565b975050604089013567ffffffffffffffff811115612a3a57600080fd5b612a468b828c01612878565b9650965050606089013567ffffffffffffffff811115612a6557600080fd5b612a718b828c01612878565b9450945050608089013567ffffffffffffffff811115612a9057600080fd5b612a9c8b828c0161295a565b92509250509295985092959890939650565b60008060008060008060a08789031215612ac757600080fd5b6000612ad589828a01612863565b9650506020612ae689828a01612863565b9550506040612af789828a016129a4565b9450506060612b0889828a016129a4565b935050608087013567ffffffffffffffff811115612b2557600080fd5b612b3189828a0161295a565b92509250509295509295509295565b60008060408385031215612b5357600080fd5b6000612b6185828601612863565b9250506020612b72858286016129a4565b9150509250929050565b600080600060608486031215612b9157600080fd5b6000612b9f86828701612863565b9350506020612bb0868287016129a4565b9250506040612bc1868287016129a4565b9150509250925092565b600080600080600080600080610100898b031215612be857600080fd5b600089013567ffffffffffffffff811115612c0257600080fd5b612c0e8b828c016128c2565b9850506020612c1f8b828c016129a4565b975050604089013567ffffffffffffffff811115612c3c57600080fd5b612c488b828c016128c2565b9650506060612c598b828c016129a4565b9550506080612c6a8b828c016129a4565b94505060a0612c7b8b828c016129a4565b93505060c089013567ffffffffffffffff811115612c9857600080fd5b612ca48b828c016128c2565b92505060e089013567ffffffffffffffff811115612cc157600080fd5b612ccd8b828c016128c2565b9150509295985092959890939650565b600060208284031215612cef57600080fd5b6000612cfd84828501612945565b91505092915050565b600060208284031215612d1857600080fd5b6000612d26848285016129a4565b91505092915050565b600080600060608486031215612d4457600080fd5b6000612d52868287016129a4565b935050602084013567ffffffffffffffff811115612d6f57600080fd5b612d7b868287016128c2565b925050604084013567ffffffffffffffff811115612d9857600080fd5b612da4868287016128c2565b9150509250925092565b6000612dba83836135e7565b905092915050565b6000612dce83836136ac565b60208301905092915050565b612de381613de8565b82525050565b612df281613d74565b82525050565b6000612e0382613cc2565b612e0d8185613d15565b935083602082028501612e1f85613c8d565b8060005b85811015612e5b5784840389528151612e3c8582612dae565b9450612e4783613cee565b925060208a01995050600181019050612e23565b50829750879550505050505092915050565b6000612e7882613ccd565b612e828185613d26565b9350612e8d83613c9d565b8060005b83811015612ebe578151612ea58882612dc2565b9750612eb083613cfb565b925050600181019050612e91565b5085935050505092915050565b6000612ed682613ccd565b612ee08185613d37565b9350612eeb83613c9d565b8060005b83811015612f1c578151612f038882612dc2565b9750612f0e83613cfb565b925050600181019050612eef565b5085935050505092915050565b6000612f3482613cd8565b612f3e8185613d37565b9350612f4983613cad565b8060005b83811015612f8157612f5e82613ea1565b612f688882612dc2565b9750612f7383613d08565b925050600181019050612f4d565b5085935050505092915050565b612f9781613d86565b82525050565b612fa681613d92565b82525050565b612fb581613dfa565b82525050565b612fc481613e1e565b82525050565b6000612fd582613ce3565b612fdf8185613d59565b9350612fef818560208601613e54565b612ff881613eb4565b840191505092915050565b6000613010601b83613d59565b91507f41636365707465642063617264206c69737420697320656d70747900000000006000830152602082019050919050565b6000613050601083613d59565b91507f57726f6e67206361726420746f74616c000000000000000000000000000000006000830152602082019050919050565b6000613090602683613d59565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006130f6601f83613d59565b91507f626c6f636b4576656e74436c6f7365203c2063757272656e7420626c6f636b006000830152602082019050919050565b6000613136601483613d59565b91507f4576656e7420616c726561647920636c6f7365640000000000000000000000006000830152602082019050919050565b6000613176601b83613d59565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006131b6601483613d59565b91507f4e6f742061207374616b65416e79206576656e740000000000000000000000006000830152602082019050919050565b60006131f6601f83613d59565b91507f4164647265737320616c726561647920636f6d706c65746564206576656e74006000830152602082019050919050565b6000613236602583613d59565b91507f4164647265737320616c7265616479207374616b656420666f7220746869732060008301527f6576656e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061329c602283613d59565b91507f546f4275726e206e6f7420737570706f72746564207769746820616e7945766560008301527f6e740000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613302600f83613d59565b91507f4576656e7420697320636c6f73656400000000000000000000000000000000006000830152602082019050919050565b6000613342602383613d59565b91507f546f4275726e20617272617973206861766520646966666572656e74206c656e60008301527f67746800000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006133a8601183613d59565b91507f43617264206e6f742061636365707465640000000000000000000000000000006000830152602082019050919050565b60006133e8602183613d59565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061344e602083613d59565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061348e601c83613d59565b91507f417272617973206861766520646966666572656e74206c656e677468000000006000830152602082019050919050565b60006134ce602283613d59565b91507f4361726420616d6f756e74207265717569726564206e6f74207370656369666960008301527f65640000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613534600083613d48565b9150600082019050919050565b600061354e601483613d59565b91507f426c6f636b456e64206e6f7420726561636865640000000000000000000000006000830152602082019050919050565b600061358e602483613d59565b91507f41646472657373206973206e6f74207374616b656420666f722074686973206560008301527f76656e74000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006101008301600083015184820360008601526136058282612e6d565b915050602083015161361a60208601826136ac565b50604083015184820360408601526136328282612e6d565b915050606083015161364760608601826136ac565b50608083015161365a60808601826136ac565b5060a083015161366d60a08601826136ac565b5060c083015184820360c08601526136858282612e6d565b91505060e083015184820360e086015261369f8282612e6d565b9150508091505092915050565b6136b581613dde565b82525050565b6136c481613dde565b82525050565b60006020820190506136df6000830184612de9565b92915050565b600060a0820190506136fa6000830187612dda565b6137076020830186612de9565b81810360408301526137198185612ecb565b9050818103606083015261372d8184612ecb565b9050818103608083015261374081613527565b905095945050505050565b600060a0820190506137606000830187612dda565b61376d6020830186612de9565b818103604083015261377f8185612f29565b905081810360608301526137938184612f29565b905081810360808301526137a681613527565b905095945050505050565b60006080820190506137c66000830186612dda565b6137d360208301856136bb565b6137e06040830184612fbb565b81810360608301526137f181613527565b9050949350505050565b600060a0820190506138106000830187612de9565b61381d6020830186612dda565b818103604083015261382f8185612ecb565b905081810360608301526138438184612ecb565b9050818103608083015261385681613527565b905095945050505050565b60006060820190506138766000830186612de9565b61388360208301856136bb565b61389060408301846136bb565b949350505050565b600060208201905081810360008301526138b28184612df8565b905092915050565b600060208201905081810360008301526138d48184612ecb565b905092915050565b60006020820190506138f16000830184612f8e565b92915050565b600060408201905061390c6000830185612f8e565b61391960208301846136bb565b9392505050565b60006020820190506139356000830184612f9d565b92915050565b60006020820190506139506000830184612fac565b92915050565b600060208201905081810360008301526139708184612fca565b905092915050565b6000602082019050818103600083015261399181613003565b9050919050565b600060208201905081810360008301526139b181613043565b9050919050565b600060208201905081810360008301526139d181613083565b9050919050565b600060208201905081810360008301526139f1816130e9565b9050919050565b60006020820190508181036000830152613a1181613129565b9050919050565b60006020820190508181036000830152613a3181613169565b9050919050565b60006020820190508181036000830152613a51816131a9565b9050919050565b60006020820190508181036000830152613a71816131e9565b9050919050565b60006020820190508181036000830152613a9181613229565b9050919050565b60006020820190508181036000830152613ab18161328f565b9050919050565b60006020820190508181036000830152613ad1816132f5565b9050919050565b60006020820190508181036000830152613af181613335565b9050919050565b60006020820190508181036000830152613b118161339b565b9050919050565b60006020820190508181036000830152613b31816133db565b9050919050565b60006020820190508181036000830152613b5181613441565b9050919050565b60006020820190508181036000830152613b7181613481565b9050919050565b60006020820190508181036000830152613b91816134c1565b9050919050565b60006020820190508181036000830152613bb181613541565b9050919050565b60006020820190508181036000830152613bd181613581565b9050919050565b6000602082019050613bed60008301846136bb565b92915050565b6000608082019050613c0860008301876136bb565b613c1560208301866136bb565b613c2260408301856136bb565b613c2f60608301846136bb565b95945050505050565b6000604051905081810181811067ffffffffffffffff82111715613c5b57600080fd5b8060405250919050565b600067ffffffffffffffff821115613c7c57600080fd5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081549050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000600182019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000819050919050565b6000613d7f82613dbe565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613df382613e30565b9050919050565b6000613e0582613e0c565b9050919050565b6000613e1782613dbe565b9050919050565b6000613e2982613dde565b9050919050565b6000613e3b82613e42565b9050919050565b6000613e4d82613dbe565b9050919050565b60005b83811015613e72578082015181840152602081019050613e57565b83811115613e81576000848401525b50505050565b6000613e9a613e9583613ec5565b613d6a565b9050919050565b6000613ead8254613e87565b9050919050565b6000601f19601f8301169050919050565b60008160001c9050919050565b613edb81613d74565b8114613ee657600080fd5b50565b613ef281613d92565b8114613efd57600080fd5b50565b613f0981613dde565b8114613f1457600080fd5b5056fea2646970667358221220a08875ef3b644cf0c945068105649b441a889067a7f300efc47f2fe89c8bd5fa64736f6c63430006060033000000000000000000000000cb6768a968440187157cfe13b67cac82ef6cc5a4
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c80638da5cb5b116100c3578063c27a500d1161007c578063c27a500d146103dd578063c719eafd146103fb578063d6b4a22114610417578063f23a6e6114610447578063f2fde38b14610477578063f5e620901461049357610158565b80638da5cb5b146103045780638f32d59b14610322578063991ea45114610340578063a694fc3a14610373578063bc197c811461038f578063c15adaa6146103bf57610158565b806340e58ee51161011557806340e58ee5146102585780634f8e9f2c1461027457806351de989b1461029057806358f11a02146102c05780636880e4be146102de578063715018a6146102fa57610158565b806301ffc9a71461015d5780631ea4a45d1461018d57806321ce919d146101bd57806322fb58f7146101ee5780633612280f1461021e578063379607f51461023c575b600080fd5b61017760048036038101906101729190612cdd565b6104b1565b60405161018491906138dc565b60405180910390f35b6101a760048036038101906101a29190612b40565b610513565b6040516101b49190613bd8565b60405180910390f35b6101d760048036038101906101d29190612b40565b610805565b6040516101e59291906138f7565b60405180910390f35b61020860048036038101906102039190612d06565b610843565b60405161021591906138ba565b60405180910390f35b6102266108b9565b60405161023391906138ba565b60405180910390f35b61025660048036038101906102519190612d06565b6109c6565b005b610272600480360381019061026d9190612d06565b610b91565b005b61028e60048036038101906102899190612d2f565b610cfe565b005b6102aa60048036038101906102a59190612d06565b6111fa565b6040516102b791906138ba565b60405180910390f35b6102c8611270565b6040516102d5919061393b565b60405180910390f35b6102f860048036038101906102f39190612d06565b611296565b005b610302611363565b005b61030c611469565b60405161031991906136ca565b60405180910390f35b61032a611492565b60405161033791906138dc565b60405180910390f35b61035a60048036038101906103559190612d06565b6114f0565b60405161036a9493929190613bf3565b60405180910390f35b61038d60048036038101906103889190612d06565b61152d565b005b6103a960048036038101906103a491906129e2565b611858565b6040516103b69190613920565b60405180910390f35b6103c7611870565b6040516103d49190613bd8565b60405180910390f35b6103e561187d565b6040516103f29190613898565b60405180910390f35b61041560048036038101906104109190612bcb565b611a65565b005b610431600480360381019061042c9190612b7c565b611d60565b60405161043e9190613bd8565b60405180910390f35b610461600480360381019061045c9190612aae565b611d92565b60405161046e9190613920565b60405180910390f35b610491600480360381019061048c91906129b9565b611da8565b005b61049b611dfb565b6040516104a891906138ba565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061050c5750634e2312e060e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600061051d612790565b6002838154811061052a57fe5b9060005260206000209060080201604051806101000160405290816000820180548060200260200160405190810160405280929190818152602001828054801561059357602002820191906000526020600020905b81548152602001906001019080831161057f575b5050505050815260200160018201548152602001600282018054806020026020016040519081016040528092919081815260200182805480156105f557602002820191906000526020600020905b8154815260200190600101908083116105e1575b505050505081526020016003820154815260200160048201548152602001600582015481526020016006820180548060200260200160405190810160405280929190818152602001828054801561066b57602002820191906000526020600020905b815481526020019060010190808311610657575b50505050508152602001600782018054806020026020016040519081016040528092919081815260200182805480156106c357602002820191906000526020600020905b8154815260200190600101908083116106af575b50505050508152505090506106d66127d5565b600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206040518060400160405290816000820160009054906101000a900460ff161515151581526020016001820154815250509050600081602001511415610770576000925050506107ff565b806000015180610784575080602001514310155b1561079657620186a0925050506107ff565b60006107af438360200151611f0a90919063ffffffff16565b905060006107ca828560800151611f0a90919063ffffffff16565b90506107f884608001516107ea620186a084611f5490919063ffffffff16565b611fc490919063ffffffff16565b9450505050505b92915050565b6003602052816000526040600020602052806000526040600020600091509150508060000160009054906101000a900460ff16908060010154905082565b60606002828154811061085257fe5b90600052602060002090600802016002018054806020026020016040519081016040528092919081815260200182805480156108ad57602002820191906000526020600020905b815481526020019060010190808311610899575b50505050509050919050565b6060806108c461187d565b9050600080905060008090505b825181101561090e57438382815181106108e757fe5b602002602001015160a00151106109015781806001019250505b80806001019150506108d1565b5060608167ffffffffffffffff8111801561092857600080fd5b506040519080825280602002602001820160405280156109575781602001602082028036833780820191505090505b509050600080905060008090505b84518110156109bb574385828151811061097b57fe5b602002602001015160a00151106109ae578083838151811061099957fe5b60200260200101818152505081806001019250505b8080600101915050610965565b508194505050505090565b6000600282815481106109d557fe5b906000526020600020906008020190506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002090508060010154431015610a80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7790613b98565b60405180910390fd5b60018160000160006101000a81548160ff021916908315150217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663731133e933846003015460016040518463ffffffff1660e01b8152600401610b01939291906137b1565b600060405180830381600087803b158015610b1b57600080fd5b505af1158015610b2f573d6000803e3d6000fd5b50505050610b3e83600161200e565b3373ffffffffffffffffffffffffffffffffffffffff167f4024be4510660e8ca20084467741d06306c1ccda37258091ccb14f895b44fdd184604051610b849190613bd8565b60405180910390a2505050565b6000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000209050600015158160000160009054906101000a900460ff16151514610c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3490613a58565b60405180910390fd5b600081600101541415610c85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7c90613bb8565b60405180910390fd5b8060000160006101000a81549060ff02191690558060010160009055610cac82600061200e565b3373ffffffffffffffffffffffffffffffffffffffff167f4ab09103bc62ec7f307b071d4dabd73022d639c34874559ccfb20a0a143704b083604051610cf29190613bd8565b60405180910390a25050565b8051825114610d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3990613b58565b60405180910390fd5b600060028481548110610d5157fe5b906000526020600020906008020190506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600086815260200190815260200160002090508160050154431115610dfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df390613ab8565b60405180910390fd5b600015158160000160009054906101000a900460ff16151514610e54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4b90613a58565b60405180910390fd5b6000816001015414610e9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9290613a78565b60405180910390fd5b6000826001015411610ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed990613a38565b60405180910390fd5b60008090505b8451811015610fac57610f60858281518110610f0057fe5b602002602001015184600001805480602002602001604051908101604052809291908181526020018280548015610f5657602002820191906000526020600020905b815481526020019060010190808311610f42575b50505050506124f6565b610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9690613af8565b60405180910390fd5b8080600101915050610ee8565b50600080905060008090505b8451811015610ff657610fe7858281518110610fd057fe5b60200260200101518361254990919063ffffffff16565b91508080600101915050610fb8565b508260010154811461103d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103490613998565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632eb2c2d6333088886040518563ffffffff1660e01b815260040161109e94939291906136e5565b600060405180830381600087803b1580156110b857600080fd5b505af11580156110cc573d6000803e3d6000fd5b5050505060008090505b85518110156111845760008682815181106110ed57fe5b60200260200101519050600086838151811061110557fe5b6020026020010151905080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008b8152602001908152602001600020600084815260200190815260200160002081905550505080806001019150506110d6565b5061119c83600401544361254990919063ffffffff16565b82600101819055503373ffffffffffffffffffffffffffffffffffffffff167f5171a8515feefa86088c51257c516029be643e3804d0e5b4f6532d672ba433b1876040516111ea9190613bd8565b60405180910390a2505050505050565b60606002828154811061120957fe5b906000526020600020906008020160000180548060200260200160405190810160405280929190818152602001828054801561126457602002820191906000526020600020905b815481526020019060010190808311611250575b50505050509050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61129e611492565b6112dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d490613b38565b60405180910390fd5b43600282815481106112eb57fe5b9060005260206000209060080201600501541161133d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611334906139f8565b60405180910390fd5b436002828154811061134b57fe5b90600052602060002090600802016005018190555050565b61136b611492565b6113aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a190613b38565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114d461259e565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600281815481106114fd57fe5b90600052602060002090600802016000915090508060010154908060030154908060040154908060050154905084565b60006002828154811061153c57fe5b906000526020600020906008020190506000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020905081600501544311156115e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115de90613ab8565b60405180910390fd5b600015158160000160009054906101000a900460ff1615151461163f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163690613a58565b60405180910390fd5b6000816001015414611686576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167d90613a78565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632eb2c2d6333085600001866002016040518563ffffffff1660e01b81526004016116ed949392919061374b565b600060405180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b5050505060008090505b82600001805490508110156117e557600083600001828154811061174557fe5b90600052602060002001549050600084600201838154811061176357fe5b9060005260206000200154905080600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088815260200190815260200160002060008481526020019081526020016000208190555050508080600101915050611725565b506117fd82600401544361254990919063ffffffff16565b81600101819055503373ffffffffffffffffffffffffffffffffffffffff167f5171a8515feefa86088c51257c516029be643e3804d0e5b4f6532d672ba433b18460405161184b9190613bd8565b60405180910390a2505050565b600063bc197c8160e01b905098975050505050505050565b6000600280549050905090565b60606002805480602002602001604051908101604052809291908181526020016000905b82821015611a5c5783829060005260206000209060080201604051806101000160405290816000820180548060200260200160405190810160405280929190818152602001828054801561191457602002820191906000526020600020905b815481526020019060010190808311611900575b50505050508152602001600182015481526020016002820180548060200260200160405190810160405280929190818152602001828054801561197657602002820191906000526020600020905b815481526020019060010190808311611962575b50505050508152602001600382015481526020016004820154815260200160058201548152602001600682018054806020026020016040519081016040528092919081815260200182805480156119ec57602002820191906000526020600020905b8154815260200190600101908083116119d8575b5050505050815260200160078201805480602002602001604051908101604052809291908181526020018280548015611a4457602002820191906000526020600020905b815481526020019060010190808311611a30575b505050505081525050815260200190600101906118a1565b50505050905090565b611a6d611492565b611aac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aa390613b38565b60405180910390fd5b6000885111611af0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae790613978565b60405180910390fd5b6000871180611b00575060008651115b611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3690613b78565b60405180910390fd5b438311611b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b78906139d8565b60405180910390fd5b8051825114611bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbc90613ad8565b60405180910390fd5b6000871480611bd5575060008251145b611c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0b90613a98565b60405180910390fd5b60026040518061010001604052808a81526020018981526020018881526020018781526020018681526020018581526020018481526020018381525090806001815401808255809150506001900390600052602060002090600802016000909190919091506000820151816000019080519060200190611c959291906127f1565b50602082015181600101556040820151816002019080519060200190611cbc9291906127f1565b50606082015181600301556080820151816004015560a0820151816005015560c0820151816006019080519060200190611cf79291906127f1565b5060e0820151816007019080519060200190611d149291906127f1565b5050507f9287a6bb6f0e7d619dad6cef4d83f30cde264a69ce8014cf38792efbd7340248600160028054905003604051611d4e9190613bd8565b60405180910390a15050505050505050565b600460205282600052604060002060205281600052604060002060205280600052604060002060009250925050505481565b600063f23a6e6160e01b90509695505050505050565b611db0611492565b611def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de690613b38565b60405180910390fd5b611df8816125a6565b50565b606080611e0661187d565b9050600080905060008090505b8251811015611e515743838281518110611e2957fe5b602002602001015160a001511015611e445781806001019250505b8080600101915050611e13565b5060608167ffffffffffffffff81118015611e6b57600080fd5b50604051908082528060200260200182016040528015611e9a5781602001602082028036833780820191505090505b509050600080905060008090505b8451811015611eff5743858281518110611ebe57fe5b602002602001015160a001511015611ef25780838381518110611edd57fe5b60200260200101818152505081806001019250505b8080600101915050611ea8565b508194505050505090565b6000611f4c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506126d4565b905092915050565b600080831415611f675760009050611fbe565b6000828402905082848281611f7857fe5b0414611fb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb090613b18565b60405180910390fd5b809150505b92915050565b600061200683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061272f565b905092915050565b60006002838154811061201d57fe5b9060005260206000209060080201905060608160000180548060200260200160405190810160405280929190818152602001828054801561207d57602002820191906000526020600020905b815481526020019060010190808311612069575b505050505090506060815167ffffffffffffffff8111801561209e57600080fd5b506040519080825280602002602001820160405280156120cd5781602001602082028036833780820191505090505b50905060608360060180548060200260200160405190810160405280929190818152602001828054801561212057602002820191906000526020600020905b81548152602001906001019080831161210c575b5050505050905060608460070180548060200260200160405190810160405280929190818152602001828054801561217757602002820191906000526020600020905b815481526020019060010190808311612163575b505050505090506001151586151514156123455760008090505b82518110156123435760008382815181106121a857fe5b6020026020010151905060008383815181106121c057fe5b6020026020010151905061223e81600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008d8152602001908152602001600020600085815260200190815260200160002054611f0a90919063ffffffff16565b600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008c8152602001908152602001600020600084815260200190815260200160002081905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f5298aca3084846040518463ffffffff1660e01b815260040161230293929190613861565b600060405180830381600087803b15801561231c57600080fd5b505af1158015612330573d6000803e3d6000fd5b5050505050508080600101915050612191565b505b60008090505b845181101561245957600085828151811061236257fe5b60200260200101519050600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a81526020019081526020016000206000828152602001908152602001600020548583815181106123da57fe5b602002602001018181525050600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a815260200190815260200160002060008281526020019081526020016000206000905550808060010191505061234b565b50600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632eb2c2d6303387876040518563ffffffff1660e01b81526004016124bb94939291906137fb565b600060405180830381600087803b1580156124d557600080fd5b505af11580156124e9573d6000803e3d6000fd5b5050505050505050505050565b6000808251905060008090505b8181101561253c578484828151811061251857fe5b6020026020010151141561253157600192505050612543565b806001019050612503565b5060009150505b92915050565b600080828401905083811015612594576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258b90613a18565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612616576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260d906139b8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600083831115829061271c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127139190613956565b60405180910390fd5b5060008385039050809150509392505050565b60008083118290612776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276d9190613956565b60405180910390fd5b50600083858161278257fe5b049050809150509392505050565b60405180610100016040528060608152602001600081526020016060815260200160008152602001600081526020016000815260200160608152602001606081525090565b6040518060400160405280600015158152602001600081525090565b82805482825590600052602060002090810192821561282d579160200282015b8281111561282c578251825591602001919060010190612811565b5b50905061283a919061283e565b5090565b61286091905b8082111561285c576000816000905550600101612844565b5090565b90565b60008135905061287281613ed2565b92915050565b60008083601f84011261288a57600080fd5b8235905067ffffffffffffffff8111156128a357600080fd5b6020830191508360208202830111156128bb57600080fd5b9250929050565b600082601f8301126128d357600080fd5b81356128e66128e182613c65565b613c38565b9150818183526020840193506020810190508385602084028201111561290b57600080fd5b60005b8381101561293b578161292188826129a4565b84526020840193506020830192505060018101905061290e565b5050505092915050565b60008135905061295481613ee9565b92915050565b60008083601f84011261296c57600080fd5b8235905067ffffffffffffffff81111561298557600080fd5b60208301915083600182028301111561299d57600080fd5b9250929050565b6000813590506129b381613f00565b92915050565b6000602082840312156129cb57600080fd5b60006129d984828501612863565b91505092915050565b60008060008060008060008060a0898b0312156129fe57600080fd5b6000612a0c8b828c01612863565b9850506020612a1d8b828c01612863565b975050604089013567ffffffffffffffff811115612a3a57600080fd5b612a468b828c01612878565b9650965050606089013567ffffffffffffffff811115612a6557600080fd5b612a718b828c01612878565b9450945050608089013567ffffffffffffffff811115612a9057600080fd5b612a9c8b828c0161295a565b92509250509295985092959890939650565b60008060008060008060a08789031215612ac757600080fd5b6000612ad589828a01612863565b9650506020612ae689828a01612863565b9550506040612af789828a016129a4565b9450506060612b0889828a016129a4565b935050608087013567ffffffffffffffff811115612b2557600080fd5b612b3189828a0161295a565b92509250509295509295509295565b60008060408385031215612b5357600080fd5b6000612b6185828601612863565b9250506020612b72858286016129a4565b9150509250929050565b600080600060608486031215612b9157600080fd5b6000612b9f86828701612863565b9350506020612bb0868287016129a4565b9250506040612bc1868287016129a4565b9150509250925092565b600080600080600080600080610100898b031215612be857600080fd5b600089013567ffffffffffffffff811115612c0257600080fd5b612c0e8b828c016128c2565b9850506020612c1f8b828c016129a4565b975050604089013567ffffffffffffffff811115612c3c57600080fd5b612c488b828c016128c2565b9650506060612c598b828c016129a4565b9550506080612c6a8b828c016129a4565b94505060a0612c7b8b828c016129a4565b93505060c089013567ffffffffffffffff811115612c9857600080fd5b612ca48b828c016128c2565b92505060e089013567ffffffffffffffff811115612cc157600080fd5b612ccd8b828c016128c2565b9150509295985092959890939650565b600060208284031215612cef57600080fd5b6000612cfd84828501612945565b91505092915050565b600060208284031215612d1857600080fd5b6000612d26848285016129a4565b91505092915050565b600080600060608486031215612d4457600080fd5b6000612d52868287016129a4565b935050602084013567ffffffffffffffff811115612d6f57600080fd5b612d7b868287016128c2565b925050604084013567ffffffffffffffff811115612d9857600080fd5b612da4868287016128c2565b9150509250925092565b6000612dba83836135e7565b905092915050565b6000612dce83836136ac565b60208301905092915050565b612de381613de8565b82525050565b612df281613d74565b82525050565b6000612e0382613cc2565b612e0d8185613d15565b935083602082028501612e1f85613c8d565b8060005b85811015612e5b5784840389528151612e3c8582612dae565b9450612e4783613cee565b925060208a01995050600181019050612e23565b50829750879550505050505092915050565b6000612e7882613ccd565b612e828185613d26565b9350612e8d83613c9d565b8060005b83811015612ebe578151612ea58882612dc2565b9750612eb083613cfb565b925050600181019050612e91565b5085935050505092915050565b6000612ed682613ccd565b612ee08185613d37565b9350612eeb83613c9d565b8060005b83811015612f1c578151612f038882612dc2565b9750612f0e83613cfb565b925050600181019050612eef565b5085935050505092915050565b6000612f3482613cd8565b612f3e8185613d37565b9350612f4983613cad565b8060005b83811015612f8157612f5e82613ea1565b612f688882612dc2565b9750612f7383613d08565b925050600181019050612f4d565b5085935050505092915050565b612f9781613d86565b82525050565b612fa681613d92565b82525050565b612fb581613dfa565b82525050565b612fc481613e1e565b82525050565b6000612fd582613ce3565b612fdf8185613d59565b9350612fef818560208601613e54565b612ff881613eb4565b840191505092915050565b6000613010601b83613d59565b91507f41636365707465642063617264206c69737420697320656d70747900000000006000830152602082019050919050565b6000613050601083613d59565b91507f57726f6e67206361726420746f74616c000000000000000000000000000000006000830152602082019050919050565b6000613090602683613d59565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006130f6601f83613d59565b91507f626c6f636b4576656e74436c6f7365203c2063757272656e7420626c6f636b006000830152602082019050919050565b6000613136601483613d59565b91507f4576656e7420616c726561647920636c6f7365640000000000000000000000006000830152602082019050919050565b6000613176601b83613d59565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006131b6601483613d59565b91507f4e6f742061207374616b65416e79206576656e740000000000000000000000006000830152602082019050919050565b60006131f6601f83613d59565b91507f4164647265737320616c726561647920636f6d706c65746564206576656e74006000830152602082019050919050565b6000613236602583613d59565b91507f4164647265737320616c7265616479207374616b656420666f7220746869732060008301527f6576656e740000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061329c602283613d59565b91507f546f4275726e206e6f7420737570706f72746564207769746820616e7945766560008301527f6e740000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613302600f83613d59565b91507f4576656e7420697320636c6f73656400000000000000000000000000000000006000830152602082019050919050565b6000613342602383613d59565b91507f546f4275726e20617272617973206861766520646966666572656e74206c656e60008301527f67746800000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006133a8601183613d59565b91507f43617264206e6f742061636365707465640000000000000000000000000000006000830152602082019050919050565b60006133e8602183613d59565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061344e602083613d59565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061348e601c83613d59565b91507f417272617973206861766520646966666572656e74206c656e677468000000006000830152602082019050919050565b60006134ce602283613d59565b91507f4361726420616d6f756e74207265717569726564206e6f74207370656369666960008301527f65640000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613534600083613d48565b9150600082019050919050565b600061354e601483613d59565b91507f426c6f636b456e64206e6f7420726561636865640000000000000000000000006000830152602082019050919050565b600061358e602483613d59565b91507f41646472657373206973206e6f74207374616b656420666f722074686973206560008301527f76656e74000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006101008301600083015184820360008601526136058282612e6d565b915050602083015161361a60208601826136ac565b50604083015184820360408601526136328282612e6d565b915050606083015161364760608601826136ac565b50608083015161365a60808601826136ac565b5060a083015161366d60a08601826136ac565b5060c083015184820360c08601526136858282612e6d565b91505060e083015184820360e086015261369f8282612e6d565b9150508091505092915050565b6136b581613dde565b82525050565b6136c481613dde565b82525050565b60006020820190506136df6000830184612de9565b92915050565b600060a0820190506136fa6000830187612dda565b6137076020830186612de9565b81810360408301526137198185612ecb565b9050818103606083015261372d8184612ecb565b9050818103608083015261374081613527565b905095945050505050565b600060a0820190506137606000830187612dda565b61376d6020830186612de9565b818103604083015261377f8185612f29565b905081810360608301526137938184612f29565b905081810360808301526137a681613527565b905095945050505050565b60006080820190506137c66000830186612dda565b6137d360208301856136bb565b6137e06040830184612fbb565b81810360608301526137f181613527565b9050949350505050565b600060a0820190506138106000830187612de9565b61381d6020830186612dda565b818103604083015261382f8185612ecb565b905081810360608301526138438184612ecb565b9050818103608083015261385681613527565b905095945050505050565b60006060820190506138766000830186612de9565b61388360208301856136bb565b61389060408301846136bb565b949350505050565b600060208201905081810360008301526138b28184612df8565b905092915050565b600060208201905081810360008301526138d48184612ecb565b905092915050565b60006020820190506138f16000830184612f8e565b92915050565b600060408201905061390c6000830185612f8e565b61391960208301846136bb565b9392505050565b60006020820190506139356000830184612f9d565b92915050565b60006020820190506139506000830184612fac565b92915050565b600060208201905081810360008301526139708184612fca565b905092915050565b6000602082019050818103600083015261399181613003565b9050919050565b600060208201905081810360008301526139b181613043565b9050919050565b600060208201905081810360008301526139d181613083565b9050919050565b600060208201905081810360008301526139f1816130e9565b9050919050565b60006020820190508181036000830152613a1181613129565b9050919050565b60006020820190508181036000830152613a3181613169565b9050919050565b60006020820190508181036000830152613a51816131a9565b9050919050565b60006020820190508181036000830152613a71816131e9565b9050919050565b60006020820190508181036000830152613a9181613229565b9050919050565b60006020820190508181036000830152613ab18161328f565b9050919050565b60006020820190508181036000830152613ad1816132f5565b9050919050565b60006020820190508181036000830152613af181613335565b9050919050565b60006020820190508181036000830152613b118161339b565b9050919050565b60006020820190508181036000830152613b31816133db565b9050919050565b60006020820190508181036000830152613b5181613441565b9050919050565b60006020820190508181036000830152613b7181613481565b9050919050565b60006020820190508181036000830152613b91816134c1565b9050919050565b60006020820190508181036000830152613bb181613541565b9050919050565b60006020820190508181036000830152613bd181613581565b9050919050565b6000602082019050613bed60008301846136bb565b92915050565b6000608082019050613c0860008301876136bb565b613c1560208301866136bb565b613c2260408301856136bb565b613c2f60608301846136bb565b95945050505050565b6000604051905081810181811067ffffffffffffffff82111715613c5b57600080fd5b8060405250919050565b600067ffffffffffffffff821115613c7c57600080fd5b602082029050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081549050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000600182019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000819050919050565b6000613d7f82613dbe565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613df382613e30565b9050919050565b6000613e0582613e0c565b9050919050565b6000613e1782613dbe565b9050919050565b6000613e2982613dde565b9050919050565b6000613e3b82613e42565b9050919050565b6000613e4d82613dbe565b9050919050565b60005b83811015613e72578082015181840152602081019050613e57565b83811115613e81576000848401525b50505050565b6000613e9a613e9583613ec5565b613d6a565b9050919050565b6000613ead8254613e87565b9050919050565b6000601f19601f8301169050919050565b60008160001c9050919050565b613edb81613d74565b8114613ee657600080fd5b50565b613ef281613d92565b8114613efd57600080fd5b50565b613f0981613dde565b8114613f1457600080fd5b5056fea2646970667358221220a08875ef3b644cf0c945068105649b441a889067a7f300efc47f2fe89c8bd5fa64736f6c63430006060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000cb6768a968440187157cfe13b67cac82ef6cc5a4
-----Decoded View---------------
Arg [0] : _pepemonFactoryAddress (address): 0xCB6768a968440187157Cfe13b67Cac82ef6cc5a4
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000cb6768a968440187157cfe13b67cac82ef6cc5a4
Deployed Bytecode Sourcemap
9597:15037:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;9597:15037:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;24161:470:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;13452:696;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;10635:65;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;13200:156;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11654:659;;;:::i;:::-;;;;;;;;;;;;;;;;18498:481;;;;;;;;;;;;;;;;:::i;:::-;;19043:477;;;;;;;;;;;;;;;;:::i;:::-;;15792:1580;;;;;;;;;;;;;;;;:::i;:::-;;13044:148;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;9672:37;;;:::i;:::-;;;;;;;;;;;;;;;;15488:233;;;;;;;;;;;;;;;;:::i;:::-;;2861:140;;;:::i;:::-;;2050:79;;;:::i;:::-;;;;;;;;;;;;;;;;2416:94;;;:::i;:::-;;;;;;;;;;;;;;;;10593:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17468:986;;;;;;;;;;;;;;;;:::i;:::-;;23452:203;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11338:111;;;:::i;:::-;;;;;;;;;;;;;;;;11491:106;;;:::i;:::-;;;;;;;;;;;;;;;;14215:1223;;;;;;;;;;;;;;;;:::i;:::-;;10707:87;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;22259:174;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3156:109;;;;;;;;;;;;;;;;:::i;:::-;;12370:666;;;:::i;:::-;;;;;;;;;;;;;;;;24161:470;24231:4;24271:10;24256:25;;:11;:25;;;;:142;;;;24388:10;24373:25;;:11;:25;;;;24256:142;24248:150;;24161:470;;;:::o;13452:696::-;13532:7;13552:26;;:::i;:::-;13581:13;13595:8;13581:23;;;;;;;;;;;;;;;;;;13552:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13615:25;;:::i;:::-;13643:8;:15;13652:5;13643:15;;;;;;;;;;;;;;;:25;13659:8;13643:25;;;;;;;;;;;13615:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13707:1;13685:9;:18;;;:23;13681:64;;;13732:1;13725:8;;;;;;13681:64;13761:9;:21;;;:59;;;;13802:9;:18;;;13786:12;:34;;13761:59;13757:102;;;13844:3;13837:10;;;;;;13757:102;13871:18;13892:36;13915:12;13892:9;:18;;;:22;;:36;;;;:::i;:::-;13871:57;;14008:20;14031:39;14059:10;14031:6;:23;;;:27;;:39;;;;:::i;:::-;14008:62;;14090:50;14116:6;:23;;;14090:21;14107:3;14090:12;:16;;:21;;;;:::i;:::-;:25;;:50;;;;:::i;:::-;14083:57;;;;;;13452:696;;;;;:::o;10635:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13200:156::-;13274:16;13310:13;13324:8;13310:23;;;;;;;;;;;;;;;;;;:38;;13303:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13200:156;;;:::o;11654:659::-;11703:16;11732:29;11764:14;:12;:14::i;:::-;11732:46;;11791:16;11810:1;11791:20;;11827:9;11839:1;11827:13;;11822:164;11846:7;:14;11842:1;:18;11822:164;;;11916:12;11886:7;11894:1;11886:10;;;;;;;;;;;;;;:26;;;:42;11882:93;;11949:10;;;;;;;11882:93;11862:3;;;;;;;11822:164;;;;11998:24;12039:8;12025:23;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12025:23:0;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;156:4;148:6;144:17;134:27;;0:165;12025:23:0;;;;11998:50;;12059:11;12073:1;12059:15;;12090:9;12102:1;12090:13;;12085:194;12109:7;:14;12105:1;:18;12085:194;;;12179:12;12149:7;12157:1;12149:10;;;;;;;;;;;;;;:26;;;:42;12145:123;;12227:1;12212:7;12220:3;12212:12;;;;;;;;;;;;;:16;;;;;12247:5;;;;;;;12145:123;12125:3;;;;;;;12085:194;;;;12298:7;12291:14;;;;;;11654:659;:::o;18498:481::-;18549:27;18579:13;18593:8;18579:23;;;;;;;;;;;;;;;;;;18549:53;;18613:26;18642:8;:20;18651:10;18642:20;;;;;;;;;;;;;;;:30;18663:8;18642:30;;;;;;;;;;;18613:59;;18709:9;:18;;;18693:12;:34;;18685:67;;;;;;;;;;;;;;;;;;;;;;18789:4;18765:9;:21;;;:28;;;;;;;;;;;;;;;;;;18804:14;;;;;;;;;;;:19;;;18824:10;18836:6;:19;;;18857:1;18804:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;18804:59:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18804:59:0;;;;18874:36;18895:8;18905:4;18874:20;:36::i;:::-;18950:10;18928:43;;;18962:8;18928:43;;;;;;;;;;;;;;;18498:481;;;:::o;19043:477::-;19095:26;19124:8;:20;19133:10;19124:20;;;;;;;;;;;;;;;:30;19145:8;19124:30;;;;;;;;;;;19095:59;;19200:5;19175:30;;:9;:21;;;;;;;;;;;;:30;;;19167:74;;;;;;;;;;;;;;;;;;;;;;19282:1;19260:9;:18;;;:23;;19252:72;;;;;;;;;;;;;;;;;;;;;;19344:9;:21;;;19337:28;;;;;;;;;;;19383:9;:18;;19376:25;;;19414:37;19435:8;19445:5;19414:20;:37::i;:::-;19491:10;19469:43;;;19503:8;19469:43;;;;;;;;;;;;;;;19043:477;;:::o;15792:1580::-;15940:15;:22;15918:11;:18;:44;15910:85;;;;;;;;;;;;;;;;;;;;;;16008:27;16038:13;16052:8;16038:23;;;;;;;;;;;;;;;;;;16008:53;;16072:26;16101:8;:20;16110:10;16101:20;;;;;;;;;;;;;;;:30;16122:8;16101:30;;;;;;;;;;;16072:59;;16168:6;:22;;;16152:12;:38;;16144:66;;;;;;;;;;;;;;;;;;;;;;16254:5;16229:30;;:9;:21;;;;;;;;;;;;:30;;;16221:74;;;;;;;;;;;;;;;;;;;;;;16336:1;16314:9;:18;;;:23;16306:73;;;;;;;;;;;;;;;;;;;;;;16421:1;16398:6;:20;;;:24;16390:57;;;;;;;;;;;;;;;;;;;;;;16465:9;16477:1;16465:13;;16460:151;16484:11;:18;16480:1;:22;16460:151;;;16532:45;16543:11;16555:1;16543:14;;;;;;;;;;;;;;16559:6;:17;;16532:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:10;:45::i;:::-;16524:75;;;;;;;;;;;;;;;;;;;;;;16504:3;;;;;;;16460:151;;;;16623:13;16639:1;16623:17;;16656:9;16668:1;16656:13;;16651:117;16675:15;:22;16671:1;:26;16651:117;;;16727:29;16737:15;16753:1;16737:18;;;;;;;;;;;;;;16727:5;:9;;:29;;;;:::i;:::-;16719:37;;16699:3;;;;;;;16651:117;;;;16797:6;:20;;;16788:5;:29;16780:58;;;;;;;;;;;;;;;;;;;;;;16851:14;;;;;;;;;;;:36;;;16888:10;16908:4;16915:11;16928:15;16851:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;16851:97:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16851:97:0;;;;17012:9;17024:1;17012:13;;17007:224;17031:11;:18;17027:1;:22;17007:224;;;17071:14;17088:11;17100:1;17088:14;;;;;;;;;;;;;;17071:31;;17117:14;17134:15;17150:1;17134:18;;;;;;;;;;;;;;17117:35;;17213:6;17169:11;:23;17181:10;17169:23;;;;;;;;;;;;;;;:33;17193:8;17169:33;;;;;;;;;;;:41;17203:6;17169:41;;;;;;;;;;;:50;;;;17007:224;;17051:3;;;;;;;17007:224;;;;17264:41;17281:6;:23;;;17264:12;:16;;:41;;;;:::i;:::-;17243:9;:18;;:62;;;;17343:10;17323:41;;;17355:8;17323:41;;;;;;;;;;;;;;;15792:1580;;;;;;:::o;13044:148::-;13114:16;13150:13;13164:8;13150:23;;;;;;;;;;;;;;;;;;:34;;13143:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13044:148;;;:::o;9672:37::-;;;;;;;;;;;;;:::o;15488:233::-;2262:9;:7;:9::i;:::-;2254:54;;;;;;;;;;;;;;;;;;;;;;15611:12:::1;15569:13;15583:8;15569:23;;;;;;;;;;;;;;;;;;:39;;;:54;15561:87;;;;;;;;;;;;;;;;;;;;;;15701:12;15659:13;15673:8;15659:23;;;;;;;;;;;;;;;;;;:39;;:54;;;;15488:233:::0;:::o;2861:140::-;2262:9;:7;:9::i;:::-;2254:54;;;;;;;;;;;;;;;;;;;;;;2960:1:::1;2923:40;;2944:6;::::0;::::1;;;;;;;;;2923:40;;;;;;;;;;;;2991:1;2974:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2861:140::o:0;2050:79::-;2088:7;2115:6;;;;;;;;;;;2108:13;;2050:79;:::o;2416:94::-;2456:4;2496:6;;;;;;;;;;;2480:22;;:12;:10;:12::i;:::-;:22;;;2473:29;;2416:94;:::o;10593:35::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17468:986::-;17519:27;17549:13;17563:8;17549:23;;;;;;;;;;;;;;;;;;17519:53;;17583:26;17612:8;:20;17621:10;17612:20;;;;;;;;;;;;;;;:30;17633:8;17612:30;;;;;;;;;;;17583:59;;17679:6;:22;;;17663:12;:38;;17655:66;;;;;;;;;;;;;;;;;;;;;;17765:5;17740:30;;:9;:21;;;;;;;;;;;;:30;;;17732:74;;;;;;;;;;;;;;;;;;;;;;17847:1;17825:9;:18;;;:23;17817:73;;;;;;;;;;;;;;;;;;;;;;17903:14;;;;;;;;;;;:36;;;17940:10;17960:4;17967:6;:17;;17986:6;:21;;17903:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;17903:109:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17903:109:0;;;;18076:9;18088:1;18076:13;;18071:242;18095:6;:17;;:24;;;;18091:1;:28;18071:242;;;18141:14;18158:6;:17;;18176:1;18158:20;;;;;;;;;;;;;;;;18141:37;;18193:14;18210:6;:21;;18232:1;18210:24;;;;;;;;;;;;;;;;18193:41;;18295:6;18251:11;:23;18263:10;18251:23;;;;;;;;;;;;;;;:33;18275:8;18251:33;;;;;;;;;;;:41;18285:6;18251:41;;;;;;;;;;;:50;;;;18071:242;;18121:3;;;;;;;18071:242;;;;18346:41;18363:6;:23;;;18346:12;:16;;:41;;;;:::i;:::-;18325:9;:18;;:62;;;;18425:10;18405:41;;;18437:8;18405:41;;;;;;;;;;;;;;;17468:986;;;:::o;23452:203::-;23611:6;23637:10;23630:17;;;;23452:203;;;;;;;;;;:::o;11338:111::-;11394:7;11421:13;:20;;;;11414:27;;11338:111;:::o;11491:106::-;11535:21;11576:13;11569:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11491:106;:::o;14215:1223::-;2262:9;:7;:9::i;:::-;2254:54;;;;;;;;;;;;;;;;;;;;;;14543:1:::1;14522:11;:18;:22;14514:62;;;;;;;;;;;;;;;;;;;;;;14612:1;14595:14;:18;:48;;;;14642:1;14617:15;:22;:26;14595:48;14587:95;;;;;;;;;;;;;;;;;;;;;;14720:12;14701:16;:31;14693:75;;;;;;;;;;;;;;;;;;;;;;14811:17;:24;14787:13;:20;:48;14779:96;;;;;;;;;;;;;;;;;;;;;;14912:1;14894:14;:19;:48;;;;14941:1;14917:13;:20;:25;14894:48;14886:95;;;;;;;;;;;;;;;;;;;;;;14994:13;15013:353;;;;;;;;15049:11;15013:353;;;;15086:14;15013:353;;;;15127:15;15013:353;;;;15167:13;15013:353;;;;15209:17;15013:353;;;;15254:16;15013:353;;;;15295:13;15013:353;;;;15337:17;15013:353;;::::0;14994:373:::1;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;14994:373:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15385:45;15428:1;15405:13;:20;;;;:24;15385:45;;;;;;;;;;;;;;;14215:1223:::0;;;;;;;;:::o;10707:87::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;22259:174::-;22389:6;22415:10;22408:17;;;;22259:174;;;;;;;;:::o;3156:109::-;2262:9;:7;:9::i;:::-;2254:54;;;;;;;;;;;;;;;;;;;;;;3229:28:::1;3248:8;3229:18;:28::i;:::-;3156:109:::0;:::o;12370:666::-;12419:16;12448:29;12480:14;:12;:14::i;:::-;12448:46;;12507:19;12529:1;12507:23;;12546:9;12558:1;12546:13;;12541:166;12565:7;:14;12561:1;:18;12541:166;;;12634:12;12605:7;12613:1;12605:10;;;;;;;;;;;;;;:26;;;:41;12601:95;;;12667:13;;;;;;;12601:95;12581:3;;;;;;;12541:166;;;;12719:24;12760:11;12746:26;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;12746:26:0;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;156:4;148:6;144:17;134:27;;0:165;12746:26:0;;;;12719:53;;12783:11;12797:1;12783:15;;12814:9;12826:1;12814:13;;12809:193;12833:7;:14;12829:1;:18;12809:193;;;12902:12;12873:7;12881:1;12873:10;;;;;;;;;;;;;;:26;;;:41;12869:122;;;12950:1;12935:7;12943:3;12935:12;;;;;;;;;;;;;:16;;;;;12970:5;;;;;;;12869:122;12849:3;;;;;;;12809:193;;;;13021:7;13014:14;;;;;;12370:666;:::o;4913:136::-;4971:7;4998:43;5002:1;5005;4998:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4991:50;;4913:136;;;;:::o;5803:471::-;5861:7;6111:1;6106;:6;6102:47;;;6136:1;6129:8;;;;6102:47;6161:9;6177:1;6173;:5;6161:17;;6206:1;6201;6197;:5;;;;;;:10;6189:56;;;;;;;;;;;;;;;;;;;;;;6265:1;6258:8;;;5803:471;;;;;:::o;6750:132::-;6808:7;6835:39;6839:1;6842;6835:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6828:46;;6750:132;;;;:::o;19528:1347::-;19608:27;19638:13;19652:8;19638:23;;;;;;;;;;;;;;;;;;19608:53;;19674:28;19705:6;:17;;19674:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19733:32;19782:11;:18;19768:33;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;19768:33:0;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;156:4;148:6;144:17;134:27;;0:165;19768:33:0;;;;19733:68;;19814:30;19847:6;:19;;19814:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19877:34;19914:6;:23;;19877:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20033:4;20024:13;;:5;:13;;;20020:407;;;20059:9;20071:1;20059:13;;20054:362;20078:13;:20;20074:1;:24;20054:362;;;20124:14;20141:13;20155:1;20141:16;;;;;;;;;;;;;;20124:33;;20176:14;20193:17;20211:1;20193:20;;;;;;;;;;;;;;20176:37;;20278:53;20324:6;20278:11;:23;20290:10;20278:23;;;;;;;;;;;;;;;:33;20302:8;20278:33;;;;;;;;;;;:41;20312:6;20278:41;;;;;;;;;;;;:45;;:53;;;;:::i;:::-;20234:11;:23;20246:10;20234:23;;;;;;;;;;;;;;;:33;20258:8;20234:33;;;;;;;;;;;:41;20268:6;20234:41;;;;;;;;;;;:97;;;;20350:14;;;;;;;;;;;:19;;;20378:4;20385:6;20393;20350:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20350:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20350:50:0;;;;20054:362;;20100:3;;;;;;;20054:362;;;;20020:407;20516:9;20528:1;20516:13;;20511:247;20535:11;:18;20531:1;:22;20511:247;;;20575:14;20592:11;20604:1;20592:14;;;;;;;;;;;;;;20575:31;;20642:11;:23;20654:10;20642:23;;;;;;;;;;;;;;;:33;20666:8;20642:33;;;;;;;;;;;:41;20676:6;20642:41;;;;;;;;;;;;20621:15;20637:1;20621:18;;;;;;;;;;;;;:62;;;;;20705:11;:23;20717:10;20705:23;;;;;;;;;;;;;;;:33;20729:8;20705:33;;;;;;;;;;;:41;20739:6;20705:41;;;;;;;;;;;20698:48;;;20511:247;20555:3;;;;;;;20511:247;;;;20770:14;;;;;;;;;;;:36;;;20815:4;20822:10;20834:11;20847:15;20770:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;20770:97:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20770:97:0;;;;19528:1347;;;;;;;:::o;20947:307::-;21030:4;21047:14;21064:6;:13;21047:30;;21093:9;21105:1;21093:13;;21088:134;21112:6;21108:1;:10;21088:134;;;21157:6;21144;21151:1;21144:9;;;;;;;;;;;;;;:19;21140:71;;;21191:4;21184:11;;;;;;21140:71;21120:3;;;;;21088:134;;;;21241:5;21234:12;;;20947:307;;;;;:::o;4449:181::-;4507:7;4527:9;4543:1;4539;:5;4527:17;;4568:1;4563;:6;;4555:46;;;;;;;;;;;;;;;;;;;;;;4621:1;4614:8;;;4449:181;;;;:::o;841:98::-;886:15;921:10;914:17;;841:98;:::o;3371:229::-;3465:1;3445:22;;:8;:22;;;;3437:73;;;;;;;;;;;;;;;;;;;;;;3555:8;3526:38;;3547:6;;;;;;;;;;;3526:38;;;;;;;;;;;;3584:8;3575:6;;:17;;;;;;;;;;;;;;;;;;3371:229;:::o;5352:192::-;5438:7;5471:1;5466;:6;;5474:12;5458:29;;;;;;;;;;;;;;;;;;;;;;;;;5498:9;5514:1;5510;:5;5498:17;;5535:1;5528:8;;;5352:192;;;;;:::o;7378:278::-;7464:7;7496:1;7492;:5;7499:12;7484:28;;;;;;;;;;;;;;;;;;;;;;;;;7523:9;7539:1;7535;:5;;;;;;7523:17;;7647:1;7640:8;;;7378:278;;;;;:::o;9597:15037::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5:130:-1:-;;85:6;72:20;63:29;;97:33;124:5;97:33;;;57:78;;;;;160:352;;;290:3;283:4;275:6;271:17;267:27;257:2;;308:1;305;298:12;257:2;341:6;328:20;318:30;;368:18;360:6;357:30;354:2;;;400:1;397;390:12;354:2;434:4;426:6;422:17;410:29;;485:3;477:4;469:6;465:17;455:8;451:32;448:41;445:2;;;502:1;499;492:12;445:2;250:262;;;;;;538:707;;655:3;648:4;640:6;636:17;632:27;622:2;;673:1;670;663:12;622:2;710:6;697:20;732:80;747:64;804:6;747:64;;;732:80;;;723:89;;829:5;854:6;847:5;840:21;884:4;876:6;872:17;862:27;;906:4;901:3;897:14;890:21;;959:6;1006:3;998:4;990:6;986:17;981:3;977:27;974:36;971:2;;;1023:1;1020;1013:12;971:2;1048:1;1033:206;1058:6;1055:1;1052:13;1033:206;;;1116:3;1138:37;1171:3;1159:10;1138:37;;;1133:3;1126:50;1199:4;1194:3;1190:14;1183:21;;1227:4;1222:3;1218:14;1211:21;;1090:149;1080:1;1077;1073:9;1068:14;;1033:206;;;1037:14;615:630;;;;;;;;1253:128;;1332:6;1319:20;1310:29;;1344:32;1370:5;1344:32;;;1304:77;;;;;1402:336;;;1516:3;1509:4;1501:6;1497:17;1493:27;1483:2;;1534:1;1531;1524:12;1483:2;1567:6;1554:20;1544:30;;1594:18;1586:6;1583:30;1580:2;;;1626:1;1623;1616:12;1580:2;1660:4;1652:6;1648:17;1636:29;;1711:3;1703:4;1695:6;1691:17;1681:8;1677:32;1674:41;1671:2;;;1728:1;1725;1718:12;1671:2;1476:262;;;;;;1746:130;;1826:6;1813:20;1804:29;;1838:33;1865:5;1838:33;;;1798:78;;;;;1883:241;;1987:2;1975:9;1966:7;1962:23;1958:32;1955:2;;;2003:1;2000;1993:12;1955:2;2038:1;2055:53;2100:7;2091:6;2080:9;2076:22;2055:53;;;2045:63;;2017:97;1949:175;;;;;2131:1179;;;;;;;;;2392:3;2380:9;2371:7;2367:23;2363:33;2360:2;;;2409:1;2406;2399:12;2360:2;2444:1;2461:53;2506:7;2497:6;2486:9;2482:22;2461:53;;;2451:63;;2423:97;2551:2;2569:53;2614:7;2605:6;2594:9;2590:22;2569:53;;;2559:63;;2530:98;2687:2;2676:9;2672:18;2659:32;2711:18;2703:6;2700:30;2697:2;;;2743:1;2740;2733:12;2697:2;2771:80;2843:7;2834:6;2823:9;2819:22;2771:80;;;2761:90;;;;2638:219;2916:2;2905:9;2901:18;2888:32;2940:18;2932:6;2929:30;2926:2;;;2972:1;2969;2962:12;2926:2;3000:80;3072:7;3063:6;3052:9;3048:22;3000:80;;;2990:90;;;;2867:219;3145:3;3134:9;3130:19;3117:33;3170:18;3162:6;3159:30;3156:2;;;3202:1;3199;3192:12;3156:2;3230:64;3286:7;3277:6;3266:9;3262:22;3230:64;;;3220:74;;;;3096:204;2354:956;;;;;;;;;;;;3317:867;;;;;;;3508:3;3496:9;3487:7;3483:23;3479:33;3476:2;;;3525:1;3522;3515:12;3476:2;3560:1;3577:53;3622:7;3613:6;3602:9;3598:22;3577:53;;;3567:63;;3539:97;3667:2;3685:53;3730:7;3721:6;3710:9;3706:22;3685:53;;;3675:63;;3646:98;3775:2;3793:53;3838:7;3829:6;3818:9;3814:22;3793:53;;;3783:63;;3754:98;3883:2;3901:53;3946:7;3937:6;3926:9;3922:22;3901:53;;;3891:63;;3862:98;4019:3;4008:9;4004:19;3991:33;4044:18;4036:6;4033:30;4030:2;;;4076:1;4073;4066:12;4030:2;4104:64;4160:7;4151:6;4140:9;4136:22;4104:64;;;4094:74;;;;3970:204;3470:714;;;;;;;;;4191:366;;;4312:2;4300:9;4291:7;4287:23;4283:32;4280:2;;;4328:1;4325;4318:12;4280:2;4363:1;4380:53;4425:7;4416:6;4405:9;4401:22;4380:53;;;4370:63;;4342:97;4470:2;4488:53;4533:7;4524:6;4513:9;4509:22;4488:53;;;4478:63;;4449:98;4274:283;;;;;;4564:491;;;;4702:2;4690:9;4681:7;4677:23;4673:32;4670:2;;;4718:1;4715;4708:12;4670:2;4753:1;4770:53;4815:7;4806:6;4795:9;4791:22;4770:53;;;4760:63;;4732:97;4860:2;4878:53;4923:7;4914:6;4903:9;4899:22;4878:53;;;4868:63;;4839:98;4968:2;4986:53;5031:7;5022:6;5011:9;5007:22;4986:53;;;4976:63;;4947:98;4664:391;;;;;;5062:1665;;;;;;;;;5385:3;5373:9;5364:7;5360:23;5356:33;5353:2;;;5402:1;5399;5392:12;5353:2;5465:1;5454:9;5450:17;5437:31;5488:18;5480:6;5477:30;5474:2;;;5520:1;5517;5510:12;5474:2;5540:78;5610:7;5601:6;5590:9;5586:22;5540:78;;;5530:88;;5416:208;5655:2;5673:53;5718:7;5709:6;5698:9;5694:22;5673:53;;;5663:63;;5634:98;5791:2;5780:9;5776:18;5763:32;5815:18;5807:6;5804:30;5801:2;;;5847:1;5844;5837:12;5801:2;5867:78;5937:7;5928:6;5917:9;5913:22;5867:78;;;5857:88;;5742:209;5982:2;6000:53;6045:7;6036:6;6025:9;6021:22;6000:53;;;5990:63;;5961:98;6090:3;6109:53;6154:7;6145:6;6134:9;6130:22;6109:53;;;6099:63;;6069:99;6199:3;6218:53;6263:7;6254:6;6243:9;6239:22;6218:53;;;6208:63;;6178:99;6336:3;6325:9;6321:19;6308:33;6361:18;6353:6;6350:30;6347:2;;;6393:1;6390;6383:12;6347:2;6413:78;6483:7;6474:6;6463:9;6459:22;6413:78;;;6403:88;;6287:210;6556:3;6545:9;6541:19;6528:33;6581:18;6573:6;6570:30;6567:2;;;6613:1;6610;6603:12;6567:2;6633:78;6703:7;6694:6;6683:9;6679:22;6633:78;;;6623:88;;6507:210;5347:1380;;;;;;;;;;;;6734:239;;6837:2;6825:9;6816:7;6812:23;6808:32;6805:2;;;6853:1;6850;6843:12;6805:2;6888:1;6905:52;6949:7;6940:6;6929:9;6925:22;6905:52;;;6895:62;;6867:96;6799:174;;;;;6980:241;;7084:2;7072:9;7063:7;7059:23;7055:32;7052:2;;;7100:1;7097;7090:12;7052:2;7135:1;7152:53;7197:7;7188:6;7177:9;7173:22;7152:53;;;7142:63;;7114:97;7046:175;;;;;7228:763;;;;7416:2;7404:9;7395:7;7391:23;7387:32;7384:2;;;7432:1;7429;7422:12;7384:2;7467:1;7484:53;7529:7;7520:6;7509:9;7505:22;7484:53;;;7474:63;;7446:97;7602:2;7591:9;7587:18;7574:32;7626:18;7618:6;7615:30;7612:2;;;7658:1;7655;7648:12;7612:2;7678:78;7748:7;7739:6;7728:9;7724:22;7678:78;;;7668:88;;7553:209;7821:2;7810:9;7806:18;7793:32;7845:18;7837:6;7834:30;7831:2;;;7877:1;7874;7867:12;7831:2;7897:78;7967:7;7958:6;7947:9;7943:22;7897:78;;;7887:88;;7772:209;7378:613;;;;;;7999:269;;8158:104;8258:3;8250:6;8158:104;;;8144:118;;8137:131;;;;;8277:173;;8364:46;8406:3;8398:6;8364:46;;;8439:4;8434:3;8430:14;8416:28;;8357:93;;;;;8458:142;8549:45;8588:5;8549:45;;;8544:3;8537:58;8531:69;;;8607:113;8690:24;8708:5;8690:24;;;8685:3;8678:37;8672:48;;;8808:1080;;9011:83;9088:5;9011:83;;;9107:115;9215:6;9210:3;9107:115;;;9100:122;;9245:3;9287:4;9279:6;9275:17;9270:3;9266:27;9314:85;9393:5;9314:85;;;9419:7;9447:1;9432:417;9457:6;9454:1;9451:13;9432:417;;;9519:9;9513:4;9509:20;9504:3;9497:33;9564:6;9558:13;9586:122;9703:4;9688:13;9586:122;;;9578:130;;9725:89;9807:6;9725:89;;;9715:99;;9837:4;9832:3;9828:14;9821:21;;9489:360;9479:1;9476;9472:9;9467:14;;9432:417;;;9436:14;9862:4;9855:11;;9879:3;9872:10;;8990:898;;;;;;;;;;9927:670;;10062:54;10110:5;10062:54;;;10129:76;10198:6;10193:3;10129:76;;;10122:83;;10226:56;10276:5;10226:56;;;10302:7;10330:1;10315:260;10340:6;10337:1;10334:13;10315:260;;;10407:6;10401:13;10428:63;10487:3;10472:13;10428:63;;;10421:70;;10508:60;10561:6;10508:60;;;10498:70;;10372:203;10362:1;10359;10355:9;10350:14;;10315:260;;;10319:14;10588:3;10581:10;;10041:556;;;;;;;;10636:690;;10781:54;10829:5;10781:54;;;10848:86;10927:6;10922:3;10848:86;;;10841:93;;10955:56;11005:5;10955:56;;;11031:7;11059:1;11044:260;11069:6;11066:1;11063:13;11044:260;;;11136:6;11130:13;11157:63;11216:3;11201:13;11157:63;;;11150:70;;11237:60;11290:6;11237:60;;;11227:70;;11101:203;11091:1;11088;11084:9;11079:14;;11044:260;;;11048:14;11317:3;11310:10;;10760:566;;;;;;;;11365:709;;11507:51;11552:5;11507:51;;;11571:86;11650:6;11645:3;11571:86;;;11564:93;;11678:53;11725:5;11678:53;;;11751:7;11779:1;11764:288;11789:6;11786:1;11783:13;11764:288;;;11850:44;11887:6;11850:44;;;11908:63;11967:3;11952:13;11908:63;;;11901:70;;11988:57;12038:6;11988:57;;;11978:67;;11821:231;11811:1;11808;11804:9;11799:14;;11764:288;;;11768:14;12065:3;12058:10;;11486:588;;;;;;;;12082:104;12159:21;12174:5;12159:21;;;12154:3;12147:34;12141:45;;;12193:110;12274:23;12291:5;12274:23;;;12269:3;12262:36;12256:47;;;12310:172;12416:60;12470:5;12416:60;;;12411:3;12404:73;12398:84;;;12489:142;12580:45;12619:5;12580:45;;;12575:3;12568:58;12562:69;;;12638:347;;12750:39;12783:5;12750:39;;;12801:71;12865:6;12860:3;12801:71;;;12794:78;;12877:52;12922:6;12917:3;12910:4;12903:5;12899:16;12877:52;;;12950:29;12972:6;12950:29;;;12945:3;12941:39;12934:46;;12730:255;;;;;;12993:327;;13153:67;13217:2;13212:3;13153:67;;;13146:74;;13253:29;13249:1;13244:3;13240:11;13233:50;13311:2;13306:3;13302:12;13295:19;;13139:181;;;;13329:316;;13489:67;13553:2;13548:3;13489:67;;;13482:74;;13589:18;13585:1;13580:3;13576:11;13569:39;13636:2;13631:3;13627:12;13620:19;;13475:170;;;;13654:375;;13814:67;13878:2;13873:3;13814:67;;;13807:74;;13914:34;13910:1;13905:3;13901:11;13894:55;13983:8;13978:2;13973:3;13969:12;13962:30;14020:2;14015:3;14011:12;14004:19;;13800:229;;;;14038:331;;14198:67;14262:2;14257:3;14198:67;;;14191:74;;14298:33;14294:1;14289:3;14285:11;14278:54;14360:2;14355:3;14351:12;14344:19;;14184:185;;;;14378:320;;14538:67;14602:2;14597:3;14538:67;;;14531:74;;14638:22;14634:1;14629:3;14625:11;14618:43;14689:2;14684:3;14680:12;14673:19;;14524:174;;;;14707:327;;14867:67;14931:2;14926:3;14867:67;;;14860:74;;14967:29;14963:1;14958:3;14954:11;14947:50;15025:2;15020:3;15016:12;15009:19;;14853:181;;;;15043:320;;15203:67;15267:2;15262:3;15203:67;;;15196:74;;15303:22;15299:1;15294:3;15290:11;15283:43;15354:2;15349:3;15345:12;15338:19;;15189:174;;;;15372:331;;15532:67;15596:2;15591:3;15532:67;;;15525:74;;15632:33;15628:1;15623:3;15619:11;15612:54;15694:2;15689:3;15685:12;15678:19;;15518:185;;;;15712:374;;15872:67;15936:2;15931:3;15872:67;;;15865:74;;15972:34;15968:1;15963:3;15959:11;15952:55;16041:7;16036:2;16031:3;16027:12;16020:29;16077:2;16072:3;16068:12;16061:19;;15858:228;;;;16095:371;;16255:67;16319:2;16314:3;16255:67;;;16248:74;;16355:34;16351:1;16346:3;16342:11;16335:55;16424:4;16419:2;16414:3;16410:12;16403:26;16457:2;16452:3;16448:12;16441:19;;16241:225;;;;16475:315;;16635:67;16699:2;16694:3;16635:67;;;16628:74;;16735:17;16731:1;16726:3;16722:11;16715:38;16781:2;16776:3;16772:12;16765:19;;16621:169;;;;16799:372;;16959:67;17023:2;17018:3;16959:67;;;16952:74;;17059:34;17055:1;17050:3;17046:11;17039:55;17128:5;17123:2;17118:3;17114:12;17107:27;17162:2;17157:3;17153:12;17146:19;;16945:226;;;;17180:317;;17340:67;17404:2;17399:3;17340:67;;;17333:74;;17440:19;17436:1;17431:3;17427:11;17420:40;17488:2;17483:3;17479:12;17472:19;;17326:171;;;;17506:370;;17666:67;17730:2;17725:3;17666:67;;;17659:74;;17766:34;17762:1;17757:3;17753:11;17746:55;17835:3;17830:2;17825:3;17821:12;17814:25;17867:2;17862:3;17858:12;17851:19;;17652:224;;;;17885:332;;18045:67;18109:2;18104:3;18045:67;;;18038:74;;18145:34;18141:1;18136:3;18132:11;18125:55;18208:2;18203:3;18199:12;18192:19;;18031:186;;;;18226:328;;18386:67;18450:2;18445:3;18386:67;;;18379:74;;18486:30;18482:1;18477:3;18473:11;18466:51;18545:2;18540:3;18536:12;18529:19;;18372:182;;;;18563:371;;18723:67;18787:2;18782:3;18723:67;;;18716:74;;18823:34;18819:1;18814:3;18810:11;18803:55;18892:4;18887:2;18882:3;18878:12;18871:26;18925:2;18920:3;18916:12;18909:19;;18709:225;;;;18943:260;;19102:65;19165:1;19160:3;19102:65;;;19095:72;;19195:1;19190:3;19186:11;19179:18;;19088:115;;;;19212:320;;19372:67;19436:2;19431:3;19372:67;;;19365:74;;19472:22;19468:1;19463:3;19459:11;19452:43;19523:2;19518:3;19514:12;19507:19;;19358:174;;;;19541:373;;19701:67;19765:2;19760:3;19701:67;;;19694:74;;19801:34;19797:1;19792:3;19788:11;19781:55;19870:6;19865:2;19860:3;19856:12;19849:28;19905:2;19900:3;19896:12;19889:19;;19687:227;;;;19997:1919;;20146:6;20141:3;20137:16;20237:4;20230:5;20226:16;20220:23;20289:3;20283:4;20279:14;20272:4;20267:3;20263:14;20256:38;20309:103;20407:4;20393:12;20309:103;;;20301:111;;20168:256;20506:4;20499:5;20495:16;20489:23;20518:63;20575:4;20570:3;20566:14;20552:12;20518:63;;;20434:153;20670:4;20663:5;20659:16;20653:23;20722:3;20716:4;20712:14;20705:4;20700:3;20696:14;20689:38;20742:103;20840:4;20826:12;20742:103;;;20734:111;;20597:260;20938:4;20931:5;20927:16;20921:23;20950:63;21007:4;21002:3;20998:14;20984:12;20950:63;;;20867:152;21104:4;21097:5;21093:16;21087:23;21116:63;21173:4;21168:3;21164:14;21150:12;21116:63;;;21029:156;21269:4;21262:5;21258:16;21252:23;21281:63;21338:4;21333:3;21329:14;21315:12;21281:63;;;21195:155;21431:4;21424:5;21420:16;21414:23;21483:3;21477:4;21473:14;21466:4;21461:3;21457:14;21450:38;21503:103;21601:4;21587:12;21503:103;;;21495:111;;21360:258;21703:4;21696:5;21692:16;21686:23;21755:3;21749:4;21745:14;21738:4;21733:3;21729:14;21722:38;21775:103;21873:4;21859:12;21775:103;;;21767:111;;21628:262;21907:4;21900:11;;20119:1797;;;;;;21923:103;21996:24;22014:5;21996:24;;;21991:3;21984:37;21978:48;;;22033:113;22116:24;22134:5;22116:24;;;22111:3;22104:37;22098:48;;;22153:213;;22271:2;22260:9;22256:18;22248:26;;22285:71;22353:1;22342:9;22338:17;22329:6;22285:71;;;22242:124;;;;;22373:1163;;22783:3;22772:9;22768:19;22760:27;;22798:79;22874:1;22863:9;22859:17;22850:6;22798:79;;;22888:72;22956:2;22945:9;22941:18;22932:6;22888:72;;;23008:9;23002:4;22998:20;22993:2;22982:9;22978:18;22971:48;23033:108;23136:4;23127:6;23033:108;;;23025:116;;23189:9;23183:4;23179:20;23174:2;23163:9;23159:18;23152:48;23214:108;23317:4;23308:6;23214:108;;;23206:116;;23371:9;23365:4;23361:20;23355:3;23344:9;23340:19;23333:49;23396:130;23521:4;23396:130;;;23388:138;;22754:782;;;;;;;;23543:1151;;23947:3;23936:9;23932:19;23924:27;;23962:79;24038:1;24027:9;24023:17;24014:6;23962:79;;;24052:72;24120:2;24109:9;24105:18;24096:6;24052:72;;;24172:9;24166:4;24162:20;24157:2;24146:9;24142:18;24135:48;24197:105;24297:4;24288:6;24197:105;;;24189:113;;24350:9;24344:4;24340:20;24335:2;24324:9;24320:18;24313:48;24375:105;24475:4;24466:6;24375:105;;;24367:113;;24529:9;24523:4;24519:20;24513:3;24502:9;24498:19;24491:49;24554:130;24679:4;24554:130;;;24546:138;;23918:776;;;;;;;;24701:771;;24991:3;24980:9;24976:19;24968:27;;25006:79;25082:1;25071:9;25067:17;25058:6;25006:79;;;25096:72;25164:2;25153:9;25149:18;25140:6;25096:72;;;25179:80;25255:2;25244:9;25240:18;25231:6;25179:80;;;25307:9;25301:4;25297:20;25292:2;25281:9;25277:18;25270:48;25332:130;25457:4;25332:130;;;25324:138;;24962:510;;;;;;;25479:1163;;25889:3;25878:9;25874:19;25866:27;;25904:71;25972:1;25961:9;25957:17;25948:6;25904:71;;;25986:80;26062:2;26051:9;26047:18;26038:6;25986:80;;;26114:9;26108:4;26104:20;26099:2;26088:9;26084:18;26077:48;26139:108;26242:4;26233:6;26139:108;;;26131:116;;26295:9;26289:4;26285:20;26280:2;26269:9;26265:18;26258:48;26320:108;26423:4;26414:6;26320:108;;;26312:116;;26477:9;26471:4;26467:20;26461:3;26450:9;26446:19;26439:49;26502:130;26627:4;26502:130;;;26494:138;;25860:782;;;;;;;;26649:435;;26823:2;26812:9;26808:18;26800:26;;26837:71;26905:1;26894:9;26890:17;26881:6;26837:71;;;26919:72;26987:2;26976:9;26972:18;26963:6;26919:72;;;27002;27070:2;27059:9;27055:18;27046:6;27002:72;;;26794:290;;;;;;;27091:477;;27317:2;27306:9;27302:18;27294:26;;27367:9;27361:4;27357:20;27353:1;27342:9;27338:17;27331:47;27392:166;27553:4;27544:6;27392:166;;;27384:174;;27288:280;;;;;27575:361;;27743:2;27732:9;27728:18;27720:26;;27793:9;27787:4;27783:20;27779:1;27768:9;27764:17;27757:47;27818:108;27921:4;27912:6;27818:108;;;27810:116;;27714:222;;;;;27943:201;;28055:2;28044:9;28040:18;28032:26;;28069:65;28131:1;28120:9;28116:17;28107:6;28069:65;;;28026:118;;;;;28151:312;;28291:2;28280:9;28276:18;28268:26;;28305:65;28367:1;28356:9;28352:17;28343:6;28305:65;;;28381:72;28449:2;28438:9;28434:18;28425:6;28381:72;;;28262:201;;;;;;28470:209;;28586:2;28575:9;28571:18;28563:26;;28600:69;28666:1;28655:9;28651:17;28642:6;28600:69;;;28557:122;;;;;28686:259;;28827:2;28816:9;28812:18;28804:26;;28841:94;28932:1;28921:9;28917:17;28908:6;28841:94;;;28798:147;;;;;28952:301;;29090:2;29079:9;29075:18;29067:26;;29140:9;29134:4;29130:20;29126:1;29115:9;29111:17;29104:47;29165:78;29238:4;29229:6;29165:78;;;29157:86;;29061:192;;;;;29260:407;;29451:2;29440:9;29436:18;29428:26;;29501:9;29495:4;29491:20;29487:1;29476:9;29472:17;29465:47;29526:131;29652:4;29526:131;;;29518:139;;29422:245;;;;29674:407;;29865:2;29854:9;29850:18;29842:26;;29915:9;29909:4;29905:20;29901:1;29890:9;29886:17;29879:47;29940:131;30066:4;29940:131;;;29932:139;;29836:245;;;;30088:407;;30279:2;30268:9;30264:18;30256:26;;30329:9;30323:4;30319:20;30315:1;30304:9;30300:17;30293:47;30354:131;30480:4;30354:131;;;30346:139;;30250:245;;;;30502:407;;30693:2;30682:9;30678:18;30670:26;;30743:9;30737:4;30733:20;30729:1;30718:9;30714:17;30707:47;30768:131;30894:4;30768:131;;;30760:139;;30664:245;;;;30916:407;;31107:2;31096:9;31092:18;31084:26;;31157:9;31151:4;31147:20;31143:1;31132:9;31128:17;31121:47;31182:131;31308:4;31182:131;;;31174:139;;31078:245;;;;31330:407;;31521:2;31510:9;31506:18;31498:26;;31571:9;31565:4;31561:20;31557:1;31546:9;31542:17;31535:47;31596:131;31722:4;31596:131;;;31588:139;;31492:245;;;;31744:407;;31935:2;31924:9;31920:18;31912:26;;31985:9;31979:4;31975:20;31971:1;31960:9;31956:17;31949:47;32010:131;32136:4;32010:131;;;32002:139;;31906:245;;;;32158:407;;32349:2;32338:9;32334:18;32326:26;;32399:9;32393:4;32389:20;32385:1;32374:9;32370:17;32363:47;32424:131;32550:4;32424:131;;;32416:139;;32320:245;;;;32572:407;;32763:2;32752:9;32748:18;32740:26;;32813:9;32807:4;32803:20;32799:1;32788:9;32784:17;32777:47;32838:131;32964:4;32838:131;;;32830:139;;32734:245;;;;32986:407;;33177:2;33166:9;33162:18;33154:26;;33227:9;33221:4;33217:20;33213:1;33202:9;33198:17;33191:47;33252:131;33378:4;33252:131;;;33244:139;;33148:245;;;;33400:407;;33591:2;33580:9;33576:18;33568:26;;33641:9;33635:4;33631:20;33627:1;33616:9;33612:17;33605:47;33666:131;33792:4;33666:131;;;33658:139;;33562:245;;;;33814:407;;34005:2;33994:9;33990:18;33982:26;;34055:9;34049:4;34045:20;34041:1;34030:9;34026:17;34019:47;34080:131;34206:4;34080:131;;;34072:139;;33976:245;;;;34228:407;;34419:2;34408:9;34404:18;34396:26;;34469:9;34463:4;34459:20;34455:1;34444:9;34440:17;34433:47;34494:131;34620:4;34494:131;;;34486:139;;34390:245;;;;34642:407;;34833:2;34822:9;34818:18;34810:26;;34883:9;34877:4;34873:20;34869:1;34858:9;34854:17;34847:47;34908:131;35034:4;34908:131;;;34900:139;;34804:245;;;;35056:407;;35247:2;35236:9;35232:18;35224:26;;35297:9;35291:4;35287:20;35283:1;35272:9;35268:17;35261:47;35322:131;35448:4;35322:131;;;35314:139;;35218:245;;;;35470:407;;35661:2;35650:9;35646:18;35638:26;;35711:9;35705:4;35701:20;35697:1;35686:9;35682:17;35675:47;35736:131;35862:4;35736:131;;;35728:139;;35632:245;;;;35884:407;;36075:2;36064:9;36060:18;36052:26;;36125:9;36119:4;36115:20;36111:1;36100:9;36096:17;36089:47;36150:131;36276:4;36150:131;;;36142:139;;36046:245;;;;36298:407;;36489:2;36478:9;36474:18;36466:26;;36539:9;36533:4;36529:20;36525:1;36514:9;36510:17;36503:47;36564:131;36690:4;36564:131;;;36556:139;;36460:245;;;;36712:407;;36903:2;36892:9;36888:18;36880:26;;36953:9;36947:4;36943:20;36939:1;36928:9;36924:17;36917:47;36978:131;37104:4;36978:131;;;36970:139;;36874:245;;;;37126:213;;37244:2;37233:9;37229:18;37221:26;;37258:71;37326:1;37315:9;37311:17;37302:6;37258:71;;;37215:124;;;;;37346:547;;37548:3;37537:9;37533:19;37525:27;;37563:71;37631:1;37620:9;37616:17;37607:6;37563:71;;;37645:72;37713:2;37702:9;37698:18;37689:6;37645:72;;;37728;37796:2;37785:9;37781:18;37772:6;37728:72;;;37811;37879:2;37868:9;37864:18;37855:6;37811:72;;;37519:374;;;;;;;;37900:256;;37962:2;37956:9;37946:19;;38000:4;37992:6;37988:17;38099:6;38087:10;38084:22;38063:18;38051:10;38048:34;38045:62;38042:2;;;38120:1;38117;38110:12;38042:2;38140:10;38136:2;38129:22;37940:216;;;;;38163:304;;38322:18;38314:6;38311:30;38308:2;;;38354:1;38351;38344:12;38308:2;38389:4;38381:6;38377:17;38369:25;;38452:4;38446;38442:15;38434:23;;38245:222;;;;38474:180;;38589:3;38581:11;;38627:4;38622:3;38618:14;38610:22;;38575:79;;;;38661:151;;38747:3;38739:11;;38785:4;38780:3;38776:14;38768:22;;38733:79;;;;38819:173;;38902:3;38894:11;;38939:3;38936:1;38929:14;38971:4;38968:1;38958:18;38950:26;;38888:104;;;;38999:166;;39137:5;39131:12;39121:22;;39102:63;;;;39172:137;;39281:5;39275:12;39265:22;;39246:63;;;;39316:141;;39428:5;39422:12;39412:22;;39387:70;;;;39464:122;;39558:5;39552:12;39542:22;;39523:63;;;;39593:137;;39720:4;39715:3;39711:14;39703:22;;39697:33;;;;39737:108;;39835:4;39830:3;39826:14;39818:22;;39812:33;;;;39852:105;;39947:4;39942:3;39938:14;39930:22;;39924:33;;;;39965:207;;40124:6;40119:3;40112:19;40161:4;40156:3;40152:14;40137:29;;40105:67;;;;;40181:168;;40301:6;40296:3;40289:19;40338:4;40333:3;40329:14;40314:29;;40282:67;;;;;40358:178;;40488:6;40483:3;40476:19;40525:4;40520:3;40516:14;40501:29;;40469:67;;;;;40545:162;;40659:6;40654:3;40647:19;40696:4;40691:3;40687:14;40672:29;;40640:67;;;;;40716:163;;40831:6;40826:3;40819:19;40868:4;40863:3;40859:14;40844:29;;40812:67;;;;;40887:85;;40962:5;40951:16;;40945:27;;;;40979:91;;41041:24;41059:5;41041:24;;;41030:35;;41024:46;;;;41077:85;;41150:5;41143:13;41136:21;41125:32;;41119:43;;;;41169:144;;41241:66;41234:5;41230:78;41219:89;;41213:100;;;;41320:121;;41393:42;41386:5;41382:54;41371:65;;41365:76;;;;41448:72;;41510:5;41499:16;;41493:27;;;;41527:129;;41614:37;41645:5;41614:37;;;41601:50;;41595:61;;;;41663:167;;41765:60;41819:5;41765:60;;;41752:73;;41746:84;;;;41837:131;;41939:24;41957:5;41939:24;;;41926:37;;41920:48;;;;41975:116;;42062:24;42080:5;42062:24;;;42049:37;;42043:48;;;;42098:121;;42177:37;42208:5;42177:37;;;42164:50;;42158:61;;;;42226:108;;42305:24;42323:5;42305:24;;;42292:37;;42286:48;;;;42342:268;42407:1;42414:101;42428:6;42425:1;42422:13;42414:101;;;42504:1;42499:3;42495:11;42489:18;42485:1;42480:3;42476:11;42469:39;42450:2;42447:1;42443:10;42438:15;;42414:101;;;42530:6;42527:1;42524:13;42521:2;;;42595:1;42586:6;42581:3;42577:16;42570:27;42521:2;42391:219;;;;;42618:161;;42708:66;42739:34;42762:10;42739:34;;;42708:66;;;42699:75;;42693:86;;;;42786:138;;42862:57;42913:4;42907:11;42862:57;;;42853:66;;42847:77;;;;42931:97;;43019:2;43015:7;43010:2;43003:5;42999:14;42995:28;42985:38;;42979:49;;;;43036:102;;43122:5;43119:1;43115:13;43093:35;;43087:51;;;;43146:117;43215:24;43233:5;43215:24;;;43208:5;43205:35;43195:2;;43254:1;43251;43244:12;43195:2;43189:74;;43270:115;43338:23;43355:5;43338:23;;;43331:5;43328:34;43318:2;;43376:1;43373;43366:12;43318:2;43312:73;;43392:117;43461:24;43479:5;43461:24;;;43454:5;43451:35;43441:2;;43500:1;43497;43490:12;43441:2;43435:74;
Swarm Source
ipfs://a08875ef3b644cf0c945068105649b441a889067a7f300efc47f2fe89c8bd5fa
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.