Overview
Max Total Supply
127,000,001 CTOK
Holders
2,718 (0.00%)
Transfers
-
1
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
CodyfightToken
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)Audit Report
/**
*Submitted for verification at Arbiscan.io on 2024-04-23
*/
// Sources flattened with hardhat v2.19.4 https://hardhat.org
// SPDX-License-Identifier: MIT
// File lib/lossless/flattened/LERC20BurnableFlat.sol
// Original license: SPDX_License_Identifier: MIT
pragma solidity 0.8.25;
/**
* @title Context
* @dev Context library from OpenZeppelin contracts.
* @notice Context provides information about the transaction sender.
*/
abstract contract Context {
/**
* @dev Returns the transaction sender address.
* @return sender_ The transaction sender address.
*/
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
/**
* @dev Returns the transaction data.
* @return data_ The transaction data.
*/
function _msgData() internal view virtual returns (bytes calldata) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
/**
* @dev Interface of the LssController.
* @notice LssController is a contract that implements the lossless feature. It is used to control the lossless feature of the LERC20Burnable contract.
* @notice The LssController contract must implement the beforeTransfer, beforeTransferFrom, beforeApprove, beforeIncreaseAllowance, beforeDecreaseAllowance, and beforeBurn functions.
* @notice The LssController contract must be set in the LERC20Burnable contract.
*/
interface ILssController {
/**
* @dev Function to be called before a transfer.
* @param sender The sender address.
* @param recipient The recipient address.
* @param amount The transfer amount.
*/
function beforeTransfer(
address sender,
address recipient,
uint256 amount
) external;
/**
* @dev Function to be called before a transfer from.
* @param msgSender The transaction sender address.
* @param sender The sender address.
* @param recipient The recipient address.
* @param amount The transfer amount.
*/
function beforeTransferFrom(
address msgSender,
address sender,
address recipient,
uint256 amount
) external;
/**
* @dev Function to be called before an approve.
* @param sender The sender address.
* @param spender The spender address.
* @param amount The approve amount.
*/
function beforeApprove(
address sender,
address spender,
uint256 amount
) external;
/**
* @dev Function to be called before an increase allowance.
* @param msgSender The transaction sender address.
* @param spender The spender address.
* @param addedValue The added allowance amount.
*/
function beforeIncreaseAllowance(
address msgSender,
address spender,
uint256 addedValue
) external;
/**
* @dev Function to be called before a decrease allowance.
* @param msgSender The transaction sender address.
* @param spender The spender address.
* @param subtractedValue The subtracted allowance amount.
*/
function beforeDecreaseAllowance(
address msgSender,
address spender,
uint256 subtractedValue
) external;
/**
* @dev Function to be called before a burn.
* @param account The account address.
* @param amount The burn amount.
*/
function beforeBurn(address account, uint256 amount) external;
}
/**
* @title LERC20Burnable
* @dev LERC20Burnable contract from Lossless.io. Extends the Context contract.
* @notice LERC20Burnable is a contract that implements the ERC20 standard with burn and lossless features.
* @notice The LERC20Burnable contract is based on the OpenZeppelin Context contract.
*/
contract LERC20Burnable is Context {
// --- ERC20 variables ---
/**
* @dev Mapping of balances.
* @notice _balances is a mapping of addresses to token balances.
*/
mapping(address => uint256) private _balances;
/**
* @dev Mapping of allowances.
* @notice _allowances is a mapping of addresses to mapping of addresses to allowance amounts.
*/
mapping(address => mapping(address => uint256)) private _allowances;
/**
* @dev Total supply variable.
* @notice _totalSupply is the total supply of the token.
*/
uint256 private _totalSupply;
/**
* @dev Name variable.
* @notice _name is the name of the token.
*/
string private _name;
/**
* @dev Symbol variable.
* @notice _symbol is the symbol of the token.
*/
string private _symbol;
// --- Lossless variables ---
/**
* @dev Recovery admin variable.
* @notice recoveryAdmin is the address of the recovery admin, who can change the admin and turn off the lossless feature.
*/
address public recoveryAdmin;
/**
* @dev Recovery admin candidate variable.
* @notice recoveryAdminCandidate is the address of the recovery admin candidate, who can accept the recovery admin ownership.
*/
address private recoveryAdminCandidate;
/**
* @dev Recovery admin key hash variable.
* @notice recoveryAdminKeyHash is the hash of the recovery admin key, which is used to accept the recovery admin ownership.
*/
bytes32 private recoveryAdminKeyHash;
/**
* @dev Admin variable.
* @notice admin is the address of the admin, who will hold the minted tokens and have governance rights.
*/
address public admin;
/**
* @dev Timelock period variable.
* @notice timelockPeriod is the period in seconds that the recovery admin must wait to turn off the lossless feature.
*/
uint256 public timelockPeriod;
/**
* @dev Lossless turn off timestamp variable.
* @notice losslessTurnOffTimestamp is the timestamp when the lossless feature will be turned off.
*/
uint256 public losslessTurnOffTimestamp;
/**
* @dev Lossless on variable.
* @notice isLosslessOn is a boolean that indicates if the lossless feature is on.
*/
bool public isLosslessOn = true;
/**
* @dev Lossless controller variable.
* @notice lossless is the address of the LssController contract, which implements the lossless feature.
*/
ILssController public lossless;
/**
* @dev Constructor function.
* @notice Constructor sets the initial values of the contract. It mints the total supply to the admin address.
* @param totalSupply_ The total supply of the token.
* @param name_ The name of the token.
* @param symbol_ The symbol of the token.
* @param admin_ The address of the admin.
* @param recoveryAdmin_ The address of the recovery admin.
* @param timelockPeriod_ The timelock period in seconds.
* @param lossless_ The address of the LssController contract.
*/
constructor(
uint256 totalSupply_,
string memory name_,
string memory symbol_,
address admin_,
address recoveryAdmin_,
uint256 timelockPeriod_,
address lossless_
) {
require(
lossless_ != address(0),
'LERC20: Lossless controller cannot be zero address'
);
_mint(admin_, totalSupply_);
_name = name_;
_symbol = symbol_;
admin = admin_;
recoveryAdmin = recoveryAdmin_;
recoveryAdminCandidate = address(0);
recoveryAdminKeyHash = '';
timelockPeriod = timelockPeriod_;
losslessTurnOffTimestamp = 0;
lossless = ILssController(lossless_);
}
// --- Events ---
/**
* @dev Transfer event.
* @param _from The sender address.
* @param _to The recipient address.
* @param _value The transfer amount.
*/
event Transfer(address indexed _from, address indexed _to, uint256 _value);
/**
* @dev Approval event.
* @param _owner The owner address.
* @param _spender The spender address.
* @param _value The approve amount.
*/
event Approval(
address indexed _owner,
address indexed _spender,
uint256 _value
);
/**
* @dev New admin event.
* @param _newAdmin The new admin address.
*/
event NewAdmin(address indexed _newAdmin);
/**
* @dev New recovery admin proposal event.
* @param _candidate The candidate address.
*/
event NewRecoveryAdminProposal(address indexed _candidate);
/**
* @dev New recovery admin event.
* @param _newAdmin The new recovery admin address.
*/
event NewRecoveryAdmin(address indexed _newAdmin);
/**
* @dev Lossless turn off proposal event.
* @param _turnOffDate The turn off date timestamp.
*/
event LosslessTurnOffProposal(uint256 _turnOffDate);
/**
* @dev Lossless off event.
*/
event LosslessOff();
/**
* @dev Lossless on event.
*/
event LosslessOn();
// --- LOSSLESS modifiers ---
/**
* @dev Lossless approve modifier.
* @notice The lssAprove modifier calls the beforeApprove function of the lossless contract.
* @param spender The spender address.
* @param amount The approve amount.
*/
modifier lssAprove(address spender, uint256 amount) {
if (isLosslessOn) {
lossless.beforeApprove(_msgSender(), spender, amount);
}
_;
}
/**
* @dev Lossless transfer modifier.
* @notice The lssTransfer modifier calls the beforeTransfer function of the lossless contract.
* @param recipient The recipient address.
* @param amount The transfer amount.
*/
modifier lssTransfer(address recipient, uint256 amount) {
if (isLosslessOn) {
lossless.beforeTransfer(_msgSender(), recipient, amount);
}
_;
}
/**
* @dev Lossless transfer from modifier.
* @notice The lssTransferFrom modifier calls the beforeTransferFrom function of the lossless contract.
* @param sender The sender address.
* @param recipient The recipient address.
* @param amount The transfer amount.
*/
modifier lssTransferFrom(
address sender,
address recipient,
uint256 amount
) {
if (isLosslessOn) {
lossless.beforeTransferFrom(_msgSender(), sender, recipient, amount);
}
_;
}
/**
* @dev Lossless burn modifier.
* @notice The lssBurn modifier calls the beforeBurn function of the lossless contract.
* @param account The account address.
* @param amount The burn amount.
*/
modifier lssBurn(address account, uint256 amount) {
if (isLosslessOn) {
lossless.beforeBurn(account, amount);
}
_;
}
/**
* @dev Lossless increase allowance modifier.
* @notice The lssIncreaseAllowance modifier calls the beforeIncreaseAllowance function of the lossless contract.
* @param spender The spender address.
* @param addedValue The added allowance amount.
*/
modifier lssIncreaseAllowance(address spender, uint256 addedValue) {
if (isLosslessOn) {
lossless.beforeIncreaseAllowance(_msgSender(), spender, addedValue);
}
_;
}
/**
* @dev Lossless decrease allowance modifier.
* @notice The lssDecreaseAllowance modifier calls the beforeDecreaseAllowance function of the lossless contract.
* @param spender The spender address.
* @param subtractedValue The subtracted allowance amount.
*/
modifier lssDecreaseAllowance(address spender, uint256 subtractedValue) {
if (isLosslessOn) {
lossless.beforeDecreaseAllowance(_msgSender(), spender, subtractedValue);
}
_;
}
/**
* @dev Recovery admin modifier.
* @notice The onlyRecoveryAdmin modifier restricts access to the recovery admin.
*/
modifier onlyRecoveryAdmin() {
require(_msgSender() == recoveryAdmin, 'LERC20: Must be recovery admin');
_;
}
// --- LOSSLESS management ---
/**
* @dev Function to transfer out blacklisted funds.
* @notice This function allows the lossless contract to transfer out blacklisted funds.
* @param from The array of addresses from which the funds will be transferred.
*/
function transferOutBlacklistedFunds(address[] calldata from) external {
require(
_msgSender() == address(lossless),
'LERC20: Only lossless contract'
);
require(isLosslessOn, 'LERC20: Lossless is off');
uint256 fromLength = from.length;
uint256 totalAmount = 0;
for (uint256 i = 0; i < fromLength; i++) {
address fromAddress = from[i];
uint256 fromBalance = _balances[fromAddress];
_balances[fromAddress] = 0;
totalAmount += fromBalance;
emit Transfer(fromAddress, address(lossless), fromBalance);
}
_balances[address(lossless)] += totalAmount;
}
/**
* @dev Function to set new admin.
* @notice This function allows the recovery admin to set a new admin.
* @param newAdmin The new admin address.
*/
function setLosslessAdmin(address newAdmin) external onlyRecoveryAdmin {
require(newAdmin != admin, 'LERC20: Cannot set same address');
emit NewAdmin(newAdmin);
admin = newAdmin;
}
/**
* @dev Function to transfer recovery admin ownership.
* @notice This function allows the recovery admin to transfer the recovery admin ownership to a candidate address.
* @param candidate The candidate address.
* @param keyHash The key hash.
*/
function transferRecoveryAdminOwnership(
address candidate,
bytes32 keyHash
) external onlyRecoveryAdmin {
recoveryAdminCandidate = candidate;
recoveryAdminKeyHash = keyHash;
emit NewRecoveryAdminProposal(candidate);
}
/**
* @dev Function to accept recovery admin ownership.
* @notice This function allows the candidate address to accept the recovery admin ownership.
* @param key The key.
*/
function acceptRecoveryAdminOwnership(bytes memory key) external {
require(
_msgSender() == recoveryAdminCandidate,
'LERC20: Must be canditate'
);
require(keccak256(key) == recoveryAdminKeyHash, 'LERC20: Invalid key');
emit NewRecoveryAdmin(recoveryAdminCandidate);
recoveryAdmin = recoveryAdminCandidate;
recoveryAdminCandidate = address(0);
}
/**
* @dev Function to propose lossless turn off.
* @notice This function allows the recovery admin to propose to turn off the lossless features.
*/
function proposeLosslessTurnOff() external onlyRecoveryAdmin {
require(losslessTurnOffTimestamp == 0, 'LERC20: TurnOff already proposed');
require(isLosslessOn, 'LERC20: Lossless already off');
losslessTurnOffTimestamp = block.timestamp + timelockPeriod;
emit LosslessTurnOffProposal(losslessTurnOffTimestamp);
}
/**
* @dev Function to execute lossless turn off.
* @notice This function allows the recovery admin to execute the lossless turn off, when the timelock period has passed.
*/
function executeLosslessTurnOff() external onlyRecoveryAdmin {
require(losslessTurnOffTimestamp != 0, 'LERC20: TurnOff not proposed');
require(
losslessTurnOffTimestamp <= block.timestamp,
'LERC20: Time lock in progress'
);
isLosslessOn = false;
losslessTurnOffTimestamp = 0;
emit LosslessOff();
}
/**
* @dev Function to execute lossless turn on.
* @notice This function allows the recovery admin to execute the lossless turn on.
*/
function executeLosslessTurnOn() external onlyRecoveryAdmin {
require(!isLosslessOn, 'LERC20: Lossless already on');
losslessTurnOffTimestamp = 0;
isLosslessOn = true;
emit LosslessOn();
}
/**
* @dev Function to get the admin address.
* @return The admin address.
*/
function getAdmin() public view virtual returns (address) {
return admin;
}
// --- ERC20 methods ---
/**
* @dev Function to get the name of the token.
* @return The name of the token.
*/
function name() public view virtual returns (string memory) {
return _name;
}
/**
* @dev Function to get the symbol of the token.
* @return The symbol of the token.
*/
function symbol() public view virtual returns (string memory) {
return _symbol;
}
/**
* @dev Function to get the decimals of the token.
* @return The decimals of the token.
*/
function decimals() public view virtual returns (uint8) {
return 18;
}
/**
* @dev Function to get the total supply of the token.
* @return The total supply of the token.
*/
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
/**
* @dev Function to get the balance of an account.
* @param account The account address.
* @return The balance of the account.
*/
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
/**
* @dev Function to transfer tokens. Uses the lssTransfer modifier to call the beforeTransfer function of the lossless contract.
* @param recipient The recipient address.
* @param amount The transfer amount.
* @return A boolean that indicates if the operation was successful.
*/
function transfer(
address recipient,
uint256 amount
) public virtual lssTransfer(recipient, amount) returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
/**
* @dev Function to get the allowance of a spender on an owner's tokens.
* @param owner The owner address.
* @param spender The spender address.
* @return The allowance of the spender on the owner's tokens.
*/
function allowance(
address owner,
address spender
) public view virtual returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev Function to approve a spender to spend an amount of tokens. Uses the lssAprove modifier to call the beforeApprove function of the lossless contract.
* @param spender The spender address.
* @param amount The approve amount.
* @return A boolean that indicates if the operation was successful.
*/
function approve(
address spender,
uint256 amount
) public virtual lssAprove(spender, amount) returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
/**
* @dev Function to transfer tokens from an owner to a recipient. Uses the lssTransferFrom modifier to call the beforeTransferFrom function of the lossless contract.
* @param sender The sender address.
* @param recipient The recipient address.
* @param amount The transfer amount.
* @return A boolean that indicates if the operation was successful.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual lssTransferFrom(sender, recipient, amount) returns (bool) {
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(
currentAllowance >= amount,
'LERC20: transfer amount exceeds allowance'
);
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), currentAllowance - amount);
return true;
}
/**
* @dev Function to increase the allowance of a spender. Uses the lssIncreaseAllowance modifier to call the beforeIncreaseAllowance function of the lossless contract.
* @param spender The spender address.
* @param addedValue The added allowance amount.
* @return A boolean that indicates if the operation was successful.
*/
function increaseAllowance(
address spender,
uint256 addedValue
) public virtual lssIncreaseAllowance(spender, addedValue) returns (bool) {
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender] + addedValue
);
return true;
}
/**
* @dev Function to decrease the allowance of a spender. Uses the lssDecreaseAllowance modifier to call the beforeDecreaseAllowance function of the lossless contract.
* @param spender The spender address.
* @param subtractedValue The subtracted allowance amount.
* @return A boolean that indicates if the operation was successful.
*/
function decreaseAllowance(
address spender,
uint256 subtractedValue
)
public
virtual
lssDecreaseAllowance(spender, subtractedValue)
returns (bool)
{
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(
currentAllowance >= subtractedValue,
'LERC20: decreased allowance below zero'
);
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
return true;
}
// --- Internal functions ---
/**
* @dev Internal function to transfer tokens. Overrides the _transfer function of the Context contract to enforce specific conditions.
* @param sender The sender address.
* @param recipient The recipient address.
* @param amount The transfer amount.
*/
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), 'LERC20: transfer from the zero address');
uint256 senderBalance = _balances[sender];
require(senderBalance >= amount, 'LERC20: transfer amount exceeds balance');
_balances[sender] = senderBalance - amount;
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
}
/**
* @dev Internal function to mint tokens. Overrides the _mint function of the Context contract to enforce specific conditions.
* @notice Mint function is only executed at contract deployment. No mint function is available after deployment.
* @param account The account address.
* @param amount The mint amount.
*/
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), 'LERC20: mint to the zero address');
_totalSupply += amount;
// Cannot overflow because the sum of all user
// balances can't exceed the max uint256 value.
unchecked {
_balances[account] += amount;
}
emit Transfer(address(0), account, amount);
}
/**
* @dev Internal function to burn tokens. Overrides the _burn function of the Context contract to enforce specific conditions.
* @param account The account address.
* @param amount The burn amount.
*/
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), 'ERC20: burn from the zero address');
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, 'ERC20: burn amount exceeds balance');
unchecked {
_balances[account] = accountBalance - amount;
}
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
}
/**
* @dev Internal function to approve a spender to spend an amount of tokens.
* @param owner The owner address.
* @param spender The spender address.
* @param amount The approve amount.
*/
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
// --- ERC20Burnable methods ---
/**
* @dev Function to burn tokens. Uses the lssBurn modifier to call the beforeBurn function of the lossless contract.
* @notice Burn function may not be allowed if the lossless feature is on, Lossless controller may block the burn.
* @param amount The burn amount.
*/
function burn(uint256 amount) public virtual lssBurn(_msgSender(), amount) {
_burn(_msgSender(), amount);
}
/**
* @dev Function to burn tokens from an account. Uses the lssBurn modifier to call the beforeBurn function of the lossless contract.
* @notice Burn function may not be allowed if the lossless feature is on, Lossless controller may block the burn.
* @param account The account address.
* @param amount The burn amount.
*/
function burnFrom(
address account,
uint256 amount
) public virtual lssBurn(account, amount) {
uint256 currentAllowance = allowance(account, _msgSender());
require(currentAllowance >= amount, 'ERC20: burn amount exceeds allowance');
unchecked {
_approve(account, _msgSender(), currentAllowance - amount);
}
_burn(account, amount);
}
}
// File contracts/CTOK.sol
// Original license: SPDX_License_Identifier: MIT
/**
* @title CodyfightToken - CTOK contract.
* @dev CodyfightToken fully inherits the LERC20Burnable contract, which implements the ERC20 standard with burn and lossless features.
* @notice CodyfightToken is the official token of Codyfight. Tokens are only minted at contract deployment. No mint function is available after deployment. Tokens can be burned.
*/
contract CodyfightToken is LERC20Burnable {
/**
* @dev Constructor function.
* @notice Constructor sets the initial values of the contract. It mints the total supply to the admin address.
* @param totalSupply_ The total supply of the token.
* @param name_ The name of the token.
* @param symbol_ The symbol of the token.
* @param admin_ The address of the admin.
* @param recoveryAdmin_ The address of the recovery admin.
* @param timelockPeriod_ The timelock period in seconds.
* @param lossless_ The address of the LssController contract.
*/
constructor(
uint256 totalSupply_,
string memory name_,
string memory symbol_,
address admin_,
address recoveryAdmin_,
uint256 timelockPeriod_,
address lossless_
)
LERC20Burnable(
totalSupply_,
name_,
symbol_,
admin_,
recoveryAdmin_,
timelockPeriod_,
lossless_
)
{}
}Contract Security Audit
- Hacken- Apr 24th, 2024 - Security Audit Report
Contract ABI
API[{"inputs":[{"internalType":"uint256","name":"totalSupply_","type":"uint256"},{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"admin_","type":"address"},{"internalType":"address","name":"recoveryAdmin_","type":"address"},{"internalType":"uint256","name":"timelockPeriod_","type":"uint256"},{"internalType":"address","name":"lossless_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessOff","type":"event"},{"anonymous":false,"inputs":[],"name":"LosslessOn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_turnOffDate","type":"uint256"}],"name":"LosslessTurnOffProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newAdmin","type":"address"}],"name":"NewAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newAdmin","type":"address"}],"name":"NewRecoveryAdmin","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_candidate","type":"address"}],"name":"NewRecoveryAdminProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"bytes","name":"key","type":"bytes"}],"name":"acceptRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"executeLosslessTurnOn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isLosslessOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lossless","outputs":[{"internalType":"contract ILssController","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"losslessTurnOffTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposeLosslessTurnOff","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoveryAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setLosslessAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timelockPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"from","type":"address[]"}],"name":"transferOutBlacklistedFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"candidate","type":"address"},{"internalType":"bytes32","name":"keyHash","type":"bytes32"}],"name":"transferRecoveryAdminOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040526001600b5f6101000a81548160ff021916908315150217905550348015610029575f80fd5b50604051613ab0380380613ab0833981810160405281019061004b919061052b565b868686868686865f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036100c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100b790610680565b60405180910390fd5b6100d0848861021960201b60201c565b85600390816100df91906108a2565b5084600490816100ef91906108a2565b508360085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508260055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600781905550816009819055505f600a8190555080600b60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050505050505050505050610a61565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610287576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161027e906109bb565b60405180910390fd5b8060025f8282546102989190610a06565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103459190610a48565b60405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b61037481610362565b811461037e575f80fd5b50565b5f8151905061038f8161036b565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6103e38261039d565b810181811067ffffffffffffffff82111715610402576104016103ad565b5b80604052505050565b5f610414610351565b905061042082826103da565b919050565b5f67ffffffffffffffff82111561043f5761043e6103ad565b5b6104488261039d565b9050602081019050919050565b8281835e5f83830152505050565b5f61047561047084610425565b61040b565b90508281526020810184848401111561049157610490610399565b5b61049c848285610455565b509392505050565b5f82601f8301126104b8576104b7610395565b5b81516104c8848260208601610463565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6104fa826104d1565b9050919050565b61050a816104f0565b8114610514575f80fd5b50565b5f8151905061052581610501565b92915050565b5f805f805f805f60e0888a0312156105465761054561035a565b5b5f6105538a828b01610381565b975050602088015167ffffffffffffffff8111156105745761057361035e565b5b6105808a828b016104a4565b965050604088015167ffffffffffffffff8111156105a1576105a061035e565b5b6105ad8a828b016104a4565b95505060606105be8a828b01610517565b94505060806105cf8a828b01610517565b93505060a06105e08a828b01610381565b92505060c06105f18a828b01610517565b91505092959891949750929550565b5f82825260208201905092915050565b7f4c45524332303a204c6f73736c65737320636f6e74726f6c6c65722063616e6e5f8201527f6f74206265207a65726f20616464726573730000000000000000000000000000602082015250565b5f61066a603283610600565b915061067582610610565b604082019050919050565b5f6020820190508181035f8301526106978161065e565b9050919050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806106ec57607f821691505b6020821081036106ff576106fe6106a8565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107617fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610726565b61076b8683610726565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6107a66107a161079c84610362565b610783565b610362565b9050919050565b5f819050919050565b6107bf8361078c565b6107d36107cb826107ad565b848454610732565b825550505050565b5f90565b6107e76107db565b6107f28184846107b6565b505050565b5b818110156108155761080a5f826107df565b6001810190506107f8565b5050565b601f82111561085a5761082b81610705565b61083484610717565b81016020851015610843578190505b61085761084f85610717565b8301826107f7565b50505b505050565b5f82821c905092915050565b5f61087a5f198460080261085f565b1980831691505092915050565b5f610892838361086b565b9150826002028217905092915050565b6108ab8261069e565b67ffffffffffffffff8111156108c4576108c36103ad565b5b6108ce82546106d5565b6108d9828285610819565b5f60209050601f83116001811461090a575f84156108f8578287015190505b6109028582610887565b865550610969565b601f19841661091886610705565b5f5b8281101561093f5784890151825560018201915060208501945060208101905061091a565b8683101561095c5784890151610958601f89168261086b565b8355505b6001600288020188555050505b505050505050565b7f4c45524332303a206d696e7420746f20746865207a65726f20616464726573735f82015250565b5f6109a5602083610600565b91506109b082610971565b602082019050919050565b5f6020820190508181035f8301526109d281610999565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a1082610362565b9150610a1b83610362565b9250828201905080821115610a3357610a326109d9565b5b92915050565b610a4281610362565b82525050565b5f602082019050610a5b5f830184610a39565b92915050565b61304280610a6e5f395ff3fe608060405234801561000f575f80fd5b50600436106101a7575f3560e01c80636e9960c3116100f7578063a9059cbb11610095578063ccfa214f1161006f578063ccfa214f14610495578063d6e242b8146104b3578063dd62ed3e146104bd578063f851a440146104ed576101a7565b8063a9059cbb1461043f578063b38fe9571461046f578063b5c2287714610479576101a7565b806393310ffe116100d157806393310ffe146103b9578063936af911146103d557806395d89b41146103f1578063a457c2d71461040f576101a7565b80636e9960c31461034f57806370a082311461036d57806379cc67901461039d576101a7565b8063313ce5671161016457806342966c681161013e57806342966c68146102ed5780635b8a194a146103095780635f6529a31461031357806361086b0014610331576101a7565b8063313ce5671461028157806334f6ebf51461029f57806339509351146102bd576101a7565b806306fdde03146101ab578063095ea7b3146101c957806318160ddd146101f957806323b872dd146102175780632baa3c9e146102475780632ecaf67514610263575b5f80fd5b6101b361050b565b6040516101c0919061205f565b60405180910390f35b6101e360048036038101906101de919061211d565b61059b565b6040516101f09190612175565b60405180910390f35b610201610664565b60405161020e919061219d565b60405180910390f35b610231600480360381019061022c91906121b6565b61066d565b60405161023e9190612175565b60405180910390f35b610261600480360381019061025c9190612206565b610818565b005b61026b6109c3565b604051610278919061219d565b60405180910390f35b6102896109c9565b604051610296919061224c565b60405180910390f35b6102a76109d1565b6040516102b491906122c0565b60405180910390f35b6102d760048036038101906102d2919061211d565b6109f7565b6040516102e49190612175565b60405180910390f35b610307600480360381019061030291906122d9565b610b4a565b005b610311610c08565b005b61031b610d3c565b6040516103289190612313565b60405180910390f35b610339610d61565b604051610346919061219d565b60405180910390f35b610357610d67565b6040516103649190612313565b60405180910390f35b61038760048036038101906103829190612206565b610d8f565b604051610394919061219d565b60405180910390f35b6103b760048036038101906103b2919061211d565b610dd4565b005b6103d360048036038101906103ce919061235f565b610ef1565b005b6103ef60048036038101906103ea91906123fe565b611015565b005b6103f96112d7565b604051610406919061205f565b60405180910390f35b6104296004803603810190610424919061211d565b611367565b6040516104369190612175565b60405180910390f35b6104596004803603810190610454919061211d565b611502565b6040516104669190612175565b60405180910390f35b6104776115cb565b005b610493600480360381019061048e9190612571565b611738565b005b61049d611921565b6040516104aa9190612175565b60405180910390f35b6104bb611933565b005b6104d760048036038101906104d291906125b8565b611aaa565b6040516104e4919061219d565b60405180910390f35b6104f5611b2c565b6040516105029190612313565b60405180910390f35b60606003805461051a90612623565b80601f016020809104026020016040519081016040528092919081815260200182805461054690612623565b80156105915780601f1061056857610100808354040283529160200191610591565b820191905f5260205f20905b81548152906001019060200180831161057457829003601f168201915b5050505050905090565b5f8282600b5f9054906101000a900460ff161561064657600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347abf3be6105f8611b51565b84846040518463ffffffff1660e01b815260040161061893929190612653565b5f604051808303815f87803b15801561062f575f80fd5b505af1158015610641573d5f803e3d5ffd5b505050505b610658610651611b51565b8686611b58565b60019250505092915050565b5f600254905090565b5f838383600b5f9054906101000a900460ff161561071b57600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663379f5c696106cb611b51565b8585856040518563ffffffff1660e01b81526004016106ed9493929190612688565b5f604051808303815f87803b158015610704575f80fd5b505af1158015610716573d5f803e3d5ffd5b505050505b5f60015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610762611b51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050858110156107e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d89061273b565b60405180910390fd5b6107ec888888611c3f565b610809886107f8611b51565b88846108049190612786565b611b58565b60019450505050509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610858611b51565b73ffffffffffffffffffffffffffffffffffffffff16146108ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a590612803565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361093d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109349061286b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff167f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c60405160405180910390a28060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b5f6012905090565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8282600b5f9054906101000a900460ff1615610aa257600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf5961bb610a54611b51565b84846040518463ffffffff1660e01b8152600401610a7493929190612653565b5f604051808303815f87803b158015610a8b575f80fd5b505af1158015610a9d573d5f803e3d5ffd5b505050505b610b3e610aad611b51565b868660015f610aba611b51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b399190612889565b611b58565b60019250505092915050565b610b52611b51565b81600b5f9054906101000a900460ff1615610bf257600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a1fefbd83836040518363ffffffff1660e01b8152600401610bc49291906128bc565b5f604051808303815f87803b158015610bdb575f80fd5b505af1158015610bed573d5f803e3d5ffd5b505050505b610c03610bfd611b51565b84611e39565b505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c48611b51565b73ffffffffffffffffffffffffffffffffffffffff1614610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9590612803565b60405180910390fd5b600b5f9054906101000a900460ff1615610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce49061292d565b60405180910390fd5b5f600a819055506001600b5f6101000a81548160ff0219169083151502179055507f1ba3b66404043da8297d0b876fa6464f2cb127edfc6626308046d4503028322b60405160405180910390a1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b8181600b5f9054906101000a900460ff1615610e7557600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a1fefbd83836040518363ffffffff1660e01b8152600401610e479291906128bc565b5f604051808303815f87803b158015610e5e575f80fd5b505af1158015610e70573d5f803e3d5ffd5b505050505b5f610e8785610e82611b51565b611aaa565b905083811015610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec3906129bb565b60405180910390fd5b610ee085610ed8611b51565b868403611b58565b610eea8585611e39565b5050505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f31611b51565b73ffffffffffffffffffffffffffffffffffffffff1614610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e90612803565b60405180910390fd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806007819055508173ffffffffffffffffffffffffffffffffffffffff167f6c591da8da2f6e69746d7d9ae61c27ee29fbe303798141b4942ae2aef54274b160405160405180910390a25050565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611056611b51565b73ffffffffffffffffffffffffffffffffffffffff16146110ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a390612a23565b60405180910390fd5b600b5f9054906101000a900460ff166110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f190612a8b565b60405180910390fd5b5f8282905090505f805b8281101561125c575f8585838181106111205761111f612aa9565b5b90506020020160208101906111359190612206565b90505f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080846111c49190612889565b9350600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611245919061219d565b60405180910390a350508080600101915050611104565b50805f80600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112ca9190612889565b9250508190555050505050565b6060600480546112e690612623565b80601f016020809104026020016040519081016040528092919081815260200182805461131290612623565b801561135d5780601f106113345761010080835404028352916020019161135d565b820191905f5260205f20905b81548152906001019060200180831161134057829003601f168201915b5050505050905090565b5f8282600b5f9054906101000a900460ff161561141257600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663568c75a96113c4611b51565b84846040518463ffffffff1660e01b81526004016113e493929190612653565b5f604051808303815f87803b1580156113fb575f80fd5b505af115801561140d573d5f803e3d5ffd5b505050505b5f60015f61141e611b51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050848110156114d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cf90612b46565b60405180910390fd5b6114f56114e3611b51565b8787846114f09190612786565b611b58565b6001935050505092915050565b5f8282600b5f9054906101000a900460ff16156115ad57600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ffb811f61155f611b51565b84846040518463ffffffff1660e01b815260040161157f93929190612653565b5f604051808303815f87803b158015611596575f80fd5b505af11580156115a8573d5f803e3d5ffd5b505050505b6115bf6115b8611b51565b8686611c3f565b60019250505092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661160b611b51565b73ffffffffffffffffffffffffffffffffffffffff1614611661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165890612803565b60405180910390fd5b5f600a54036116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c90612bae565b60405180910390fd5b42600a5411156116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e190612c16565b60405180910390fd5b5f600b5f6101000a81548160ff0219169083151502179055505f600a819055507f3eb72350c9c7928d31e9ab450bfff2c159434aa4b82658a7d8eae7f109cb4e7b60405160405180910390a1565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611778611b51565b73ffffffffffffffffffffffffffffffffffffffff16146117ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c590612c7e565b60405180910390fd5b600754818051906020012014611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090612ce6565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb94bba6936ec7f75ee931dadf6e1a4d66b43d09b6fa0178fb13df9b77fb5841f60405160405180910390a260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5f9054906101000a900460ff1681565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611973611b51565b73ffffffffffffffffffffffffffffffffffffffff16146119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c090612803565b60405180910390fd5b5f600a5414611a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0490612d4e565b60405180910390fd5b600b5f9054906101000a900460ff16611a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5290612db6565b60405180910390fd5b60095442611a699190612889565b600a819055507f6ca688e6e3ddd707280140b2bf0106afe883689b6c74e68cbd517576dd9c245a600a54604051611aa0919061219d565b60405180910390a1565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c32919061219d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca490612e44565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2790612ed2565b60405180910390fd5b8181611d3c9190612786565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611dc79190612889565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e2b919061219d565b60405180910390a350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9e90612f60565b60405180910390fd5b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2190612fee565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f828254611f7e9190612786565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fe2919061219d565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61203182611fef565b61203b8185611ff9565b935061204b818560208601612009565b61205481612017565b840191505092915050565b5f6020820190508181035f8301526120778184612027565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120b982612090565b9050919050565b6120c9816120af565b81146120d3575f80fd5b50565b5f813590506120e4816120c0565b92915050565b5f819050919050565b6120fc816120ea565b8114612106575f80fd5b50565b5f81359050612117816120f3565b92915050565b5f806040838503121561213357612132612088565b5b5f612140858286016120d6565b925050602061215185828601612109565b9150509250929050565b5f8115159050919050565b61216f8161215b565b82525050565b5f6020820190506121885f830184612166565b92915050565b612197816120ea565b82525050565b5f6020820190506121b05f83018461218e565b92915050565b5f805f606084860312156121cd576121cc612088565b5b5f6121da868287016120d6565b93505060206121eb868287016120d6565b92505060406121fc86828701612109565b9150509250925092565b5f6020828403121561221b5761221a612088565b5b5f612228848285016120d6565b91505092915050565b5f60ff82169050919050565b61224681612231565b82525050565b5f60208201905061225f5f83018461223d565b92915050565b5f819050919050565b5f61228861228361227e84612090565b612265565b612090565b9050919050565b5f6122998261226e565b9050919050565b5f6122aa8261228f565b9050919050565b6122ba816122a0565b82525050565b5f6020820190506122d35f8301846122b1565b92915050565b5f602082840312156122ee576122ed612088565b5b5f6122fb84828501612109565b91505092915050565b61230d816120af565b82525050565b5f6020820190506123265f830184612304565b92915050565b5f819050919050565b61233e8161232c565b8114612348575f80fd5b50565b5f8135905061235981612335565b92915050565b5f806040838503121561237557612374612088565b5b5f612382858286016120d6565b92505060206123938582860161234b565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126123be576123bd61239d565b5b8235905067ffffffffffffffff8111156123db576123da6123a1565b5b6020830191508360208202830111156123f7576123f66123a5565b5b9250929050565b5f806020838503121561241457612413612088565b5b5f83013567ffffffffffffffff8111156124315761243061208c565b5b61243d858286016123a9565b92509250509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61248382612017565b810181811067ffffffffffffffff821117156124a2576124a161244d565b5b80604052505050565b5f6124b461207f565b90506124c0828261247a565b919050565b5f67ffffffffffffffff8211156124df576124de61244d565b5b6124e882612017565b9050602081019050919050565b828183375f83830152505050565b5f612515612510846124c5565b6124ab565b90508281526020810184848401111561253157612530612449565b5b61253c8482856124f5565b509392505050565b5f82601f8301126125585761255761239d565b5b8135612568848260208601612503565b91505092915050565b5f6020828403121561258657612585612088565b5b5f82013567ffffffffffffffff8111156125a3576125a261208c565b5b6125af84828501612544565b91505092915050565b5f80604083850312156125ce576125cd612088565b5b5f6125db858286016120d6565b92505060206125ec858286016120d6565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061263a57607f821691505b60208210810361264d5761264c6125f6565b5b50919050565b5f6060820190506126665f830186612304565b6126736020830185612304565b612680604083018461218e565b949350505050565b5f60808201905061269b5f830187612304565b6126a86020830186612304565b6126b56040830185612304565b6126c2606083018461218e565b95945050505050565b7f4c45524332303a207472616e7366657220616d6f756e742065786365656473205f8201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b5f612725602983611ff9565b9150612730826126cb565b604082019050919050565b5f6020820190508181035f83015261275281612719565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612790826120ea565b915061279b836120ea565b92508282039050818111156127b3576127b2612759565b5b92915050565b7f4c45524332303a204d757374206265207265636f766572792061646d696e00005f82015250565b5f6127ed601e83611ff9565b91506127f8826127b9565b602082019050919050565b5f6020820190508181035f83015261281a816127e1565b9050919050565b7f4c45524332303a2043616e6e6f74207365742073616d652061646472657373005f82015250565b5f612855601f83611ff9565b915061286082612821565b602082019050919050565b5f6020820190508181035f83015261288281612849565b9050919050565b5f612893826120ea565b915061289e836120ea565b92508282019050808211156128b6576128b5612759565b5b92915050565b5f6040820190506128cf5f830185612304565b6128dc602083018461218e565b9392505050565b7f4c45524332303a204c6f73736c65737320616c7265616479206f6e00000000005f82015250565b5f612917601b83611ff9565b9150612922826128e3565b602082019050919050565b5f6020820190508181035f8301526129448161290b565b9050919050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f775f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f6129a5602483611ff9565b91506129b08261294b565b604082019050919050565b5f6020820190508181035f8301526129d281612999565b9050919050565b7f4c45524332303a204f6e6c79206c6f73736c65737320636f6e747261637400005f82015250565b5f612a0d601e83611ff9565b9150612a18826129d9565b602082019050919050565b5f6020820190508181035f830152612a3a81612a01565b9050919050565b7f4c45524332303a204c6f73736c657373206973206f66660000000000000000005f82015250565b5f612a75601783611ff9565b9150612a8082612a41565b602082019050919050565b5f6020820190508181035f830152612aa281612a69565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f5f8201527f77207a65726f0000000000000000000000000000000000000000000000000000602082015250565b5f612b30602683611ff9565b9150612b3b82612ad6565b604082019050919050565b5f6020820190508181035f830152612b5d81612b24565b9050919050565b7f4c45524332303a205475726e4f6666206e6f742070726f706f736564000000005f82015250565b5f612b98601c83611ff9565b9150612ba382612b64565b602082019050919050565b5f6020820190508181035f830152612bc581612b8c565b9050919050565b7f4c45524332303a2054696d65206c6f636b20696e2070726f67726573730000005f82015250565b5f612c00601d83611ff9565b9150612c0b82612bcc565b602082019050919050565b5f6020820190508181035f830152612c2d81612bf4565b9050919050565b7f4c45524332303a204d7573742062652063616e646974617465000000000000005f82015250565b5f612c68601983611ff9565b9150612c7382612c34565b602082019050919050565b5f6020820190508181035f830152612c9581612c5c565b9050919050565b7f4c45524332303a20496e76616c6964206b6579000000000000000000000000005f82015250565b5f612cd0601383611ff9565b9150612cdb82612c9c565b602082019050919050565b5f6020820190508181035f830152612cfd81612cc4565b9050919050565b7f4c45524332303a205475726e4f666620616c72656164792070726f706f7365645f82015250565b5f612d38602083611ff9565b9150612d4382612d04565b602082019050919050565b5f6020820190508181035f830152612d6581612d2c565b9050919050565b7f4c45524332303a204c6f73736c65737320616c7265616479206f6666000000005f82015250565b5f612da0601c83611ff9565b9150612dab82612d6c565b602082019050919050565b5f6020820190508181035f830152612dcd81612d94565b9050919050565b7f4c45524332303a207472616e736665722066726f6d20746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612e2e602683611ff9565b9150612e3982612dd4565b604082019050919050565b5f6020820190508181035f830152612e5b81612e22565b9050919050565b7f4c45524332303a207472616e7366657220616d6f756e742065786365656473205f8201527f62616c616e636500000000000000000000000000000000000000000000000000602082015250565b5f612ebc602783611ff9565b9150612ec782612e62565b604082019050919050565b5f6020820190508181035f830152612ee981612eb0565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f4a602183611ff9565b9150612f5582612ef0565b604082019050919050565b5f6020820190508181035f830152612f7781612f3e565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fd8602283611ff9565b9150612fe382612f7e565b604082019050919050565b5f6020820190508181035f83015261300581612fcc565b905091905056fea26469706673582212203a63dfce843ccecd17944aec6369ce6d11453c848dfbdf64c1d086f8c8de7a9d64736f6c63430008190033000000000000000000000000000000000000000000690d4bd97860968664000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000d7c4cecf3cb5261248532aca56c4e71f10241906000000000000000000000000b42c21b3b080cc9871f7c44714c8e2613449e0de000000000000000000000000000000000000000000000000000000000001518000000000000000000000000038d40f5c8375f84c5b90bc460a94a436d09133fb000000000000000000000000000000000000000000000000000000000000000f436f6479666967687420546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000443544f4b00000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561000f575f80fd5b50600436106101a7575f3560e01c80636e9960c3116100f7578063a9059cbb11610095578063ccfa214f1161006f578063ccfa214f14610495578063d6e242b8146104b3578063dd62ed3e146104bd578063f851a440146104ed576101a7565b8063a9059cbb1461043f578063b38fe9571461046f578063b5c2287714610479576101a7565b806393310ffe116100d157806393310ffe146103b9578063936af911146103d557806395d89b41146103f1578063a457c2d71461040f576101a7565b80636e9960c31461034f57806370a082311461036d57806379cc67901461039d576101a7565b8063313ce5671161016457806342966c681161013e57806342966c68146102ed5780635b8a194a146103095780635f6529a31461031357806361086b0014610331576101a7565b8063313ce5671461028157806334f6ebf51461029f57806339509351146102bd576101a7565b806306fdde03146101ab578063095ea7b3146101c957806318160ddd146101f957806323b872dd146102175780632baa3c9e146102475780632ecaf67514610263575b5f80fd5b6101b361050b565b6040516101c0919061205f565b60405180910390f35b6101e360048036038101906101de919061211d565b61059b565b6040516101f09190612175565b60405180910390f35b610201610664565b60405161020e919061219d565b60405180910390f35b610231600480360381019061022c91906121b6565b61066d565b60405161023e9190612175565b60405180910390f35b610261600480360381019061025c9190612206565b610818565b005b61026b6109c3565b604051610278919061219d565b60405180910390f35b6102896109c9565b604051610296919061224c565b60405180910390f35b6102a76109d1565b6040516102b491906122c0565b60405180910390f35b6102d760048036038101906102d2919061211d565b6109f7565b6040516102e49190612175565b60405180910390f35b610307600480360381019061030291906122d9565b610b4a565b005b610311610c08565b005b61031b610d3c565b6040516103289190612313565b60405180910390f35b610339610d61565b604051610346919061219d565b60405180910390f35b610357610d67565b6040516103649190612313565b60405180910390f35b61038760048036038101906103829190612206565b610d8f565b604051610394919061219d565b60405180910390f35b6103b760048036038101906103b2919061211d565b610dd4565b005b6103d360048036038101906103ce919061235f565b610ef1565b005b6103ef60048036038101906103ea91906123fe565b611015565b005b6103f96112d7565b604051610406919061205f565b60405180910390f35b6104296004803603810190610424919061211d565b611367565b6040516104369190612175565b60405180910390f35b6104596004803603810190610454919061211d565b611502565b6040516104669190612175565b60405180910390f35b6104776115cb565b005b610493600480360381019061048e9190612571565b611738565b005b61049d611921565b6040516104aa9190612175565b60405180910390f35b6104bb611933565b005b6104d760048036038101906104d291906125b8565b611aaa565b6040516104e4919061219d565b60405180910390f35b6104f5611b2c565b6040516105029190612313565b60405180910390f35b60606003805461051a90612623565b80601f016020809104026020016040519081016040528092919081815260200182805461054690612623565b80156105915780601f1061056857610100808354040283529160200191610591565b820191905f5260205f20905b81548152906001019060200180831161057457829003601f168201915b5050505050905090565b5f8282600b5f9054906101000a900460ff161561064657600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166347abf3be6105f8611b51565b84846040518463ffffffff1660e01b815260040161061893929190612653565b5f604051808303815f87803b15801561062f575f80fd5b505af1158015610641573d5f803e3d5ffd5b505050505b610658610651611b51565b8686611b58565b60019250505092915050565b5f600254905090565b5f838383600b5f9054906101000a900460ff161561071b57600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663379f5c696106cb611b51565b8585856040518563ffffffff1660e01b81526004016106ed9493929190612688565b5f604051808303815f87803b158015610704575f80fd5b505af1158015610716573d5f803e3d5ffd5b505050505b5f60015f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610762611b51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050858110156107e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d89061273b565b60405180910390fd5b6107ec888888611c3f565b610809886107f8611b51565b88846108049190612786565b611b58565b60019450505050509392505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610858611b51565b73ffffffffffffffffffffffffffffffffffffffff16146108ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a590612803565b60405180910390fd5b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361093d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109349061286b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff167f71614071b88dee5e0b2ae578a9dd7b2ebbe9ae832ba419dc0242cd065a290b6c60405160405180910390a28060085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b5f6012905090565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8282600b5f9054906101000a900460ff1615610aa257600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663cf5961bb610a54611b51565b84846040518463ffffffff1660e01b8152600401610a7493929190612653565b5f604051808303815f87803b158015610a8b575f80fd5b505af1158015610a9d573d5f803e3d5ffd5b505050505b610b3e610aad611b51565b868660015f610aba611b51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610b399190612889565b611b58565b60019250505092915050565b610b52611b51565b81600b5f9054906101000a900460ff1615610bf257600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a1fefbd83836040518363ffffffff1660e01b8152600401610bc49291906128bc565b5f604051808303815f87803b158015610bdb575f80fd5b505af1158015610bed573d5f803e3d5ffd5b505050505b610c03610bfd611b51565b84611e39565b505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c48611b51565b73ffffffffffffffffffffffffffffffffffffffff1614610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9590612803565b60405180910390fd5b600b5f9054906101000a900460ff1615610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce49061292d565b60405180910390fd5b5f600a819055506001600b5f6101000a81548160ff0219169083151502179055507f1ba3b66404043da8297d0b876fa6464f2cb127edfc6626308046d4503028322b60405160405180910390a1565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b8181600b5f9054906101000a900460ff1615610e7557600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a1fefbd83836040518363ffffffff1660e01b8152600401610e479291906128bc565b5f604051808303815f87803b158015610e5e575f80fd5b505af1158015610e70573d5f803e3d5ffd5b505050505b5f610e8785610e82611b51565b611aaa565b905083811015610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec3906129bb565b60405180910390fd5b610ee085610ed8611b51565b868403611b58565b610eea8585611e39565b5050505050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f31611b51565b73ffffffffffffffffffffffffffffffffffffffff1614610f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7e90612803565b60405180910390fd5b8160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806007819055508173ffffffffffffffffffffffffffffffffffffffff167f6c591da8da2f6e69746d7d9ae61c27ee29fbe303798141b4942ae2aef54274b160405160405180910390a25050565b600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611056611b51565b73ffffffffffffffffffffffffffffffffffffffff16146110ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a390612a23565b60405180910390fd5b600b5f9054906101000a900460ff166110fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f190612a8b565b60405180910390fd5b5f8282905090505f805b8281101561125c575f8585838181106111205761111f612aa9565b5b90506020020160208101906111359190612206565b90505f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080846111c49190612889565b9350600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611245919061219d565b60405180910390a350508080600101915050611104565b50805f80600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546112ca9190612889565b9250508190555050505050565b6060600480546112e690612623565b80601f016020809104026020016040519081016040528092919081815260200182805461131290612623565b801561135d5780601f106113345761010080835404028352916020019161135d565b820191905f5260205f20905b81548152906001019060200180831161134057829003601f168201915b5050505050905090565b5f8282600b5f9054906101000a900460ff161561141257600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663568c75a96113c4611b51565b84846040518463ffffffff1660e01b81526004016113e493929190612653565b5f604051808303815f87803b1580156113fb575f80fd5b505af115801561140d573d5f803e3d5ffd5b505050505b5f60015f61141e611b51565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050848110156114d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cf90612b46565b60405180910390fd5b6114f56114e3611b51565b8787846114f09190612786565b611b58565b6001935050505092915050565b5f8282600b5f9054906101000a900460ff16156115ad57600b60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16631ffb811f61155f611b51565b84846040518463ffffffff1660e01b815260040161157f93929190612653565b5f604051808303815f87803b158015611596575f80fd5b505af11580156115a8573d5f803e3d5ffd5b505050505b6115bf6115b8611b51565b8686611c3f565b60019250505092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661160b611b51565b73ffffffffffffffffffffffffffffffffffffffff1614611661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165890612803565b60405180910390fd5b5f600a54036116a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169c90612bae565b60405180910390fd5b42600a5411156116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e190612c16565b60405180910390fd5b5f600b5f6101000a81548160ff0219169083151502179055505f600a819055507f3eb72350c9c7928d31e9ab450bfff2c159434aa4b82658a7d8eae7f109cb4e7b60405160405180910390a1565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611778611b51565b73ffffffffffffffffffffffffffffffffffffffff16146117ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c590612c7e565b60405180910390fd5b600754818051906020012014611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090612ce6565b60405180910390fd5b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fb94bba6936ec7f75ee931dadf6e1a4d66b43d09b6fa0178fb13df9b77fb5841f60405160405180910390a260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600b5f9054906101000a900460ff1681565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611973611b51565b73ffffffffffffffffffffffffffffffffffffffff16146119c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c090612803565b60405180910390fd5b5f600a5414611a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0490612d4e565b60405180910390fd5b600b5f9054906101000a900460ff16611a5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5290612db6565b60405180910390fd5b60095442611a699190612889565b600a819055507f6ca688e6e3ddd707280140b2bf0106afe883689b6c74e68cbd517576dd9c245a600a54604051611aa0919061219d565b60405180910390a1565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c32919061219d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca490612e44565b60405180910390fd5b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2790612ed2565b60405180910390fd5b8181611d3c9190612786565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611dc79190612889565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e2b919061219d565b60405180910390a350505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ea7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9e90612f60565b60405180910390fd5b5f805f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611f2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2190612fee565b60405180910390fd5b8181035f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160025f828254611f7e9190612786565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fe2919061219d565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61203182611fef565b61203b8185611ff9565b935061204b818560208601612009565b61205481612017565b840191505092915050565b5f6020820190508181035f8301526120778184612027565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6120b982612090565b9050919050565b6120c9816120af565b81146120d3575f80fd5b50565b5f813590506120e4816120c0565b92915050565b5f819050919050565b6120fc816120ea565b8114612106575f80fd5b50565b5f81359050612117816120f3565b92915050565b5f806040838503121561213357612132612088565b5b5f612140858286016120d6565b925050602061215185828601612109565b9150509250929050565b5f8115159050919050565b61216f8161215b565b82525050565b5f6020820190506121885f830184612166565b92915050565b612197816120ea565b82525050565b5f6020820190506121b05f83018461218e565b92915050565b5f805f606084860312156121cd576121cc612088565b5b5f6121da868287016120d6565b93505060206121eb868287016120d6565b92505060406121fc86828701612109565b9150509250925092565b5f6020828403121561221b5761221a612088565b5b5f612228848285016120d6565b91505092915050565b5f60ff82169050919050565b61224681612231565b82525050565b5f60208201905061225f5f83018461223d565b92915050565b5f819050919050565b5f61228861228361227e84612090565b612265565b612090565b9050919050565b5f6122998261226e565b9050919050565b5f6122aa8261228f565b9050919050565b6122ba816122a0565b82525050565b5f6020820190506122d35f8301846122b1565b92915050565b5f602082840312156122ee576122ed612088565b5b5f6122fb84828501612109565b91505092915050565b61230d816120af565b82525050565b5f6020820190506123265f830184612304565b92915050565b5f819050919050565b61233e8161232c565b8114612348575f80fd5b50565b5f8135905061235981612335565b92915050565b5f806040838503121561237557612374612088565b5b5f612382858286016120d6565b92505060206123938582860161234b565b9150509250929050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f8401126123be576123bd61239d565b5b8235905067ffffffffffffffff8111156123db576123da6123a1565b5b6020830191508360208202830111156123f7576123f66123a5565b5b9250929050565b5f806020838503121561241457612413612088565b5b5f83013567ffffffffffffffff8111156124315761243061208c565b5b61243d858286016123a9565b92509250509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61248382612017565b810181811067ffffffffffffffff821117156124a2576124a161244d565b5b80604052505050565b5f6124b461207f565b90506124c0828261247a565b919050565b5f67ffffffffffffffff8211156124df576124de61244d565b5b6124e882612017565b9050602081019050919050565b828183375f83830152505050565b5f612515612510846124c5565b6124ab565b90508281526020810184848401111561253157612530612449565b5b61253c8482856124f5565b509392505050565b5f82601f8301126125585761255761239d565b5b8135612568848260208601612503565b91505092915050565b5f6020828403121561258657612585612088565b5b5f82013567ffffffffffffffff8111156125a3576125a261208c565b5b6125af84828501612544565b91505092915050565b5f80604083850312156125ce576125cd612088565b5b5f6125db858286016120d6565b92505060206125ec858286016120d6565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061263a57607f821691505b60208210810361264d5761264c6125f6565b5b50919050565b5f6060820190506126665f830186612304565b6126736020830185612304565b612680604083018461218e565b949350505050565b5f60808201905061269b5f830187612304565b6126a86020830186612304565b6126b56040830185612304565b6126c2606083018461218e565b95945050505050565b7f4c45524332303a207472616e7366657220616d6f756e742065786365656473205f8201527f616c6c6f77616e63650000000000000000000000000000000000000000000000602082015250565b5f612725602983611ff9565b9150612730826126cb565b604082019050919050565b5f6020820190508181035f83015261275281612719565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612790826120ea565b915061279b836120ea565b92508282039050818111156127b3576127b2612759565b5b92915050565b7f4c45524332303a204d757374206265207265636f766572792061646d696e00005f82015250565b5f6127ed601e83611ff9565b91506127f8826127b9565b602082019050919050565b5f6020820190508181035f83015261281a816127e1565b9050919050565b7f4c45524332303a2043616e6e6f74207365742073616d652061646472657373005f82015250565b5f612855601f83611ff9565b915061286082612821565b602082019050919050565b5f6020820190508181035f83015261288281612849565b9050919050565b5f612893826120ea565b915061289e836120ea565b92508282019050808211156128b6576128b5612759565b5b92915050565b5f6040820190506128cf5f830185612304565b6128dc602083018461218e565b9392505050565b7f4c45524332303a204c6f73736c65737320616c7265616479206f6e00000000005f82015250565b5f612917601b83611ff9565b9150612922826128e3565b602082019050919050565b5f6020820190508181035f8301526129448161290b565b9050919050565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f775f8201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b5f6129a5602483611ff9565b91506129b08261294b565b604082019050919050565b5f6020820190508181035f8301526129d281612999565b9050919050565b7f4c45524332303a204f6e6c79206c6f73736c65737320636f6e747261637400005f82015250565b5f612a0d601e83611ff9565b9150612a18826129d9565b602082019050919050565b5f6020820190508181035f830152612a3a81612a01565b9050919050565b7f4c45524332303a204c6f73736c657373206973206f66660000000000000000005f82015250565b5f612a75601783611ff9565b9150612a8082612a41565b602082019050919050565b5f6020820190508181035f830152612aa281612a69565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4c45524332303a2064656372656173656420616c6c6f77616e63652062656c6f5f8201527f77207a65726f0000000000000000000000000000000000000000000000000000602082015250565b5f612b30602683611ff9565b9150612b3b82612ad6565b604082019050919050565b5f6020820190508181035f830152612b5d81612b24565b9050919050565b7f4c45524332303a205475726e4f6666206e6f742070726f706f736564000000005f82015250565b5f612b98601c83611ff9565b9150612ba382612b64565b602082019050919050565b5f6020820190508181035f830152612bc581612b8c565b9050919050565b7f4c45524332303a2054696d65206c6f636b20696e2070726f67726573730000005f82015250565b5f612c00601d83611ff9565b9150612c0b82612bcc565b602082019050919050565b5f6020820190508181035f830152612c2d81612bf4565b9050919050565b7f4c45524332303a204d7573742062652063616e646974617465000000000000005f82015250565b5f612c68601983611ff9565b9150612c7382612c34565b602082019050919050565b5f6020820190508181035f830152612c9581612c5c565b9050919050565b7f4c45524332303a20496e76616c6964206b6579000000000000000000000000005f82015250565b5f612cd0601383611ff9565b9150612cdb82612c9c565b602082019050919050565b5f6020820190508181035f830152612cfd81612cc4565b9050919050565b7f4c45524332303a205475726e4f666620616c72656164792070726f706f7365645f82015250565b5f612d38602083611ff9565b9150612d4382612d04565b602082019050919050565b5f6020820190508181035f830152612d6581612d2c565b9050919050565b7f4c45524332303a204c6f73736c65737320616c7265616479206f6666000000005f82015250565b5f612da0601c83611ff9565b9150612dab82612d6c565b602082019050919050565b5f6020820190508181035f830152612dcd81612d94565b9050919050565b7f4c45524332303a207472616e736665722066726f6d20746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612e2e602683611ff9565b9150612e3982612dd4565b604082019050919050565b5f6020820190508181035f830152612e5b81612e22565b9050919050565b7f4c45524332303a207472616e7366657220616d6f756e742065786365656473205f8201527f62616c616e636500000000000000000000000000000000000000000000000000602082015250565b5f612ebc602783611ff9565b9150612ec782612e62565b604082019050919050565b5f6020820190508181035f830152612ee981612eb0565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f4a602183611ff9565b9150612f5582612ef0565b604082019050919050565b5f6020820190508181035f830152612f7781612f3e565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f612fd8602283611ff9565b9150612fe382612f7e565b604082019050919050565b5f6020820190508181035f83015261300581612fcc565b905091905056fea26469706673582212203a63dfce843ccecd17944aec6369ce6d11453c848dfbdf64c1d086f8c8de7a9d64736f6c63430008190033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000690d4bd97860968664000000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000d7c4cecf3cb5261248532aca56c4e71f10241906000000000000000000000000b42c21b3b080cc9871f7c44714c8e2613449e0de000000000000000000000000000000000000000000000000000000000001518000000000000000000000000038d40f5c8375f84c5b90bc460a94a436d09133fb000000000000000000000000000000000000000000000000000000000000000f436f6479666967687420546f6b656e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000443544f4b00000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : totalSupply_ (uint256): 127000001000000000000000000
Arg [1] : name_ (string): Codyfight Token
Arg [2] : symbol_ (string): CTOK
Arg [3] : admin_ (address): 0xd7c4CeCF3cb5261248532aCA56c4e71f10241906
Arg [4] : recoveryAdmin_ (address): 0xb42c21b3B080cC9871f7C44714c8e2613449E0dE
Arg [5] : timelockPeriod_ (uint256): 86400
Arg [6] : lossless_ (address): 0x38D40f5c8375F84C5B90bc460A94a436D09133fB
-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000000000000690d4bd978609686640000
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000e0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [3] : 000000000000000000000000d7c4cecf3cb5261248532aca56c4e71f10241906
Arg [4] : 000000000000000000000000b42c21b3b080cc9871f7c44714c8e2613449e0de
Arg [5] : 0000000000000000000000000000000000000000000000000000000000015180
Arg [6] : 00000000000000000000000038d40f5c8375f84c5b90bc460a94a436d09133fb
Arg [7] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [8] : 436f6479666967687420546f6b656e0000000000000000000000000000000000
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [10] : 43544f4b00000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
24792:958:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15820:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18024:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16421:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18604:476;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12775:198;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5592:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16220:78;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6173:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19436:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23484:115;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15290:211;;;:::i;:::-;;4742:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5793:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15600:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16672:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23952:380;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13251:249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11954:644;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16016:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20092:466;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17095:202;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14790:344;;;:::i;:::-;;13699:391;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5972:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14260:335;;;:::i;:::-;;17539:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5392:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15820:85;15865:13;15894:5;15887:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15820:85;:::o;18024:192::-;18140:4;18114:7;18123:6;9055:12;;;;;;;;;;;9051:88;;;9078:8;;;;;;;;;;;:22;;;9101:12;:10;:12::i;:::-;9115:7;9124:6;9078:53;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9051:88;18153:39:::1;18162:12;:10;:12::i;:::-;18176:7;18185:6;18153:8;:39::i;:::-;18206:4;18199:11;;18024:192:::0;;;;;;:::o;16421:93::-;16473:7;16496:12;;16489:19;;16421:93;:::o;18604:476::-;18764:4;18728:6;18736:9;18747:6;9969:12;;;;;;;;;;;9965:103;;;9992:8;;;;;;;;;;;:27;;;10020:12;:10;:12::i;:::-;10034:6;10042:9;10053:6;9992:68;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9965:103;18777:24:::1;18804:11;:19;18816:6;18804:19;;;;;;;;;;;;;;;:33;18824:12;:10;:12::i;:::-;18804:33;;;;;;;;;;;;;;;;18777:60;;18880:6;18860:16;:26;;18844:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;18952:36;18962:6;18970:9;18981:6;18952:9;:36::i;:::-;18997:57;19006:6;19014:12;:10;:12::i;:::-;19047:6;19028:16;:25;;;;:::i;:::-;18997:8;:57::i;:::-;19070:4;19063:11;;;18604:476:::0;;;;;;;;:::o;12775:198::-;11606:13;;;;;;;;;;;11590:29;;:12;:10;:12::i;:::-;:29;;;11582:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12873:5:::1;;;;;;;;;;;12861:17;;:8;:17;;::::0;12853:61:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12935:8;12926:18;;;;;;;;;;;;12959:8;12951:5;;:16;;;;;;;;;;;;;;;;;;12775:198:::0;:::o;5592:29::-;;;;:::o;16220:78::-;16269:5;16290:2;16283:9;;16220:78;:::o;6173:30::-;;;;;;;;;;;;;:::o;19436:290::-;19581:4;19551:7;19560:10;10805:12;;;;;;;;;;;10801:102;;;10828:8;;;;;;;;;;;:32;;;10861:12;:10;:12::i;:::-;10875:7;10884:10;10828:67;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10801:102;19594:108:::1;19611:12;:10;:12::i;:::-;19632:7;19685:10;19648:11;:25;19660:12;:10;:12::i;:::-;19648:25;;;;;;;;;;;;;;;:34;19674:7;19648:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;19594:8;:108::i;:::-;19716:4;19709:11;;19436:290:::0;;;;;;:::o;23484:115::-;23537:12;:10;:12::i;:::-;23551:6;10367:12;;;;;;;;;;;10363:71;;;10390:8;;;;;;;;;;;:19;;;10410:7;10419:6;10390:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10363:71;23566:27:::1;23572:12;:10;:12::i;:::-;23586:6;23566:5;:27::i;:::-;23484:115:::0;;;:::o;15290:211::-;11606:13;;;;;;;;;;;11590:29;;:12;:10;:12::i;:::-;:29;;;11582:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;15366:12:::1;;;;;;;;;;;15365:13;15357:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;15444:1;15417:24;:28;;;;15467:4;15452:12;;:19;;;;;;;;;;;;;;;;;;15483:12;;;;;;;;;;15290:211::o:0;4742:28::-;;;;;;;;;;;;;:::o;5793:39::-;;;;:::o;15600:83::-;15649:7;15672:5;;;;;;;;;;;15665:12;;15600:83;:::o;16672:112::-;16737:7;16760:9;:18;16770:7;16760:18;;;;;;;;;;;;;;;;16753:25;;16672:112;;;:::o;23952:380::-;24041:7;24050:6;10367:12;;;;;;;;;;;10363:71;;;10390:8;;;;;;;;;;;:19;;;10410:7;10419:6;10390:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10363:71;24065:24:::1;24092:32;24102:7;24111:12;:10;:12::i;:::-;24092:9;:32::i;:::-;24065:59;;24159:6;24139:16;:26;;24131:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;24232:58;24241:7;24250:12;:10;:12::i;:::-;24283:6;24264:16;:25;24232:8;:58::i;:::-;24304:22;24310:7;24319:6;24304:5;:22::i;:::-;24058:274;23952:380:::0;;;;:::o;13251:249::-;11606:13;;;;;;;;;;;11590:29;;:12;:10;:12::i;:::-;:29;;;11582:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;13401:9:::1;13376:22;;:34;;;;;;;;;;;;;;;;;;13440:7;13417:20;:30;;;;13484:9;13459:35;;;;;;;;;;;;13251:249:::0;;:::o;11954:644::-;12072:8;;;;;;;;;;;12048:33;;:12;:10;:12::i;:::-;:33;;;12032:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;12144:12;;;;;;;;;;;12136:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12193:18;12214:4;;:11;;12193:32;;12232:19;12269:9;12264:277;12288:10;12284:1;:14;12264:277;;;12314:19;12336:4;;12341:1;12336:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12314:29;;12352:19;12374:9;:22;12384:11;12374:22;;;;;;;;;;;;;;;;12352:44;;12430:1;12405:9;:22;12415:11;12405:22;;;;;;;;;;;;;;;:26;;;;12455:11;12440:26;;;;;:::i;:::-;;;12510:8;;;;;;;;;;;12480:53;;12489:11;12480:53;;;12521:11;12480:53;;;;;;:::i;:::-;;;;;;;;12305:236;;12300:3;;;;;;;12264:277;;;;12581:11;12549:9;:28;12567:8;;;;;;;;;;;12549:28;;;;;;;;;;;;;;;;:43;;;;;;;:::i;:::-;;;;;;;;12025:573;;11954:644;;:::o;16016:89::-;16063:13;16092:7;16085:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16016:89;:::o;20092:466::-;20267:4;20227:7;20236:15;11289:12;;;;;;;;;;;11285:107;;;11312:8;;;;;;;;;;;:32;;;11345:12;:10;:12::i;:::-;11359:7;11368:15;11312:72;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11285:107;20283:24:::1;20310:11;:25;20322:12;:10;:12::i;:::-;20310:25;;;;;;;;;;;;;;;:34;20336:7;20310:34;;;;;;;;;;;;;;;;20283:61;;20387:15;20367:16;:35;;20351:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;20465:67;20474:12;:10;:12::i;:::-;20488:7;20516:15;20497:16;:34;;;;:::i;:::-;20465:8;:67::i;:::-;20548:4;20541:11;;;20092:466:::0;;;;;;:::o;17095:202::-;17218:4;17190:9;17201:6;9464:12;;;;;;;;;;;9460:91;;;9487:8;;;;;;;;;;;:23;;;9511:12;:10;:12::i;:::-;9525:9;9536:6;9487:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9460:91;17231:42:::1;17241:12;:10;:12::i;:::-;17255:9;17266:6;17231:9;:42::i;:::-;17287:4;17280:11;;17095:202:::0;;;;;;:::o;14790:344::-;11606:13;;;;;;;;;;;11590:29;;:12;:10;:12::i;:::-;:29;;;11582:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14894:1:::1;14866:24;;:29:::0;14858:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14979:15;14951:24;;:43;;14935:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;15063:5;15048:12;;:20;;;;;;;;;;;;;;;;;;15102:1;15075:24;:28;;;;15115:13;;;;;;;;;;14790:344::o:0;13699:391::-;13803:22;;;;;;;;;;;13787:38;;:12;:10;:12::i;:::-;:38;;;13771:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;13901:20;;13893:3;13883:14;;;;;;:38;13875:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13974:22;;;;;;;;;;;13957:40;;;;;;;;;;;;14020:22;;;;;;;;;;;14004:13;;:38;;;;;;;;;;;;;;;;;;14082:1;14049:22;;:35;;;;;;;;;;;;;;;;;;13699:391;:::o;5972:31::-;;;;;;;;;;;;;:::o;14260:335::-;11606:13;;;;;;;;;;;11590:29;;:12;:10;:12::i;:::-;:29;;;11582:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14364:1:::1;14336:24;;:29;14328:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14417:12;;;;;;;;;;;14409:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;14514:14;;14496:15;:32;;;;:::i;:::-;14469:24;:59;;;;14540:49;14564:24;;14540:49;;;;;;:::i;:::-;;;;;;;;14260:335::o:0;17539:151::-;17634:7;17657:11;:18;17669:5;17657:18;;;;;;;;;;;;;;;:27;17676:7;17657:27;;;;;;;;;;;;;;;;17650:34;;17539:151;;;;:::o;5392:20::-;;;;;;;;;;;;;:::o;539:92::-;592:7;615:10;608:17;;539:92;:::o;22955:196::-;23095:6;23065:11;:18;23077:5;23065:18;;;;;;;;;;;;;;;:27;23084:7;23065:27;;;;;;;;;;;;;;;:36;;;;23129:7;23113:32;;23122:5;23113:32;;;23138:6;23113:32;;;;;;:::i;:::-;;;;;;;;22955:196;;;:::o;20878:458::-;21018:1;21000:20;;:6;:20;;;20992:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;21072:21;21096:9;:17;21106:6;21096:17;;;;;;;;;;;;;;;;21072:41;;21145:6;21128:13;:23;;21120:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;21238:6;21222:13;:22;;;;:::i;:::-;21202:9;:17;21212:6;21202:17;;;;;;;;;;;;;;;:42;;;;21275:6;21251:9;:20;21261:9;21251:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;21312:9;21295:35;;21304:6;21295:35;;;21323:6;21295:35;;;;;;:::i;:::-;;;;;;;;20985:351;20878:458;;;:::o;22303:432::-;22402:1;22383:21;;:7;:21;;;22375:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22451:22;22476:9;:18;22486:7;22476:18;;;;;;;;;;;;;;;;22451:43;;22527:6;22509:14;:24;;22501:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22636:6;22619:14;:23;22598:9;:18;22608:7;22598:18;;;;;;;;;;;;;;;:44;;;;22672:6;22656:12;;:22;;;;;;;:::i;:::-;;;;;;;;22718:1;22692:37;;22701:7;22692:37;;;22722:6;22692:37;;;;;;:::i;:::-;;;;;;;;22368:367;22303:432;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:329::-;4375:6;4424:2;4412:9;4403:7;4399:23;4395:32;4392:119;;;4430:79;;:::i;:::-;4392:119;4550:1;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4521:117;4316:329;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:60::-;5109:3;5130:5;5123:12;;5081:60;;;:::o;5147:142::-;5197:9;5230:53;5248:34;5257:24;5275:5;5257:24;:::i;:::-;5248:34;:::i;:::-;5230:53;:::i;:::-;5217:66;;5147:142;;;:::o;5295:126::-;5345:9;5378:37;5409:5;5378:37;:::i;:::-;5365:50;;5295:126;;;:::o;5427:147::-;5498:9;5531:37;5562:5;5531:37;:::i;:::-;5518:50;;5427:147;;;:::o;5580:173::-;5688:58;5740:5;5688:58;:::i;:::-;5683:3;5676:71;5580:173;;:::o;5759:264::-;5873:4;5911:2;5900:9;5896:18;5888:26;;5924:92;6013:1;6002:9;5998:17;5989:6;5924:92;:::i;:::-;5759:264;;;;:::o;6029:329::-;6088:6;6137:2;6125:9;6116:7;6112:23;6108:32;6105:119;;;6143:79;;:::i;:::-;6105:119;6263:1;6288:53;6333:7;6324:6;6313:9;6309:22;6288:53;:::i;:::-;6278:63;;6234:117;6029:329;;;;:::o;6364:118::-;6451:24;6469:5;6451:24;:::i;:::-;6446:3;6439:37;6364:118;;:::o;6488:222::-;6581:4;6619:2;6608:9;6604:18;6596:26;;6632:71;6700:1;6689:9;6685:17;6676:6;6632:71;:::i;:::-;6488:222;;;;:::o;6716:77::-;6753:7;6782:5;6771:16;;6716:77;;;:::o;6799:122::-;6872:24;6890:5;6872:24;:::i;:::-;6865:5;6862:35;6852:63;;6911:1;6908;6901:12;6852:63;6799:122;:::o;6927:139::-;6973:5;7011:6;6998:20;6989:29;;7027:33;7054:5;7027:33;:::i;:::-;6927:139;;;;:::o;7072:474::-;7140:6;7148;7197:2;7185:9;7176:7;7172:23;7168:32;7165:119;;;7203:79;;:::i;:::-;7165:119;7323:1;7348:53;7393:7;7384:6;7373:9;7369:22;7348:53;:::i;:::-;7338:63;;7294:117;7450:2;7476:53;7521:7;7512:6;7501:9;7497:22;7476:53;:::i;:::-;7466:63;;7421:118;7072:474;;;;;:::o;7552:117::-;7661:1;7658;7651:12;7675:117;7784:1;7781;7774:12;7798:117;7907:1;7904;7897:12;7938:568;8011:8;8021:6;8071:3;8064:4;8056:6;8052:17;8048:27;8038:122;;8079:79;;:::i;:::-;8038:122;8192:6;8179:20;8169:30;;8222:18;8214:6;8211:30;8208:117;;;8244:79;;:::i;:::-;8208:117;8358:4;8350:6;8346:17;8334:29;;8412:3;8404:4;8396:6;8392:17;8382:8;8378:32;8375:41;8372:128;;;8419:79;;:::i;:::-;8372:128;7938:568;;;;;:::o;8512:559::-;8598:6;8606;8655:2;8643:9;8634:7;8630:23;8626:32;8623:119;;;8661:79;;:::i;:::-;8623:119;8809:1;8798:9;8794:17;8781:31;8839:18;8831:6;8828:30;8825:117;;;8861:79;;:::i;:::-;8825:117;8974:80;9046:7;9037:6;9026:9;9022:22;8974:80;:::i;:::-;8956:98;;;;8752:312;8512:559;;;;;:::o;9077:117::-;9186:1;9183;9176:12;9200:180;9248:77;9245:1;9238:88;9345:4;9342:1;9335:15;9369:4;9366:1;9359:15;9386:281;9469:27;9491:4;9469:27;:::i;:::-;9461:6;9457:40;9599:6;9587:10;9584:22;9563:18;9551:10;9548:34;9545:62;9542:88;;;9610:18;;:::i;:::-;9542:88;9650:10;9646:2;9639:22;9429:238;9386:281;;:::o;9673:129::-;9707:6;9734:20;;:::i;:::-;9724:30;;9763:33;9791:4;9783:6;9763:33;:::i;:::-;9673:129;;;:::o;9808:307::-;9869:4;9959:18;9951:6;9948:30;9945:56;;;9981:18;;:::i;:::-;9945:56;10019:29;10041:6;10019:29;:::i;:::-;10011:37;;10103:4;10097;10093:15;10085:23;;9808:307;;;:::o;10121:148::-;10219:6;10214:3;10209;10196:30;10260:1;10251:6;10246:3;10242:16;10235:27;10121:148;;;:::o;10275:423::-;10352:5;10377:65;10393:48;10434:6;10393:48;:::i;:::-;10377:65;:::i;:::-;10368:74;;10465:6;10458:5;10451:21;10503:4;10496:5;10492:16;10541:3;10532:6;10527:3;10523:16;10520:25;10517:112;;;10548:79;;:::i;:::-;10517:112;10638:54;10685:6;10680:3;10675;10638:54;:::i;:::-;10358:340;10275:423;;;;;:::o;10717:338::-;10772:5;10821:3;10814:4;10806:6;10802:17;10798:27;10788:122;;10829:79;;:::i;:::-;10788:122;10946:6;10933:20;10971:78;11045:3;11037:6;11030:4;11022:6;11018:17;10971:78;:::i;:::-;10962:87;;10778:277;10717:338;;;;:::o;11061:507::-;11129:6;11178:2;11166:9;11157:7;11153:23;11149:32;11146:119;;;11184:79;;:::i;:::-;11146:119;11332:1;11321:9;11317:17;11304:31;11362:18;11354:6;11351:30;11348:117;;;11384:79;;:::i;:::-;11348:117;11489:62;11543:7;11534:6;11523:9;11519:22;11489:62;:::i;:::-;11479:72;;11275:286;11061:507;;;;:::o;11574:474::-;11642:6;11650;11699:2;11687:9;11678:7;11674:23;11670:32;11667:119;;;11705:79;;:::i;:::-;11667:119;11825:1;11850:53;11895:7;11886:6;11875:9;11871:22;11850:53;:::i;:::-;11840:63;;11796:117;11952:2;11978:53;12023:7;12014:6;12003:9;11999:22;11978:53;:::i;:::-;11968:63;;11923:118;11574:474;;;;;:::o;12054:180::-;12102:77;12099:1;12092:88;12199:4;12196:1;12189:15;12223:4;12220:1;12213:15;12240:320;12284:6;12321:1;12315:4;12311:12;12301:22;;12368:1;12362:4;12358:12;12389:18;12379:81;;12445:4;12437:6;12433:17;12423:27;;12379:81;12507:2;12499:6;12496:14;12476:18;12473:38;12470:84;;12526:18;;:::i;:::-;12470:84;12291:269;12240:320;;;:::o;12566:442::-;12715:4;12753:2;12742:9;12738:18;12730:26;;12766:71;12834:1;12823:9;12819:17;12810:6;12766:71;:::i;:::-;12847:72;12915:2;12904:9;12900:18;12891:6;12847:72;:::i;:::-;12929;12997:2;12986:9;12982:18;12973:6;12929:72;:::i;:::-;12566:442;;;;;;:::o;13014:553::-;13191:4;13229:3;13218:9;13214:19;13206:27;;13243:71;13311:1;13300:9;13296:17;13287:6;13243:71;:::i;:::-;13324:72;13392:2;13381:9;13377:18;13368:6;13324:72;:::i;:::-;13406;13474:2;13463:9;13459:18;13450:6;13406:72;:::i;:::-;13488;13556:2;13545:9;13541:18;13532:6;13488:72;:::i;:::-;13014:553;;;;;;;:::o;13573:228::-;13713:34;13709:1;13701:6;13697:14;13690:58;13782:11;13777:2;13769:6;13765:15;13758:36;13573:228;:::o;13807:366::-;13949:3;13970:67;14034:2;14029:3;13970:67;:::i;:::-;13963:74;;14046:93;14135:3;14046:93;:::i;:::-;14164:2;14159:3;14155:12;14148:19;;13807:366;;;:::o;14179:419::-;14345:4;14383:2;14372:9;14368:18;14360:26;;14432:9;14426:4;14422:20;14418:1;14407:9;14403:17;14396:47;14460:131;14586:4;14460:131;:::i;:::-;14452:139;;14179:419;;;:::o;14604:180::-;14652:77;14649:1;14642:88;14749:4;14746:1;14739:15;14773:4;14770:1;14763:15;14790:194;14830:4;14850:20;14868:1;14850:20;:::i;:::-;14845:25;;14884:20;14902:1;14884:20;:::i;:::-;14879:25;;14928:1;14925;14921:9;14913:17;;14952:1;14946:4;14943:11;14940:37;;;14957:18;;:::i;:::-;14940:37;14790:194;;;;:::o;14990:180::-;15130:32;15126:1;15118:6;15114:14;15107:56;14990:180;:::o;15176:366::-;15318:3;15339:67;15403:2;15398:3;15339:67;:::i;:::-;15332:74;;15415:93;15504:3;15415:93;:::i;:::-;15533:2;15528:3;15524:12;15517:19;;15176:366;;;:::o;15548:419::-;15714:4;15752:2;15741:9;15737:18;15729:26;;15801:9;15795:4;15791:20;15787:1;15776:9;15772:17;15765:47;15829:131;15955:4;15829:131;:::i;:::-;15821:139;;15548:419;;;:::o;15973:181::-;16113:33;16109:1;16101:6;16097:14;16090:57;15973:181;:::o;16160:366::-;16302:3;16323:67;16387:2;16382:3;16323:67;:::i;:::-;16316:74;;16399:93;16488:3;16399:93;:::i;:::-;16517:2;16512:3;16508:12;16501:19;;16160:366;;;:::o;16532:419::-;16698:4;16736:2;16725:9;16721:18;16713:26;;16785:9;16779:4;16775:20;16771:1;16760:9;16756:17;16749:47;16813:131;16939:4;16813:131;:::i;:::-;16805:139;;16532:419;;;:::o;16957:191::-;16997:3;17016:20;17034:1;17016:20;:::i;:::-;17011:25;;17050:20;17068:1;17050:20;:::i;:::-;17045:25;;17093:1;17090;17086:9;17079:16;;17114:3;17111:1;17108:10;17105:36;;;17121:18;;:::i;:::-;17105:36;16957:191;;;;:::o;17154:332::-;17275:4;17313:2;17302:9;17298:18;17290:26;;17326:71;17394:1;17383:9;17379:17;17370:6;17326:71;:::i;:::-;17407:72;17475:2;17464:9;17460:18;17451:6;17407:72;:::i;:::-;17154:332;;;;;:::o;17492:177::-;17632:29;17628:1;17620:6;17616:14;17609:53;17492:177;:::o;17675:366::-;17817:3;17838:67;17902:2;17897:3;17838:67;:::i;:::-;17831:74;;17914:93;18003:3;17914:93;:::i;:::-;18032:2;18027:3;18023:12;18016:19;;17675:366;;;:::o;18047:419::-;18213:4;18251:2;18240:9;18236:18;18228:26;;18300:9;18294:4;18290:20;18286:1;18275:9;18271:17;18264:47;18328:131;18454:4;18328:131;:::i;:::-;18320:139;;18047:419;;;:::o;18472:223::-;18612:34;18608:1;18600:6;18596:14;18589:58;18681:6;18676:2;18668:6;18664:15;18657:31;18472:223;:::o;18701:366::-;18843:3;18864:67;18928:2;18923:3;18864:67;:::i;:::-;18857:74;;18940:93;19029:3;18940:93;:::i;:::-;19058:2;19053:3;19049:12;19042:19;;18701:366;;;:::o;19073:419::-;19239:4;19277:2;19266:9;19262:18;19254:26;;19326:9;19320:4;19316:20;19312:1;19301:9;19297:17;19290:47;19354:131;19480:4;19354:131;:::i;:::-;19346:139;;19073:419;;;:::o;19498:180::-;19638:32;19634:1;19626:6;19622:14;19615:56;19498:180;:::o;19684:366::-;19826:3;19847:67;19911:2;19906:3;19847:67;:::i;:::-;19840:74;;19923:93;20012:3;19923:93;:::i;:::-;20041:2;20036:3;20032:12;20025:19;;19684:366;;;:::o;20056:419::-;20222:4;20260:2;20249:9;20245:18;20237:26;;20309:9;20303:4;20299:20;20295:1;20284:9;20280:17;20273:47;20337:131;20463:4;20337:131;:::i;:::-;20329:139;;20056:419;;;:::o;20481:173::-;20621:25;20617:1;20609:6;20605:14;20598:49;20481:173;:::o;20660:366::-;20802:3;20823:67;20887:2;20882:3;20823:67;:::i;:::-;20816:74;;20899:93;20988:3;20899:93;:::i;:::-;21017:2;21012:3;21008:12;21001:19;;20660:366;;;:::o;21032:419::-;21198:4;21236:2;21225:9;21221:18;21213:26;;21285:9;21279:4;21275:20;21271:1;21260:9;21256:17;21249:47;21313:131;21439:4;21313:131;:::i;:::-;21305:139;;21032:419;;;:::o;21457:180::-;21505:77;21502:1;21495:88;21602:4;21599:1;21592:15;21626:4;21623:1;21616:15;21643:225;21783:34;21779:1;21771:6;21767:14;21760:58;21852:8;21847:2;21839:6;21835:15;21828:33;21643:225;:::o;21874:366::-;22016:3;22037:67;22101:2;22096:3;22037:67;:::i;:::-;22030:74;;22113:93;22202:3;22113:93;:::i;:::-;22231:2;22226:3;22222:12;22215:19;;21874:366;;;:::o;22246:419::-;22412:4;22450:2;22439:9;22435:18;22427:26;;22499:9;22493:4;22489:20;22485:1;22474:9;22470:17;22463:47;22527:131;22653:4;22527:131;:::i;:::-;22519:139;;22246:419;;;:::o;22671:178::-;22811:30;22807:1;22799:6;22795:14;22788:54;22671:178;:::o;22855:366::-;22997:3;23018:67;23082:2;23077:3;23018:67;:::i;:::-;23011:74;;23094:93;23183:3;23094:93;:::i;:::-;23212:2;23207:3;23203:12;23196:19;;22855:366;;;:::o;23227:419::-;23393:4;23431:2;23420:9;23416:18;23408:26;;23480:9;23474:4;23470:20;23466:1;23455:9;23451:17;23444:47;23508:131;23634:4;23508:131;:::i;:::-;23500:139;;23227:419;;;:::o;23652:179::-;23792:31;23788:1;23780:6;23776:14;23769:55;23652:179;:::o;23837:366::-;23979:3;24000:67;24064:2;24059:3;24000:67;:::i;:::-;23993:74;;24076:93;24165:3;24076:93;:::i;:::-;24194:2;24189:3;24185:12;24178:19;;23837:366;;;:::o;24209:419::-;24375:4;24413:2;24402:9;24398:18;24390:26;;24462:9;24456:4;24452:20;24448:1;24437:9;24433:17;24426:47;24490:131;24616:4;24490:131;:::i;:::-;24482:139;;24209:419;;;:::o;24634:175::-;24774:27;24770:1;24762:6;24758:14;24751:51;24634:175;:::o;24815:366::-;24957:3;24978:67;25042:2;25037:3;24978:67;:::i;:::-;24971:74;;25054:93;25143:3;25054:93;:::i;:::-;25172:2;25167:3;25163:12;25156:19;;24815:366;;;:::o;25187:419::-;25353:4;25391:2;25380:9;25376:18;25368:26;;25440:9;25434:4;25430:20;25426:1;25415:9;25411:17;25404:47;25468:131;25594:4;25468:131;:::i;:::-;25460:139;;25187:419;;;:::o;25612:169::-;25752:21;25748:1;25740:6;25736:14;25729:45;25612:169;:::o;25787:366::-;25929:3;25950:67;26014:2;26009:3;25950:67;:::i;:::-;25943:74;;26026:93;26115:3;26026:93;:::i;:::-;26144:2;26139:3;26135:12;26128:19;;25787:366;;;:::o;26159:419::-;26325:4;26363:2;26352:9;26348:18;26340:26;;26412:9;26406:4;26402:20;26398:1;26387:9;26383:17;26376:47;26440:131;26566:4;26440:131;:::i;:::-;26432:139;;26159:419;;;:::o;26584:182::-;26724:34;26720:1;26712:6;26708:14;26701:58;26584:182;:::o;26772:366::-;26914:3;26935:67;26999:2;26994:3;26935:67;:::i;:::-;26928:74;;27011:93;27100:3;27011:93;:::i;:::-;27129:2;27124:3;27120:12;27113:19;;26772:366;;;:::o;27144:419::-;27310:4;27348:2;27337:9;27333:18;27325:26;;27397:9;27391:4;27387:20;27383:1;27372:9;27368:17;27361:47;27425:131;27551:4;27425:131;:::i;:::-;27417:139;;27144:419;;;:::o;27569:178::-;27709:30;27705:1;27697:6;27693:14;27686:54;27569:178;:::o;27753:366::-;27895:3;27916:67;27980:2;27975:3;27916:67;:::i;:::-;27909:74;;27992:93;28081:3;27992:93;:::i;:::-;28110:2;28105:3;28101:12;28094:19;;27753:366;;;:::o;28125:419::-;28291:4;28329:2;28318:9;28314:18;28306:26;;28378:9;28372:4;28368:20;28364:1;28353:9;28349:17;28342:47;28406:131;28532:4;28406:131;:::i;:::-;28398:139;;28125:419;;;:::o;28550:225::-;28690:34;28686:1;28678:6;28674:14;28667:58;28759:8;28754:2;28746:6;28742:15;28735:33;28550:225;:::o;28781:366::-;28923:3;28944:67;29008:2;29003:3;28944:67;:::i;:::-;28937:74;;29020:93;29109:3;29020:93;:::i;:::-;29138:2;29133:3;29129:12;29122:19;;28781:366;;;:::o;29153:419::-;29319:4;29357:2;29346:9;29342:18;29334:26;;29406:9;29400:4;29396:20;29392:1;29381:9;29377:17;29370:47;29434:131;29560:4;29434:131;:::i;:::-;29426:139;;29153:419;;;:::o;29578:226::-;29718:34;29714:1;29706:6;29702:14;29695:58;29787:9;29782:2;29774:6;29770:15;29763:34;29578:226;:::o;29810:366::-;29952:3;29973:67;30037:2;30032:3;29973:67;:::i;:::-;29966:74;;30049:93;30138:3;30049:93;:::i;:::-;30167:2;30162:3;30158:12;30151:19;;29810:366;;;:::o;30182:419::-;30348:4;30386:2;30375:9;30371:18;30363:26;;30435:9;30429:4;30425:20;30421:1;30410:9;30406:17;30399:47;30463:131;30589:4;30463:131;:::i;:::-;30455:139;;30182:419;;;:::o;30607:220::-;30747:34;30743:1;30735:6;30731:14;30724:58;30816:3;30811:2;30803:6;30799:15;30792:28;30607:220;:::o;30833:366::-;30975:3;30996:67;31060:2;31055:3;30996:67;:::i;:::-;30989:74;;31072:93;31161:3;31072:93;:::i;:::-;31190:2;31185:3;31181:12;31174:19;;30833:366;;;:::o;31205:419::-;31371:4;31409:2;31398:9;31394:18;31386:26;;31458:9;31452:4;31448:20;31444:1;31433:9;31429:17;31422:47;31486:131;31612:4;31486:131;:::i;:::-;31478:139;;31205:419;;;:::o;31630:221::-;31770:34;31766:1;31758:6;31754:14;31747:58;31839:4;31834:2;31826:6;31822:15;31815:29;31630:221;:::o;31857:366::-;31999:3;32020:67;32084:2;32079:3;32020:67;:::i;:::-;32013:74;;32096:93;32185:3;32096:93;:::i;:::-;32214:2;32209:3;32205:12;32198:19;;31857:366;;;:::o;32229:419::-;32395:4;32433:2;32422:9;32418:18;32410:26;;32482:9;32476:4;32472:20;32468:1;32457:9;32453:17;32446:47;32510:131;32636:4;32510:131;:::i;:::-;32502:139;;32229:419;;;:::o
Swarm Source
ipfs://3a63dfce843ccecd17944aec6369ce6d11453c848dfbdf64c1d086f8c8de7a9d
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)