ERC-20
E-Commerce
Overview
Max Total Supply
5,000,000,000 GMB
Holders
561 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
130,000,000 GMBValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
GMB
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-29 */ // SPDX-License-Identifier: MIT 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 GSN 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 payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // /** * @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); } // /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } // /** * @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 { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; /** * @dev Sets the values for {name} and {symbol}, initializes {decimals} with * a default value of 18. * * To select a different value for {decimals}, use {_setupDecimals}. * * All three of these values are immutable: they can only be set once during * construction. */ constructor (string memory name, string memory symbol) public { _name = name; _symbol = symbol; _decimals = 18; } /** * @dev Returns the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view 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 {_setupDecimals} is * called. * * 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 returns (uint8) { return _decimals; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view 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); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); 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].add(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) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, 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 Sets {decimals} to a value other than the default one of 18. * * WARNING: This function should only be called from the constructor. Most * applications that interact with token contracts will not expect * {decimals} to ever change, and may work incorrectly if it does. */ function _setupDecimals(uint8 decimals_) internal { _decimals = decimals_; } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } // /** * @title GMB */ contract GMB is ERC20 { constructor() public ERC20("GMB", "GMB") { _mint(msg.sender, 5000000000 ether); } }
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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600381526020017f474d4200000000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f474d42000000000000000000000000000000000000000000000000000000000081525081600390805190602001906200009692919062000309565b508060049080519060200190620000af92919062000309565b506012600560006101000a81548160ff021916908360ff1602179055505050620000ec336b1027e72f1f12813088000000620000f260201b60201c565b620005bb565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000165576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015c9062000470565b60405180910390fd5b6200017960008383620002a160201b60201c565b6200019581600254620002a660201b6200071f1790919060201c565b600281905550620001f3816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620002a660201b6200071f1790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000295919062000492565b60405180910390a35050565b505050565b6000808284620002b79190620004c0565b905083811015620002ff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002f6906200044e565b60405180910390fd5b8091505092915050565b828054620003179062000527565b90600052602060002090601f0160209004810192826200033b576000855562000387565b82601f106200035657805160ff191683800117855562000387565b8280016001018555821562000387579182015b828111156200038657825182559160200191906001019062000369565b5b5090506200039691906200039a565b5090565b5b80821115620003b55760008160009055506001016200039b565b5090565b6000620003c8601b83620004af565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006200040a601f83620004af565b91507f45524332303a206d696e7420746f20746865207a65726f2061646472657373006000830152602082019050919050565b62000448816200051d565b82525050565b600060208201905081810360008301526200046981620003b9565b9050919050565b600060208201905081810360008301526200048b81620003fb565b9050919050565b6000602082019050620004a960008301846200043d565b92915050565b600082825260208201905092915050565b6000620004cd826200051d565b9150620004da836200051d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200051257620005116200055d565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200054057607f821691505b602082108114156200055757620005566200058c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61135f80620005cb6000396000f3fe608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610fc1565b60405180910390f35b6100e660048036038101906100e19190610d2c565b610308565b6040516100f39190610fa6565b60405180910390f35b610104610326565b6040516101119190611083565b60405180910390f35b610134600480360381019061012f9190610cdd565b610330565b6040516101419190610fa6565b60405180910390f35b610152610409565b60405161015f919061109e565b60405180910390f35b610182600480360381019061017d9190610d2c565b610420565b60405161018f9190610fa6565b60405180910390f35b6101b260048036038101906101ad9190610c78565b6104d3565b6040516101bf9190611083565b60405180910390f35b6101d061051b565b6040516101dd9190610fc1565b60405180910390f35b61020060048036038101906101fb9190610d2c565b6105ad565b60405161020d9190610fa6565b60405180910390f35b610230600480360381019061022b9190610d2c565b61067a565b60405161023d9190610fa6565b60405180910390f35b610260600480360381019061025b9190610ca1565b610698565b60405161026d9190611083565b60405180910390f35b606060038054610285906111e7565b80601f01602080910402602001604051908101604052809291908181526020018280546102b1906111e7565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c61031561077d565b8484610785565b6001905092915050565b6000600254905090565b600061033d848484610950565b6103fe8461034961077d565b6103f9856040518060600160405280602881526020016112dd60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103af61077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b610785565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006104c961042d61077d565b846104c4856001600061043e61077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461071f90919063ffffffff16565b610785565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461052a906111e7565b80601f0160208091040260200160405190810160405280929190818152602001828054610556906111e7565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b60006106706105ba61077d565b8461066b8560405180606001604052806025815260200161130560259139600160006105e461077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b610785565b6001905092915050565b600061068e61068761077d565b8484610950565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080828461072e91906110d5565b905083811015610773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076a90611023565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ec90611063565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085c90611003565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109439190611083565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b790611043565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2790610fe3565b60405180910390fd5b610a3b838383610c49565b610aa6816040518060600160405280602681526020016112b7602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b39816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461071f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bd89190611083565b60405180910390a3505050565b6000838311158290610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c249190610fc1565b60405180910390fd5b5060008385610c3c919061112b565b9050809150509392505050565b505050565b600081359050610c5d81611288565b92915050565b600081359050610c728161129f565b92915050565b600060208284031215610c8a57600080fd5b6000610c9884828501610c4e565b91505092915050565b60008060408385031215610cb457600080fd5b6000610cc285828601610c4e565b9250506020610cd385828601610c4e565b9150509250929050565b600080600060608486031215610cf257600080fd5b6000610d0086828701610c4e565b9350506020610d1186828701610c4e565b9250506040610d2286828701610c63565b9150509250925092565b60008060408385031215610d3f57600080fd5b6000610d4d85828601610c4e565b9250506020610d5e85828601610c63565b9150509250929050565b610d7181611171565b82525050565b6000610d82826110b9565b610d8c81856110c4565b9350610d9c8185602086016111b4565b610da581611277565b840191505092915050565b6000610dbd6023836110c4565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610e236022836110c4565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610e89601b836110c4565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000610ec96025836110c4565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610f2f6024836110c4565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b610f918161119d565b82525050565b610fa0816111a7565b82525050565b6000602082019050610fbb6000830184610d68565b92915050565b60006020820190508181036000830152610fdb8184610d77565b905092915050565b60006020820190508181036000830152610ffc81610db0565b9050919050565b6000602082019050818103600083015261101c81610e16565b9050919050565b6000602082019050818103600083015261103c81610e7c565b9050919050565b6000602082019050818103600083015261105c81610ebc565b9050919050565b6000602082019050818103600083015261107c81610f22565b9050919050565b60006020820190506110986000830184610f88565b92915050565b60006020820190506110b36000830184610f97565b92915050565b600081519050919050565b600082825260208201905092915050565b60006110e08261119d565b91506110eb8361119d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156111205761111f611219565b5b828201905092915050565b60006111368261119d565b91506111418361119d565b92508282101561115457611153611219565b5b828203905092915050565b600061116a8261117d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156111d25780820151818401526020810190506111b7565b838111156111e1576000848401525b50505050565b600060028204905060018216806111ff57607f821691505b6020821081141561121357611212611248565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6112918161115f565b811461129c57600080fd5b50565b6112a88161119d565b81146112b357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b94f69d2b09c76665c7ef6a2fb5c700b9011ac0660163f9d32c0c0a0b83a37bc64736f6c63430008000033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100a95760003560e01c80633950935111610071578063395093511461016857806370a082311461019857806395d89b41146101c8578063a457c2d7146101e6578063a9059cbb14610216578063dd62ed3e14610246576100a9565b806306fdde03146100ae578063095ea7b3146100cc57806318160ddd146100fc57806323b872dd1461011a578063313ce5671461014a575b600080fd5b6100b6610276565b6040516100c39190610fc1565b60405180910390f35b6100e660048036038101906100e19190610d2c565b610308565b6040516100f39190610fa6565b60405180910390f35b610104610326565b6040516101119190611083565b60405180910390f35b610134600480360381019061012f9190610cdd565b610330565b6040516101419190610fa6565b60405180910390f35b610152610409565b60405161015f919061109e565b60405180910390f35b610182600480360381019061017d9190610d2c565b610420565b60405161018f9190610fa6565b60405180910390f35b6101b260048036038101906101ad9190610c78565b6104d3565b6040516101bf9190611083565b60405180910390f35b6101d061051b565b6040516101dd9190610fc1565b60405180910390f35b61020060048036038101906101fb9190610d2c565b6105ad565b60405161020d9190610fa6565b60405180910390f35b610230600480360381019061022b9190610d2c565b61067a565b60405161023d9190610fa6565b60405180910390f35b610260600480360381019061025b9190610ca1565b610698565b60405161026d9190611083565b60405180910390f35b606060038054610285906111e7565b80601f01602080910402602001604051908101604052809291908181526020018280546102b1906111e7565b80156102fe5780601f106102d3576101008083540402835291602001916102fe565b820191906000526020600020905b8154815290600101906020018083116102e157829003601f168201915b5050505050905090565b600061031c61031561077d565b8484610785565b6001905092915050565b6000600254905090565b600061033d848484610950565b6103fe8461034961077d565b6103f9856040518060600160405280602881526020016112dd60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006103af61077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b610785565b600190509392505050565b6000600560009054906101000a900460ff16905090565b60006104c961042d61077d565b846104c4856001600061043e61077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461071f90919063ffffffff16565b610785565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461052a906111e7565b80601f0160208091040260200160405190810160405280929190818152602001828054610556906111e7565b80156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b5050505050905090565b60006106706105ba61077d565b8461066b8560405180606001604052806025815260200161130560259139600160006105e461077d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b610785565b6001905092915050565b600061068e61068761077d565b8484610950565b6001905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080828461072e91906110d5565b905083811015610773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076a90611023565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ec90611063565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610865576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085c90611003565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516109439190611083565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b790611043565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2790610fe3565b60405180910390fd5b610a3b838383610c49565b610aa6816040518060600160405280602681526020016112b7602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610be59092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b39816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461071f90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610bd89190611083565b60405180910390a3505050565b6000838311158290610c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c249190610fc1565b60405180910390fd5b5060008385610c3c919061112b565b9050809150509392505050565b505050565b600081359050610c5d81611288565b92915050565b600081359050610c728161129f565b92915050565b600060208284031215610c8a57600080fd5b6000610c9884828501610c4e565b91505092915050565b60008060408385031215610cb457600080fd5b6000610cc285828601610c4e565b9250506020610cd385828601610c4e565b9150509250929050565b600080600060608486031215610cf257600080fd5b6000610d0086828701610c4e565b9350506020610d1186828701610c4e565b9250506040610d2286828701610c63565b9150509250925092565b60008060408385031215610d3f57600080fd5b6000610d4d85828601610c4e565b9250506020610d5e85828601610c63565b9150509250929050565b610d7181611171565b82525050565b6000610d82826110b9565b610d8c81856110c4565b9350610d9c8185602086016111b4565b610da581611277565b840191505092915050565b6000610dbd6023836110c4565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610e236022836110c4565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610e89601b836110c4565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b6000610ec96025836110c4565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610f2f6024836110c4565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b610f918161119d565b82525050565b610fa0816111a7565b82525050565b6000602082019050610fbb6000830184610d68565b92915050565b60006020820190508181036000830152610fdb8184610d77565b905092915050565b60006020820190508181036000830152610ffc81610db0565b9050919050565b6000602082019050818103600083015261101c81610e16565b9050919050565b6000602082019050818103600083015261103c81610e7c565b9050919050565b6000602082019050818103600083015261105c81610ebc565b9050919050565b6000602082019050818103600083015261107c81610f22565b9050919050565b60006020820190506110986000830184610f88565b92915050565b60006020820190506110b36000830184610f97565b92915050565b600081519050919050565b600082825260208201905092915050565b60006110e08261119d565b91506110eb8361119d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156111205761111f611219565b5b828201905092915050565b60006111368261119d565b91506111418361119d565b92508282101561115457611153611219565b5b828203905092915050565b600061116a8261117d565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156111d25780820151818401526020810190506111b7565b838111156111e1576000848401525b50505050565b600060028204905060018216806111ff57607f821691505b6020821081141561121357611212611248565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6112918161115f565b811461129c57600080fd5b50565b6112a88161119d565b81146112b357600080fd5b5056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b94f69d2b09c76665c7ef6a2fb5c700b9011ac0660163f9d32c0c0a0b83a37bc64736f6c63430008000033
Deployed Bytecode Sourcemap
25149:127:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17055:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19161:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18130:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19804:321;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17982:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20534:218;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18293:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17257:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21255:269;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18625:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18863:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17055:83;17092:13;17125:5;17118:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17055:83;:::o;19161:169::-;19244:4;19261:39;19270:12;:10;:12::i;:::-;19284:7;19293:6;19261:8;:39::i;:::-;19318:4;19311:11;;19161:169;;;;:::o;18130:100::-;18183:7;18210:12;;18203:19;;18130:100;:::o;19804:321::-;19910:4;19927:36;19937:6;19945:9;19956:6;19927:9;:36::i;:::-;19974:121;19983:6;19991:12;:10;:12::i;:::-;20005:89;20043:6;20005:89;;;;;;;;;;;;;;;;;:11;:19;20017:6;20005:19;;;;;;;;;;;;;;;:33;20025:12;:10;:12::i;:::-;20005:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;19974:8;:121::i;:::-;20113:4;20106:11;;19804:321;;;;;:::o;17982:83::-;18023:5;18048:9;;;;;;;;;;;18041:16;;17982:83;:::o;20534:218::-;20622:4;20639:83;20648:12;:10;:12::i;:::-;20662:7;20671:50;20710:10;20671:11;:25;20683:12;:10;:12::i;:::-;20671:25;;;;;;;;;;;;;;;:34;20697:7;20671:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;20639:8;:83::i;:::-;20740:4;20733:11;;20534:218;;;;:::o;18293:119::-;18359:7;18386:9;:18;18396:7;18386:18;;;;;;;;;;;;;;;;18379:25;;18293:119;;;:::o;17257:87::-;17296:13;17329:7;17322:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17257:87;:::o;21255:269::-;21348:4;21365:129;21374:12;:10;:12::i;:::-;21388:7;21397:96;21436:15;21397:96;;;;;;;;;;;;;;;;;:11;:25;21409:12;:10;:12::i;:::-;21397:25;;;;;;;;;;;;;;;:34;21423:7;21397:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;21365:8;:129::i;:::-;21512:4;21505:11;;21255:269;;;;:::o;18625:175::-;18711:4;18728:42;18738:12;:10;:12::i;:::-;18752:9;18763:6;18728:9;:42::i;:::-;18788:4;18781:11;;18625:175;;;;:::o;18863:151::-;18952:7;18979:11;:18;18991:5;18979:18;;;;;;;;;;;;;;;:27;18998:7;18979:27;;;;;;;;;;;;;;;;18972:34;;18863:151;;;;:::o;4532:181::-;4590:7;4610:9;4626:1;4622;:5;;;;:::i;:::-;4610:17;;4651:1;4646;:6;;4638:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4704:1;4697:8;;;4532:181;;;;:::o;608:115::-;661:15;704:10;689:26;;608:115;:::o;23650:346::-;23769:1;23752:19;;:5;:19;;;;23744:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23850:1;23831:21;;:7;:21;;;;23823:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23934:6;23904:11;:18;23916:5;23904:18;;;;;;;;;;;;;;;:27;23923:7;23904:27;;;;;;;;;;;;;;;:36;;;;23972:7;23956:32;;23965:5;23956:32;;;23981:6;23956:32;;;;;;:::i;:::-;;;;;;;;23650:346;;;:::o;22014:539::-;22138:1;22120:20;;:6;:20;;;;22112:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22222:1;22201:23;;:9;:23;;;;22193:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22277:47;22298:6;22306:9;22317:6;22277:20;:47::i;:::-;22357:71;22379:6;22357:71;;;;;;;;;;;;;;;;;:9;:17;22367:6;22357:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;22337:9;:17;22347:6;22337:17;;;;;;;;;;;;;;;:91;;;;22462:32;22487:6;22462:9;:20;22472:9;22462:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;22439:9;:20;22449:9;22439:20;;;;;;;;;;;;;;;:55;;;;22527:9;22510:35;;22519:6;22510:35;;;22538:6;22510:35;;;;;;:::i;:::-;;;;;;;;22014:539;;;:::o;5435:192::-;5521:7;5554:1;5549;:6;;5557:12;5541:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5581:9;5597:1;5593;:5;;;;:::i;:::-;5581:17;;5618:1;5611:8;;;5435:192;;;;;:::o;25021:92::-;;;;:::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:109::-;2030:21;2045:5;2030:21;:::i;:::-;2025:3;2018:34;2008:50;;:::o;2064:364::-;;2180:39;2213:5;2180:39;:::i;:::-;2235:71;2299:6;2294:3;2235:71;:::i;:::-;2228:78;;2315:52;2360:6;2355:3;2348:4;2341:5;2337:16;2315:52;:::i;:::-;2392:29;2414:6;2392:29;:::i;:::-;2387:3;2383:39;2376:46;;2156:272;;;;;:::o;2434:367::-;;2597:67;2661:2;2656:3;2597:67;:::i;:::-;2590:74;;2694:34;2690:1;2685:3;2681:11;2674:55;2760:5;2755:2;2750:3;2746:12;2739:27;2792:2;2787:3;2783:12;2776:19;;2580:221;;;:::o;2807:366::-;;2970:67;3034:2;3029:3;2970:67;:::i;:::-;2963:74;;3067:34;3063:1;3058:3;3054:11;3047:55;3133:4;3128:2;3123:3;3119:12;3112:26;3164:2;3159:3;3155:12;3148:19;;2953:220;;;:::o;3179:325::-;;3342:67;3406:2;3401:3;3342:67;:::i;:::-;3335:74;;3439:29;3435:1;3430:3;3426:11;3419:50;3495:2;3490:3;3486:12;3479:19;;3325:179;;;:::o;3510:369::-;;3673:67;3737:2;3732:3;3673:67;:::i;:::-;3666:74;;3770:34;3766:1;3761:3;3757:11;3750:55;3836:7;3831:2;3826:3;3822:12;3815:29;3870:2;3865:3;3861:12;3854:19;;3656:223;;;:::o;3885:368::-;;4048:67;4112:2;4107:3;4048:67;:::i;:::-;4041:74;;4145:34;4141:1;4136:3;4132:11;4125:55;4211:6;4206:2;4201:3;4197:12;4190:28;4244:2;4239:3;4235:12;4228:19;;4031:222;;;:::o;4259:118::-;4346:24;4364:5;4346:24;:::i;:::-;4341:3;4334:37;4324:53;;:::o;4383:112::-;4466:22;4482:5;4466:22;:::i;:::-;4461:3;4454:35;4444:51;;:::o;4501:210::-;;4626:2;4615:9;4611:18;4603:26;;4639:65;4701:1;4690:9;4686:17;4677:6;4639:65;:::i;:::-;4593:118;;;;:::o;4717:313::-;;4868:2;4857:9;4853:18;4845:26;;4917:9;4911:4;4907:20;4903:1;4892:9;4888:17;4881:47;4945:78;5018:4;5009:6;4945:78;:::i;:::-;4937:86;;4835:195;;;;:::o;5036:419::-;;5240:2;5229:9;5225:18;5217:26;;5289:9;5283:4;5279:20;5275:1;5264:9;5260:17;5253:47;5317:131;5443:4;5317:131;:::i;:::-;5309:139;;5207:248;;;:::o;5461:419::-;;5665:2;5654:9;5650:18;5642:26;;5714:9;5708:4;5704:20;5700:1;5689:9;5685:17;5678:47;5742:131;5868:4;5742:131;:::i;:::-;5734:139;;5632:248;;;:::o;5886:419::-;;6090:2;6079:9;6075:18;6067:26;;6139:9;6133:4;6129:20;6125:1;6114:9;6110:17;6103:47;6167:131;6293:4;6167:131;:::i;:::-;6159:139;;6057:248;;;:::o;6311:419::-;;6515:2;6504:9;6500:18;6492:26;;6564:9;6558:4;6554:20;6550:1;6539:9;6535:17;6528:47;6592:131;6718:4;6592:131;:::i;:::-;6584:139;;6482:248;;;:::o;6736:419::-;;6940:2;6929:9;6925:18;6917:26;;6989:9;6983:4;6979:20;6975:1;6964:9;6960:17;6953:47;7017:131;7143:4;7017:131;:::i;:::-;7009:139;;6907:248;;;:::o;7161:222::-;;7292:2;7281:9;7277:18;7269:26;;7305:71;7373:1;7362:9;7358:17;7349:6;7305:71;:::i;:::-;7259:124;;;;:::o;7389:214::-;;7516:2;7505:9;7501:18;7493:26;;7529:67;7593:1;7582:9;7578:17;7569:6;7529:67;:::i;:::-;7483:120;;;;:::o;7609:99::-;;7695:5;7689:12;7679:22;;7668:40;;;:::o;7714:169::-;;7832:6;7827:3;7820:19;7872:4;7867:3;7863:14;7848:29;;7810:73;;;;:::o;7889:305::-;;7948:20;7966:1;7948:20;:::i;:::-;7943:25;;7982:20;8000:1;7982:20;:::i;:::-;7977:25;;8136:1;8068:66;8064:74;8061:1;8058:81;8055:2;;;8142:18;;:::i;:::-;8055:2;8186:1;8183;8179:9;8172:16;;7933:261;;;;:::o;8200:191::-;;8260:20;8278:1;8260:20;:::i;:::-;8255:25;;8294:20;8312:1;8294:20;:::i;:::-;8289:25;;8333:1;8330;8327:8;8324:2;;;8338:18;;:::i;:::-;8324:2;8383:1;8380;8376:9;8368:17;;8245:146;;;;:::o;8397:96::-;;8463:24;8481:5;8463:24;:::i;:::-;8452:35;;8442:51;;;:::o;8499:90::-;;8576:5;8569:13;8562:21;8551:32;;8541:48;;;:::o;8595:126::-;;8672:42;8665:5;8661:54;8650:65;;8640:81;;;:::o;8727:77::-;;8793:5;8782:16;;8772:32;;;:::o;8810:86::-;;8885:4;8878:5;8874:16;8863:27;;8853:43;;;:::o;8902:307::-;8970:1;8980:113;8994:6;8991:1;8988:13;8980:113;;;9079:1;9074:3;9070:11;9064:18;9060:1;9055:3;9051:11;9044:39;9016:2;9013:1;9009:10;9004:15;;8980:113;;;9111:6;9108:1;9105:13;9102:2;;;9191:1;9182:6;9177:3;9173:16;9166:27;9102:2;8951:258;;;;:::o;9215:320::-;;9296:1;9290:4;9286:12;9276:22;;9343:1;9337:4;9333:12;9364:18;9354:2;;9420:4;9412:6;9408:17;9398:27;;9354:2;9482;9474:6;9471:14;9451:18;9448:38;9445:2;;;9501:18;;:::i;:::-;9445:2;9266:269;;;;:::o;9541:180::-;9589:77;9586:1;9579:88;9686:4;9683:1;9676:15;9710:4;9707:1;9700:15;9727:180;9775:77;9772:1;9765:88;9872:4;9869:1;9862:15;9896:4;9893:1;9886:15;9913:102;;10005:2;10001:7;9996:2;9989:5;9985:14;9981:28;9971:38;;9961:54;;;:::o;10021:122::-;10094:24;10112:5;10094:24;:::i;:::-;10087:5;10084:35;10074:2;;10133:1;10130;10123:12;10074:2;10064:79;:::o;10149:122::-;10222:24;10240:5;10222:24;:::i;:::-;10215:5;10212:35;10202:2;;10261:1;10258;10251:12;10202:2;10192:79;:::o
Swarm Source
ipfs://b94f69d2b09c76665c7ef6a2fb5c700b9011ac0660163f9d32c0c0a0b83a37bc
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.