Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
69,000,000,000 GOZO
Holders
102
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
0.806513962748821105 GOZOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GOZO
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-05-10 */ // SPDX-License-Identifier: GPL-2.0-or-later pragma solidity >=0.8.10; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { 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 { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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); /** * @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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount ) external returns (bool); } /** * @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); } /** * @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.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead 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: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, 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}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, 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}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, 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) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, 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) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This 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: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, 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: * * - `account` 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; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(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"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(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 Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - 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 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 {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been 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 _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } /** * @dev Extension of {ERC20} that allows token holders to destroy both their own * tokens and those that they have an allowance for, in a way that can be * recognized off-chain (via event analysis). */ abstract contract ERC20Burnable is Context, ERC20 { /** * @dev Destroys `amount` tokens from the caller. * * See {ERC20-_burn}. */ function burn(uint256 amount) public virtual { _burn(_msgSender(), amount); } /** * @dev Destroys `amount` tokens from `account`, deducting from the caller's * allowance. * * See {ERC20-_burn} and {ERC20-allowance}. * * Requirements: * * - the caller must have allowance for ``accounts``'s tokens of at least * `amount`. */ function burnFrom(address account, uint256 amount) public virtual { _spendAllowance(account, _msgSender(), amount); _burn(account, amount); } } contract GOZO is ERC20, ERC20Burnable, Ownable { uint256 private constant INITIAL_SUPPLY = 69000000000 * 10**18; constructor() ERC20("GOZO", "GOZO") { _mint(msg.sender, INITIAL_SUPPLY); } function distributeTokens(address distributionWallet) external onlyOwner { uint256 supply = balanceOf(msg.sender); require(supply == INITIAL_SUPPLY, "Tokens already distributed"); _transfer(msg.sender, distributionWallet, supply); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":[{"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":[{"internalType":"address","name":"distributionWallet","type":"address"}],"name":"distributeTokens","outputs":[],"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":[],"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":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600481526020017f474f5a4f000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f474f5a4f000000000000000000000000000000000000000000000000000000008152508160039080519060200190620000969291906200033c565b508060049080519060200190620000af9291906200033c565b505050620000d2620000c6620000f660201b60201c565b620000fe60201b60201c565b620000f0336bdef376571332906a88000000620001c460201b60201c565b62000598565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000237576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200022e906200044d565b60405180910390fd5b6200024b600083836200033260201b60201c565b80600260008282546200025f9190620004a8565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000312919062000516565b60405180910390a36200032e600083836200033760201b60201c565b5050565b505050565b505050565b8280546200034a9062000562565b90600052602060002090601f0160209004810192826200036e5760008555620003ba565b82601f106200038957805160ff1916838001178555620003ba565b82800160010185558215620003ba579182015b82811115620003b95782518255916020019190600101906200039c565b5b509050620003c99190620003cd565b5090565b5b80821115620003e8576000816000905550600101620003ce565b5090565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000435601f83620003ec565b91506200044282620003fd565b602082019050919050565b60006020820190508181036000830152620004688162000426565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004b5826200046f565b9150620004c2836200046f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620004fa57620004f962000479565b5b828201905092915050565b62000510816200046f565b82525050565b60006020820190506200052d600083018462000505565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200057b57607f821691505b6020821081141562000592576200059162000533565b5b50919050565b611ab880620005a86000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063a457c2d711610071578063a457c2d7146102a8578063a9059cbb146102d8578063b1d17c9814610308578063dd62ed3e14610324578063f2fde38b146103545761010b565b8063715018a61461024657806379cc6790146102505780638da5cb5b1461026c57806395d89b411461028a5761010b565b8063313ce567116100de578063313ce567146101ac57806339509351146101ca57806342966c68146101fa57806370a08231146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b610118610370565b604051610125919061108d565b60405180910390f35b61014860048036038101906101439190611148565b610402565b60405161015591906111a3565b60405180910390f35b610166610425565b60405161017391906111cd565b60405180910390f35b610196600480360381019061019191906111e8565b61042f565b6040516101a391906111a3565b60405180910390f35b6101b461045e565b6040516101c19190611257565b60405180910390f35b6101e460048036038101906101df9190611148565b610467565b6040516101f191906111a3565b60405180910390f35b610214600480360381019061020f9190611272565b61049e565b005b610230600480360381019061022b919061129f565b6104b2565b60405161023d91906111cd565b60405180910390f35b61024e6104fa565b005b61026a60048036038101906102659190611148565b61050e565b005b61027461052e565b60405161028191906112db565b60405180910390f35b610292610558565b60405161029f919061108d565b60405180910390f35b6102c260048036038101906102bd9190611148565b6105ea565b6040516102cf91906111a3565b60405180910390f35b6102f260048036038101906102ed9190611148565b610661565b6040516102ff91906111a3565b60405180910390f35b610322600480360381019061031d919061129f565b610684565b005b61033e600480360381019061033991906112f6565b6106f6565b60405161034b91906111cd565b60405180910390f35b61036e6004803603810190610369919061129f565b61077d565b005b60606003805461037f90611365565b80601f01602080910402602001604051908101604052809291908181526020018280546103ab90611365565b80156103f85780601f106103cd576101008083540402835291602001916103f8565b820191906000526020600020905b8154815290600101906020018083116103db57829003601f168201915b5050505050905090565b60008061040d610801565b905061041a818585610809565b600191505092915050565b6000600254905090565b60008061043a610801565b90506104478582856109d4565b610452858585610a60565b60019150509392505050565b60006012905090565b600080610472610801565b905061049381858561048485896106f6565b61048e91906113c6565b610809565b600191505092915050565b6104af6104a9610801565b82610cd8565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610502610ea6565b61050c6000610f24565b565b6105208261051a610801565b836109d4565b61052a8282610cd8565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461056790611365565b80601f016020809104026020016040519081016040528092919081815260200182805461059390611365565b80156105e05780601f106105b5576101008083540402835291602001916105e0565b820191906000526020600020905b8154815290600101906020018083116105c357829003601f168201915b5050505050905090565b6000806105f5610801565b9050600061060382866106f6565b905083811015610648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063f9061148e565b60405180910390fd5b6106558286868403610809565b60019250505092915050565b60008061066c610801565b9050610679818585610a60565b600191505092915050565b61068c610ea6565b6000610697336104b2565b90506bdef376571332906a8800000081146106e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106de906114fa565b60405180910390fd5b6106f2338383610a60565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610785610ea6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ec9061158c565b60405180910390fd5b6107fe81610f24565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610879576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108709061161e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e0906116b0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109c791906111cd565b60405180910390a3505050565b60006109e084846106f6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a5a5781811015610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a439061171c565b60405180910390fd5b610a598484848403610809565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac7906117ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3790611840565b60405180910390fd5b610b4b838383610fea565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc8906118d2565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cbf91906111cd565b60405180910390a3610cd2848484610fef565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90611964565b60405180910390fd5b610d5482600083610fea565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd1906119f6565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e8d91906111cd565b60405180910390a3610ea183600084610fef565b505050565b610eae610801565b73ffffffffffffffffffffffffffffffffffffffff16610ecc61052e565b73ffffffffffffffffffffffffffffffffffffffff1614610f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1990611a62565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561102e578082015181840152602081019050611013565b8381111561103d576000848401525b50505050565b6000601f19601f8301169050919050565b600061105f82610ff4565b6110698185610fff565b9350611079818560208601611010565b61108281611043565b840191505092915050565b600060208201905081810360008301526110a78184611054565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006110df826110b4565b9050919050565b6110ef816110d4565b81146110fa57600080fd5b50565b60008135905061110c816110e6565b92915050565b6000819050919050565b61112581611112565b811461113057600080fd5b50565b6000813590506111428161111c565b92915050565b6000806040838503121561115f5761115e6110af565b5b600061116d858286016110fd565b925050602061117e85828601611133565b9150509250929050565b60008115159050919050565b61119d81611188565b82525050565b60006020820190506111b86000830184611194565b92915050565b6111c781611112565b82525050565b60006020820190506111e260008301846111be565b92915050565b600080600060608486031215611201576112006110af565b5b600061120f868287016110fd565b9350506020611220868287016110fd565b925050604061123186828701611133565b9150509250925092565b600060ff82169050919050565b6112518161123b565b82525050565b600060208201905061126c6000830184611248565b92915050565b600060208284031215611288576112876110af565b5b600061129684828501611133565b91505092915050565b6000602082840312156112b5576112b46110af565b5b60006112c3848285016110fd565b91505092915050565b6112d5816110d4565b82525050565b60006020820190506112f060008301846112cc565b92915050565b6000806040838503121561130d5761130c6110af565b5b600061131b858286016110fd565b925050602061132c858286016110fd565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061137d57607f821691505b6020821081141561139157611390611336565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113d182611112565b91506113dc83611112565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561141157611410611397565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611478602583610fff565b91506114838261141c565b604082019050919050565b600060208201905081810360008301526114a78161146b565b9050919050565b7f546f6b656e7320616c7265616479206469737472696275746564000000000000600082015250565b60006114e4601a83610fff565b91506114ef826114ae565b602082019050919050565b60006020820190508181036000830152611513816114d7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611576602683610fff565b91506115818261151a565b604082019050919050565b600060208201905081810360008301526115a581611569565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611608602483610fff565b9150611613826115ac565b604082019050919050565b60006020820190508181036000830152611637816115fb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061169a602283610fff565b91506116a58261163e565b604082019050919050565b600060208201905081810360008301526116c98161168d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611706601d83610fff565b9150611711826116d0565b602082019050919050565b60006020820190508181036000830152611735816116f9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611798602583610fff565b91506117a38261173c565b604082019050919050565b600060208201905081810360008301526117c78161178b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061182a602383610fff565b9150611835826117ce565b604082019050919050565b600060208201905081810360008301526118598161181d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006118bc602683610fff565b91506118c782611860565b604082019050919050565b600060208201905081810360008301526118eb816118af565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061194e602183610fff565b9150611959826118f2565b604082019050919050565b6000602082019050818103600083015261197d81611941565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006119e0602283610fff565b91506119eb82611984565b604082019050919050565b60006020820190508181036000830152611a0f816119d3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611a4c602083610fff565b9150611a5782611a16565b602082019050919050565b60006020820190508181036000830152611a7b81611a3f565b905091905056fea2646970667358221220f5d9c43e1c17fa5dd13de1c7bbe49fd0064d7445fb3e206592d5b24d6d85f32864736f6c634300080a0033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061010b5760003560e01c8063715018a6116100a2578063a457c2d711610071578063a457c2d7146102a8578063a9059cbb146102d8578063b1d17c9814610308578063dd62ed3e14610324578063f2fde38b146103545761010b565b8063715018a61461024657806379cc6790146102505780638da5cb5b1461026c57806395d89b411461028a5761010b565b8063313ce567116100de578063313ce567146101ac57806339509351146101ca57806342966c68146101fa57806370a08231146102165761010b565b806306fdde0314610110578063095ea7b31461012e57806318160ddd1461015e57806323b872dd1461017c575b600080fd5b610118610370565b604051610125919061108d565b60405180910390f35b61014860048036038101906101439190611148565b610402565b60405161015591906111a3565b60405180910390f35b610166610425565b60405161017391906111cd565b60405180910390f35b610196600480360381019061019191906111e8565b61042f565b6040516101a391906111a3565b60405180910390f35b6101b461045e565b6040516101c19190611257565b60405180910390f35b6101e460048036038101906101df9190611148565b610467565b6040516101f191906111a3565b60405180910390f35b610214600480360381019061020f9190611272565b61049e565b005b610230600480360381019061022b919061129f565b6104b2565b60405161023d91906111cd565b60405180910390f35b61024e6104fa565b005b61026a60048036038101906102659190611148565b61050e565b005b61027461052e565b60405161028191906112db565b60405180910390f35b610292610558565b60405161029f919061108d565b60405180910390f35b6102c260048036038101906102bd9190611148565b6105ea565b6040516102cf91906111a3565b60405180910390f35b6102f260048036038101906102ed9190611148565b610661565b6040516102ff91906111a3565b60405180910390f35b610322600480360381019061031d919061129f565b610684565b005b61033e600480360381019061033991906112f6565b6106f6565b60405161034b91906111cd565b60405180910390f35b61036e6004803603810190610369919061129f565b61077d565b005b60606003805461037f90611365565b80601f01602080910402602001604051908101604052809291908181526020018280546103ab90611365565b80156103f85780601f106103cd576101008083540402835291602001916103f8565b820191906000526020600020905b8154815290600101906020018083116103db57829003601f168201915b5050505050905090565b60008061040d610801565b905061041a818585610809565b600191505092915050565b6000600254905090565b60008061043a610801565b90506104478582856109d4565b610452858585610a60565b60019150509392505050565b60006012905090565b600080610472610801565b905061049381858561048485896106f6565b61048e91906113c6565b610809565b600191505092915050565b6104af6104a9610801565b82610cd8565b50565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610502610ea6565b61050c6000610f24565b565b6105208261051a610801565b836109d4565b61052a8282610cd8565b5050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461056790611365565b80601f016020809104026020016040519081016040528092919081815260200182805461059390611365565b80156105e05780601f106105b5576101008083540402835291602001916105e0565b820191906000526020600020905b8154815290600101906020018083116105c357829003601f168201915b5050505050905090565b6000806105f5610801565b9050600061060382866106f6565b905083811015610648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063f9061148e565b60405180910390fd5b6106558286868403610809565b60019250505092915050565b60008061066c610801565b9050610679818585610a60565b600191505092915050565b61068c610ea6565b6000610697336104b2565b90506bdef376571332906a8800000081146106e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106de906114fa565b60405180910390fd5b6106f2338383610a60565b5050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610785610ea6565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156107f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ec9061158c565b60405180910390fd5b6107fe81610f24565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610879576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108709061161e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e0906116b0565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109c791906111cd565b60405180910390a3505050565b60006109e084846106f6565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a5a5781811015610a4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a439061171c565b60405180910390fd5b610a598484848403610809565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac7906117ae565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3790611840565b60405180910390fd5b610b4b838383610fea565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610bd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc8906118d2565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610cbf91906111cd565b60405180910390a3610cd2848484610fef565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90611964565b60405180910390fd5b610d5482600083610fea565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610dda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd1906119f6565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e8d91906111cd565b60405180910390a3610ea183600084610fef565b505050565b610eae610801565b73ffffffffffffffffffffffffffffffffffffffff16610ecc61052e565b73ffffffffffffffffffffffffffffffffffffffff1614610f22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1990611a62565b60405180910390fd5b565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561102e578082015181840152602081019050611013565b8381111561103d576000848401525b50505050565b6000601f19601f8301169050919050565b600061105f82610ff4565b6110698185610fff565b9350611079818560208601611010565b61108281611043565b840191505092915050565b600060208201905081810360008301526110a78184611054565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006110df826110b4565b9050919050565b6110ef816110d4565b81146110fa57600080fd5b50565b60008135905061110c816110e6565b92915050565b6000819050919050565b61112581611112565b811461113057600080fd5b50565b6000813590506111428161111c565b92915050565b6000806040838503121561115f5761115e6110af565b5b600061116d858286016110fd565b925050602061117e85828601611133565b9150509250929050565b60008115159050919050565b61119d81611188565b82525050565b60006020820190506111b86000830184611194565b92915050565b6111c781611112565b82525050565b60006020820190506111e260008301846111be565b92915050565b600080600060608486031215611201576112006110af565b5b600061120f868287016110fd565b9350506020611220868287016110fd565b925050604061123186828701611133565b9150509250925092565b600060ff82169050919050565b6112518161123b565b82525050565b600060208201905061126c6000830184611248565b92915050565b600060208284031215611288576112876110af565b5b600061129684828501611133565b91505092915050565b6000602082840312156112b5576112b46110af565b5b60006112c3848285016110fd565b91505092915050565b6112d5816110d4565b82525050565b60006020820190506112f060008301846112cc565b92915050565b6000806040838503121561130d5761130c6110af565b5b600061131b858286016110fd565b925050602061132c858286016110fd565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061137d57607f821691505b6020821081141561139157611390611336565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006113d182611112565b91506113dc83611112565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561141157611410611397565b5b828201905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611478602583610fff565b91506114838261141c565b604082019050919050565b600060208201905081810360008301526114a78161146b565b9050919050565b7f546f6b656e7320616c7265616479206469737472696275746564000000000000600082015250565b60006114e4601a83610fff565b91506114ef826114ae565b602082019050919050565b60006020820190508181036000830152611513816114d7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611576602683610fff565b91506115818261151a565b604082019050919050565b600060208201905081810360008301526115a581611569565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611608602483610fff565b9150611613826115ac565b604082019050919050565b60006020820190508181036000830152611637816115fb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061169a602283610fff565b91506116a58261163e565b604082019050919050565b600060208201905081810360008301526116c98161168d565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611706601d83610fff565b9150611711826116d0565b602082019050919050565b60006020820190508181036000830152611735816116f9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611798602583610fff565b91506117a38261173c565b604082019050919050565b600060208201905081810360008301526117c78161178b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061182a602383610fff565b9150611835826117ce565b604082019050919050565b600060208201905081810360008301526118598161181d565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006118bc602683610fff565b91506118c782611860565b604082019050919050565b600060208201905081810360008301526118eb816118af565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061194e602183610fff565b9150611959826118f2565b604082019050919050565b6000602082019050818103600083015261197d81611941565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006119e0602283610fff565b91506119eb82611984565b604082019050919050565b60006020820190508181036000830152611a0f816119d3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611a4c602083610fff565b9150611a5782611a16565b602082019050919050565b60006020820190508181036000830152611a7b81611a3f565b905091905056fea2646970667358221220f5d9c43e1c17fa5dd13de1c7bbe49fd0064d7445fb3e206592d5b24d6d85f32864736f6c634300080a0033
Deployed Bytecode Sourcemap
20770:490:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8616:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10967:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9736:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11748:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9578:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12452:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20187:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9907:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2556:103;;;:::i;:::-;;20597:164;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1908:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8835:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13193:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10240:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20991:266;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10496:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2814:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8616:100;8670:13;8703:5;8696:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8616:100;:::o;10967:201::-;11050:4;11067:13;11083:12;:10;:12::i;:::-;11067:28;;11106:32;11115:5;11122:7;11131:6;11106:8;:32::i;:::-;11156:4;11149:11;;;10967:201;;;;:::o;9736:108::-;9797:7;9824:12;;9817:19;;9736:108;:::o;11748:295::-;11879:4;11896:15;11914:12;:10;:12::i;:::-;11896:30;;11937:38;11953:4;11959:7;11968:6;11937:15;:38::i;:::-;11986:27;11996:4;12002:2;12006:6;11986:9;:27::i;:::-;12031:4;12024:11;;;11748:295;;;;;:::o;9578:93::-;9636:5;9661:2;9654:9;;9578:93;:::o;12452:238::-;12540:4;12557:13;12573:12;:10;:12::i;:::-;12557:28;;12596:64;12605:5;12612:7;12649:10;12621:25;12631:5;12638:7;12621:9;:25::i;:::-;:38;;;;:::i;:::-;12596:8;:64::i;:::-;12678:4;12671:11;;;12452:238;;;;:::o;20187:91::-;20243:27;20249:12;:10;:12::i;:::-;20263:6;20243:5;:27::i;:::-;20187:91;:::o;9907:127::-;9981:7;10008:9;:18;10018:7;10008:18;;;;;;;;;;;;;;;;10001:25;;9907:127;;;:::o;2556:103::-;1794:13;:11;:13::i;:::-;2621:30:::1;2648:1;2621:18;:30::i;:::-;2556:103::o:0;20597:164::-;20674:46;20690:7;20699:12;:10;:12::i;:::-;20713:6;20674:15;:46::i;:::-;20731:22;20737:7;20746:6;20731:5;:22::i;:::-;20597:164;;:::o;1908:87::-;1954:7;1981:6;;;;;;;;;;;1974:13;;1908:87;:::o;8835:104::-;8891:13;8924:7;8917:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8835:104;:::o;13193:436::-;13286:4;13303:13;13319:12;:10;:12::i;:::-;13303:28;;13342:24;13369:25;13379:5;13386:7;13369:9;:25::i;:::-;13342:52;;13433:15;13413:16;:35;;13405:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13526:60;13535:5;13542:7;13570:15;13551:16;:34;13526:8;:60::i;:::-;13617:4;13610:11;;;;13193:436;;;;:::o;10240:193::-;10319:4;10336:13;10352:12;:10;:12::i;:::-;10336:28;;10375;10385:5;10392:2;10396:6;10375:9;:28::i;:::-;10421:4;10414:11;;;10240:193;;;;:::o;20991:266::-;1794:13;:11;:13::i;:::-;21075:14:::1;21092:21;21102:10;21092:9;:21::i;:::-;21075:38;;20866:20;21132:6;:24;21124:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;21200:49;21210:10;21222:18;21242:6;21200:9;:49::i;:::-;21064:193;20991:266:::0;:::o;10496:151::-;10585:7;10612:11;:18;10624:5;10612:18;;;;;;;;;;;;;;;:27;10631:7;10612:27;;;;;;;;;;;;;;;;10605:34;;10496:151;;;;:::o;2814:201::-;1794:13;:11;:13::i;:::-;2923:1:::1;2903:22;;:8;:22;;;;2895:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2979:28;2998:8;2979:18;:28::i;:::-;2814:201:::0;:::o;615:98::-;668:7;695:10;688:17;;615:98;:::o;17220:380::-;17373:1;17356:19;;:5;:19;;;;17348:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17454:1;17435:21;;:7;:21;;;;17427:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17538:6;17508:11;:18;17520:5;17508:18;;;;;;;;;;;;;;;:27;17527:7;17508:27;;;;;;;;;;;;;;;:36;;;;17576:7;17560:32;;17569:5;17560:32;;;17585:6;17560:32;;;;;;:::i;:::-;;;;;;;;17220:380;;;:::o;17891:453::-;18026:24;18053:25;18063:5;18070:7;18053:9;:25::i;:::-;18026:52;;18113:17;18093:16;:37;18089:248;;18175:6;18155:16;:26;;18147:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18259:51;18268:5;18275:7;18303:6;18284:16;:25;18259:8;:51::i;:::-;18089:248;18015:329;17891:453;;;:::o;14099:840::-;14246:1;14230:18;;:4;:18;;;;14222:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14323:1;14309:16;;:2;:16;;;;14301:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14378:38;14399:4;14405:2;14409:6;14378:20;:38::i;:::-;14429:19;14451:9;:15;14461:4;14451:15;;;;;;;;;;;;;;;;14429:37;;14500:6;14485:11;:21;;14477:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14617:6;14603:11;:20;14585:9;:15;14595:4;14585:15;;;;;;;;;;;;;;;:38;;;;14820:6;14803:9;:13;14813:2;14803:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;14870:2;14855:26;;14864:4;14855:26;;;14874:6;14855:26;;;;;;:::i;:::-;;;;;;;;14894:37;14914:4;14920:2;14924:6;14894:19;:37::i;:::-;14211:728;14099:840;;;:::o;16107:675::-;16210:1;16191:21;;:7;:21;;;;16183:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16263:49;16284:7;16301:1;16305:6;16263:20;:49::i;:::-;16325:22;16350:9;:18;16360:7;16350:18;;;;;;;;;;;;;;;;16325:43;;16405:6;16387:14;:24;;16379:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16524:6;16507:14;:23;16486:9;:18;16496:7;16486:18;;;;;;;;;;;;;;;:44;;;;16641:6;16625:12;;:22;;;;;;;;;;;16702:1;16676:37;;16685:7;16676:37;;;16706:6;16676:37;;;;;;:::i;:::-;;;;;;;;16726:48;16746:7;16763:1;16767:6;16726:19;:48::i;:::-;16172:610;16107:675;;:::o;2073:132::-;2148:12;:10;:12::i;:::-;2137:23;;:7;:5;:7::i;:::-;:23;;;2129:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2073:132::o;3175:191::-;3249:16;3268:6;;;;;;;;;;;3249:25;;3294:8;3285:6;;:17;;;;;;;;;;;;;;;;;;3349:8;3318:40;;3339:8;3318:40;;;;;;;;;;;;3238:128;3175:191;:::o;18944:125::-;;;;:::o;19673:124::-;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:474::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;6301:2;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6272:118;5923:474;;;;;:::o;6403:180::-;6451:77;6448:1;6441:88;6548:4;6545:1;6538:15;6572:4;6569:1;6562:15;6589:320;6633:6;6670:1;6664:4;6660:12;6650:22;;6717:1;6711:4;6707:12;6738:18;6728:81;;6794:4;6786:6;6782:17;6772:27;;6728:81;6856:2;6848:6;6845:14;6825:18;6822:38;6819:84;;;6875:18;;:::i;:::-;6819:84;6640:269;6589:320;;;:::o;6915:180::-;6963:77;6960:1;6953:88;7060:4;7057:1;7050:15;7084:4;7081:1;7074:15;7101:305;7141:3;7160:20;7178:1;7160:20;:::i;:::-;7155:25;;7194:20;7212:1;7194:20;:::i;:::-;7189:25;;7348:1;7280:66;7276:74;7273:1;7270:81;7267:107;;;7354:18;;:::i;:::-;7267:107;7398:1;7395;7391:9;7384:16;;7101:305;;;;:::o;7412:224::-;7552:34;7548:1;7540:6;7536:14;7529:58;7621:7;7616:2;7608:6;7604:15;7597:32;7412:224;:::o;7642:366::-;7784:3;7805:67;7869:2;7864:3;7805:67;:::i;:::-;7798:74;;7881:93;7970:3;7881:93;:::i;:::-;7999:2;7994:3;7990:12;7983:19;;7642:366;;;:::o;8014:419::-;8180:4;8218:2;8207:9;8203:18;8195:26;;8267:9;8261:4;8257:20;8253:1;8242:9;8238:17;8231:47;8295:131;8421:4;8295:131;:::i;:::-;8287:139;;8014:419;;;:::o;8439:176::-;8579:28;8575:1;8567:6;8563:14;8556:52;8439:176;:::o;8621:366::-;8763:3;8784:67;8848:2;8843:3;8784:67;:::i;:::-;8777:74;;8860:93;8949:3;8860:93;:::i;:::-;8978:2;8973:3;8969:12;8962:19;;8621:366;;;:::o;8993:419::-;9159:4;9197:2;9186:9;9182:18;9174:26;;9246:9;9240:4;9236:20;9232:1;9221:9;9217:17;9210:47;9274:131;9400:4;9274:131;:::i;:::-;9266:139;;8993:419;;;:::o;9418:225::-;9558:34;9554:1;9546:6;9542:14;9535:58;9627:8;9622:2;9614:6;9610:15;9603:33;9418:225;:::o;9649:366::-;9791:3;9812:67;9876:2;9871:3;9812:67;:::i;:::-;9805:74;;9888:93;9977:3;9888:93;:::i;:::-;10006:2;10001:3;9997:12;9990:19;;9649:366;;;:::o;10021:419::-;10187:4;10225:2;10214:9;10210:18;10202:26;;10274:9;10268:4;10264:20;10260:1;10249:9;10245:17;10238:47;10302:131;10428:4;10302:131;:::i;:::-;10294:139;;10021:419;;;:::o;10446:223::-;10586:34;10582:1;10574:6;10570:14;10563:58;10655:6;10650:2;10642:6;10638:15;10631:31;10446:223;:::o;10675:366::-;10817:3;10838:67;10902:2;10897:3;10838:67;:::i;:::-;10831:74;;10914:93;11003:3;10914:93;:::i;:::-;11032:2;11027:3;11023:12;11016:19;;10675:366;;;:::o;11047:419::-;11213:4;11251:2;11240:9;11236:18;11228:26;;11300:9;11294:4;11290:20;11286:1;11275:9;11271:17;11264:47;11328:131;11454:4;11328:131;:::i;:::-;11320:139;;11047:419;;;:::o;11472:221::-;11612:34;11608:1;11600:6;11596:14;11589:58;11681:4;11676:2;11668:6;11664:15;11657:29;11472:221;:::o;11699:366::-;11841:3;11862:67;11926:2;11921:3;11862:67;:::i;:::-;11855:74;;11938:93;12027:3;11938:93;:::i;:::-;12056:2;12051:3;12047:12;12040:19;;11699:366;;;:::o;12071:419::-;12237:4;12275:2;12264:9;12260:18;12252:26;;12324:9;12318:4;12314:20;12310:1;12299:9;12295:17;12288:47;12352:131;12478:4;12352:131;:::i;:::-;12344:139;;12071:419;;;:::o;12496:179::-;12636:31;12632:1;12624:6;12620:14;12613:55;12496:179;:::o;12681:366::-;12823:3;12844:67;12908:2;12903:3;12844:67;:::i;:::-;12837:74;;12920:93;13009:3;12920:93;:::i;:::-;13038:2;13033:3;13029:12;13022:19;;12681:366;;;:::o;13053:419::-;13219:4;13257:2;13246:9;13242:18;13234:26;;13306:9;13300:4;13296:20;13292:1;13281:9;13277:17;13270:47;13334:131;13460:4;13334:131;:::i;:::-;13326:139;;13053:419;;;:::o;13478:224::-;13618:34;13614:1;13606:6;13602:14;13595:58;13687:7;13682:2;13674:6;13670:15;13663:32;13478:224;:::o;13708:366::-;13850:3;13871:67;13935:2;13930:3;13871:67;:::i;:::-;13864:74;;13947:93;14036:3;13947:93;:::i;:::-;14065:2;14060:3;14056:12;14049:19;;13708:366;;;:::o;14080:419::-;14246:4;14284:2;14273:9;14269:18;14261:26;;14333:9;14327:4;14323:20;14319:1;14308:9;14304:17;14297:47;14361:131;14487:4;14361:131;:::i;:::-;14353:139;;14080:419;;;:::o;14505:222::-;14645:34;14641:1;14633:6;14629:14;14622:58;14714:5;14709:2;14701:6;14697:15;14690:30;14505:222;:::o;14733:366::-;14875:3;14896:67;14960:2;14955:3;14896:67;:::i;:::-;14889:74;;14972:93;15061:3;14972:93;:::i;:::-;15090:2;15085:3;15081:12;15074:19;;14733:366;;;:::o;15105:419::-;15271:4;15309:2;15298:9;15294:18;15286:26;;15358:9;15352:4;15348:20;15344:1;15333:9;15329:17;15322:47;15386:131;15512:4;15386:131;:::i;:::-;15378:139;;15105:419;;;:::o;15530:225::-;15670:34;15666:1;15658:6;15654:14;15647:58;15739:8;15734:2;15726:6;15722:15;15715:33;15530:225;:::o;15761:366::-;15903:3;15924:67;15988:2;15983:3;15924:67;:::i;:::-;15917:74;;16000:93;16089:3;16000:93;:::i;:::-;16118:2;16113:3;16109:12;16102:19;;15761:366;;;:::o;16133:419::-;16299:4;16337:2;16326:9;16322:18;16314:26;;16386:9;16380:4;16376:20;16372:1;16361:9;16357:17;16350:47;16414:131;16540:4;16414:131;:::i;:::-;16406:139;;16133:419;;;:::o;16558:220::-;16698:34;16694:1;16686:6;16682:14;16675:58;16767:3;16762:2;16754:6;16750:15;16743:28;16558:220;:::o;16784:366::-;16926:3;16947:67;17011:2;17006:3;16947:67;:::i;:::-;16940:74;;17023:93;17112:3;17023:93;:::i;:::-;17141:2;17136:3;17132:12;17125:19;;16784:366;;;:::o;17156:419::-;17322:4;17360:2;17349:9;17345:18;17337:26;;17409:9;17403:4;17399:20;17395:1;17384:9;17380:17;17373:47;17437:131;17563:4;17437:131;:::i;:::-;17429:139;;17156:419;;;:::o;17581:221::-;17721:34;17717:1;17709:6;17705:14;17698:58;17790:4;17785:2;17777:6;17773:15;17766:29;17581:221;:::o;17808:366::-;17950:3;17971:67;18035:2;18030:3;17971:67;:::i;:::-;17964:74;;18047:93;18136:3;18047:93;:::i;:::-;18165:2;18160:3;18156:12;18149:19;;17808:366;;;:::o;18180:419::-;18346:4;18384:2;18373:9;18369:18;18361:26;;18433:9;18427:4;18423:20;18419:1;18408:9;18404:17;18397:47;18461:131;18587:4;18461:131;:::i;:::-;18453:139;;18180:419;;;:::o;18605:182::-;18745:34;18741:1;18733:6;18729:14;18722:58;18605:182;:::o;18793:366::-;18935:3;18956:67;19020:2;19015:3;18956:67;:::i;:::-;18949:74;;19032:93;19121:3;19032:93;:::i;:::-;19150:2;19145:3;19141:12;19134:19;;18793:366;;;:::o;19165:419::-;19331:4;19369:2;19358:9;19354:18;19346:26;;19418:9;19412:4;19408:20;19404:1;19393:9;19389:17;19382:47;19446:131;19572:4;19446:131;:::i;:::-;19438:139;;19165:419;;;:::o
Swarm Source
ipfs://f5d9c43e1c17fa5dd13de1c7bbe49fd0064d7445fb3e206592d5b24d6d85f328
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.