Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 1 from a total of 1 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 21871018 | 353 days ago | IN | 0 ETH | 0.00005775 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
KiraNexus
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-02-18
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
// File: @openzeppelin/contracts/utils/Context.sol
/*
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
// File: @openzeppelin/contracts/token/ERC20/IERC20.sol
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Returns the amount of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the amount of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves `amount` tokens from the caller's account to `recipient`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(
address recipient,
uint256 amount
) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(
address owner,
address spender
) external view returns (uint256);
/**
* @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 amount) external returns (bool);
/**
* @dev Moves `amount` tokens from `sender` to `recipient` using the
* allowance mechanism. `amount` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
// File: @openzeppelin/contracts/access/Ownable.sol
/**
* @dev Contract module which provides a basic access control mechanism, where
* there is an account (an owner) that can be granted exclusive access to
* specific functions.
*
*
* This module is used through inheritance. It will make available the modifier
* `onlyOwner`, which can be applied to your functions to restrict their use to
* the owner.
*/
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
/**
* @dev Initializes the contract setting the deployer with given initialOwner.
*/
constructor(address initialOwner) {
_setOwner(initialOwner);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view virtual returns (address) {
return _owner;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
/**
* @dev Leaves the contract without owner. It will not be possible to call
* `onlyOwner` functions anymore. Can only be called by the current owner.
*
* NOTE: Renouncing ownership will leave the contract without an owner,
* thereby removing any functionality that is only available to the owner.
*/
function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0));
}
/**
* @dev Transfers ownership of the contract to a new account (`newOwner`).
* Can only be called by the current owner.
*/
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
_setOwner(newOwner);
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
// File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol
/**
* @dev Interface for the optional metadata functions from the ERC20 standard.
*
* _Available since v4.1._
*/
interface IERC20Metadata is IERC20 {
/**
* @dev Returns the name of the token.
*/
function name() external view returns (string memory);
/**
* @dev Returns the symbol of the token.
*/
function symbol() external view returns (string memory);
/**
* @dev Returns the decimals places of the token.
*/
function decimals() external view returns (uint8);
}
// File: @openzeppelin/contracts/token/ERC20/ERC20.sol
/**
* @dev Implementation of the {IERC20} interface.
*
* This implementation is agnostic to the way tokens are created. This means
* that a supply mechanism has to be added in a derived contract using {_mint}.
* For a generic mechanism see {ERC20PresetMinterPauser}.
*
* TIP: For a detailed writeup see our guide
* https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How
* to implement supply mechanisms].
*
* We have followed general OpenZeppelin guidelines: functions revert instead
* of returning "false" on failure. This behavior is nonetheless conventional
* and does not conflict with the expectations of ERC20 applications.
*
* Additionally, an {Approval} event is emitted on calls to {transferFrom}.
* This allows applications to reconstruct the allowance for all accounts just
* by listening to said events. Other implementations of the EIP may not emit
* these events, as it isn't required by the specification.
*
* Finally, the non-standard {decreaseAllowance} and {increaseAllowance}
* functions have been added to mitigate the well-known issues around setting
* allowances. See {IERC20-approve}.
*/
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
/**
* @dev Sets the values for {name} and {symbol}.
*
* The default value of {decimals} is 18. To select a different value for
* {decimals} you should overload it.
*
* All two of these values are immutable: they can only be set once during
* construction.
*/
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual override returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
/**
* @dev Returns the number of decimals used to get its user representation.
* For example, if `decimals` equals `2`, a balance of `505` tokens should
* be displayed to a user as `5,05` (`505 / 10 ** 2`).
*
* Tokens usually opt for a value of 18, imitating the relationship between
* Ether and Wei. This is the value {ERC20} uses, unless this function is
* overridden;
*
* NOTE: This information is only used for _display_ purposes: it in
* no way affects any of the arithmetic of the contract, including
* {IERC20-balanceOf} and {IERC20-transfer}.
*/
function decimals() public view virtual override returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(
address account
) public view virtual override returns (uint256) {
return _balances[account];
}
/**
* @dev See {IERC20-transfer}.
*
* Requirements:
*
* - `recipient` cannot be the zero address.
* - the caller must have a balance of at least `amount`.
*/
function transfer(
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(_msgSender(), recipient, amount);
return true;
}
/**
* @dev See {IERC20-allowance}.
*/
function allowance(
address owner,
address spender
) public view virtual override returns (uint256) {
return _allowances[owner][spender];
}
/**
* @dev See {IERC20-approve}.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function approve(
address spender,
uint256 amount
) public virtual override returns (bool) {
_approve(_msgSender(), spender, amount);
return true;
}
/**
* @dev See {IERC20-transferFrom}.
*
* Emits an {Approval} event indicating the updated allowance. This is not
* required by the EIP. See the note at the beginning of {ERC20}.
*
* Requirements:
*
* - `sender` and `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
* - the caller must have allowance for `sender`'s tokens of at least
* `amount`.
*/
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(
currentAllowance >= amount,
"ERC20: transfer amount exceeds allowance"
);
_transfer(sender, recipient, amount);
_approve(sender, _msgSender(), currentAllowance - amount);
return true;
}
/**
* @dev Atomically increases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
*/
function increaseAllowance(
address spender,
uint256 addedValue
) public virtual returns (bool) {
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender] + addedValue
);
return true;
}
/**
* @dev Atomically decreases the allowance granted to `spender` by the caller.
*
* This is an alternative to {approve} that can be used as a mitigation for
* problems described in {IERC20-approve}.
*
* Emits an {Approval} event indicating the updated allowance.
*
* Requirements:
*
* - `spender` cannot be the zero address.
* - `spender` must have allowance for the caller of at least
* `subtractedValue`.
*/
function decreaseAllowance(
address spender,
uint256 subtractedValue
) public virtual returns (bool) {
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(
currentAllowance >= subtractedValue,
"ERC20: decreased allowance below zero"
);
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
return true;
}
/**
* @dev Moves tokens `amount` from `sender` to `recipient`.
*
* This is internal function is equivalent to {transfer}, and can be used to
* e.g. implement automatic token fees, slashing mechanisms, etc.
*
* Emits a {Transfer} event.
*
* Requirements:
*
* - `sender` cannot be the zero address.
* - `recipient` cannot be the zero address.
* - `sender` must have a balance of at least `amount`.
*/
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
uint256 senderBalance = _balances[sender];
require(
senderBalance >= amount,
"ERC20: transfer amount exceeds balance"
);
_balances[sender] = senderBalance - amount;
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
}
/** @dev Creates `amount` tokens and assigns them to `account`, increasing
* the total supply.
*
* Emits a {Transfer} event with `from` set to the zero address.
*
* Requirements:
*
* - `to` cannot be the zero address.
*/
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
}
/**
* @dev Destroys `amount` tokens from `account`, reducing the
* total supply.
*
* Emits a {Transfer} event with `to` set to the zero address.
*
* Requirements:
*
* - `account` cannot be the zero address.
* - `account` must have at least `amount` tokens.
*/
function _burn(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: burn from the zero address");
_beforeTokenTransfer(account, address(0), amount);
uint256 accountBalance = _balances[account];
require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
_balances[account] = accountBalance - amount;
_totalSupply -= amount;
emit Transfer(account, address(0), amount);
}
/**
* @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.
*
* This internal function is equivalent to `approve`, and can be used to
* e.g. set automatic allowances for certain subsystems, etc.
*
* Emits an {Approval} event.
*
* Requirements:
*
* - `owner` cannot be the zero address.
* - `spender` cannot be the zero address.
*/
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
/**
* @dev Hook that is called before any transfer of tokens. This includes
* minting and burning.
*
* Calling conditions:
*
* - when `from` and `to` are both non-zero, `amount` of `from`'s tokens
* will be to transferred to `to`.
* - when `from` is zero, `amount` tokens will be minted for `to`.
* - when `to` is zero, `amount` of `from`'s tokens will be burned.
* - `from` and `to` are never both zero.
*
* To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].
*/
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
contract KiraNexus is ERC20, Ownable {
bool public trading = false;
mapping(address => bool) public whitelist;
constructor() ERC20("Kira Nexus", "KLAI") Ownable(msg.sender) {
_mint(msg.sender, 10_000_000_000 * 10 ** decimals());
whitelist[msg.sender] = true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal override {
require(
trading == true ||
whitelist[sender] ||
whitelist[recipient] ||
whitelist[msg.sender],
"Trading not enabled"
);
super._transfer(sender, recipient, amount);
}
function setTrading(bool _trading) external onlyOwner {
require(trading == false, "Trading already enabled");
trading = _trading;
}
function updateWhitelist(
address _address,
bool _status
) external onlyOwner {
whitelist[_address] = _status;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"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":[],"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":[{"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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_trading","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"trading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"updateWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60806040525f600560146101000a81548160ff021916908315150217905550348015610029575f80fd5b50336040518060400160405280600a81526020017f4b697261204e65787573000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4b4c41490000000000000000000000000000000000000000000000000000000081525081600390816100a691906105b8565b5080600490816100b691906105b8565b5050506100c88161015c60201b60201c565b50610102336100db61021f60201b60201c565b600a6100e791906107ef565b6402540be4006100f79190610839565b61022760201b60201c565b600160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061094d565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610295576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161028c906108d4565b60405180910390fd5b6102a65f838361037960201b60201c565b8060025f8282546102b791906108f2565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461030991906108f2565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161036d9190610934565b60405180910390a35050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806103f957607f821691505b60208210810361040c5761040b6103b5565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830261046e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610433565b6104788683610433565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6104bc6104b76104b284610490565b610499565b610490565b9050919050565b5f819050919050565b6104d5836104a2565b6104e96104e1826104c3565b84845461043f565b825550505050565b5f90565b6104fd6104f1565b6105088184846104cc565b505050565b5b8181101561052b576105205f826104f5565b60018101905061050e565b5050565b601f8211156105705761054181610412565b61054a84610424565b81016020851015610559578190505b61056d61056585610424565b83018261050d565b50505b505050565b5f82821c905092915050565b5f6105905f1984600802610575565b1980831691505092915050565b5f6105a88383610581565b9150826002028217905092915050565b6105c18261037e565b67ffffffffffffffff8111156105da576105d9610388565b5b6105e482546103e2565b6105ef82828561052f565b5f60209050601f831160018114610620575f841561060e578287015190505b610618858261059d565b86555061067f565b601f19841661062e86610412565b5f5b8281101561065557848901518255600182019150602085019450602081019050610630565b86831015610672578489015161066e601f891682610581565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610709578086048111156106e5576106e4610687565b5b60018516156106f45780820291505b8081029050610702856106b4565b94506106c9565b94509492505050565b5f8261072157600190506107dc565b8161072e575f90506107dc565b8160018114610744576002811461074e5761077d565b60019150506107dc565b60ff8411156107605761075f610687565b5b8360020a91508482111561077757610776610687565b5b506107dc565b5060208310610133831016604e8410600b84101617156107b25782820a9050838111156107ad576107ac610687565b5b6107dc565b6107bf84848460016106c0565b925090508184048111156107d6576107d5610687565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6107f982610490565b9150610804836107e3565b92506108317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610712565b905092915050565b5f61084382610490565b915061084e83610490565b925082820261085c81610490565b9150828204841483151761087357610872610687565b5b5092915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f6108be601f8361087a565b91506108c98261088a565b602082019050919050565b5f6020820190508181035f8301526108eb816108b2565b9050919050565b5f6108fc82610490565b915061090783610490565b925082820190508082111561091f5761091e610687565b5b92915050565b61092e81610490565b82525050565b5f6020820190506109475f830184610925565b92915050565b611c928061095a5f395ff3fe608060405234801561000f575f80fd5b5060043610610114575f3560e01c80638da5cb5b116100a0578063a457c2d71161006f578063a457c2d7146102e0578063a9059cbb14610310578063dd62ed3e14610340578063ec44acf214610370578063f2fde38b1461038e57610114565b80638da5cb5b146102585780638f70ccf71461027657806395d89b41146102925780639b19251a146102b057610114565b806323b872dd116100e757806323b872dd146101a0578063313ce567146101d057806339509351146101ee57806370a082311461021e578063715018a61461024e57610114565b806306fdde0314610118578063095ea7b3146101365780630d392cd91461016657806318160ddd14610182575b5f80fd5b6101206103aa565b60405161012d91906112d2565b60405180910390f35b610150600480360381019061014b9190611383565b61043a565b60405161015d91906113db565b60405180910390f35b610180600480360381019061017b919061141e565b610457565b005b61018a61052b565b604051610197919061146b565b60405180910390f35b6101ba60048036038101906101b59190611484565b610534565b6040516101c791906113db565b60405180910390f35b6101d861062f565b6040516101e591906114ef565b60405180910390f35b61020860048036038101906102039190611383565b610637565b60405161021591906113db565b60405180910390f35b61023860048036038101906102339190611508565b6106de565b604051610245919061146b565b60405180910390f35b610256610723565b005b6102606107aa565b60405161026d9190611542565b60405180910390f35b610290600480360381019061028b919061155b565b6107d2565b005b61029a6108c0565b6040516102a791906112d2565b60405180910390f35b6102ca60048036038101906102c59190611508565b610950565b6040516102d791906113db565b60405180910390f35b6102fa60048036038101906102f59190611383565b61096d565b60405161030791906113db565b60405180910390f35b61032a60048036038101906103259190611383565b610a5c565b60405161033791906113db565b60405180910390f35b61035a60048036038101906103559190611586565b610a79565b604051610367919061146b565b60405180910390f35b610378610afb565b60405161038591906113db565b60405180910390f35b6103a860048036038101906103a39190611508565b610b0e565b005b6060600380546103b9906115f1565b80601f01602080910402602001604051908101604052809291908181526020018280546103e5906115f1565b80156104305780601f1061040757610100808354040283529160200191610430565b820191905f5260205f20905b81548152906001019060200180831161041357829003601f168201915b5050505050905090565b5f61044d610446610c04565b8484610c0b565b6001905092915050565b61045f610c04565b73ffffffffffffffffffffffffffffffffffffffff1661047d6107aa565b73ffffffffffffffffffffffffffffffffffffffff16146104d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ca9061166b565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f600254905090565b5f8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61057c610c04565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156105fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f2906116f9565b60405180910390fd5b610606858585610dce565b61062385610612610c04565b858461061e9190611744565b610c0b565b60019150509392505050565b5f6012905090565b5f6106d4610643610c04565b848460015f610650610c04565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106cf9190611777565b610c0b565b6001905092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61072b610c04565b73ffffffffffffffffffffffffffffffffffffffff166107496107aa565b73ffffffffffffffffffffffffffffffffffffffff161461079f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107969061166b565b60405180910390fd5b6107a85f610f27565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6107da610c04565b73ffffffffffffffffffffffffffffffffffffffff166107f86107aa565b73ffffffffffffffffffffffffffffffffffffffff161461084e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108459061166b565b60405180910390fd5b5f1515600560149054906101000a900460ff161515146108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a906117f4565b60405180910390fd5b80600560146101000a81548160ff02191690831515021790555050565b6060600480546108cf906115f1565b80601f01602080910402602001604051908101604052809291908181526020018280546108fb906115f1565b80156109465780601f1061091d57610100808354040283529160200191610946565b820191905f5260205f20905b81548152906001019060200180831161092957829003601f168201915b5050505050905090565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f8060015f61097a610c04565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2b90611882565b60405180910390fd5b610a51610a3f610c04565b858584610a4c9190611744565b610c0b565b600191505092915050565b5f610a6f610a68610c04565b8484610dce565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600560149054906101000a900460ff1681565b610b16610c04565b73ffffffffffffffffffffffffffffffffffffffff16610b346107aa565b73ffffffffffffffffffffffffffffffffffffffff1614610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b819061166b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef90611910565b60405180910390fd5b610c0181610f27565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c709061199e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90611a2c565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dc1919061146b565b60405180910390a3505050565b60011515600560149054906101000a900460ff1615151480610e36575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610e87575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610ed8575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90611a94565b60405180910390fd5b610f22838383610fea565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104f90611b22565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90611bb0565b60405180910390fd5b6110d183838361125d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90611c3e565b60405180910390fd5b81816111609190611744565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111eb9190611777565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161124f919061146b565b60405180910390a350505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6112a482611262565b6112ae818561126c565b93506112be81856020860161127c565b6112c78161128a565b840191505092915050565b5f6020820190508181035f8301526112ea818461129a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61131f826112f6565b9050919050565b61132f81611315565b8114611339575f80fd5b50565b5f8135905061134a81611326565b92915050565b5f819050919050565b61136281611350565b811461136c575f80fd5b50565b5f8135905061137d81611359565b92915050565b5f8060408385031215611399576113986112f2565b5b5f6113a68582860161133c565b92505060206113b78582860161136f565b9150509250929050565b5f8115159050919050565b6113d5816113c1565b82525050565b5f6020820190506113ee5f8301846113cc565b92915050565b6113fd816113c1565b8114611407575f80fd5b50565b5f81359050611418816113f4565b92915050565b5f8060408385031215611434576114336112f2565b5b5f6114418582860161133c565b92505060206114528582860161140a565b9150509250929050565b61146581611350565b82525050565b5f60208201905061147e5f83018461145c565b92915050565b5f805f6060848603121561149b5761149a6112f2565b5b5f6114a88682870161133c565b93505060206114b98682870161133c565b92505060406114ca8682870161136f565b9150509250925092565b5f60ff82169050919050565b6114e9816114d4565b82525050565b5f6020820190506115025f8301846114e0565b92915050565b5f6020828403121561151d5761151c6112f2565b5b5f61152a8482850161133c565b91505092915050565b61153c81611315565b82525050565b5f6020820190506115555f830184611533565b92915050565b5f602082840312156115705761156f6112f2565b5b5f61157d8482850161140a565b91505092915050565b5f806040838503121561159c5761159b6112f2565b5b5f6115a98582860161133c565b92505060206115ba8582860161133c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061160857607f821691505b60208210810361161b5761161a6115c4565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61165560208361126c565b915061166082611621565b602082019050919050565b5f6020820190508181035f83015261168281611649565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6116e360288361126c565b91506116ee82611689565b604082019050919050565b5f6020820190508181035f830152611710816116d7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61174e82611350565b915061175983611350565b925082820390508181111561177157611770611717565b5b92915050565b5f61178182611350565b915061178c83611350565b92508282019050808211156117a4576117a3611717565b5b92915050565b7f54726164696e6720616c726561647920656e61626c65640000000000000000005f82015250565b5f6117de60178361126c565b91506117e9826117aa565b602082019050919050565b5f6020820190508181035f83015261180b816117d2565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61186c60258361126c565b915061187782611812565b604082019050919050565b5f6020820190508181035f83015261189981611860565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6118fa60268361126c565b9150611905826118a0565b604082019050919050565b5f6020820190508181035f830152611927816118ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61198860248361126c565b91506119938261192e565b604082019050919050565b5f6020820190508181035f8301526119b58161197c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611a1660228361126c565b9150611a21826119bc565b604082019050919050565b5f6020820190508181035f830152611a4381611a0a565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f611a7e60138361126c565b9150611a8982611a4a565b602082019050919050565b5f6020820190508181035f830152611aab81611a72565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611b0c60258361126c565b9150611b1782611ab2565b604082019050919050565b5f6020820190508181035f830152611b3981611b00565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611b9a60238361126c565b9150611ba582611b40565b604082019050919050565b5f6020820190508181035f830152611bc781611b8e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611c2860268361126c565b9150611c3382611bce565b604082019050919050565b5f6020820190508181035f830152611c5581611c1c565b905091905056fea264697066735822122084e4b7043e76c85cc440630567e9143c4d6e0cf575f62f0e1cc4b236468dd9bc64736f6c634300081a0033
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610114575f3560e01c80638da5cb5b116100a0578063a457c2d71161006f578063a457c2d7146102e0578063a9059cbb14610310578063dd62ed3e14610340578063ec44acf214610370578063f2fde38b1461038e57610114565b80638da5cb5b146102585780638f70ccf71461027657806395d89b41146102925780639b19251a146102b057610114565b806323b872dd116100e757806323b872dd146101a0578063313ce567146101d057806339509351146101ee57806370a082311461021e578063715018a61461024e57610114565b806306fdde0314610118578063095ea7b3146101365780630d392cd91461016657806318160ddd14610182575b5f80fd5b6101206103aa565b60405161012d91906112d2565b60405180910390f35b610150600480360381019061014b9190611383565b61043a565b60405161015d91906113db565b60405180910390f35b610180600480360381019061017b919061141e565b610457565b005b61018a61052b565b604051610197919061146b565b60405180910390f35b6101ba60048036038101906101b59190611484565b610534565b6040516101c791906113db565b60405180910390f35b6101d861062f565b6040516101e591906114ef565b60405180910390f35b61020860048036038101906102039190611383565b610637565b60405161021591906113db565b60405180910390f35b61023860048036038101906102339190611508565b6106de565b604051610245919061146b565b60405180910390f35b610256610723565b005b6102606107aa565b60405161026d9190611542565b60405180910390f35b610290600480360381019061028b919061155b565b6107d2565b005b61029a6108c0565b6040516102a791906112d2565b60405180910390f35b6102ca60048036038101906102c59190611508565b610950565b6040516102d791906113db565b60405180910390f35b6102fa60048036038101906102f59190611383565b61096d565b60405161030791906113db565b60405180910390f35b61032a60048036038101906103259190611383565b610a5c565b60405161033791906113db565b60405180910390f35b61035a60048036038101906103559190611586565b610a79565b604051610367919061146b565b60405180910390f35b610378610afb565b60405161038591906113db565b60405180910390f35b6103a860048036038101906103a39190611508565b610b0e565b005b6060600380546103b9906115f1565b80601f01602080910402602001604051908101604052809291908181526020018280546103e5906115f1565b80156104305780601f1061040757610100808354040283529160200191610430565b820191905f5260205f20905b81548152906001019060200180831161041357829003601f168201915b5050505050905090565b5f61044d610446610c04565b8484610c0b565b6001905092915050565b61045f610c04565b73ffffffffffffffffffffffffffffffffffffffff1661047d6107aa565b73ffffffffffffffffffffffffffffffffffffffff16146104d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ca9061166b565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f600254905090565b5f8060015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61057c610c04565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156105fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f2906116f9565b60405180910390fd5b610606858585610dce565b61062385610612610c04565b858461061e9190611744565b610c0b565b60019150509392505050565b5f6012905090565b5f6106d4610643610c04565b848460015f610650610c04565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106cf9190611777565b610c0b565b6001905092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61072b610c04565b73ffffffffffffffffffffffffffffffffffffffff166107496107aa565b73ffffffffffffffffffffffffffffffffffffffff161461079f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107969061166b565b60405180910390fd5b6107a85f610f27565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6107da610c04565b73ffffffffffffffffffffffffffffffffffffffff166107f86107aa565b73ffffffffffffffffffffffffffffffffffffffff161461084e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108459061166b565b60405180910390fd5b5f1515600560149054906101000a900460ff161515146108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a906117f4565b60405180910390fd5b80600560146101000a81548160ff02191690831515021790555050565b6060600480546108cf906115f1565b80601f01602080910402602001604051908101604052809291908181526020018280546108fb906115f1565b80156109465780601f1061091d57610100808354040283529160200191610946565b820191905f5260205f20905b81548152906001019060200180831161092957829003601f168201915b5050505050905090565b6006602052805f5260405f205f915054906101000a900460ff1681565b5f8060015f61097a610c04565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2b90611882565b60405180910390fd5b610a51610a3f610c04565b858584610a4c9190611744565b610c0b565b600191505092915050565b5f610a6f610a68610c04565b8484610dce565b6001905092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600560149054906101000a900460ff1681565b610b16610c04565b73ffffffffffffffffffffffffffffffffffffffff16610b346107aa565b73ffffffffffffffffffffffffffffffffffffffff1614610b8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b819061166b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef90611910565b60405180910390fd5b610c0181610f27565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c709061199e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ce7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cde90611a2c565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610dc1919061146b565b60405180910390a3505050565b60011515600560149054906101000a900460ff1615151480610e36575060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610e87575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80610ed8575060065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90611a94565b60405180910390fd5b610f22838383610fea565b505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611058576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104f90611b22565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bd90611bb0565b60405180910390fd5b6110d183838361125d565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114b90611c3e565b60405180910390fd5b81816111609190611744565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546111eb9190611777565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161124f919061146b565b60405180910390a350505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6112a482611262565b6112ae818561126c565b93506112be81856020860161127c565b6112c78161128a565b840191505092915050565b5f6020820190508181035f8301526112ea818461129a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61131f826112f6565b9050919050565b61132f81611315565b8114611339575f80fd5b50565b5f8135905061134a81611326565b92915050565b5f819050919050565b61136281611350565b811461136c575f80fd5b50565b5f8135905061137d81611359565b92915050565b5f8060408385031215611399576113986112f2565b5b5f6113a68582860161133c565b92505060206113b78582860161136f565b9150509250929050565b5f8115159050919050565b6113d5816113c1565b82525050565b5f6020820190506113ee5f8301846113cc565b92915050565b6113fd816113c1565b8114611407575f80fd5b50565b5f81359050611418816113f4565b92915050565b5f8060408385031215611434576114336112f2565b5b5f6114418582860161133c565b92505060206114528582860161140a565b9150509250929050565b61146581611350565b82525050565b5f60208201905061147e5f83018461145c565b92915050565b5f805f6060848603121561149b5761149a6112f2565b5b5f6114a88682870161133c565b93505060206114b98682870161133c565b92505060406114ca8682870161136f565b9150509250925092565b5f60ff82169050919050565b6114e9816114d4565b82525050565b5f6020820190506115025f8301846114e0565b92915050565b5f6020828403121561151d5761151c6112f2565b5b5f61152a8482850161133c565b91505092915050565b61153c81611315565b82525050565b5f6020820190506115555f830184611533565b92915050565b5f602082840312156115705761156f6112f2565b5b5f61157d8482850161140a565b91505092915050565b5f806040838503121561159c5761159b6112f2565b5b5f6115a98582860161133c565b92505060206115ba8582860161133c565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061160857607f821691505b60208210810361161b5761161a6115c4565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61165560208361126c565b915061166082611621565b602082019050919050565b5f6020820190508181035f83015261168281611649565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6116e360288361126c565b91506116ee82611689565b604082019050919050565b5f6020820190508181035f830152611710816116d7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61174e82611350565b915061175983611350565b925082820390508181111561177157611770611717565b5b92915050565b5f61178182611350565b915061178c83611350565b92508282019050808211156117a4576117a3611717565b5b92915050565b7f54726164696e6720616c726561647920656e61626c65640000000000000000005f82015250565b5f6117de60178361126c565b91506117e9826117aa565b602082019050919050565b5f6020820190508181035f83015261180b816117d2565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f61186c60258361126c565b915061187782611812565b604082019050919050565b5f6020820190508181035f83015261189981611860565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6118fa60268361126c565b9150611905826118a0565b604082019050919050565b5f6020820190508181035f830152611927816118ee565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61198860248361126c565b91506119938261192e565b604082019050919050565b5f6020820190508181035f8301526119b58161197c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611a1660228361126c565b9150611a21826119bc565b604082019050919050565b5f6020820190508181035f830152611a4381611a0a565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f611a7e60138361126c565b9150611a8982611a4a565b602082019050919050565b5f6020820190508181035f830152611aab81611a72565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611b0c60258361126c565b9150611b1782611ab2565b604082019050919050565b5f6020820190508181035f830152611b3981611b00565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f611b9a60238361126c565b9150611ba582611b40565b604082019050919050565b5f6020820190508181035f830152611bc781611b8e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f611c2860268361126c565b9150611c3382611bce565b604082019050919050565b5f6020820190508181035f830152611c5581611c1c565b905091905056fea264697066735822122084e4b7043e76c85cc440630567e9143c4d6e0cf575f62f0e1cc4b236468dd9bc64736f6c634300081a0033
Deployed Bytecode Sourcemap
17939:1029:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8739:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10972:194;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18816:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9859:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11646:491;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9701:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12546:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10030:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5424:94;;;:::i;:::-;;4773:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18654:154;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8958:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18017:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13339:439;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10386:200;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10649:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17983:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5673:229;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8739:100;8793:13;8826:5;8819:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8739:100;:::o;10972:194::-;11080:4;11097:39;11106:12;:10;:12::i;:::-;11120:7;11129:6;11097:8;:39::i;:::-;11154:4;11147:11;;10972:194;;;;:::o;18816:149::-;5004:12;:10;:12::i;:::-;4993:23;;:7;:5;:7::i;:::-;:23;;;4985:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18950:7:::1;18928:9;:19;18938:8;18928:19;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;18816:149:::0;;:::o;9859:108::-;9920:7;9947:12;;9940:19;;9859:108;:::o;11646:491::-;11786:4;11803:24;11830:11;:19;11842:6;11830:19;;;;;;;;;;;;;;;:33;11850:12;:10;:12::i;:::-;11830:33;;;;;;;;;;;;;;;;11803:60;;11916:6;11896:16;:26;;11874:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;12001:36;12011:6;12019:9;12030:6;12001:9;:36::i;:::-;12048:57;12057:6;12065:12;:10;:12::i;:::-;12098:6;12079:16;:25;;;;:::i;:::-;12048:8;:57::i;:::-;12125:4;12118:11;;;11646:491;;;;;:::o;9701:93::-;9759:5;9784:2;9777:9;;9701:93;:::o;12546:290::-;12659:4;12676:130;12699:12;:10;:12::i;:::-;12726:7;12785:10;12748:11;:25;12760:12;:10;:12::i;:::-;12748:25;;;;;;;;;;;;;;;:34;12774:7;12748:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12676:8;:130::i;:::-;12824:4;12817:11;;12546:290;;;;:::o;10030:143::-;10120:7;10147:9;:18;10157:7;10147:18;;;;;;;;;;;;;;;;10140:25;;10030:143;;;:::o;5424:94::-;5004:12;:10;:12::i;:::-;4993:23;;:7;:5;:7::i;:::-;:23;;;4985:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5489:21:::1;5507:1;5489:9;:21::i;:::-;5424:94::o:0;4773:87::-;4819:7;4846:6;;;;;;;;;;;4839:13;;4773:87;:::o;18654:154::-;5004:12;:10;:12::i;:::-;4993:23;;:7;:5;:7::i;:::-;:23;;;4985:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18738:5:::1;18727:16;;:7;;;;;;;;;;;:16;;;18719:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;18792:8;18782:7;;:18;;;;;;;;;;;;;;;;;;18654:154:::0;:::o;8958:104::-;9014:13;9047:7;9040:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8958:104;:::o;18017:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;13339:439::-;13457:4;13474:24;13501:11;:25;13513:12;:10;:12::i;:::-;13501:25;;;;;;;;;;;;;;;:34;13527:7;13501:34;;;;;;;;;;;;;;;;13474:61;;13588:15;13568:16;:35;;13546:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;13679:67;13688:12;:10;:12::i;:::-;13702:7;13730:15;13711:16;:34;;;;:::i;:::-;13679:8;:67::i;:::-;13766:4;13759:11;;;13339:439;;;;:::o;10386:200::-;10497:4;10514:42;10524:12;:10;:12::i;:::-;10538:9;10549:6;10514:9;:42::i;:::-;10574:4;10567:11;;10386:200;;;;:::o;10649:176::-;10763:7;10790:11;:18;10802:5;10790:18;;;;;;;;;;;;;;;:27;10809:7;10790:27;;;;;;;;;;;;;;;;10783:34;;10649:176;;;;:::o;17983:27::-;;;;;;;;;;;;;:::o;5673:229::-;5004:12;:10;:12::i;:::-;4993:23;;:7;:5;:7::i;:::-;:23;;;4985:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5796:1:::1;5776:22;;:8;:22;;::::0;5754:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5875:19;5885:8;5875:9;:19::i;:::-;5673:229:::0;:::o;655:98::-;708:7;735:10;728:17;;655:98;:::o;16828:380::-;16981:1;16964:19;;:5;:19;;;16956:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17062:1;17043:21;;:7;:21;;;17035:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17146:6;17116:11;:18;17128:5;17116:18;;;;;;;;;;;;;;;:27;17135:7;17116:27;;;;;;;;;;;;;;;:36;;;;17184:7;17168:32;;17177:5;17168:32;;;17193:6;17168:32;;;;;;:::i;:::-;;;;;;;;16828:380;;;:::o;18247:399::-;18413:4;18402:15;;:7;;;;;;;;;;;:15;;;:53;;;;18438:9;:17;18448:6;18438:17;;;;;;;;;;;;;;;;;;;;;;;;;18402:53;:94;;;;18476:9;:20;18486:9;18476:20;;;;;;;;;;;;;;;;;;;;;;;;;18402:94;:136;;;;18517:9;:21;18527:10;18517:21;;;;;;;;;;;;;;;;;;;;;;;;;18402:136;18380:205;;;;;;;;;;;;:::i;:::-;;;;;;;;;18596:42;18612:6;18620:9;18631:6;18596:15;:42::i;:::-;18247:399;;;:::o;5910:173::-;5966:16;5985:6;;;;;;;;;;;5966:25;;6011:8;6002:6;;:17;;;;;;;;;;;;;;;;;;6066:8;6035:40;;6056:8;6035:40;;;;;;;;;;;;5955:128;5910:173;:::o;14268:675::-;14426:1;14408:20;;:6;:20;;;14400:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14510:1;14489:23;;:9;:23;;;14481:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14565:47;14586:6;14594:9;14605:6;14565:20;:47::i;:::-;14625:21;14649:9;:17;14659:6;14649:17;;;;;;;;;;;;;;;;14625:41;;14716:6;14699:13;:23;;14677:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;14835:6;14819:13;:22;;;;:::i;:::-;14799:9;:17;14809:6;14799:17;;;;;;;;;;;;;;;:42;;;;14876:6;14852:9;:20;14862:9;14852:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;14917:9;14900:35;;14909:6;14900:35;;;14928:6;14900:35;;;;;;:::i;:::-;;;;;;;;14389:554;14268:675;;;:::o;17807:125::-;;;;:::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;1323:117::-;1432:1;1429;1422: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:116::-;3409:21;3424:5;3409:21;:::i;:::-;3402:5;3399:32;3389:60;;3445:1;3442;3435:12;3389:60;3339:116;:::o;3461:133::-;3504:5;3542:6;3529:20;3520:29;;3558:30;3582:5;3558:30;:::i;:::-;3461:133;;;;:::o;3600:468::-;3665:6;3673;3722:2;3710:9;3701:7;3697:23;3693:32;3690:119;;;3728:79;;:::i;:::-;3690:119;3848:1;3873:53;3918:7;3909:6;3898:9;3894:22;3873:53;:::i;:::-;3863:63;;3819:117;3975:2;4001:50;4043:7;4034:6;4023:9;4019:22;4001:50;:::i;:::-;3991:60;;3946:115;3600:468;;;;;:::o;4074:118::-;4161:24;4179:5;4161:24;:::i;:::-;4156:3;4149:37;4074:118;;:::o;4198:222::-;4291:4;4329:2;4318:9;4314:18;4306:26;;4342:71;4410:1;4399:9;4395:17;4386:6;4342:71;:::i;:::-;4198:222;;;;:::o;4426:619::-;4503:6;4511;4519;4568:2;4556:9;4547:7;4543:23;4539:32;4536:119;;;4574:79;;:::i;:::-;4536:119;4694:1;4719:53;4764:7;4755:6;4744:9;4740:22;4719:53;:::i;:::-;4709:63;;4665:117;4821:2;4847:53;4892:7;4883:6;4872:9;4868:22;4847:53;:::i;:::-;4837:63;;4792:118;4949:2;4975:53;5020:7;5011:6;5000:9;4996:22;4975:53;:::i;:::-;4965:63;;4920:118;4426:619;;;;;:::o;5051:86::-;5086:7;5126:4;5119:5;5115:16;5104:27;;5051:86;;;:::o;5143:112::-;5226:22;5242:5;5226:22;:::i;:::-;5221:3;5214:35;5143:112;;:::o;5261:214::-;5350:4;5388:2;5377:9;5373:18;5365:26;;5401:67;5465:1;5454:9;5450:17;5441:6;5401:67;:::i;:::-;5261:214;;;;:::o;5481:329::-;5540:6;5589:2;5577:9;5568:7;5564:23;5560:32;5557:119;;;5595:79;;:::i;:::-;5557:119;5715:1;5740:53;5785:7;5776:6;5765:9;5761:22;5740:53;:::i;:::-;5730:63;;5686:117;5481:329;;;;:::o;5816:118::-;5903:24;5921:5;5903:24;:::i;:::-;5898:3;5891:37;5816:118;;:::o;5940:222::-;6033:4;6071:2;6060:9;6056:18;6048:26;;6084:71;6152:1;6141:9;6137:17;6128:6;6084:71;:::i;:::-;5940:222;;;;:::o;6168:323::-;6224:6;6273:2;6261:9;6252:7;6248:23;6244:32;6241:119;;;6279:79;;:::i;:::-;6241:119;6399:1;6424:50;6466:7;6457:6;6446:9;6442:22;6424:50;:::i;:::-;6414:60;;6370:114;6168:323;;;;:::o;6497:474::-;6565:6;6573;6622:2;6610:9;6601:7;6597:23;6593:32;6590:119;;;6628:79;;:::i;:::-;6590:119;6748:1;6773:53;6818:7;6809:6;6798:9;6794:22;6773:53;:::i;:::-;6763:63;;6719:117;6875:2;6901:53;6946:7;6937:6;6926:9;6922:22;6901:53;:::i;:::-;6891:63;;6846:118;6497:474;;;;;:::o;6977:180::-;7025:77;7022:1;7015:88;7122:4;7119:1;7112:15;7146:4;7143:1;7136:15;7163:320;7207:6;7244:1;7238:4;7234:12;7224:22;;7291:1;7285:4;7281:12;7312:18;7302:81;;7368:4;7360:6;7356:17;7346:27;;7302:81;7430:2;7422:6;7419:14;7399:18;7396:38;7393:84;;7449:18;;:::i;:::-;7393:84;7214:269;7163:320;;;:::o;7489:182::-;7629:34;7625:1;7617:6;7613:14;7606:58;7489:182;:::o;7677:366::-;7819:3;7840:67;7904:2;7899:3;7840:67;:::i;:::-;7833:74;;7916:93;8005:3;7916:93;:::i;:::-;8034:2;8029:3;8025:12;8018:19;;7677:366;;;:::o;8049:419::-;8215:4;8253:2;8242:9;8238:18;8230:26;;8302:9;8296:4;8292:20;8288:1;8277:9;8273:17;8266:47;8330:131;8456:4;8330:131;:::i;:::-;8322:139;;8049:419;;;:::o;8474:227::-;8614:34;8610:1;8602:6;8598:14;8591:58;8683:10;8678:2;8670:6;8666:15;8659:35;8474:227;:::o;8707:366::-;8849:3;8870:67;8934:2;8929:3;8870:67;:::i;:::-;8863:74;;8946:93;9035:3;8946:93;:::i;:::-;9064:2;9059:3;9055:12;9048:19;;8707:366;;;:::o;9079:419::-;9245:4;9283:2;9272:9;9268:18;9260:26;;9332:9;9326:4;9322:20;9318:1;9307:9;9303:17;9296:47;9360:131;9486:4;9360:131;:::i;:::-;9352:139;;9079:419;;;:::o;9504:180::-;9552:77;9549:1;9542:88;9649:4;9646:1;9639:15;9673:4;9670:1;9663:15;9690:194;9730:4;9750:20;9768:1;9750:20;:::i;:::-;9745:25;;9784:20;9802:1;9784:20;:::i;:::-;9779:25;;9828:1;9825;9821:9;9813:17;;9852:1;9846:4;9843:11;9840:37;;;9857:18;;:::i;:::-;9840:37;9690:194;;;;:::o;9890:191::-;9930:3;9949:20;9967:1;9949:20;:::i;:::-;9944:25;;9983:20;10001:1;9983:20;:::i;:::-;9978:25;;10026:1;10023;10019:9;10012:16;;10047:3;10044:1;10041:10;10038:36;;;10054:18;;:::i;:::-;10038:36;9890:191;;;;:::o;10087:173::-;10227:25;10223:1;10215:6;10211:14;10204:49;10087:173;:::o;10266:366::-;10408:3;10429:67;10493:2;10488:3;10429:67;:::i;:::-;10422:74;;10505:93;10594:3;10505:93;:::i;:::-;10623:2;10618:3;10614:12;10607:19;;10266:366;;;:::o;10638:419::-;10804:4;10842:2;10831:9;10827:18;10819:26;;10891:9;10885:4;10881:20;10877:1;10866:9;10862:17;10855:47;10919:131;11045:4;10919:131;:::i;:::-;10911:139;;10638:419;;;:::o;11063:224::-;11203:34;11199:1;11191:6;11187:14;11180:58;11272:7;11267:2;11259:6;11255:15;11248:32;11063:224;:::o;11293:366::-;11435:3;11456:67;11520:2;11515:3;11456:67;:::i;:::-;11449:74;;11532:93;11621:3;11532:93;:::i;:::-;11650:2;11645:3;11641:12;11634:19;;11293:366;;;:::o;11665:419::-;11831:4;11869:2;11858:9;11854:18;11846:26;;11918:9;11912:4;11908:20;11904:1;11893:9;11889:17;11882:47;11946:131;12072:4;11946:131;:::i;:::-;11938:139;;11665:419;;;:::o;12090:225::-;12230:34;12226:1;12218:6;12214:14;12207:58;12299:8;12294:2;12286:6;12282:15;12275:33;12090:225;:::o;12321:366::-;12463:3;12484:67;12548:2;12543:3;12484:67;:::i;:::-;12477:74;;12560:93;12649:3;12560:93;:::i;:::-;12678:2;12673:3;12669:12;12662:19;;12321:366;;;:::o;12693:419::-;12859:4;12897:2;12886:9;12882:18;12874:26;;12946:9;12940:4;12936:20;12932:1;12921:9;12917:17;12910:47;12974:131;13100:4;12974:131;:::i;:::-;12966:139;;12693:419;;;:::o;13118:223::-;13258:34;13254:1;13246:6;13242:14;13235:58;13327:6;13322:2;13314:6;13310:15;13303:31;13118:223;:::o;13347:366::-;13489:3;13510:67;13574:2;13569:3;13510:67;:::i;:::-;13503:74;;13586:93;13675:3;13586:93;:::i;:::-;13704:2;13699:3;13695:12;13688:19;;13347:366;;;:::o;13719:419::-;13885:4;13923:2;13912:9;13908:18;13900:26;;13972:9;13966:4;13962:20;13958:1;13947:9;13943:17;13936:47;14000:131;14126:4;14000:131;:::i;:::-;13992:139;;13719:419;;;:::o;14144:221::-;14284:34;14280:1;14272:6;14268:14;14261:58;14353:4;14348:2;14340:6;14336:15;14329:29;14144:221;:::o;14371:366::-;14513:3;14534:67;14598:2;14593:3;14534:67;:::i;:::-;14527:74;;14610:93;14699:3;14610:93;:::i;:::-;14728:2;14723:3;14719:12;14712:19;;14371:366;;;:::o;14743:419::-;14909:4;14947:2;14936:9;14932:18;14924:26;;14996:9;14990:4;14986:20;14982:1;14971:9;14967:17;14960:47;15024:131;15150:4;15024:131;:::i;:::-;15016:139;;14743:419;;;:::o;15168:169::-;15308:21;15304:1;15296:6;15292:14;15285:45;15168:169;:::o;15343:366::-;15485:3;15506:67;15570:2;15565:3;15506:67;:::i;:::-;15499:74;;15582:93;15671:3;15582:93;:::i;:::-;15700:2;15695:3;15691:12;15684:19;;15343:366;;;:::o;15715:419::-;15881:4;15919:2;15908:9;15904:18;15896:26;;15968:9;15962:4;15958:20;15954:1;15943:9;15939:17;15932:47;15996:131;16122:4;15996:131;:::i;:::-;15988:139;;15715:419;;;:::o;16140:224::-;16280:34;16276:1;16268:6;16264:14;16257:58;16349:7;16344:2;16336:6;16332:15;16325:32;16140:224;:::o;16370:366::-;16512:3;16533:67;16597:2;16592:3;16533:67;:::i;:::-;16526:74;;16609:93;16698:3;16609:93;:::i;:::-;16727:2;16722:3;16718:12;16711:19;;16370:366;;;:::o;16742:419::-;16908:4;16946:2;16935:9;16931:18;16923:26;;16995:9;16989:4;16985:20;16981:1;16970:9;16966:17;16959:47;17023:131;17149:4;17023:131;:::i;:::-;17015:139;;16742:419;;;:::o;17167:222::-;17307:34;17303:1;17295:6;17291:14;17284:58;17376:5;17371:2;17363:6;17359:15;17352:30;17167:222;:::o;17395:366::-;17537:3;17558:67;17622:2;17617:3;17558:67;:::i;:::-;17551:74;;17634:93;17723:3;17634:93;:::i;:::-;17752:2;17747:3;17743:12;17736:19;;17395:366;;;:::o;17767:419::-;17933:4;17971:2;17960:9;17956:18;17948:26;;18020:9;18014:4;18010:20;18006:1;17995:9;17991:17;17984:47;18048:131;18174:4;18048:131;:::i;:::-;18040:139;;17767:419;;;:::o;18192:225::-;18332:34;18328:1;18320:6;18316:14;18309:58;18401:8;18396:2;18388:6;18384:15;18377:33;18192:225;:::o;18423:366::-;18565:3;18586:67;18650:2;18645:3;18586:67;:::i;:::-;18579:74;;18662:93;18751:3;18662:93;:::i;:::-;18780:2;18775:3;18771:12;18764:19;;18423:366;;;:::o;18795:419::-;18961:4;18999:2;18988:9;18984:18;18976:26;;19048:9;19042:4;19038:20;19034:1;19023:9;19019:17;19012:47;19076:131;19202:4;19076:131;:::i;:::-;19068:139;;18795:419;;;:::o
Swarm Source
ipfs://84e4b7043e76c85cc440630567e9143c4d6e0cf575f62f0e1cc4b236468dd9bc
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.