Latest 25 from a total of 36,609 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw | 24514800 | 7 days ago | IN | 0 ETH | 0.00001664 | ||||
| Withdraw | 24485933 | 11 days ago | IN | 0 ETH | 0.00018111 | ||||
| Withdraw | 24331578 | 32 days ago | IN | 0 ETH | 0.00016492 | ||||
| Withdraw | 24328505 | 33 days ago | IN | 0 ETH | 0.00022077 | ||||
| Withdraw | 24285531 | 39 days ago | IN | 0 ETH | 0.00002562 | ||||
| Withdraw | 24244203 | 44 days ago | IN | 0 ETH | 0.000266 | ||||
| Withdraw | 24240527 | 45 days ago | IN | 0 ETH | 0.00044901 | ||||
| Withdraw | 24229261 | 47 days ago | IN | 0 ETH | 0.00002247 | ||||
| Withdraw | 24160773 | 56 days ago | IN | 0 ETH | 0.00069713 | ||||
| Withdraw | 24134321 | 60 days ago | IN | 0 ETH | 0.00003731 | ||||
| Withdraw | 24132780 | 60 days ago | IN | 0 ETH | 0.00016566 | ||||
| Withdraw | 24131816 | 60 days ago | IN | 0 ETH | 0.00027291 | ||||
| Withdraw | 24077678 | 68 days ago | IN | 0 ETH | 0.00016323 | ||||
| Withdraw | 24005370 | 78 days ago | IN | 0 ETH | 0.00016759 | ||||
| Withdraw | 23981945 | 81 days ago | IN | 0 ETH | 0.00027924 | ||||
| Withdraw | 23948225 | 86 days ago | IN | 0 ETH | 0.00002471 | ||||
| Withdraw | 23942545 | 87 days ago | IN | 0 ETH | 0.0001662 | ||||
| Withdraw | 23940735 | 87 days ago | IN | 0 ETH | 0.00000884 | ||||
| Withdraw | 23931914 | 88 days ago | IN | 0 ETH | 0.0001361 | ||||
| Withdraw | 23896795 | 93 days ago | IN | 0 ETH | 0.0000083 | ||||
| Withdraw | 23887692 | 94 days ago | IN | 0 ETH | 0.00016451 | ||||
| Withdraw | 23869167 | 97 days ago | IN | 0 ETH | 0.00030038 | ||||
| Withdraw | 23830754 | 102 days ago | IN | 0 ETH | 0.00016871 | ||||
| Withdraw | 23822394 | 104 days ago | IN | 0 ETH | 0.00017339 | ||||
| Withdraw | 23821714 | 104 days ago | IN | 0 ETH | 0.00025027 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
BasedAIBridge
Compiler Version
v0.8.25+commit.b61c2a91
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
/*
#########################################################
# ____ _ ____ _____ ____ _ ___ __ __ #
#| __ ) / \ / ___|| ____| _ \ / \ |_ _| / /___\ \ #
#| _ \ / _ \ \___ \| _| | | | |/ _ \ | | / /_____\ \#
#| |_) / ___ \ ___) | |___| |_| / ___ \ | | \ \_____/ /#
#|____/_/___\_\____/|_____|____/_/_ \_\___| \_\ /_/ #
#| __ )| _ \|_ _| _ \ / ___| ____| #
#| _ \| |_) || || | | | | _| _| #
#| |_) | _ < | || |_| | |_| | |___ #
#|____/|_| \_\___|____/ \____|_____| #
#########################################################
# BRIDGE REWARDS - Bridge.sol - www.getbased.ai #
#########################################################
*/
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
import "@openzeppelin/contracts/security/Pausable.sol";
interface IERC20 {
function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
function transfer(address recipient, uint256 amount) external returns (bool);
function balanceOf(address account) external view returns (uint256);
}
interface IERC721 {
function transferFrom(address from, address to, uint256 tokenId) external;
function ownerOf(uint256 tokenId) external view returns (address);
}
contract BasedAIBridge is ReentrancyGuard, Pausable {
IERC20 public pepeCoin;
IERC721 public brainNFT;
address public owner;
address public pepeCoinAddress;
bool public mainnetLive;
uint256 public startTime;
struct Stake {
address tokenAddress;
uint256 amount;
uint256 timestamp;
uint256 rate;
uint256[] brainIds;
}
struct TokenConfig {
uint256 initialRate;
uint256 rateIncreaseAmount;
uint256 rateIncreaseInterval;
bool isSupported;
}
mapping(address => Stake[]) public stakes;
mapping(address => uint256) public credits;
mapping(address => bool) public hasStaked;
mapping(address => uint256) public lastKnownCredits;
address[] public stakers;
mapping(address => TokenConfig) public tokenConfigs;
mapping(address => uint256) public finalScores;
event Staked(address indexed user, address tokenAddress, uint256 amount, uint256 timestamp, uint256 rate);
event BrainStaked(address indexed user, uint256 tokenId, uint256 timestamp, uint256 rate);
event MainnetActivated();
event Withdrawn(address indexed user, uint256 amount);
event BrainWithdrawn(address indexed user, uint256 tokenId);
event CreditsUpdated(address indexed user, uint256 credits);
event FinalScoreRecorded(address indexed user, uint256 finalScore);
modifier onlyOwner() {
require(msg.sender == owner, "Only owner can call this function.");
_;
}
constructor() {
pepeCoinAddress = 0xA9E8aCf069C58aEc8825542845Fd754e41a9489A;
pepeCoin = IERC20(0xA9E8aCf069C58aEc8825542845Fd754e41a9489A);
brainNFT = IERC721(0xA9E8aCf069C58aEc8825542845Fd754e41a9489A);
owner = msg.sender;
mainnetLive = false;
startTime = block.timestamp;
tokenConfigs[0xA9E8aCf069C58aEc8825542845Fd754e41a9489A] = TokenConfig({
initialRate: 500,
rateIncreaseAmount: 0,
rateIncreaseInterval: 30 days,
isSupported: true
});
}
// For user with TFT Enforcer
function getCurrentRate(address tokenAddress) public view returns (uint256) {
TokenConfig storage config = tokenConfigs[tokenAddress];
uint256 timeElapsed = block.timestamp - startTime;
uint256 periods = timeElapsed / config.rateIncreaseInterval;
return config.initialRate + (config.rateIncreaseAmount * periods);
}
function setBasedBrainNFT(address tokenAddress) external onlyOwner {
brainNFT = IERC721(tokenAddress);
}
function addOrUpdateToken(address tokenAddress, uint256 _initialRate, uint256 _rateIncreaseAmount, uint256 _rateIncreaseInterval) external onlyOwner {
tokenConfigs[tokenAddress] = TokenConfig({
initialRate: _initialRate, // 500 for Pepecoin, 5000 for Brain Specific Token, 5 for Brain Credits, 5800 for $BASED, 1000 for FHE-ORDERBOOK Brain Token
rateIncreaseAmount: _rateIncreaseAmount,
rateIncreaseInterval: _rateIncreaseInterval,
isSupported: true
});
}
function removeToken(address tokenAddress) external onlyOwner {
tokenConfigs[tokenAddress].isSupported = false;
}
function stake(address tokenAddress, uint256 _amount) external whenNotPaused nonReentrant {
require(_amount > 0, "Amount must be greater than zero");
require(tokenConfigs[tokenAddress].isSupported, "Token is not supported for staking");
require(!mainnetLive, "Mainnet is live!");
IERC20(tokenAddress).transferFrom(msg.sender, address(this), _amount);
uint256 currentRate = tokenConfigs[tokenAddress].initialRate;
// Empty brain array
uint256[] memory brainIds = new uint256[](0);
// Recover all credits if in the first 30 days
if (block.timestamp - startTime <= 30 days) {
credits[msg.sender] += lastKnownCredits[msg.sender];
lastKnownCredits[msg.sender] = 0;
}
_addStake(msg.sender, tokenAddress, _amount, brainIds, currentRate);
}
function _addStake(address _staker, address _tokenAddress, uint256 _amount, uint256[] memory _brainIds, uint256 _rate) private {
if (!hasStaked[_staker]) {
hasStaked[_staker] = true;
stakers.push(_staker);
}
stakes[_staker].push(Stake({
tokenAddress: _tokenAddress,
amount: _amount,
timestamp: block.timestamp,
rate: _rate,
brainIds: _brainIds
}));
emit Staked(_staker, _tokenAddress, _amount, block.timestamp, _rate);
}
function recoverERC20(address tokenAddress, uint256 tokenAmount) external onlyOwner {
require(tokenAddress != pepeCoinAddress, "Unable to remove prebriged PepeCoin");
IERC20(tokenAddress).transfer(owner, tokenAmount);
}
function recoverERC721(address tokenAddress, uint256 tokenId) external onlyOwner {
IERC721(tokenAddress).transferFrom(address(this), owner, tokenId);
}
function stakeBrain(uint256 _tokenId) external whenNotPaused nonReentrant {
require(brainNFT.ownerOf(_tokenId) == msg.sender, "Not the owner of the Brain");
require(!mainnetLive, "Mainnet is live!");
brainNFT.transferFrom(msg.sender, address(this), _tokenId);
uint256 currentRate = tokenConfigs[address(pepeCoin)].initialRate;
uint256[] memory brainIds = new uint256[](1);
brainIds[0] = _tokenId;
_addStake(msg.sender, address(pepeCoin), 100000 * (10 ** 18), brainIds, currentRate);
emit BrainStaked(msg.sender, _tokenId, block.timestamp, currentRate);
}
function withdraw() external whenNotPaused nonReentrant {
uint256 totalStaked = 0;
uint256 stakeCount = stakes[msg.sender].length;
// make sure the users credits are calculated.
if (block.timestamp - startTime <= 30 days) {
// Store any previous credit balances
lastKnownCredits[msg.sender] = credits[msg.sender];
// Update the credit table to the latest
updateCredits(msg.sender);
// Combine the old and new updated credits
lastKnownCredits[msg.sender] += credits[msg.sender];
}
for (uint i = stakeCount; i > 0; i--) {
uint index = i - 1;
Stake storage stake = stakes[msg.sender][index];
totalStaked += stake.amount;
// If it is a Brain they can only withdraw the Brain
if (stake.brainIds.length == 0) {
IERC20(stake.tokenAddress).transfer(msg.sender, stake.amount);
emit Withdrawn(msg.sender, stake.amount);
}
// Transfer any Brain NFTs back to the user
for (uint j = 0; j < stake.brainIds.length; j++) {
brainNFT.transferFrom(address(this), msg.sender, stake.brainIds[j]);
emit BrainWithdrawn(msg.sender, stake.brainIds[j]);
}
stakes[msg.sender][index] = stakes[msg.sender][stakes[msg.sender].length - 1];
stakes[msg.sender].pop();
}
require(totalStaked > 0, "Nothing to remove from BasedAI bridge");
credits[msg.sender] = 0;
}
function triggerMainnetLive() external onlyOwner {
mainnetLive = true;
for (uint i = 0; i < stakers.length; i++) {
finalScores[stakers[i]] = getCredits(stakers[i]) + credits[stakers[i]];
finalScores[stakers[i]] += lastKnownCredits[stakers[i]];
emit FinalScoreRecorded(stakers[i], finalScores[stakers[i]]);
}
emit MainnetActivated();
}
function getFinalScore(address staker) public view returns (uint256) {
require(mainnetLive, "BasedAI Mainnet is not live yet");
return finalScores[staker];
}
function getCredits(address staker) private view returns (uint256) {
uint256 totalCredits = 0;
for (uint i = 0; i < stakes[staker].length; i++) {
totalCredits += calculateCredits(stakes[staker][i]);
}
return totalCredits;
}
function updateCredits(address staker) private {
uint256 totalCredits = 0;
for (uint i = 0; i < stakes[staker].length; i++) {
totalCredits += calculateCredits(stakes[staker][i]);
}
credits[staker] = totalCredits;
}
function calculateCredits(Stake memory stake) private view returns (uint256) {
uint256 durationInSeconds = block.timestamp - stake.timestamp;
uint256 accruedCredits = (stake.amount / stake.rate) * durationInSeconds / 86400;
return accruedCredits;
}
function calculateTotalCredits(address staker) public view returns (uint256) {
if (mainnetLive) return finalScores[staker];
uint256 totalCredits = 0;
for (uint i = 0; i < stakes[staker].length; i++) {
totalCredits += calculateCredits(stakes[staker][i]);
}
// add any leftover credits collected if they participated in Brain burn or Brain credits
totalCredits += lastKnownCredits[staker];
totalCredits += credits[staker];
return totalCredits;
}
// Credits the user recovers if they restake.
function calculateReturnCredits(address staker) public view returns (uint256) {
if (mainnetLive) return finalScores[staker];
return lastKnownCredits[staker];
}
// calculates from a current stake how much a user has earned
function calculateCreditsPerToken(address staker, address _tokenAddress) public view returns (uint256) {
require(!mainnetLive, "Mainnet is live, claim all rewards.");
uint256 totalCredits = 0;
for (uint i = 0; i < stakes[staker].length; i++) {
if (stakes[staker][i].tokenAddress == _tokenAddress) {
totalCredits += calculateCredits(stakes[staker][i]);
}
}
return totalCredits;
}
function setCreditsForAddress(address _user, uint256 _credits) external onlyOwner {
credits[_user] = _credits;
emit CreditsUpdated(_user, _credits);
}
function getStakedAmount(address user, address tokenAddress) public view returns (uint256) {
uint256 totalStaked = 0;
for (uint i = 0; i < stakes[user].length; i++) {
if (stakes[user][i].tokenAddress == tokenAddress) {
totalStaked += stakes[user][i].amount;
}
}
return totalStaked;
}
function pause() external onlyOwner {
_pause();
}
function unpause() external onlyOwner {
_unpause();
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)
pragma solidity ^0.8.0;
import "../utils/Context.sol";
/**
* @dev Contract module which allows children to implement an emergency stop
* mechanism that can be triggered by an authorized account.
*
* This module is used through inheritance. It will make available the
* modifiers `whenNotPaused` and `whenPaused`, which can be applied to
* the functions of your contract. Note that they will not be pausable by
* simply including this module, only once the modifiers are put in place.
*/
abstract contract Pausable is Context {
/**
* @dev Emitted when the pause is triggered by `account`.
*/
event Paused(address account);
/**
* @dev Emitted when the pause is lifted by `account`.
*/
event Unpaused(address account);
bool private _paused;
/**
* @dev Initializes the contract in unpaused state.
*/
constructor() {
_paused = false;
}
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*
* Requirements:
*
* - The contract must not be paused.
*/
modifier whenNotPaused() {
_requireNotPaused();
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*
* Requirements:
*
* - The contract must be paused.
*/
modifier whenPaused() {
_requirePaused();
_;
}
/**
* @dev Returns true if the contract is paused, and false otherwise.
*/
function paused() public view virtual returns (bool) {
return _paused;
}
/**
* @dev Throws if the contract is paused.
*/
function _requireNotPaused() internal view virtual {
require(!paused(), "Pausable: paused");
}
/**
* @dev Throws if the contract is not paused.
*/
function _requirePaused() internal view virtual {
require(paused(), "Pausable: not paused");
}
/**
* @dev Triggers stopped state.
*
* Requirements:
*
* - The contract must not be paused.
*/
function _pause() internal virtual whenNotPaused {
_paused = true;
emit Paused(_msgSender());
}
/**
* @dev Returns to normal state.
*
* Requirements:
*
* - The contract must be paused.
*/
function _unpause() internal virtual whenPaused {
_paused = false;
emit Unpaused(_msgSender());
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol)
pragma solidity ^0.8.0;
/**
* @dev Contract module that helps prevent reentrant calls to a function.
*
* Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier
* available, which can be applied to functions to make sure there are no nested
* (reentrant) calls to them.
*
* Note that because there is a single `nonReentrant` guard, functions marked as
* `nonReentrant` may not call one another. This can be worked around by making
* those functions `private`, and then adding `external` `nonReentrant` entry
* points to them.
*
* TIP: If you would like to learn more about reentrancy and alternative ways
* to protect against it, check out our blog post
* https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul].
*/
abstract contract ReentrancyGuard {
// Booleans are more expensive than uint256 or any type that takes up a full
// word because each write operation emits an extra SLOAD to first read the
// slot's contents, replace the bits taken up by the boolean, and then write
// back. This is the compiler's defense against contract upgrades and
// pointer aliasing, and it cannot be disabled.
// The values being non-zero value makes deployment a bit more expensive,
// but in exchange the refund on every call to nonReentrant will be lower in
// amount. Since refunds are capped to a percentage of the total
// transaction's gas, it is best to keep them low in cases like this one, to
// increase the likelihood of the full refund coming into effect.
uint256 private constant _NOT_ENTERED = 1;
uint256 private constant _ENTERED = 2;
uint256 private _status;
constructor() {
_status = _NOT_ENTERED;
}
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* Calling a `nonReentrant` function from another `nonReentrant`
* function is not supported. It is possible to prevent this from happening
* by making the `nonReentrant` function external, and making it call a
* `private` function that does the actual work.
*/
modifier nonReentrant() {
_nonReentrantBefore();
_;
_nonReentrantAfter();
}
function _nonReentrantBefore() private {
// On the first call to nonReentrant, _status will be _NOT_ENTERED
require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
// Any calls to nonReentrant after this point will fail
_status = _ENTERED;
}
function _nonReentrantAfter() private {
// By storing the original value once again, a refund is triggered (see
// https://eips.ethereum.org/EIPS/eip-2200)
_status = _NOT_ENTERED;
}
/**
* @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a
* `nonReentrant` function in the call stack.
*/
function _reentrancyGuardEntered() internal view returns (bool) {
return _status == _ENTERED;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol)
pragma solidity ^0.8.20;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}{
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"}],"name":"BrainStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"BrainWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"credits","type":"uint256"}],"name":"CreditsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"finalScore","type":"uint256"}],"name":"FinalScoreRecorded","type":"event"},{"anonymous":false,"inputs":[],"name":"MainnetActivated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"rate","type":"uint256"}],"name":"Staked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"_initialRate","type":"uint256"},{"internalType":"uint256","name":"_rateIncreaseAmount","type":"uint256"},{"internalType":"uint256","name":"_rateIncreaseInterval","type":"uint256"}],"name":"addOrUpdateToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"brainNFT","outputs":[{"internalType":"contract IERC721","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"},{"internalType":"address","name":"_tokenAddress","type":"address"}],"name":"calculateCreditsPerToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"calculateReturnCredits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"calculateTotalCredits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"credits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"finalScores","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"getCurrentRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"staker","type":"address"}],"name":"getFinalScore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"getStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasStaked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastKnownCredits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainnetLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pepeCoin","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pepeCoinAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"recoverERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"recoverERC721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"removeToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"setBasedBrainNFT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_credits","type":"uint256"}],"name":"setCreditsForAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"stakeBrain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakes","outputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"timestamp","type":"uint256"},{"internalType":"uint256","name":"rate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenConfigs","outputs":[{"internalType":"uint256","name":"initialRate","type":"uint256"},{"internalType":"uint256","name":"rateIncreaseAmount","type":"uint256"},{"internalType":"uint256","name":"rateIncreaseInterval","type":"uint256"},{"internalType":"bool","name":"isSupported","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"triggerMainnetLive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561000f575f80fd5b5060015f819055505f60015f6101000a81548160ff02191690831515021790555073a9e8acf069c58aec8825542845fd754e41a9489a60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a9e8acf069c58aec8825542845fd754e41a9489a6001806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a9e8acf069c58aec8825542845fd754e41a9489a60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600460146101000a81548160ff0219169083151502179055504260058190555060405180608001604052806101f481526020015f815260200162278d00815260200160011515815250600b5f73a9e8acf069c58aec8825542845fd754e41a9489a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015560208201518160010155604082015181600201556060820151816003015f6101000a81548160ff02191690831515021790555090505061402d806102525f395ff3fe608060405234801561000f575f80fd5b50600436106101ee575f3560e01c80639a29e18a1161010d578063cf0d99df116100a0578063fd5e6dd11161006f578063fd5e6dd114610594578063fe5ff468146105c4578063fed161a0146105f4578063ffd7ff9f14610612576101ee565b8063cf0d99df146104e6578063d8d07ca814610516578063dce77d8414610546578063e6e126df14610576576101ee565b8063abede4ae116100dc578063abede4ae14610472578063adc9772e1461047c578063bd45916c14610498578063c93c8f34146104b6576101ee565b80639a29e18a146103da578063a38f6682146103f6578063a826672814610412578063aaaa924914610442576101ee565b806378d32280116101855780638456cb59116101545780638456cb59146103785780638980f11f146103825780638bdfc0c01461039e5780638da5cb5b146103bc576101ee565b806378d322801461030657806378e9792514610322578063811257fe14610340578063819d4cc61461035c576101ee565b80633f4ba83a116101c15780633f4ba83a1461028f578063584b62a1146102995780635c975abb146102cc5780635fa7b584146102ea576101ee565b80630751c0cf146101f25780630db14e95146102225780631b69dc5f146102525780633ccfd60b14610285575b5f80fd5b61020c60048036038101906102079190613426565b610642565b6040516102199190613469565b60405180910390f35b61023c60048036038101906102379190613482565b610657565b6040516102499190613469565b60405180910390f35b61026c60048036038101906102679190613426565b6107da565b60405161027c94939291906134da565b60405180910390f35b61028d610812565b005b610297610f4b565b005b6102b360048036038101906102ae9190613547565b610fe4565b6040516102c39493929190613594565b60405180910390f35b6102d4611049565b6040516102e191906135d7565b60405180910390f35b61030460048036038101906102ff9190613426565b61105e565b005b610320600480360381019061031b9190613547565b611147565b005b61032a61126a565b6040516103379190613469565b60405180910390f35b61035a60048036038101906103559190613426565b611270565b005b61037660048036038101906103719190613547565b611342565b005b610380611460565b005b61039c60048036038101906103979190613547565b6114f9565b005b6103a66116b8565b6040516103b3919061364b565b60405180910390f35b6103c46116dc565b6040516103d19190613664565b60405180910390f35b6103f460048036038101906103ef919061367d565b611701565b005b610410600480360381019061040b91906136a8565b611a58565b005b61042c60048036038101906104279190613426565b611b8c565b6040516104399190613469565b60405180910390f35b61045c60048036038101906104579190613482565b611e23565b6040516104699190613469565b60405180910390f35b61047a6120ca565b005b61049660048036038101906104919190613547565b612509565b005b6104a0612849565b6040516104ad9190613664565b60405180910390f35b6104d060048036038101906104cb9190613426565b61286e565b6040516104dd91906135d7565b60405180910390f35b61050060048036038101906104fb9190613426565b61288b565b60405161050d9190613469565b60405180910390f35b610530600480360381019061052b9190613426565b6128a0565b60405161053d9190613469565b60405180910390f35b610560600480360381019061055b9190613426565b612935565b60405161056d9190613469565b60405180910390f35b61057e6129c2565b60405161058b91906135d7565b60405180910390f35b6105ae60048036038101906105a9919061367d565b6129d5565b6040516105bb9190613664565b60405180910390f35b6105de60048036038101906105d99190613426565b612a10565b6040516105eb9190613469565b60405180910390f35b6105fc612a25565b604051610609919061372c565b60405180910390f35b61062c60048036038101906106279190613426565b612a4a565b6040516106399190613469565b60405180910390f35b600c602052805f5260405f205f915090505481565b5f805f90505f5b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490508110156107cf578373ffffffffffffffffffffffffffffffffffffffff1660065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20828154811061070c5761070b613745565b5b905f5260205f2090600502015f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036107c25760065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081815481106107a4576107a3613745565b5b905f5260205f20906005020160010154826107bf919061379f565b91505b808060010191505061065e565b508091505092915050565b600b602052805f5260405f205f91509050805f015490806001015490806002015490806003015f9054906101000a900460ff16905084565b61081a612aeb565b610822612b35565b5f8060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050905062278d006005544261087991906137d2565b116109975760075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061090633612b82565b60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461098f919061379f565b925050819055505b5f8190505b5f811115610eba575f6001826109b291906137d2565b90505f60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110610a0457610a03613745565b5b905f5260205f2090600502019050806001015485610a22919061379f565b94505f816004018054905003610b2757805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3383600101546040518363ffffffff1660e01b8152600401610a93929190613805565b6020604051808303815f875af1158015610aaf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad39190613856565b503373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d58260010154604051610b1e9190613469565b60405180910390a25b5f5b8160040180549050811015610c5a5760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3033856004018581548110610b8d57610b8c613745565b5b905f5260205f2001546040518463ffffffff1660e01b8152600401610bb493929190613881565b5f604051808303815f87803b158015610bcb575f80fd5b505af1158015610bdd573d5f803e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f1b9c7eb4925b0ec2beaa2f0271639119da4fed00dc83622b7d455aab4191a21f836004018381548110610c2f57610c2e613745565b5b905f5260205f200154604051610c459190613469565b60405180910390a28080600101915050610b29565b5060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610ce591906137d2565b81548110610cf657610cf5613745565b5b905f5260205f20906005020160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208381548110610d5157610d50613745565b5b905f5260205f2090600502015f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820154816001015560028201548160020155600382015481600301556004820181600401908054610df49291906132f6565b5090505060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480610e4557610e446138b6565b5b600190038181905f5260205f2090600502015f8082015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182015f9055600282015f9055600382015f9055600482015f610ea19190613344565b5050905550508080610eb2906138e3565b91505061099c565b505f8211610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef49061398a565b60405180910390fd5b5f60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050610f49612d64565b565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd190613a18565b60405180910390fd5b610fe2612d6d565b565b6006602052815f5260405f208181548110610ffd575f80fd5b905f5260205f2090600502015f9150915050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905084565b5f60015f9054906101000a900460ff16905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e490613a18565b60405180910390fd5b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003015f6101000a81548160ff02191690831515021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd90613a18565b60405180910390fd5b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff167f7522b932a284a577fb9f080c9bbcac32efa24a0f15d015e0a247af66f7ba90ca8260405161125e9190613469565b60405180910390a25050565b60055481565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f690613a18565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890613a18565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040161142f93929190613881565b5f604051808303815f87803b158015611446575f80fd5b505af1158015611458573d5f803e3d5ffd5b505050505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690613a18565b60405180910390fd5b6114f7612dce565b565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f90613a18565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e90613aa6565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611673929190613805565b6020604051808303815f875af115801561168f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b39190613856565b505050565b60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611709612aeb565b611711612b35565b3373ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016117829190613469565b602060405180830381865afa15801561179d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c19190613ad8565b73ffffffffffffffffffffffffffffffffffffffff1614611817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180e90613b4d565b60405180910390fd5b600460149054906101000a900460ff1615611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185e90613bb5565b60405180910390fd5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016118c593929190613881565b5f604051808303815f87803b1580156118dc575f80fd5b505af11580156118ee573d5f803e3d5ffd5b505050505f600b5f60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015490505f600167ffffffffffffffff81111561197157611970613bd3565b5b60405190808252806020026020018201604052801561199f5781602001602082028036833780820191505090505b50905082815f815181106119b6576119b5613745565b5b6020026020010181815250506119f93360018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669152d02c7e14af68000008486612e2f565b3373ffffffffffffffffffffffffffffffffffffffff167f021cd75ad29c3e1b0dd64f15d17e2efee3cd0c005cde6df27e3d9455c71ea7f3844285604051611a4393929190613c00565b60405180910390a25050611a55612d64565b50565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613a18565b60405180910390fd5b604051806080016040528084815260200183815260200182815260200160011515815250600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015560208201518160010155604082015181600201556060820151816003015f6101000a81548160ff02191690831515021790555090505050505050565b5f600460149054906101000a900460ff1615611be757600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050611e1e565b5f805b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050811015611d8257611d6860065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110611c8457611c83613745565b5b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020018280548015611d5a57602002820191905f5260205f20905b815481526020019060010190808311611d46575b5050505050815250506130af565b82611d73919061379f565b91508080600101915050611bea565b5060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205481611dcc919061379f565b905060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205481611e17919061379f565b9050809150505b919050565b5f600460149054906101000a900460ff1615611e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b90613ca5565b60405180910390fd5b5f805b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490508110156120bf578373ffffffffffffffffffffffffffffffffffffffff1660065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110611f2557611f24613745565b5b905f5260205f2090600502015f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036120b2576120a460065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110611fc057611fbf613745565b5b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820180548060200260200160405190810160405280929190818152602001828054801561209657602002820191905f5260205f20905b815481526020019060010190808311612082575b5050505050815250506130af565b826120af919061379f565b91505b8080600101915050611e77565b508091505092915050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215090613a18565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055505f5b600a805490508110156124da5760075f600a838154811061219a57612199613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612240600a838154811061221357612212613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166130fd565b61224a919061379f565b600c5f600a848154811061226157612260613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060095f600a83815481106122dd576122dc613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600c5f600a848154811061235657612355613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123c5919061379f565b92505081905550600a81815481106123e0576123df613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f26ce502c7a403ed9fbcae74253612b199f88ed7467c20b1f34d12f4d9978e156600c5f600a858154811061245657612455613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516124c59190613469565b60405180910390a28080600101915050612176565b507f93a0e1ffb3f54ad8b92c151a39ed5816730e5d538b85969d550a37635802101560405160405180910390a1565b612511612aeb565b612519612b35565b5f811161255b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255290613d0d565b60405180910390fd5b600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003015f9054906101000a900460ff166125e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125de90613d9b565b60405180910390fd5b600460149054906101000a900460ff1615612637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262e90613bb5565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161267493929190613881565b6020604051808303815f875af1158015612690573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126b49190613856565b505f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015490505f8067ffffffffffffffff81111561271357612712613bd3565b5b6040519080825280602002602001820160405280156127415781602001602082028036833780820191505090505b50905062278d006005544261275691906137d2565b1161282e5760095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546127e4919061379f565b925050819055505f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61283b3385858486612e2f565b5050612845612d64565b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6008602052805f5260405f205f915054906101000a900460ff1681565b6009602052805f5260405f205f915090505481565b5f600460149054906101000a900460ff166128f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e790613e03565b60405180910390fd5b600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f6005544261298591906137d2565b90505f8260020154826129989190613e4e565b90508083600101546129aa9190613e7e565b835f01546129b8919061379f565b9350505050919050565b600460149054906101000a900460ff1681565b600a81815481106129e4575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052805f5260405f205f915090505481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600460149054906101000a900460ff1615612aa557600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050612ae6565b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505b919050565b612af3611049565b15612b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2a90613f09565b60405180910390fd5b565b60025f5403612b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7090613f71565b60405180910390fd5b60025f81905550565b5f805b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050811015612d1d57612d0360065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110612c1f57612c1e613745565b5b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020018280548015612cf557602002820191905f5260205f20905b815481526020019060010190808311612ce1575b5050505050815250506130af565b82612d0e919061379f565b91508080600101915050612b85565b508060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b60015f81905550565b612d756132a6565b5f60015f6101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612db76132ef565b604051612dc49190613664565b60405180910390a1565b612dd6612aeb565b6001805f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612e186132ef565b604051612e259190613664565b60405180910390a1565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612f3357600160085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600a85908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200142815260200183815260200184815250908060018154018082558091505060019003905f5260205f2090600502015f909190919091505f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004019080519060200190613051929190613362565b5050508473ffffffffffffffffffffffffffffffffffffffff167fad3fa07f4195b47e64892eb944ecbfc253384053c119852bb2bcae484c2fcb69858542856040516130a09493929190613594565b60405180910390a25050505050565b5f808260400151426130c191906137d2565b90505f6201518082856060015186602001516130dd9190613e4e565b6130e79190613e7e565b6130f19190613e4e565b90508092505050919050565b5f805f90505f5b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054905081101561329c5761328260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20828154811061319e5761319d613745565b5b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820180548060200260200160405190810160405280929190818152602001828054801561327457602002820191905f5260205f20905b815481526020019060010190808311613260575b5050505050815250506130af565b8261328d919061379f565b91508080600101915050613104565b5080915050919050565b6132ae611049565b6132ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e490613fd9565b60405180910390fd5b565b5f33905090565b828054828255905f5260205f20908101928215613333575f5260205f209182015b82811115613332578254825591600101919060010190613317565b5b50905061334091906133ad565b5090565b5080545f8255905f5260205f209081019061335f91906133ad565b50565b828054828255905f5260205f2090810192821561339c579160200282015b8281111561339b578251825591602001919060010190613380565b5b5090506133a991906133ad565b5090565b5b808211156133c4575f815f9055506001016133ae565b5090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6133f5826133cc565b9050919050565b613405816133eb565b811461340f575f80fd5b50565b5f81359050613420816133fc565b92915050565b5f6020828403121561343b5761343a6133c8565b5b5f61344884828501613412565b91505092915050565b5f819050919050565b61346381613451565b82525050565b5f60208201905061347c5f83018461345a565b92915050565b5f8060408385031215613498576134976133c8565b5b5f6134a585828601613412565b92505060206134b685828601613412565b9150509250929050565b5f8115159050919050565b6134d4816134c0565b82525050565b5f6080820190506134ed5f83018761345a565b6134fa602083018661345a565b613507604083018561345a565b61351460608301846134cb565b95945050505050565b61352681613451565b8114613530575f80fd5b50565b5f813590506135418161351d565b92915050565b5f806040838503121561355d5761355c6133c8565b5b5f61356a85828601613412565b925050602061357b85828601613533565b9150509250929050565b61358e816133eb565b82525050565b5f6080820190506135a75f830187613585565b6135b4602083018661345a565b6135c1604083018561345a565b6135ce606083018461345a565b95945050505050565b5f6020820190506135ea5f8301846134cb565b92915050565b5f819050919050565b5f61361361360e613609846133cc565b6135f0565b6133cc565b9050919050565b5f613624826135f9565b9050919050565b5f6136358261361a565b9050919050565b6136458161362b565b82525050565b5f60208201905061365e5f83018461363c565b92915050565b5f6020820190506136775f830184613585565b92915050565b5f60208284031215613692576136916133c8565b5b5f61369f84828501613533565b91505092915050565b5f805f80608085870312156136c0576136bf6133c8565b5b5f6136cd87828801613412565b94505060206136de87828801613533565b93505060406136ef87828801613533565b925050606061370087828801613533565b91505092959194509250565b5f6137168261361a565b9050919050565b6137268161370c565b82525050565b5f60208201905061373f5f83018461371d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6137a982613451565b91506137b483613451565b92508282019050808211156137cc576137cb613772565b5b92915050565b5f6137dc82613451565b91506137e783613451565b92508282039050818111156137ff576137fe613772565b5b92915050565b5f6040820190506138185f830185613585565b613825602083018461345a565b9392505050565b613835816134c0565b811461383f575f80fd5b50565b5f815190506138508161382c565b92915050565b5f6020828403121561386b5761386a6133c8565b5b5f61387884828501613842565b91505092915050565b5f6060820190506138945f830186613585565b6138a16020830185613585565b6138ae604083018461345a565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f6138ed82613451565b91505f82036138ff576138fe613772565b5b600182039050919050565b5f82825260208201905092915050565b7f4e6f7468696e6720746f2072656d6f76652066726f6d204261736564414920625f8201527f7269646765000000000000000000000000000000000000000000000000000000602082015250565b5f61397460258361390a565b915061397f8261391a565b604082019050919050565b5f6020820190508181035f8301526139a181613968565b9050919050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f5f8201527f6e2e000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a0260228361390a565b9150613a0d826139a8565b604082019050919050565b5f6020820190508181035f830152613a2f816139f6565b9050919050565b7f556e61626c6520746f2072656d6f7665207072656272696765642050657065435f8201527f6f696e0000000000000000000000000000000000000000000000000000000000602082015250565b5f613a9060238361390a565b9150613a9b82613a36565b604082019050919050565b5f6020820190508181035f830152613abd81613a84565b9050919050565b5f81519050613ad2816133fc565b92915050565b5f60208284031215613aed57613aec6133c8565b5b5f613afa84828501613ac4565b91505092915050565b7f4e6f7420746865206f776e6572206f662074686520427261696e0000000000005f82015250565b5f613b37601a8361390a565b9150613b4282613b03565b602082019050919050565b5f6020820190508181035f830152613b6481613b2b565b9050919050565b7f4d61696e6e6574206973206c69766521000000000000000000000000000000005f82015250565b5f613b9f60108361390a565b9150613baa82613b6b565b602082019050919050565b5f6020820190508181035f830152613bcc81613b93565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f606082019050613c135f83018661345a565b613c20602083018561345a565b613c2d604083018461345a565b949350505050565b7f4d61696e6e6574206973206c6976652c20636c61696d20616c6c2072657761725f8201527f64732e0000000000000000000000000000000000000000000000000000000000602082015250565b5f613c8f60238361390a565b9150613c9a82613c35565b604082019050919050565b5f6020820190508181035f830152613cbc81613c83565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f613cf760208361390a565b9150613d0282613cc3565b602082019050919050565b5f6020820190508181035f830152613d2481613ceb565b9050919050565b7f546f6b656e206973206e6f7420737570706f7274656420666f72207374616b695f8201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d8560228361390a565b9150613d9082613d2b565b604082019050919050565b5f6020820190508181035f830152613db281613d79565b9050919050565b7f42617365644149204d61696e6e6574206973206e6f74206c69766520796574005f82015250565b5f613ded601f8361390a565b9150613df882613db9565b602082019050919050565b5f6020820190508181035f830152613e1a81613de1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e5882613451565b9150613e6383613451565b925082613e7357613e72613e21565b5b828204905092915050565b5f613e8882613451565b9150613e9383613451565b9250828202613ea181613451565b91508282048414831517613eb857613eb7613772565b5b5092915050565b7f5061757361626c653a20706175736564000000000000000000000000000000005f82015250565b5f613ef360108361390a565b9150613efe82613ebf565b602082019050919050565b5f6020820190508181035f830152613f2081613ee7565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f613f5b601f8361390a565b9150613f6682613f27565b602082019050919050565b5f6020820190508181035f830152613f8881613f4f565b9050919050565b7f5061757361626c653a206e6f74207061757365640000000000000000000000005f82015250565b5f613fc360148361390a565b9150613fce82613f8f565b602082019050919050565b5f6020820190508181035f830152613ff081613fb7565b905091905056fea264697066735822122070c7e6227f1ac9def2a8ed28ef5dc15ccf833fd38318a4326375982d6e92602a64736f6c63430008190033
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106101ee575f3560e01c80639a29e18a1161010d578063cf0d99df116100a0578063fd5e6dd11161006f578063fd5e6dd114610594578063fe5ff468146105c4578063fed161a0146105f4578063ffd7ff9f14610612576101ee565b8063cf0d99df146104e6578063d8d07ca814610516578063dce77d8414610546578063e6e126df14610576576101ee565b8063abede4ae116100dc578063abede4ae14610472578063adc9772e1461047c578063bd45916c14610498578063c93c8f34146104b6576101ee565b80639a29e18a146103da578063a38f6682146103f6578063a826672814610412578063aaaa924914610442576101ee565b806378d32280116101855780638456cb59116101545780638456cb59146103785780638980f11f146103825780638bdfc0c01461039e5780638da5cb5b146103bc576101ee565b806378d322801461030657806378e9792514610322578063811257fe14610340578063819d4cc61461035c576101ee565b80633f4ba83a116101c15780633f4ba83a1461028f578063584b62a1146102995780635c975abb146102cc5780635fa7b584146102ea576101ee565b80630751c0cf146101f25780630db14e95146102225780631b69dc5f146102525780633ccfd60b14610285575b5f80fd5b61020c60048036038101906102079190613426565b610642565b6040516102199190613469565b60405180910390f35b61023c60048036038101906102379190613482565b610657565b6040516102499190613469565b60405180910390f35b61026c60048036038101906102679190613426565b6107da565b60405161027c94939291906134da565b60405180910390f35b61028d610812565b005b610297610f4b565b005b6102b360048036038101906102ae9190613547565b610fe4565b6040516102c39493929190613594565b60405180910390f35b6102d4611049565b6040516102e191906135d7565b60405180910390f35b61030460048036038101906102ff9190613426565b61105e565b005b610320600480360381019061031b9190613547565b611147565b005b61032a61126a565b6040516103379190613469565b60405180910390f35b61035a60048036038101906103559190613426565b611270565b005b61037660048036038101906103719190613547565b611342565b005b610380611460565b005b61039c60048036038101906103979190613547565b6114f9565b005b6103a66116b8565b6040516103b3919061364b565b60405180910390f35b6103c46116dc565b6040516103d19190613664565b60405180910390f35b6103f460048036038101906103ef919061367d565b611701565b005b610410600480360381019061040b91906136a8565b611a58565b005b61042c60048036038101906104279190613426565b611b8c565b6040516104399190613469565b60405180910390f35b61045c60048036038101906104579190613482565b611e23565b6040516104699190613469565b60405180910390f35b61047a6120ca565b005b61049660048036038101906104919190613547565b612509565b005b6104a0612849565b6040516104ad9190613664565b60405180910390f35b6104d060048036038101906104cb9190613426565b61286e565b6040516104dd91906135d7565b60405180910390f35b61050060048036038101906104fb9190613426565b61288b565b60405161050d9190613469565b60405180910390f35b610530600480360381019061052b9190613426565b6128a0565b60405161053d9190613469565b60405180910390f35b610560600480360381019061055b9190613426565b612935565b60405161056d9190613469565b60405180910390f35b61057e6129c2565b60405161058b91906135d7565b60405180910390f35b6105ae60048036038101906105a9919061367d565b6129d5565b6040516105bb9190613664565b60405180910390f35b6105de60048036038101906105d99190613426565b612a10565b6040516105eb9190613469565b60405180910390f35b6105fc612a25565b604051610609919061372c565b60405180910390f35b61062c60048036038101906106279190613426565b612a4a565b6040516106399190613469565b60405180910390f35b600c602052805f5260405f205f915090505481565b5f805f90505f5b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490508110156107cf578373ffffffffffffffffffffffffffffffffffffffff1660065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20828154811061070c5761070b613745565b5b905f5260205f2090600502015f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036107c25760065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081815481106107a4576107a3613745565b5b905f5260205f20906005020160010154826107bf919061379f565b91505b808060010191505061065e565b508091505092915050565b600b602052805f5260405f205f91509050805f015490806001015490806002015490806003015f9054906101000a900460ff16905084565b61081a612aeb565b610822612b35565b5f8060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050905062278d006005544261087991906137d2565b116109975760075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061090633612b82565b60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461098f919061379f565b925050819055505b5f8190505b5f811115610eba575f6001826109b291906137d2565b90505f60065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110610a0457610a03613745565b5b905f5260205f2090600502019050806001015485610a22919061379f565b94505f816004018054905003610b2757805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3383600101546040518363ffffffff1660e01b8152600401610a93929190613805565b6020604051808303815f875af1158015610aaf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ad39190613856565b503373ffffffffffffffffffffffffffffffffffffffff167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d58260010154604051610b1e9190613469565b60405180910390a25b5f5b8160040180549050811015610c5a5760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3033856004018581548110610b8d57610b8c613745565b5b905f5260205f2001546040518463ffffffff1660e01b8152600401610bb493929190613881565b5f604051808303815f87803b158015610bcb575f80fd5b505af1158015610bdd573d5f803e3d5ffd5b505050503373ffffffffffffffffffffffffffffffffffffffff167f1b9c7eb4925b0ec2beaa2f0271639119da4fed00dc83622b7d455aab4191a21f836004018381548110610c2f57610c2e613745565b5b905f5260205f200154604051610c459190613469565b60405180910390a28080600101915050610b29565b5060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050610ce591906137d2565b81548110610cf657610cf5613745565b5b905f5260205f20906005020160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208381548110610d5157610d50613745565b5b905f5260205f2090600502015f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001820154816001015560028201548160020155600382015481600301556004820181600401908054610df49291906132f6565b5090505060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805480610e4557610e446138b6565b5b600190038181905f5260205f2090600502015f8082015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600182015f9055600282015f9055600382015f9055600482015f610ea19190613344565b5050905550508080610eb2906138e3565b91505061099c565b505f8211610efd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef49061398a565b60405180910390fd5b5f60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050610f49612d64565b565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd190613a18565b60405180910390fd5b610fe2612d6d565b565b6006602052815f5260405f208181548110610ffd575f80fd5b905f5260205f2090600502015f9150915050805f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010154908060020154908060030154905084565b5f60015f9054906101000a900460ff16905090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146110ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e490613a18565b60405180910390fd5b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003015f6101000a81548160ff02191690831515021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd90613a18565b60405180910390fd5b8060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff167f7522b932a284a577fb9f080c9bbcac32efa24a0f15d015e0a247af66f7ba90ca8260405161125e9190613469565b60405180910390a25050565b60055481565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f690613a18565b60405180910390fd5b8060025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890613a18565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3060035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518463ffffffff1660e01b815260040161142f93929190613881565b5f604051808303815f87803b158015611446575f80fd5b505af1158015611458573d5f803e3d5ffd5b505050505050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e690613a18565b60405180910390fd5b6114f7612dce565b565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161157f90613a18565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611617576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160e90613aa6565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611673929190613805565b6020604051808303815f875af115801561168f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b39190613856565b505050565b60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611709612aeb565b611711612b35565b3373ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16636352211e836040518263ffffffff1660e01b81526004016117829190613469565b602060405180830381865afa15801561179d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c19190613ad8565b73ffffffffffffffffffffffffffffffffffffffff1614611817576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180e90613b4d565b60405180910390fd5b600460149054906101000a900460ff1615611867576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185e90613bb5565b60405180910390fd5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b81526004016118c593929190613881565b5f604051808303815f87803b1580156118dc575f80fd5b505af11580156118ee573d5f803e3d5ffd5b505050505f600b5f60018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015490505f600167ffffffffffffffff81111561197157611970613bd3565b5b60405190808252806020026020018201604052801561199f5781602001602082028036833780820191505090505b50905082815f815181106119b6576119b5613745565b5b6020026020010181815250506119f93360018054906101000a900473ffffffffffffffffffffffffffffffffffffffff1669152d02c7e14af68000008486612e2f565b3373ffffffffffffffffffffffffffffffffffffffff167f021cd75ad29c3e1b0dd64f15d17e2efee3cd0c005cde6df27e3d9455c71ea7f3844285604051611a4393929190613c00565b60405180910390a25050611a55612d64565b50565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613a18565b60405180910390fd5b604051806080016040528084815260200183815260200182815260200160011515815250600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f820151815f015560208201518160010155604082015181600201556060820151816003015f6101000a81548160ff02191690831515021790555090505050505050565b5f600460149054906101000a900460ff1615611be757600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050611e1e565b5f805b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050811015611d8257611d6860065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110611c8457611c83613745565b5b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020018280548015611d5a57602002820191905f5260205f20905b815481526020019060010190808311611d46575b5050505050815250506130af565b82611d73919061379f565b91508080600101915050611bea565b5060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205481611dcc919061379f565b905060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205481611e17919061379f565b9050809150505b919050565b5f600460149054906101000a900460ff1615611e74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6b90613ca5565b60405180910390fd5b5f805b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20805490508110156120bf578373ffffffffffffffffffffffffffffffffffffffff1660065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110611f2557611f24613745565b5b905f5260205f2090600502015f015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036120b2576120a460065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110611fc057611fbf613745565b5b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820180548060200260200160405190810160405280929190818152602001828054801561209657602002820191905f5260205f20905b815481526020019060010190808311612082575b5050505050815250506130af565b826120af919061379f565b91505b8080600101915050611e77565b508091505092915050565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215090613a18565b60405180910390fd5b6001600460146101000a81548160ff0219169083151502179055505f5b600a805490508110156124da5760075f600a838154811061219a57612199613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612240600a838154811061221357612212613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166130fd565b61224a919061379f565b600c5f600a848154811061226157612260613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060095f600a83815481106122dd576122dc613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600c5f600a848154811061235657612355613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546123c5919061379f565b92505081905550600a81815481106123e0576123df613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f26ce502c7a403ed9fbcae74253612b199f88ed7467c20b1f34d12f4d9978e156600c5f600a858154811061245657612455613745565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516124c59190613469565b60405180910390a28080600101915050612176565b507f93a0e1ffb3f54ad8b92c151a39ed5816730e5d538b85969d550a37635802101560405160405180910390a1565b612511612aeb565b612519612b35565b5f811161255b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255290613d0d565b60405180910390fd5b600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003015f9054906101000a900460ff166125e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125de90613d9b565b60405180910390fd5b600460149054906101000a900460ff1615612637576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262e90613bb5565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b815260040161267493929190613881565b6020604051808303815f875af1158015612690573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126b49190613856565b505f600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015490505f8067ffffffffffffffff81111561271357612712613bd3565b5b6040519080825280602002602001820160405280156127415781602001602082028036833780820191505090505b50905062278d006005544261275691906137d2565b1161282e5760095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546127e4919061379f565b925050819055505f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b61283b3385858486612e2f565b5050612845612d64565b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6008602052805f5260405f205f915054906101000a900460ff1681565b6009602052805f5260405f205f915090505481565b5f600460149054906101000a900460ff166128f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e790613e03565b60405180910390fd5b600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2090505f6005544261298591906137d2565b90505f8260020154826129989190613e4e565b90508083600101546129aa9190613e7e565b835f01546129b8919061379f565b9350505050919050565b600460149054906101000a900460ff1681565b600a81815481106129e4575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052805f5260405f205f915090505481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f600460149054906101000a900460ff1615612aa557600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050612ae6565b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505b919050565b612af3611049565b15612b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2a90613f09565b60405180910390fd5b565b60025f5403612b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7090613f71565b60405180910390fd5b60025f81905550565b5f805b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080549050811015612d1d57612d0360065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208281548110612c1f57612c1e613745565b5b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201548152602001600282015481526020016003820154815260200160048201805480602002602001604051908101604052809291908181526020018280548015612cf557602002820191905f5260205f20905b815481526020019060010190808311612ce1575b5050505050815250506130af565b82612d0e919061379f565b91508080600101915050612b85565b508060075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505050565b60015f81905550565b612d756132a6565b5f60015f6101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612db76132ef565b604051612dc49190613664565b60405180910390a1565b612dd6612aeb565b6001805f6101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612e186132ef565b604051612e259190613664565b60405180910390a1565b60085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612f3357600160085f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600a85908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206040518060a001604052808673ffffffffffffffffffffffffffffffffffffffff16815260200185815260200142815260200183815260200184815250908060018154018082558091505060019003905f5260205f2090600502015f909190919091505f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015560408201518160020155606082015181600301556080820151816004019080519060200190613051929190613362565b5050508473ffffffffffffffffffffffffffffffffffffffff167fad3fa07f4195b47e64892eb944ecbfc253384053c119852bb2bcae484c2fcb69858542856040516130a09493929190613594565b60405180910390a25050505050565b5f808260400151426130c191906137d2565b90505f6201518082856060015186602001516130dd9190613e4e565b6130e79190613e7e565b6130f19190613e4e565b90508092505050919050565b5f805f90505f5b60065f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208054905081101561329c5761328260065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20828154811061319e5761319d613745565b5b905f5260205f2090600502016040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820154815260200160028201548152602001600382015481526020016004820180548060200260200160405190810160405280929190818152602001828054801561327457602002820191905f5260205f20905b815481526020019060010190808311613260575b5050505050815250506130af565b8261328d919061379f565b91508080600101915050613104565b5080915050919050565b6132ae611049565b6132ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132e490613fd9565b60405180910390fd5b565b5f33905090565b828054828255905f5260205f20908101928215613333575f5260205f209182015b82811115613332578254825591600101919060010190613317565b5b50905061334091906133ad565b5090565b5080545f8255905f5260205f209081019061335f91906133ad565b50565b828054828255905f5260205f2090810192821561339c579160200282015b8281111561339b578251825591602001919060010190613380565b5b5090506133a991906133ad565b5090565b5b808211156133c4575f815f9055506001016133ae565b5090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6133f5826133cc565b9050919050565b613405816133eb565b811461340f575f80fd5b50565b5f81359050613420816133fc565b92915050565b5f6020828403121561343b5761343a6133c8565b5b5f61344884828501613412565b91505092915050565b5f819050919050565b61346381613451565b82525050565b5f60208201905061347c5f83018461345a565b92915050565b5f8060408385031215613498576134976133c8565b5b5f6134a585828601613412565b92505060206134b685828601613412565b9150509250929050565b5f8115159050919050565b6134d4816134c0565b82525050565b5f6080820190506134ed5f83018761345a565b6134fa602083018661345a565b613507604083018561345a565b61351460608301846134cb565b95945050505050565b61352681613451565b8114613530575f80fd5b50565b5f813590506135418161351d565b92915050565b5f806040838503121561355d5761355c6133c8565b5b5f61356a85828601613412565b925050602061357b85828601613533565b9150509250929050565b61358e816133eb565b82525050565b5f6080820190506135a75f830187613585565b6135b4602083018661345a565b6135c1604083018561345a565b6135ce606083018461345a565b95945050505050565b5f6020820190506135ea5f8301846134cb565b92915050565b5f819050919050565b5f61361361360e613609846133cc565b6135f0565b6133cc565b9050919050565b5f613624826135f9565b9050919050565b5f6136358261361a565b9050919050565b6136458161362b565b82525050565b5f60208201905061365e5f83018461363c565b92915050565b5f6020820190506136775f830184613585565b92915050565b5f60208284031215613692576136916133c8565b5b5f61369f84828501613533565b91505092915050565b5f805f80608085870312156136c0576136bf6133c8565b5b5f6136cd87828801613412565b94505060206136de87828801613533565b93505060406136ef87828801613533565b925050606061370087828801613533565b91505092959194509250565b5f6137168261361a565b9050919050565b6137268161370c565b82525050565b5f60208201905061373f5f83018461371d565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6137a982613451565b91506137b483613451565b92508282019050808211156137cc576137cb613772565b5b92915050565b5f6137dc82613451565b91506137e783613451565b92508282039050818111156137ff576137fe613772565b5b92915050565b5f6040820190506138185f830185613585565b613825602083018461345a565b9392505050565b613835816134c0565b811461383f575f80fd5b50565b5f815190506138508161382c565b92915050565b5f6020828403121561386b5761386a6133c8565b5b5f61387884828501613842565b91505092915050565b5f6060820190506138945f830186613585565b6138a16020830185613585565b6138ae604083018461345a565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b5f6138ed82613451565b91505f82036138ff576138fe613772565b5b600182039050919050565b5f82825260208201905092915050565b7f4e6f7468696e6720746f2072656d6f76652066726f6d204261736564414920625f8201527f7269646765000000000000000000000000000000000000000000000000000000602082015250565b5f61397460258361390a565b915061397f8261391a565b604082019050919050565b5f6020820190508181035f8301526139a181613968565b9050919050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869732066756e6374696f5f8201527f6e2e000000000000000000000000000000000000000000000000000000000000602082015250565b5f613a0260228361390a565b9150613a0d826139a8565b604082019050919050565b5f6020820190508181035f830152613a2f816139f6565b9050919050565b7f556e61626c6520746f2072656d6f7665207072656272696765642050657065435f8201527f6f696e0000000000000000000000000000000000000000000000000000000000602082015250565b5f613a9060238361390a565b9150613a9b82613a36565b604082019050919050565b5f6020820190508181035f830152613abd81613a84565b9050919050565b5f81519050613ad2816133fc565b92915050565b5f60208284031215613aed57613aec6133c8565b5b5f613afa84828501613ac4565b91505092915050565b7f4e6f7420746865206f776e6572206f662074686520427261696e0000000000005f82015250565b5f613b37601a8361390a565b9150613b4282613b03565b602082019050919050565b5f6020820190508181035f830152613b6481613b2b565b9050919050565b7f4d61696e6e6574206973206c69766521000000000000000000000000000000005f82015250565b5f613b9f60108361390a565b9150613baa82613b6b565b602082019050919050565b5f6020820190508181035f830152613bcc81613b93565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f606082019050613c135f83018661345a565b613c20602083018561345a565b613c2d604083018461345a565b949350505050565b7f4d61696e6e6574206973206c6976652c20636c61696d20616c6c2072657761725f8201527f64732e0000000000000000000000000000000000000000000000000000000000602082015250565b5f613c8f60238361390a565b9150613c9a82613c35565b604082019050919050565b5f6020820190508181035f830152613cbc81613c83565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e207a65726f5f82015250565b5f613cf760208361390a565b9150613d0282613cc3565b602082019050919050565b5f6020820190508181035f830152613d2481613ceb565b9050919050565b7f546f6b656e206973206e6f7420737570706f7274656420666f72207374616b695f8201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b5f613d8560228361390a565b9150613d9082613d2b565b604082019050919050565b5f6020820190508181035f830152613db281613d79565b9050919050565b7f42617365644149204d61696e6e6574206973206e6f74206c69766520796574005f82015250565b5f613ded601f8361390a565b9150613df882613db9565b602082019050919050565b5f6020820190508181035f830152613e1a81613de1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e5882613451565b9150613e6383613451565b925082613e7357613e72613e21565b5b828204905092915050565b5f613e8882613451565b9150613e9383613451565b9250828202613ea181613451565b91508282048414831517613eb857613eb7613772565b5b5092915050565b7f5061757361626c653a20706175736564000000000000000000000000000000005f82015250565b5f613ef360108361390a565b9150613efe82613ebf565b602082019050919050565b5f6020820190508181035f830152613f2081613ee7565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f613f5b601f8361390a565b9150613f6682613f27565b602082019050919050565b5f6020820190508181035f830152613f8881613f4f565b9050919050565b7f5061757361626c653a206e6f74207061757365640000000000000000000000005f82015250565b5f613fc360148361390a565b9150613fce82613f8f565b602082019050919050565b5f6020820190508181035f830152613ff081613fb7565b905091905056fea264697066735822122070c7e6227f1ac9def2a8ed28ef5dc15ccf833fd38318a4326375982d6e92602a64736f6c63430008190033
Loading...
Loading
Loading...
Loading
OVERVIEW
Pre-bridge and continue to stake PepeCoin and BasedAI (ERC20) tokens to earn BASED L1 coins! (rewards accrued can only be claimed for the BASED L1 main net, after it has been launched. TBD).Net Worth in USD
$131,718.75
Net Worth in ETH
67.566289
Token Allocations
PEPECOIN
93.28%
BASEDAI
6.72%
ETH
0.00%
Others
0.00%
Multichain Portfolio | 33 Chains
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.