Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
499,271,970.0056293 UNBNK
Holders
580
Market
Price
$0.00 @ 0.000000 ETH (-3.16%)
Onchain Market Cap
$20,954.44
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 18 Decimals)
Balance
3,607.547169 UNBNKValue
$0.15 ( ~6.10917037834125E-05 Eth) [0.0007%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Unbanked
Compiler Version
v0.8.2+commit.661d1103
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-09-01 */ // Sources flattened with hardhat v2.6.0 https://hardhat.org // File @openzeppelin/contracts/token/ERC20/[email protected] pragma solidity ^0.8.0; /** * @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/token/ERC20/extensions/[email protected] pragma solidity ^0.8.0; /** * @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/utils/[email protected] pragma solidity ^0.8.0; /* * @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; } } // File @openzeppelin/contracts/token/ERC20/[email protected] pragma solidity ^0.8.0; /** * @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) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _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"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * 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: * * - `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"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(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: * * - `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; _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; } _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 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 {} } // File @openzeppelin/contracts/token/ERC20/extensions/[email protected] pragma solidity ^0.8.0; /** * @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 { uint256 currentAllowance = allowance(account, _msgSender()); require(currentAllowance >= amount, "ERC20: burn amount exceeds allowance"); unchecked { _approve(account, _msgSender(), currentAllowance - amount); } _burn(account, amount); } } // File @openzeppelin/contracts/security/[email protected] pragma solidity ^0.8.0; /** * @dev Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } // File @openzeppelin/contracts/access/[email protected] pragma solidity ^0.8.0; /** * @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() { _setOwner(_msgSender()); } /** * @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 contracts/UnbankedToken.sol /* _ _ _ _ _ | | | |_ __ | |__ __ _ _ __ | | _____ __| | | | | | '_ \| '_ \ / _` | '_ \| |/ / _ \/ _` | | |_| | | | | |_) | (_| | | | | < __/ (_| | \___/|_| |_|_.__/ \__,_|_| |_|_|\_\___|\__,_| 01100010 01111001 00100000 01000001 01110011 01110011 01110101 01101110 01100101 00100000 01000011 01101111 01110100 01101100 01100001 01100111 01100101 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.2; contract Unbanked is ERC20, ERC20Burnable, Pausable, Ownable { constructor() ERC20("Unbanked", "UNBNK") { _mint(msg.sender, 500000000 * 10 ** decimals()); } function pause() public onlyOwner { _pause(); } function unpause() public onlyOwner { _unpause(); } function mint(address to, uint256 amount) public onlyOwner { _mint(to, amount); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal whenNotPaused override { super._beforeTokenTransfer(from, to, amount); } }
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":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","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":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"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":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"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":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600881526020017f556e62616e6b65640000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f554e424e4b00000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000414565b508060049080519060200190620000af92919062000414565b5050506000600560006101000a81548160ff021916908315150217905550620000ed620000e16200013360201b60201c565b6200013b60201b60201c565b6200012d33620001026200020160201b60201c565b600a6200011091906200064d565b631dcd65006200012191906200078a565b6200020a60201b60201c565b620008f5565b600033905090565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200027d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002749062000545565b60405180910390fd5b62000291600083836200038360201b60201c565b8060026000828254620002a5919062000595565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620002fc919062000595565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000363919062000567565b60405180910390a36200037f60008383620003f360201b60201c565b5050565b62000393620003f860201b60201c565b15620003d6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003cd9062000523565b60405180910390fd5b620003ee8383836200040f60201b62000c7a1760201c565b505050565b505050565b6000600560009054906101000a900460ff16905090565b505050565b828054620004229062000802565b90600052602060002090601f01602090048101928262000446576000855562000492565b82601f106200046157805160ff191683800117855562000492565b8280016001018555821562000492579182015b828111156200049157825182559160200191906001019062000474565b5b509050620004a19190620004a5565b5090565b5b80821115620004c0576000816000905550600101620004a6565b5090565b6000620004d360108362000584565b9150620004e082620008a3565b602082019050919050565b6000620004fa601f8362000584565b91506200050782620008cc565b602082019050919050565b6200051d81620007eb565b82525050565b600060208201905081810360008301526200053e81620004c4565b9050919050565b600060208201905081810360008301526200056081620004eb565b9050919050565b60006020820190506200057e600083018462000512565b92915050565b600082825260208201905092915050565b6000620005a282620007eb565b9150620005af83620007eb565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620005e757620005e662000838565b5b828201905092915050565b6000808291508390505b600185111562000644578086048111156200061c576200061b62000838565b5b60018516156200062c5780820291505b80810290506200063c8562000896565b9450620005fc565b94509492505050565b60006200065a82620007eb565b91506200066783620007f5565b9250620006967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200069e565b905092915050565b600082620006b0576001905062000783565b81620006c0576000905062000783565b8160018114620006d95760028114620006e4576200071a565b600191505062000783565b60ff841115620006f957620006f862000838565b5b8360020a91508482111562000713576200071262000838565b5b5062000783565b5060208310610133831016604e8410600b8410161715620007545782820a9050838111156200074e576200074d62000838565b5b62000783565b620007638484846001620005f2565b925090508184048111156200077d576200077c62000838565b5b81810290505b9392505050565b60006200079782620007eb565b9150620007a483620007eb565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007e057620007df62000838565b5b828202905092915050565b6000819050919050565b600060ff82169050919050565b600060028204905060018216806200081b57607f821691505b6020821081141562000832576200083162000867565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6122e180620009056000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad57806395d89b411161007157806395d89b41146102f9578063a457c2d714610317578063a9059cbb14610347578063dd62ed3e14610377578063f2fde38b146103a75761012c565b806370a082311461027b578063715018a6146102ab57806379cc6790146102b55780638456cb59146102d15780638da5cb5b146102db5761012c565b806339509351116100f457806339509351146101eb5780633f4ba83a1461021b57806340c10f191461022557806342966c68146102415780635c975abb1461025d5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b6101396103c3565b6040516101469190611a6d565b60405180910390f35b61016960048036038101906101649190611750565b610455565b6040516101769190611a52565b60405180910390f35b610187610473565b6040516101949190611c6f565b60405180910390f35b6101b760048036038101906101b29190611701565b61047d565b6040516101c49190611a52565b60405180910390f35b6101d5610575565b6040516101e29190611c8a565b60405180910390f35b61020560048036038101906102009190611750565b61057e565b6040516102129190611a52565b60405180910390f35b61022361062a565b005b61023f600480360381019061023a9190611750565b6106b0565b005b61025b6004803603810190610256919061178c565b61073a565b005b61026561074e565b6040516102729190611a52565b60405180910390f35b6102956004803603810190610290919061169c565b610765565b6040516102a29190611c6f565b60405180910390f35b6102b36107ad565b005b6102cf60048036038101906102ca9190611750565b610835565b005b6102d96108b0565b005b6102e3610936565b6040516102f09190611a37565b60405180910390f35b610301610960565b60405161030e9190611a6d565b60405180910390f35b610331600480360381019061032c9190611750565b6109f2565b60405161033e9190611a52565b60405180910390f35b610361600480360381019061035c9190611750565b610add565b60405161036e9190611a52565b60405180910390f35b610391600480360381019061038c91906116c5565b610afb565b60405161039e9190611c6f565b60405180910390f35b6103c160048036038101906103bc919061169c565b610b82565b005b6060600380546103d290611dd3565b80601f01602080910402602001604051908101604052809291908181526020018280546103fe90611dd3565b801561044b5780601f106104205761010080835404028352916020019161044b565b820191906000526020600020905b81548152906001019060200180831161042e57829003601f168201915b5050505050905090565b6000610469610462610c7f565b8484610c87565b6001905092915050565b6000600254905090565b600061048a848484610e52565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104d5610c7f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054c90611b6f565b60405180910390fd5b61056985610561610c7f565b858403610c87565b60019150509392505050565b60006012905090565b600061062061058b610c7f565b848460016000610599610c7f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461061b9190611cc1565b610c87565b6001905092915050565b610632610c7f565b73ffffffffffffffffffffffffffffffffffffffff16610650610936565b73ffffffffffffffffffffffffffffffffffffffff16146106a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069d90611b8f565b60405180910390fd5b6106ae6110d3565b565b6106b8610c7f565b73ffffffffffffffffffffffffffffffffffffffff166106d6610936565b73ffffffffffffffffffffffffffffffffffffffff161461072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072390611b8f565b60405180910390fd5b6107368282611175565b5050565b61074b610745610c7f565b826112d5565b50565b6000600560009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107b5610c7f565b73ffffffffffffffffffffffffffffffffffffffff166107d3610936565b73ffffffffffffffffffffffffffffffffffffffff1614610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082090611b8f565b60405180910390fd5b61083360006114ac565b565b600061084883610843610c7f565b610afb565b90508181101561088d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088490611baf565b60405180910390fd5b6108a183610899610c7f565b848403610c87565b6108ab83836112d5565b505050565b6108b8610c7f565b73ffffffffffffffffffffffffffffffffffffffff166108d6610936565b73ffffffffffffffffffffffffffffffffffffffff161461092c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092390611b8f565b60405180910390fd5b610934611572565b565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461096f90611dd3565b80601f016020809104026020016040519081016040528092919081815260200182805461099b90611dd3565b80156109e85780601f106109bd576101008083540402835291602001916109e8565b820191906000526020600020905b8154815290600101906020018083116109cb57829003601f168201915b5050505050905090565b60008060016000610a01610c7f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab590611c2f565b60405180910390fd5b610ad2610ac9610c7f565b85858403610c87565b600191505092915050565b6000610af1610aea610c7f565b8484610e52565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b8a610c7f565b73ffffffffffffffffffffffffffffffffffffffff16610ba8610936565b73ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590611b8f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6590611aef565b60405180910390fd5b610c77816114ac565b50565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90611c0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90611b0f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e459190611c6f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990611bef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2990611a8f565b60405180910390fd5b610f3d838383611615565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fba90611b2f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110569190611cc1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110ba9190611c6f565b60405180910390a36110cd84848461166d565b50505050565b6110db61074e565b61111a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111190611aaf565b60405180910390fd5b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61115e610c7f565b60405161116b9190611a37565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc90611c4f565b60405180910390fd5b6111f160008383611615565b80600260008282546112039190611cc1565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112589190611cc1565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112bd9190611c6f565b60405180910390a36112d16000838361166d565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133c90611bcf565b60405180910390fd5b61135182600083611615565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce90611acf565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816002600082825461142e9190611d17565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114939190611c6f565b60405180910390a36114a78360008461166d565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61157a61074e565b156115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b190611b4f565b60405180910390fd5b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115fe610c7f565b60405161160b9190611a37565b60405180910390a1565b61161d61074e565b1561165d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165490611b4f565b60405180910390fd5b611668838383610c7a565b505050565b505050565b6000813590506116818161227d565b92915050565b60008135905061169681612294565b92915050565b6000602082840312156116ae57600080fd5b60006116bc84828501611672565b91505092915050565b600080604083850312156116d857600080fd5b60006116e685828601611672565b92505060206116f785828601611672565b9150509250929050565b60008060006060848603121561171657600080fd5b600061172486828701611672565b935050602061173586828701611672565b925050604061174686828701611687565b9150509250925092565b6000806040838503121561176357600080fd5b600061177185828601611672565b925050602061178285828601611687565b9150509250929050565b60006020828403121561179e57600080fd5b60006117ac84828501611687565b91505092915050565b6117be81611d4b565b82525050565b6117cd81611d5d565b82525050565b60006117de82611ca5565b6117e88185611cb0565b93506117f8818560208601611da0565b61180181611e63565b840191505092915050565b6000611819602383611cb0565b915061182482611e74565b604082019050919050565b600061183c601483611cb0565b915061184782611ec3565b602082019050919050565b600061185f602283611cb0565b915061186a82611eec565b604082019050919050565b6000611882602683611cb0565b915061188d82611f3b565b604082019050919050565b60006118a5602283611cb0565b91506118b082611f8a565b604082019050919050565b60006118c8602683611cb0565b91506118d382611fd9565b604082019050919050565b60006118eb601083611cb0565b91506118f682612028565b602082019050919050565b600061190e602883611cb0565b915061191982612051565b604082019050919050565b6000611931602083611cb0565b915061193c826120a0565b602082019050919050565b6000611954602483611cb0565b915061195f826120c9565b604082019050919050565b6000611977602183611cb0565b915061198282612118565b604082019050919050565b600061199a602583611cb0565b91506119a582612167565b604082019050919050565b60006119bd602483611cb0565b91506119c8826121b6565b604082019050919050565b60006119e0602583611cb0565b91506119eb82612205565b604082019050919050565b6000611a03601f83611cb0565b9150611a0e82612254565b602082019050919050565b611a2281611d89565b82525050565b611a3181611d93565b82525050565b6000602082019050611a4c60008301846117b5565b92915050565b6000602082019050611a6760008301846117c4565b92915050565b60006020820190508181036000830152611a8781846117d3565b905092915050565b60006020820190508181036000830152611aa88161180c565b9050919050565b60006020820190508181036000830152611ac88161182f565b9050919050565b60006020820190508181036000830152611ae881611852565b9050919050565b60006020820190508181036000830152611b0881611875565b9050919050565b60006020820190508181036000830152611b2881611898565b9050919050565b60006020820190508181036000830152611b48816118bb565b9050919050565b60006020820190508181036000830152611b68816118de565b9050919050565b60006020820190508181036000830152611b8881611901565b9050919050565b60006020820190508181036000830152611ba881611924565b9050919050565b60006020820190508181036000830152611bc881611947565b9050919050565b60006020820190508181036000830152611be88161196a565b9050919050565b60006020820190508181036000830152611c088161198d565b9050919050565b60006020820190508181036000830152611c28816119b0565b9050919050565b60006020820190508181036000830152611c48816119d3565b9050919050565b60006020820190508181036000830152611c68816119f6565b9050919050565b6000602082019050611c846000830184611a19565b92915050565b6000602082019050611c9f6000830184611a28565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611ccc82611d89565b9150611cd783611d89565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d0c57611d0b611e05565b5b828201905092915050565b6000611d2282611d89565b9150611d2d83611d89565b925082821015611d4057611d3f611e05565b5b828203905092915050565b6000611d5682611d69565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611dbe578082015181840152602081019050611da3565b83811115611dcd576000848401525b50505050565b60006002820490506001821680611deb57607f821691505b60208210811415611dff57611dfe611e34565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61228681611d4b565b811461229157600080fd5b50565b61229d81611d89565b81146122a857600080fd5b5056fea2646970667358221220be730cfd59aeef88d477ca234e8fb03933a8e6d66d206a66e6a898a3ab952cbf64736f6c63430008020033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c806370a08231116100ad57806395d89b411161007157806395d89b41146102f9578063a457c2d714610317578063a9059cbb14610347578063dd62ed3e14610377578063f2fde38b146103a75761012c565b806370a082311461027b578063715018a6146102ab57806379cc6790146102b55780638456cb59146102d15780638da5cb5b146102db5761012c565b806339509351116100f457806339509351146101eb5780633f4ba83a1461021b57806340c10f191461022557806342966c68146102415780635c975abb1461025d5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b6101396103c3565b6040516101469190611a6d565b60405180910390f35b61016960048036038101906101649190611750565b610455565b6040516101769190611a52565b60405180910390f35b610187610473565b6040516101949190611c6f565b60405180910390f35b6101b760048036038101906101b29190611701565b61047d565b6040516101c49190611a52565b60405180910390f35b6101d5610575565b6040516101e29190611c8a565b60405180910390f35b61020560048036038101906102009190611750565b61057e565b6040516102129190611a52565b60405180910390f35b61022361062a565b005b61023f600480360381019061023a9190611750565b6106b0565b005b61025b6004803603810190610256919061178c565b61073a565b005b61026561074e565b6040516102729190611a52565b60405180910390f35b6102956004803603810190610290919061169c565b610765565b6040516102a29190611c6f565b60405180910390f35b6102b36107ad565b005b6102cf60048036038101906102ca9190611750565b610835565b005b6102d96108b0565b005b6102e3610936565b6040516102f09190611a37565b60405180910390f35b610301610960565b60405161030e9190611a6d565b60405180910390f35b610331600480360381019061032c9190611750565b6109f2565b60405161033e9190611a52565b60405180910390f35b610361600480360381019061035c9190611750565b610add565b60405161036e9190611a52565b60405180910390f35b610391600480360381019061038c91906116c5565b610afb565b60405161039e9190611c6f565b60405180910390f35b6103c160048036038101906103bc919061169c565b610b82565b005b6060600380546103d290611dd3565b80601f01602080910402602001604051908101604052809291908181526020018280546103fe90611dd3565b801561044b5780601f106104205761010080835404028352916020019161044b565b820191906000526020600020905b81548152906001019060200180831161042e57829003601f168201915b5050505050905090565b6000610469610462610c7f565b8484610c87565b6001905092915050565b6000600254905090565b600061048a848484610e52565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104d5610c7f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054c90611b6f565b60405180910390fd5b61056985610561610c7f565b858403610c87565b60019150509392505050565b60006012905090565b600061062061058b610c7f565b848460016000610599610c7f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461061b9190611cc1565b610c87565b6001905092915050565b610632610c7f565b73ffffffffffffffffffffffffffffffffffffffff16610650610936565b73ffffffffffffffffffffffffffffffffffffffff16146106a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069d90611b8f565b60405180910390fd5b6106ae6110d3565b565b6106b8610c7f565b73ffffffffffffffffffffffffffffffffffffffff166106d6610936565b73ffffffffffffffffffffffffffffffffffffffff161461072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072390611b8f565b60405180910390fd5b6107368282611175565b5050565b61074b610745610c7f565b826112d5565b50565b6000600560009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107b5610c7f565b73ffffffffffffffffffffffffffffffffffffffff166107d3610936565b73ffffffffffffffffffffffffffffffffffffffff1614610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082090611b8f565b60405180910390fd5b61083360006114ac565b565b600061084883610843610c7f565b610afb565b90508181101561088d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088490611baf565b60405180910390fd5b6108a183610899610c7f565b848403610c87565b6108ab83836112d5565b505050565b6108b8610c7f565b73ffffffffffffffffffffffffffffffffffffffff166108d6610936565b73ffffffffffffffffffffffffffffffffffffffff161461092c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092390611b8f565b60405180910390fd5b610934611572565b565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461096f90611dd3565b80601f016020809104026020016040519081016040528092919081815260200182805461099b90611dd3565b80156109e85780601f106109bd576101008083540402835291602001916109e8565b820191906000526020600020905b8154815290600101906020018083116109cb57829003601f168201915b5050505050905090565b60008060016000610a01610c7f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab590611c2f565b60405180910390fd5b610ad2610ac9610c7f565b85858403610c87565b600191505092915050565b6000610af1610aea610c7f565b8484610e52565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b8a610c7f565b73ffffffffffffffffffffffffffffffffffffffff16610ba8610936565b73ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590611b8f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610c6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6590611aef565b60405180910390fd5b610c77816114ac565b50565b505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610cf7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cee90611c0f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5e90611b0f565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e459190611c6f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ec2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb990611bef565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2990611a8f565b60405180910390fd5b610f3d838383611615565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fba90611b2f565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110569190611cc1565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516110ba9190611c6f565b60405180910390a36110cd84848461166d565b50505050565b6110db61074e565b61111a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111190611aaf565b60405180910390fd5b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61115e610c7f565b60405161116b9190611a37565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111dc90611c4f565b60405180910390fd5b6111f160008383611615565b80600260008282546112039190611cc1565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112589190611cc1565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112bd9190611c6f565b60405180910390a36112d16000838361166d565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133c90611bcf565b60405180910390fd5b61135182600083611615565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ce90611acf565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816002600082825461142e9190611d17565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114939190611c6f565b60405180910390a36114a78360008461166d565b505050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61157a61074e565b156115ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b190611b4f565b60405180910390fd5b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115fe610c7f565b60405161160b9190611a37565b60405180910390a1565b61161d61074e565b1561165d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165490611b4f565b60405180910390fd5b611668838383610c7a565b505050565b505050565b6000813590506116818161227d565b92915050565b60008135905061169681612294565b92915050565b6000602082840312156116ae57600080fd5b60006116bc84828501611672565b91505092915050565b600080604083850312156116d857600080fd5b60006116e685828601611672565b92505060206116f785828601611672565b9150509250929050565b60008060006060848603121561171657600080fd5b600061172486828701611672565b935050602061173586828701611672565b925050604061174686828701611687565b9150509250925092565b6000806040838503121561176357600080fd5b600061177185828601611672565b925050602061178285828601611687565b9150509250929050565b60006020828403121561179e57600080fd5b60006117ac84828501611687565b91505092915050565b6117be81611d4b565b82525050565b6117cd81611d5d565b82525050565b60006117de82611ca5565b6117e88185611cb0565b93506117f8818560208601611da0565b61180181611e63565b840191505092915050565b6000611819602383611cb0565b915061182482611e74565b604082019050919050565b600061183c601483611cb0565b915061184782611ec3565b602082019050919050565b600061185f602283611cb0565b915061186a82611eec565b604082019050919050565b6000611882602683611cb0565b915061188d82611f3b565b604082019050919050565b60006118a5602283611cb0565b91506118b082611f8a565b604082019050919050565b60006118c8602683611cb0565b91506118d382611fd9565b604082019050919050565b60006118eb601083611cb0565b91506118f682612028565b602082019050919050565b600061190e602883611cb0565b915061191982612051565b604082019050919050565b6000611931602083611cb0565b915061193c826120a0565b602082019050919050565b6000611954602483611cb0565b915061195f826120c9565b604082019050919050565b6000611977602183611cb0565b915061198282612118565b604082019050919050565b600061199a602583611cb0565b91506119a582612167565b604082019050919050565b60006119bd602483611cb0565b91506119c8826121b6565b604082019050919050565b60006119e0602583611cb0565b91506119eb82612205565b604082019050919050565b6000611a03601f83611cb0565b9150611a0e82612254565b602082019050919050565b611a2281611d89565b82525050565b611a3181611d93565b82525050565b6000602082019050611a4c60008301846117b5565b92915050565b6000602082019050611a6760008301846117c4565b92915050565b60006020820190508181036000830152611a8781846117d3565b905092915050565b60006020820190508181036000830152611aa88161180c565b9050919050565b60006020820190508181036000830152611ac88161182f565b9050919050565b60006020820190508181036000830152611ae881611852565b9050919050565b60006020820190508181036000830152611b0881611875565b9050919050565b60006020820190508181036000830152611b2881611898565b9050919050565b60006020820190508181036000830152611b48816118bb565b9050919050565b60006020820190508181036000830152611b68816118de565b9050919050565b60006020820190508181036000830152611b8881611901565b9050919050565b60006020820190508181036000830152611ba881611924565b9050919050565b60006020820190508181036000830152611bc881611947565b9050919050565b60006020820190508181036000830152611be88161196a565b9050919050565b60006020820190508181036000830152611c088161198d565b9050919050565b60006020820190508181036000830152611c28816119b0565b9050919050565b60006020820190508181036000830152611c48816119d3565b9050919050565b60006020820190508181036000830152611c68816119f6565b9050919050565b6000602082019050611c846000830184611a19565b92915050565b6000602082019050611c9f6000830184611a28565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611ccc82611d89565b9150611cd783611d89565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611d0c57611d0b611e05565b5b828201905092915050565b6000611d2282611d89565b9150611d2d83611d89565b925082821015611d4057611d3f611e05565b5b828203905092915050565b6000611d5682611d69565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611dbe578082015181840152602081019050611da3565b83811115611dcd576000848401525b50505050565b60006002820490506001821680611deb57607f821691505b60208210811415611dff57611dfe611e34565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f7760008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b61228681611d4b565b811461229157600080fd5b50565b61229d81611d89565b81146122a857600080fd5b5056fea2646970667358221220be730cfd59aeef88d477ca234e8fb03933a8e6d66d206a66e6a898a3ab952cbf64736f6c63430008020033
Deployed Bytecode Sourcemap
22796:634:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6476:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8643:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7596:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9294:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7438:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10195:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23048:65;;;:::i;:::-;;23121:95;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16932:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18795:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7767:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21634:94;;;:::i;:::-;;17342:368;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22979:61;;;:::i;:::-;;20983:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6695:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10913:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8107:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8345:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21883:192;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6476:100;6530:13;6563:5;6556:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6476:100;:::o;8643:169::-;8726:4;8743:39;8752:12;:10;:12::i;:::-;8766:7;8775:6;8743:8;:39::i;:::-;8800:4;8793:11;;8643:169;;;;:::o;7596:108::-;7657:7;7684:12;;7677:19;;7596:108;:::o;9294:492::-;9434:4;9451:36;9461:6;9469:9;9480:6;9451:9;:36::i;:::-;9500:24;9527:11;:19;9539:6;9527:19;;;;;;;;;;;;;;;:33;9547:12;:10;:12::i;:::-;9527:33;;;;;;;;;;;;;;;;9500:60;;9599:6;9579:16;:26;;9571:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9686:57;9695:6;9703:12;:10;:12::i;:::-;9736:6;9717:16;:25;9686:8;:57::i;:::-;9774:4;9767:11;;;9294:492;;;;;:::o;7438:93::-;7496:5;7521:2;7514:9;;7438:93;:::o;10195:215::-;10283:4;10300:80;10309:12;:10;:12::i;:::-;10323:7;10369:10;10332:11;:25;10344:12;:10;:12::i;:::-;10332:25;;;;;;;;;;;;;;;:34;10358:7;10332:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10300:8;:80::i;:::-;10398:4;10391:11;;10195:215;;;;:::o;23048:65::-;21214:12;:10;:12::i;:::-;21203:23;;:7;:5;:7::i;:::-;:23;;;21195:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23095:10:::1;:8;:10::i;:::-;23048:65::o:0;23121:95::-;21214:12;:10;:12::i;:::-;21203:23;;:7;:5;:7::i;:::-;:23;;;21195:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23191:17:::1;23197:2;23201:6;23191:5;:17::i;:::-;23121:95:::0;;:::o;16932:91::-;16988:27;16994:12;:10;:12::i;:::-;17008:6;16988:5;:27::i;:::-;16932:91;:::o;18795:86::-;18842:4;18866:7;;;;;;;;;;;18859:14;;18795:86;:::o;7767:127::-;7841:7;7868:9;:18;7878:7;7868:18;;;;;;;;;;;;;;;;7861:25;;7767:127;;;:::o;21634:94::-;21214:12;:10;:12::i;:::-;21203:23;;:7;:5;:7::i;:::-;:23;;;21195:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21699:21:::1;21717:1;21699:9;:21::i;:::-;21634:94::o:0;17342:368::-;17419:24;17446:32;17456:7;17465:12;:10;:12::i;:::-;17446:9;:32::i;:::-;17419:59;;17517:6;17497:16;:26;;17489:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;17600:58;17609:7;17618:12;:10;:12::i;:::-;17651:6;17632:16;:25;17600:8;:58::i;:::-;17680:22;17686:7;17695:6;17680:5;:22::i;:::-;17342:368;;;:::o;22979:61::-;21214:12;:10;:12::i;:::-;21203:23;;:7;:5;:7::i;:::-;:23;;;21195:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23024:8:::1;:6;:8::i;:::-;22979:61::o:0;20983:87::-;21029:7;21056:6;;;;;;;;;;;21049:13;;20983:87;:::o;6695:104::-;6751:13;6784:7;6777:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6695:104;:::o;10913:413::-;11006:4;11023:24;11050:11;:25;11062:12;:10;:12::i;:::-;11050:25;;;;;;;;;;;;;;;:34;11076:7;11050:34;;;;;;;;;;;;;;;;11023:61;;11123:15;11103:16;:35;;11095:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11216:67;11225:12;:10;:12::i;:::-;11239:7;11267:15;11248:16;:34;11216:8;:67::i;:::-;11314:4;11307:11;;;10913:413;;;;:::o;8107:175::-;8193:4;8210:42;8220:12;:10;:12::i;:::-;8234:9;8245:6;8210:9;:42::i;:::-;8270:4;8263:11;;8107:175;;;;:::o;8345:151::-;8434:7;8461:11;:18;8473:5;8461:18;;;;;;;;;;;;;;;:27;8480:7;8461:27;;;;;;;;;;;;;;;;8454:34;;8345:151;;;;:::o;21883:192::-;21214:12;:10;:12::i;:::-;21203:23;;:7;:5;:7::i;:::-;:23;;;21195:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21992:1:::1;21972:22;;:8;:22;;;;21964:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;22048:19;22058:8;22048:9;:19::i;:::-;21883:192:::0;:::o;15577:125::-;;;;:::o;4196:98::-;4249:7;4276:10;4269:17;;4196:98;:::o;14597:380::-;14750:1;14733:19;;:5;:19;;;;14725:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14831:1;14812:21;;:7;:21;;;;14804:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14915:6;14885:11;:18;14897:5;14885:18;;;;;;;;;;;;;;;:27;14904:7;14885:27;;;;;;;;;;;;;;;:36;;;;14953:7;14937:32;;14946:5;14937:32;;;14962:6;14937:32;;;;;;:::i;:::-;;;;;;;;14597:380;;;:::o;11816:733::-;11974:1;11956:20;;:6;:20;;;;11948:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12058:1;12037:23;;:9;:23;;;;12029:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12113:47;12134:6;12142:9;12153:6;12113:20;:47::i;:::-;12173:21;12197:9;:17;12207:6;12197:17;;;;;;;;;;;;;;;;12173:41;;12250:6;12233:13;:23;;12225:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12371:6;12355:13;:22;12335:9;:17;12345:6;12335:17;;;;;;;;;;;;;;;:42;;;;12423:6;12399:9;:20;12409:9;12399:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12464:9;12447:35;;12456:6;12447:35;;;12475:6;12447:35;;;;;;:::i;:::-;;;;;;;;12495:46;12515:6;12523:9;12534:6;12495:19;:46::i;:::-;11816:733;;;;:::o;19854:120::-;19398:8;:6;:8::i;:::-;19390:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;19923:5:::1;19913:7;;:15;;;;;;;;;;;;;;;;;;19944:22;19953:12;:10;:12::i;:::-;19944:22;;;;;;:::i;:::-;;;;;;;;19854:120::o:0;12836:399::-;12939:1;12920:21;;:7;:21;;;;12912:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12990:49;13019:1;13023:7;13032:6;12990:20;:49::i;:::-;13068:6;13052:12;;:22;;;;;;;:::i;:::-;;;;;;;;13107:6;13085:9;:18;13095:7;13085:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;13150:7;13129:37;;13146:1;13129:37;;;13159:6;13129:37;;;;;;:::i;:::-;;;;;;;;13179:48;13207:1;13211:7;13220:6;13179:19;:48::i;:::-;12836:399;;:::o;13568:591::-;13671:1;13652:21;;:7;:21;;;;13644:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13724:49;13745:7;13762:1;13766:6;13724:20;:49::i;:::-;13786:22;13811:9;:18;13821:7;13811:18;;;;;;;;;;;;;;;;13786:43;;13866:6;13848:14;:24;;13840:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13985:6;13968:14;:23;13947:9;:18;13957:7;13947:18;;;;;;;;;;;;;;;:44;;;;14029:6;14013:12;;:22;;;;;;;:::i;:::-;;;;;;;;14079:1;14053:37;;14062:7;14053:37;;;14083:6;14053:37;;;;;;:::i;:::-;;;;;;;;14103:48;14123:7;14140:1;14144:6;14103:19;:48::i;:::-;13568:591;;;:::o;22083:173::-;22139:16;22158:6;;;;;;;;;;;22139:25;;22184:8;22175:6;;:17;;;;;;;;;;;;;;;;;;22239:8;22208:40;;22229:8;22208:40;;;;;;;;;;;;22083:173;;:::o;19595:118::-;19121:8;:6;:8::i;:::-;19120:9;19112:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;19665:4:::1;19655:7;;:14;;;;;;;;;;;;;;;;;;19685:20;19692:12;:10;:12::i;:::-;19685:20;;;;;;:::i;:::-;;;;;;;;19595:118::o:0;23228:199::-;19121:8;:6;:8::i;:::-;19120:9;19112:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;23375:44:::1;23402:4;23408:2;23412:6;23375:26;:44::i;:::-;23228:199:::0;;;:::o;16306:124::-;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:262::-;;2057:2;2045:9;2036:7;2032:23;2028:32;2025:2;;;2073:1;2070;2063:12;2025:2;2116:1;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2087:117;2015:196;;;;:::o;2217:118::-;2304:24;2322:5;2304:24;:::i;:::-;2299:3;2292:37;2282:53;;:::o;2341:109::-;2422:21;2437:5;2422:21;:::i;:::-;2417:3;2410:34;2400:50;;:::o;2456:364::-;;2572:39;2605:5;2572:39;:::i;:::-;2627:71;2691:6;2686:3;2627:71;:::i;:::-;2620:78;;2707:52;2752:6;2747:3;2740:4;2733:5;2729:16;2707:52;:::i;:::-;2784:29;2806:6;2784:29;:::i;:::-;2779:3;2775:39;2768:46;;2548:272;;;;;:::o;2826:366::-;;2989:67;3053:2;3048:3;2989:67;:::i;:::-;2982:74;;3065:93;3154:3;3065:93;:::i;:::-;3183:2;3178:3;3174:12;3167:19;;2972:220;;;:::o;3198:366::-;;3361:67;3425:2;3420:3;3361:67;:::i;:::-;3354:74;;3437:93;3526:3;3437:93;:::i;:::-;3555:2;3550:3;3546:12;3539:19;;3344:220;;;:::o;3570:366::-;;3733:67;3797:2;3792:3;3733:67;:::i;:::-;3726:74;;3809:93;3898:3;3809:93;:::i;:::-;3927:2;3922:3;3918:12;3911:19;;3716:220;;;:::o;3942:366::-;;4105:67;4169:2;4164:3;4105:67;:::i;:::-;4098:74;;4181:93;4270:3;4181:93;:::i;:::-;4299:2;4294:3;4290:12;4283:19;;4088:220;;;:::o;4314:366::-;;4477:67;4541:2;4536:3;4477:67;:::i;:::-;4470:74;;4553:93;4642:3;4553:93;:::i;:::-;4671:2;4666:3;4662:12;4655:19;;4460:220;;;:::o;4686:366::-;;4849:67;4913:2;4908:3;4849:67;:::i;:::-;4842:74;;4925:93;5014:3;4925:93;:::i;:::-;5043:2;5038:3;5034:12;5027:19;;4832:220;;;:::o;5058:366::-;;5221:67;5285:2;5280:3;5221:67;:::i;:::-;5214:74;;5297:93;5386:3;5297:93;:::i;:::-;5415:2;5410:3;5406:12;5399:19;;5204:220;;;:::o;5430:366::-;;5593:67;5657:2;5652:3;5593:67;:::i;:::-;5586:74;;5669:93;5758:3;5669:93;:::i;:::-;5787:2;5782:3;5778:12;5771:19;;5576:220;;;:::o;5802:366::-;;5965:67;6029:2;6024:3;5965:67;:::i;:::-;5958:74;;6041:93;6130:3;6041:93;:::i;:::-;6159:2;6154:3;6150:12;6143:19;;5948:220;;;:::o;6174:366::-;;6337:67;6401:2;6396:3;6337:67;:::i;:::-;6330:74;;6413:93;6502:3;6413:93;:::i;:::-;6531:2;6526:3;6522:12;6515:19;;6320:220;;;:::o;6546:366::-;;6709:67;6773:2;6768:3;6709:67;:::i;:::-;6702:74;;6785:93;6874:3;6785:93;:::i;:::-;6903:2;6898:3;6894:12;6887:19;;6692:220;;;:::o;6918:366::-;;7081:67;7145:2;7140:3;7081:67;:::i;:::-;7074:74;;7157:93;7246:3;7157:93;:::i;:::-;7275:2;7270:3;7266:12;7259:19;;7064:220;;;:::o;7290:366::-;;7453:67;7517:2;7512:3;7453:67;:::i;:::-;7446:74;;7529:93;7618:3;7529:93;:::i;:::-;7647:2;7642:3;7638:12;7631:19;;7436:220;;;:::o;7662:366::-;;7825:67;7889:2;7884:3;7825:67;:::i;:::-;7818:74;;7901:93;7990:3;7901:93;:::i;:::-;8019:2;8014:3;8010:12;8003:19;;7808:220;;;:::o;8034:366::-;;8197:67;8261:2;8256:3;8197:67;:::i;:::-;8190:74;;8273:93;8362:3;8273:93;:::i;:::-;8391:2;8386:3;8382:12;8375:19;;8180:220;;;:::o;8406:118::-;8493:24;8511:5;8493:24;:::i;:::-;8488:3;8481:37;8471:53;;:::o;8530:112::-;8613:22;8629:5;8613:22;:::i;:::-;8608:3;8601:35;8591:51;;:::o;8648:222::-;;8779:2;8768:9;8764:18;8756:26;;8792:71;8860:1;8849:9;8845:17;8836:6;8792:71;:::i;:::-;8746:124;;;;:::o;8876:210::-;;9001:2;8990:9;8986:18;8978:26;;9014:65;9076:1;9065:9;9061:17;9052:6;9014:65;:::i;:::-;8968:118;;;;:::o;9092:313::-;;9243:2;9232:9;9228:18;9220:26;;9292:9;9286:4;9282:20;9278:1;9267:9;9263:17;9256:47;9320:78;9393:4;9384:6;9320:78;:::i;:::-;9312:86;;9210:195;;;;:::o;9411:419::-;;9615:2;9604:9;9600:18;9592:26;;9664:9;9658:4;9654:20;9650:1;9639:9;9635:17;9628:47;9692:131;9818:4;9692:131;:::i;:::-;9684:139;;9582:248;;;:::o;9836:419::-;;10040:2;10029:9;10025:18;10017:26;;10089:9;10083:4;10079:20;10075:1;10064:9;10060:17;10053:47;10117:131;10243:4;10117:131;:::i;:::-;10109:139;;10007:248;;;:::o;10261:419::-;;10465:2;10454:9;10450:18;10442:26;;10514:9;10508:4;10504:20;10500:1;10489:9;10485:17;10478:47;10542:131;10668:4;10542:131;:::i;:::-;10534:139;;10432:248;;;:::o;10686:419::-;;10890:2;10879:9;10875:18;10867:26;;10939:9;10933:4;10929:20;10925:1;10914:9;10910:17;10903:47;10967:131;11093:4;10967:131;:::i;:::-;10959:139;;10857:248;;;:::o;11111:419::-;;11315:2;11304:9;11300:18;11292:26;;11364:9;11358:4;11354:20;11350:1;11339:9;11335:17;11328:47;11392:131;11518:4;11392:131;:::i;:::-;11384:139;;11282:248;;;:::o;11536:419::-;;11740:2;11729:9;11725:18;11717:26;;11789:9;11783:4;11779:20;11775:1;11764:9;11760:17;11753:47;11817:131;11943:4;11817:131;:::i;:::-;11809:139;;11707:248;;;:::o;11961:419::-;;12165:2;12154:9;12150:18;12142:26;;12214:9;12208:4;12204:20;12200:1;12189:9;12185:17;12178:47;12242:131;12368:4;12242:131;:::i;:::-;12234:139;;12132:248;;;:::o;12386:419::-;;12590:2;12579:9;12575:18;12567:26;;12639:9;12633:4;12629:20;12625:1;12614:9;12610:17;12603:47;12667:131;12793:4;12667:131;:::i;:::-;12659:139;;12557:248;;;:::o;12811:419::-;;13015:2;13004:9;13000:18;12992:26;;13064:9;13058:4;13054:20;13050:1;13039:9;13035:17;13028:47;13092:131;13218:4;13092:131;:::i;:::-;13084:139;;12982:248;;;:::o;13236:419::-;;13440:2;13429:9;13425:18;13417:26;;13489:9;13483:4;13479:20;13475:1;13464:9;13460:17;13453:47;13517:131;13643:4;13517:131;:::i;:::-;13509:139;;13407:248;;;:::o;13661:419::-;;13865:2;13854:9;13850:18;13842:26;;13914:9;13908:4;13904:20;13900:1;13889:9;13885:17;13878:47;13942:131;14068:4;13942:131;:::i;:::-;13934:139;;13832:248;;;:::o;14086:419::-;;14290:2;14279:9;14275:18;14267:26;;14339:9;14333:4;14329:20;14325:1;14314:9;14310:17;14303:47;14367:131;14493:4;14367:131;:::i;:::-;14359:139;;14257:248;;;:::o;14511:419::-;;14715:2;14704:9;14700:18;14692:26;;14764:9;14758:4;14754:20;14750:1;14739:9;14735:17;14728:47;14792:131;14918:4;14792:131;:::i;:::-;14784:139;;14682:248;;;:::o;14936:419::-;;15140:2;15129:9;15125:18;15117:26;;15189:9;15183:4;15179:20;15175:1;15164:9;15160:17;15153:47;15217:131;15343:4;15217:131;:::i;:::-;15209:139;;15107:248;;;:::o;15361:419::-;;15565:2;15554:9;15550:18;15542:26;;15614:9;15608:4;15604:20;15600:1;15589:9;15585:17;15578:47;15642:131;15768:4;15642:131;:::i;:::-;15634:139;;15532:248;;;:::o;15786:222::-;;15917:2;15906:9;15902:18;15894:26;;15930:71;15998:1;15987:9;15983:17;15974:6;15930:71;:::i;:::-;15884:124;;;;:::o;16014:214::-;;16141:2;16130:9;16126:18;16118:26;;16154:67;16218:1;16207:9;16203:17;16194:6;16154:67;:::i;:::-;16108:120;;;;:::o;16234:99::-;;16320:5;16314:12;16304:22;;16293:40;;;:::o;16339:169::-;;16457:6;16452:3;16445:19;16497:4;16492:3;16488:14;16473:29;;16435:73;;;;:::o;16514:305::-;;16573:20;16591:1;16573:20;:::i;:::-;16568:25;;16607:20;16625:1;16607:20;:::i;:::-;16602:25;;16761:1;16693:66;16689:74;16686:1;16683:81;16680:2;;;16767:18;;:::i;:::-;16680:2;16811:1;16808;16804:9;16797:16;;16558:261;;;;:::o;16825:191::-;;16885:20;16903:1;16885:20;:::i;:::-;16880:25;;16919:20;16937:1;16919:20;:::i;:::-;16914:25;;16958:1;16955;16952:8;16949:2;;;16963:18;;:::i;:::-;16949:2;17008:1;17005;17001:9;16993:17;;16870:146;;;;:::o;17022:96::-;;17088:24;17106:5;17088:24;:::i;:::-;17077:35;;17067:51;;;:::o;17124:90::-;;17201:5;17194:13;17187:21;17176:32;;17166:48;;;:::o;17220:126::-;;17297:42;17290:5;17286:54;17275:65;;17265:81;;;:::o;17352:77::-;;17418:5;17407:16;;17397:32;;;:::o;17435:86::-;;17510:4;17503:5;17499:16;17488:27;;17478:43;;;:::o;17527:307::-;17595:1;17605:113;17619:6;17616:1;17613:13;17605:113;;;17704:1;17699:3;17695:11;17689:18;17685:1;17680:3;17676:11;17669:39;17641:2;17638:1;17634:10;17629:15;;17605:113;;;17736:6;17733:1;17730:13;17727:2;;;17816:1;17807:6;17802:3;17798:16;17791:27;17727:2;17576:258;;;;:::o;17840:320::-;;17921:1;17915:4;17911:12;17901:22;;17968:1;17962:4;17958:12;17989:18;17979:2;;18045:4;18037:6;18033:17;18023:27;;17979:2;18107;18099:6;18096:14;18076:18;18073:38;18070:2;;;18126:18;;:::i;:::-;18070:2;17891:269;;;;:::o;18166:180::-;18214:77;18211:1;18204:88;18311:4;18308:1;18301:15;18335:4;18332:1;18325:15;18352:180;18400:77;18397:1;18390:88;18497:4;18494:1;18487:15;18521:4;18518:1;18511:15;18538:102;;18630:2;18626:7;18621:2;18614:5;18610:14;18606:28;18596:38;;18586:54;;;:::o;18646:222::-;18786:34;18782:1;18774:6;18770:14;18763:58;18855:5;18850:2;18842:6;18838:15;18831:30;18752:116;:::o;18874:170::-;19014:22;19010:1;19002:6;18998:14;18991:46;18980:64;:::o;19050:221::-;19190:34;19186:1;19178:6;19174:14;19167:58;19259:4;19254:2;19246:6;19242:15;19235:29;19156:115;:::o;19277:225::-;19417:34;19413:1;19405:6;19401:14;19394:58;19486:8;19481:2;19473:6;19469:15;19462:33;19383:119;:::o;19508:221::-;19648:34;19644:1;19636:6;19632:14;19625:58;19717:4;19712:2;19704:6;19700:15;19693:29;19614:115;:::o;19735:225::-;19875:34;19871:1;19863:6;19859:14;19852:58;19944:8;19939:2;19931:6;19927:15;19920:33;19841:119;:::o;19966:166::-;20106:18;20102:1;20094:6;20090:14;20083:42;20072:60;:::o;20138:227::-;20278:34;20274:1;20266:6;20262:14;20255:58;20347:10;20342:2;20334:6;20330:15;20323:35;20244:121;:::o;20371:182::-;20511:34;20507:1;20499:6;20495:14;20488:58;20477:76;:::o;20559:223::-;20699:34;20695:1;20687:6;20683:14;20676:58;20768:6;20763:2;20755:6;20751:15;20744:31;20665:117;:::o;20788:220::-;20928:34;20924:1;20916:6;20912:14;20905:58;20997:3;20992:2;20984:6;20980:15;20973:28;20894:114;:::o;21014:224::-;21154:34;21150:1;21142:6;21138:14;21131:58;21223:7;21218:2;21210:6;21206:15;21199:32;21120:118;:::o;21244:223::-;21384:34;21380:1;21372:6;21368:14;21361:58;21453:6;21448:2;21440:6;21436:15;21429:31;21350:117;:::o;21473:224::-;21613:34;21609:1;21601:6;21597:14;21590:58;21682:7;21677:2;21669:6;21665:15;21658:32;21579:118;:::o;21703:181::-;21843:33;21839:1;21831:6;21827:14;21820:57;21809:75;:::o;21890:122::-;21963:24;21981:5;21963:24;:::i;:::-;21956:5;21953:35;21943:2;;22002:1;21999;21992:12;21943:2;21933:79;:::o;22018:122::-;22091:24;22109:5;22091:24;:::i;:::-;22084:5;22081:35;22071:2;;22130:1;22127;22120:12;22071:2;22061:79;:::o
Swarm Source
ipfs://be730cfd59aeef88d477ca234e8fb03933a8e6d66d206a66e6a898a3ab952cbf
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.