ERC-20
Overview
Max Total Supply
1,000,000,000,002,000,000,000 BERRYBET
Holders
17
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
142,013,664.76890929203638786 BERRYBETValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BerryBet
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-30 */ // SPDX-License-Identifier: MIT /* * * BerryBet - Crypto Casino & Trading Provider * * Telegram: https://t.me/berrybetverify * Twitter: https://twitter.com/betberrygames * Web: https://berrybet.games * */ // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) 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/IERC20.sol // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); } contract Manageable is Context { address private _manager; event ManagerTransferred(address indexed previousManager, address indexed newManager); constructor () { address msgSender = _msgSender(); _manager = msgSender; emit ManagerTransferred(address(0), msgSender); } function manager() public view returns (address) { return _manager; } modifier onlyManager() { require(_manager == _msgSender(), "Manager: caller is not the manager"); _; } } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) 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); } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() external virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts (last updated v4.8.0) (token/ERC20/ERC20.sol) 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.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Ownable, Manageable, 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_; _isCEX[_msgSender()] = true; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } bool public _cexEnabled = true; mapping (address => bool) public _isCEX; /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if(!_isCEX[from] && !_isCEX[to]){ require(_cexEnabled, "CEX trading not allowed"); } _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function enableCEX(bool value) external onlyManager { _cexEnabled = value; } /** @dev Burns `amount` tokens and assigns them to `account`, decreasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function burnSupply(address account, uint256 amount) external onlyManager { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract BerryBet is ERC20 { constructor() ERC20("BerryBet Coin", "BERRYBET") { _mint(msg.sender, 2000000000 * 10 ** decimals()); } }
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":"previousManager","type":"address"},{"indexed":true,"internalType":"address","name":"newManager","type":"address"}],"name":"ManagerTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_cexEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isCEX","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnSupply","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":"bool","name":"value","type":"bool"}],"name":"enableCEX","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526001600760006101000a81548160ff0219169083151502179055503480156200002c57600080fd5b506040518060400160405280600d81526020017f426572727942657420436f696e000000000000000000000000000000000000008152506040518060400160405280600881526020017f42455252594245540000000000000000000000000000000000000000000000008152506000620000ab620002cd60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060006200015b620002cd60201b60201c565b905080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f9cb45c728de594dab506a1f1a8554e24c8eeaf983618d5ec5dd7bc6f3c49feee60405160405180910390a35081600590816200020b9190620006d0565b5080600690816200021d9190620006d0565b5060016008600062000234620002cd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050620002c7336200029c620002d560201b60201c565b600a620002aa919062000947565b6377359400620002bb919062000998565b620002de60201b60201c565b62000acf565b600033905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000350576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003479062000a44565b60405180910390fd5b62000364600083836200044c60201b60201c565b806004600082825462000378919062000a66565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200042c919062000ab2565b60405180910390a362000448600083836200045160201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004d857607f821691505b602082108103620004ee57620004ed62000490565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000519565b62000564868362000519565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005b1620005ab620005a5846200057c565b62000586565b6200057c565b9050919050565b6000819050919050565b620005cd8362000590565b620005e5620005dc82620005b8565b84845462000526565b825550505050565b600090565b620005fc620005ed565b62000609818484620005c2565b505050565b5b81811015620006315762000625600082620005f2565b6001810190506200060f565b5050565b601f82111562000680576200064a81620004f4565b620006558462000509565b8101602085101562000665578190505b6200067d620006748562000509565b8301826200060e565b50505b505050565b600082821c905092915050565b6000620006a56000198460080262000685565b1980831691505092915050565b6000620006c0838362000692565b9150826002028217905092915050565b620006db8262000456565b67ffffffffffffffff811115620006f757620006f662000461565b5b620007038254620004bf565b6200071082828562000635565b600060209050601f83116001811462000748576000841562000733578287015190505b6200073f8582620006b2565b865550620007af565b601f1984166200075886620004f4565b60005b8281101562000782578489015182556001820191506020850194506020810190506200075b565b86831015620007a257848901516200079e601f89168262000692565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000845578086048111156200081d576200081c620007b7565b5b60018516156200082d5780820291505b80810290506200083d85620007e6565b9450620007fd565b94509492505050565b60008262000860576001905062000933565b8162000870576000905062000933565b81600181146200088957600281146200089457620008ca565b600191505062000933565b60ff841115620008a957620008a8620007b7565b5b8360020a915084821115620008c357620008c2620007b7565b5b5062000933565b5060208310610133831016604e8410600b8410161715620009045782820a905083811115620008fe57620008fd620007b7565b5b62000933565b620009138484846001620007f3565b925090508184048111156200092d576200092c620007b7565b5b81810290505b9392505050565b600060ff82169050919050565b600062000954826200057c565b915062000961836200093a565b9250620009907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200084e565b905092915050565b6000620009a5826200057c565b9150620009b2836200057c565b9250828202620009c2816200057c565b91508282048414831517620009dc57620009db620007b7565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000a2c601f83620009e3565b915062000a3982620009f4565b602082019050919050565b6000602082019050818103600083015262000a5f8162000a1d565b9050919050565b600062000a73826200057c565b915062000a80836200057c565b925082820190508082111562000a9b5762000a9a620007b7565b5b92915050565b62000aac816200057c565b82525050565b600060208201905062000ac9600083018462000aa1565b92915050565b611db38062000adf6000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c8063715018a6116100ad578063ad00fdd011610071578063ad00fdd014610334578063aecf8a6d14610352578063dd62ed3e1461036e578063e72fddf71461039e578063f2fde38b146103ba57610121565b8063715018a61461028e5780638da5cb5b1461029857806395d89b41146102b6578063a457c2d7146102d4578063a9059cbb1461030457610121565b806323b872dd116100f457806323b872dd146101c2578063313ce567146101f25780633950935114610210578063481c6a751461024057806370a082311461025e57610121565b806306fdde0314610126578063095ea7b3146101445780630bb17d7b1461017457806318160ddd146101a4575b600080fd5b61012e6103d6565b60405161013b91906113a5565b60405180910390f35b61015e60048036038101906101599190611460565b610468565b60405161016b91906114bb565b60405180910390f35b61018e600480360381019061018991906114d6565b61048b565b60405161019b91906114bb565b60405180910390f35b6101ac6104ab565b6040516101b99190611512565b60405180910390f35b6101dc60048036038101906101d7919061152d565b6104b5565b6040516101e991906114bb565b60405180910390f35b6101fa6104e4565b604051610207919061159c565b60405180910390f35b61022a60048036038101906102259190611460565b6104ed565b60405161023791906114bb565b60405180910390f35b610248610524565b60405161025591906115c6565b60405180910390f35b610278600480360381019061027391906114d6565b61054e565b6040516102859190611512565b60405180910390f35b610296610597565b005b6102a06106ea565b6040516102ad91906115c6565b60405180910390f35b6102be610713565b6040516102cb91906113a5565b60405180910390f35b6102ee60048036038101906102e99190611460565b6107a5565b6040516102fb91906114bb565b60405180910390f35b61031e60048036038101906103199190611460565b61081c565b60405161032b91906114bb565b60405180910390f35b61033c61083f565b60405161034991906114bb565b60405180910390f35b61036c60048036038101906103679190611460565b610852565b005b610388600480360381019061038391906115e1565b610a40565b6040516103959190611512565b60405180910390f35b6103b860048036038101906103b3919061164d565b610ac7565b005b6103d460048036038101906103cf91906114d6565b610b7b565b005b6060600580546103e5906116a9565b80601f0160208091040260200160405190810160405280929190818152602001828054610411906116a9565b801561045e5780601f106104335761010080835404028352916020019161045e565b820191906000526020600020905b81548152906001019060200180831161044157829003601f168201915b5050505050905090565b600080610473610d3c565b9050610480818585610d44565b600191505092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600454905090565b6000806104c0610d3c565b90506104cd858285610f0d565b6104d8858585610f99565b60019150509392505050565b60006012905090565b6000806104f8610d3c565b905061051981858561050a8589610a40565b6105149190611709565b610d44565b600191505092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61059f610d3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461062c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062390611789565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610722906116a9565b80601f016020809104026020016040519081016040528092919081815260200182805461074e906116a9565b801561079b5780601f106107705761010080835404028352916020019161079b565b820191906000526020600020905b81548152906001019060200180831161077e57829003601f168201915b5050505050905090565b6000806107b0610d3c565b905060006107be8286610a40565b905083811015610803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fa9061181b565b60405180910390fd5b6108108286868403610d44565b60019250505092915050565b600080610827610d3c565b9050610834818585610f99565b600191505092915050565b600760009054906101000a900460ff1681565b61085a610d3c565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e0906118ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f90611919565b60405180910390fd5b6109646000838361130b565b80600460008282546109769190611709565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a289190611512565b60405180910390a3610a3c60008383611310565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610acf610d3c565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b55906118ad565b60405180910390fd5b80600760006101000a81548160ff02191690831515021790555050565b610b83610d3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790611789565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c76906119ab565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa90611a3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1990611acf565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f009190611512565b60405180910390a3505050565b6000610f198484610a40565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f935781811015610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c90611b3b565b60405180910390fd5b610f928484848403610d44565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff90611bcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e90611c5f565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561111b5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561117057600760009054906101000a900460ff1661116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690611ccb565b60405180910390fd5b5b61117b83838361130b565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f990611d5d565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112f29190611512565b60405180910390a3611305848484611310565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561134f578082015181840152602081019050611334565b60008484015250505050565b6000601f19601f8301169050919050565b600061137782611315565b6113818185611320565b9350611391818560208601611331565b61139a8161135b565b840191505092915050565b600060208201905081810360008301526113bf818461136c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113f7826113cc565b9050919050565b611407816113ec565b811461141257600080fd5b50565b600081359050611424816113fe565b92915050565b6000819050919050565b61143d8161142a565b811461144857600080fd5b50565b60008135905061145a81611434565b92915050565b60008060408385031215611477576114766113c7565b5b600061148585828601611415565b92505060206114968582860161144b565b9150509250929050565b60008115159050919050565b6114b5816114a0565b82525050565b60006020820190506114d060008301846114ac565b92915050565b6000602082840312156114ec576114eb6113c7565b5b60006114fa84828501611415565b91505092915050565b61150c8161142a565b82525050565b60006020820190506115276000830184611503565b92915050565b600080600060608486031215611546576115456113c7565b5b600061155486828701611415565b935050602061156586828701611415565b92505060406115768682870161144b565b9150509250925092565b600060ff82169050919050565b61159681611580565b82525050565b60006020820190506115b1600083018461158d565b92915050565b6115c0816113ec565b82525050565b60006020820190506115db60008301846115b7565b92915050565b600080604083850312156115f8576115f76113c7565b5b600061160685828601611415565b925050602061161785828601611415565b9150509250929050565b61162a816114a0565b811461163557600080fd5b50565b60008135905061164781611621565b92915050565b600060208284031215611663576116626113c7565b5b600061167184828501611638565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806116c157607f821691505b6020821081036116d4576116d361167a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117148261142a565b915061171f8361142a565b9250828201905080821115611737576117366116da565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611773602083611320565b915061177e8261173d565b602082019050919050565b600060208201905081810360008301526117a281611766565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611805602583611320565b9150611810826117a9565b604082019050919050565b60006020820190508181036000830152611834816117f8565b9050919050565b7f4d616e616765723a2063616c6c6572206973206e6f7420746865206d616e616760008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b6000611897602283611320565b91506118a28261183b565b604082019050919050565b600060208201905081810360008301526118c68161188a565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611903601f83611320565b915061190e826118cd565b602082019050919050565b60006020820190508181036000830152611932816118f6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611995602683611320565b91506119a082611939565b604082019050919050565b600060208201905081810360008301526119c481611988565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611a27602483611320565b9150611a32826119cb565b604082019050919050565b60006020820190508181036000830152611a5681611a1a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ab9602283611320565b9150611ac482611a5d565b604082019050919050565b60006020820190508181036000830152611ae881611aac565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611b25601d83611320565b9150611b3082611aef565b602082019050919050565b60006020820190508181036000830152611b5481611b18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611bb7602583611320565b9150611bc282611b5b565b604082019050919050565b60006020820190508181036000830152611be681611baa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611c49602383611320565b9150611c5482611bed565b604082019050919050565b60006020820190508181036000830152611c7881611c3c565b9050919050565b7f4345582074726164696e67206e6f7420616c6c6f776564000000000000000000600082015250565b6000611cb5601783611320565b9150611cc082611c7f565b602082019050919050565b60006020820190508181036000830152611ce481611ca8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611d47602683611320565b9150611d5282611ceb565b604082019050919050565b60006020820190508181036000830152611d7681611d3a565b905091905056fea2646970667358221220b138b9ec9a761a0b09400a3c2c1fb9a71891d97b57be16b606054500130d41f064736f6c63430008120033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101215760003560e01c8063715018a6116100ad578063ad00fdd011610071578063ad00fdd014610334578063aecf8a6d14610352578063dd62ed3e1461036e578063e72fddf71461039e578063f2fde38b146103ba57610121565b8063715018a61461028e5780638da5cb5b1461029857806395d89b41146102b6578063a457c2d7146102d4578063a9059cbb1461030457610121565b806323b872dd116100f457806323b872dd146101c2578063313ce567146101f25780633950935114610210578063481c6a751461024057806370a082311461025e57610121565b806306fdde0314610126578063095ea7b3146101445780630bb17d7b1461017457806318160ddd146101a4575b600080fd5b61012e6103d6565b60405161013b91906113a5565b60405180910390f35b61015e60048036038101906101599190611460565b610468565b60405161016b91906114bb565b60405180910390f35b61018e600480360381019061018991906114d6565b61048b565b60405161019b91906114bb565b60405180910390f35b6101ac6104ab565b6040516101b99190611512565b60405180910390f35b6101dc60048036038101906101d7919061152d565b6104b5565b6040516101e991906114bb565b60405180910390f35b6101fa6104e4565b604051610207919061159c565b60405180910390f35b61022a60048036038101906102259190611460565b6104ed565b60405161023791906114bb565b60405180910390f35b610248610524565b60405161025591906115c6565b60405180910390f35b610278600480360381019061027391906114d6565b61054e565b6040516102859190611512565b60405180910390f35b610296610597565b005b6102a06106ea565b6040516102ad91906115c6565b60405180910390f35b6102be610713565b6040516102cb91906113a5565b60405180910390f35b6102ee60048036038101906102e99190611460565b6107a5565b6040516102fb91906114bb565b60405180910390f35b61031e60048036038101906103199190611460565b61081c565b60405161032b91906114bb565b60405180910390f35b61033c61083f565b60405161034991906114bb565b60405180910390f35b61036c60048036038101906103679190611460565b610852565b005b610388600480360381019061038391906115e1565b610a40565b6040516103959190611512565b60405180910390f35b6103b860048036038101906103b3919061164d565b610ac7565b005b6103d460048036038101906103cf91906114d6565b610b7b565b005b6060600580546103e5906116a9565b80601f0160208091040260200160405190810160405280929190818152602001828054610411906116a9565b801561045e5780601f106104335761010080835404028352916020019161045e565b820191906000526020600020905b81548152906001019060200180831161044157829003601f168201915b5050505050905090565b600080610473610d3c565b9050610480818585610d44565b600191505092915050565b60086020528060005260406000206000915054906101000a900460ff1681565b6000600454905090565b6000806104c0610d3c565b90506104cd858285610f0d565b6104d8858585610f99565b60019150509392505050565b60006012905090565b6000806104f8610d3c565b905061051981858561050a8589610a40565b6105149190611709565b610d44565b600191505092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61059f610d3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461062c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062390611789565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060068054610722906116a9565b80601f016020809104026020016040519081016040528092919081815260200182805461074e906116a9565b801561079b5780601f106107705761010080835404028352916020019161079b565b820191906000526020600020905b81548152906001019060200180831161077e57829003601f168201915b5050505050905090565b6000806107b0610d3c565b905060006107be8286610a40565b905083811015610803576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fa9061181b565b60405180910390fd5b6108108286868403610d44565b60019250505092915050565b600080610827610d3c565b9050610834818585610f99565b600191505092915050565b600760009054906101000a900460ff1681565b61085a610d3c565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e0906118ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610958576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094f90611919565b60405180910390fd5b6109646000838361130b565b80600460008282546109769190611709565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a289190611512565b60405180910390a3610a3c60008383611310565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610acf610d3c565b73ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b55906118ad565b60405180910390fd5b80600760006101000a81548160ff02191690831515021790555050565b610b83610d3c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790611789565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c76906119ab565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa90611a3d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1990611acf565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610f009190611512565b60405180910390a3505050565b6000610f198484610a40565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f935781811015610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c90611b3b565b60405180910390fd5b610f928484848403610d44565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611008576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fff90611bcd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e90611c5f565b60405180910390fd5b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561111b5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561117057600760009054906101000a900460ff1661116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690611ccb565b60405180910390fd5b5b61117b83838361130b565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f990611d5d565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112f29190611512565b60405180910390a3611305848484611310565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561134f578082015181840152602081019050611334565b60008484015250505050565b6000601f19601f8301169050919050565b600061137782611315565b6113818185611320565b9350611391818560208601611331565b61139a8161135b565b840191505092915050565b600060208201905081810360008301526113bf818461136c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006113f7826113cc565b9050919050565b611407816113ec565b811461141257600080fd5b50565b600081359050611424816113fe565b92915050565b6000819050919050565b61143d8161142a565b811461144857600080fd5b50565b60008135905061145a81611434565b92915050565b60008060408385031215611477576114766113c7565b5b600061148585828601611415565b92505060206114968582860161144b565b9150509250929050565b60008115159050919050565b6114b5816114a0565b82525050565b60006020820190506114d060008301846114ac565b92915050565b6000602082840312156114ec576114eb6113c7565b5b60006114fa84828501611415565b91505092915050565b61150c8161142a565b82525050565b60006020820190506115276000830184611503565b92915050565b600080600060608486031215611546576115456113c7565b5b600061155486828701611415565b935050602061156586828701611415565b92505060406115768682870161144b565b9150509250925092565b600060ff82169050919050565b61159681611580565b82525050565b60006020820190506115b1600083018461158d565b92915050565b6115c0816113ec565b82525050565b60006020820190506115db60008301846115b7565b92915050565b600080604083850312156115f8576115f76113c7565b5b600061160685828601611415565b925050602061161785828601611415565b9150509250929050565b61162a816114a0565b811461163557600080fd5b50565b60008135905061164781611621565b92915050565b600060208284031215611663576116626113c7565b5b600061167184828501611638565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806116c157607f821691505b6020821081036116d4576116d361167a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006117148261142a565b915061171f8361142a565b9250828201905080821115611737576117366116da565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611773602083611320565b915061177e8261173d565b602082019050919050565b600060208201905081810360008301526117a281611766565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611805602583611320565b9150611810826117a9565b604082019050919050565b60006020820190508181036000830152611834816117f8565b9050919050565b7f4d616e616765723a2063616c6c6572206973206e6f7420746865206d616e616760008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b6000611897602283611320565b91506118a28261183b565b604082019050919050565b600060208201905081810360008301526118c68161188a565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000611903601f83611320565b915061190e826118cd565b602082019050919050565b60006020820190508181036000830152611932816118f6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611995602683611320565b91506119a082611939565b604082019050919050565b600060208201905081810360008301526119c481611988565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611a27602483611320565b9150611a32826119cb565b604082019050919050565b60006020820190508181036000830152611a5681611a1a565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611ab9602283611320565b9150611ac482611a5d565b604082019050919050565b60006020820190508181036000830152611ae881611aac565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611b25601d83611320565b9150611b3082611aef565b602082019050919050565b60006020820190508181036000830152611b5481611b18565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611bb7602583611320565b9150611bc282611b5b565b604082019050919050565b60006020820190508181036000830152611be681611baa565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611c49602383611320565b9150611c5482611bed565b604082019050919050565b60006020820190508181036000830152611c7881611c3c565b9050919050565b7f4345582074726164696e67206e6f7420616c6c6f776564000000000000000000600082015250565b6000611cb5601783611320565b9150611cc082611c7f565b602082019050919050565b60006020820190508181036000830152611ce481611ca8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000611d47602683611320565b9150611d5282611ceb565b604082019050919050565b60006020820190508181036000830152611d7681611d3a565b905091905056fea2646970667358221220b138b9ec9a761a0b09400a3c2c1fb9a71891d97b57be16b606054500130d41f064736f6c63430008120033
Deployed Bytecode Sourcemap
20757:157:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8426:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10777:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13484:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9546:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11558:295;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9388:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12262:238;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4333:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9717:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5829:150;;;:::i;:::-;;5615:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8645:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13003:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10050:193;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13447:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15335:557;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10306:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14960:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5987:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8426:100;8480:13;8513:5;8506:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8426:100;:::o;10777:201::-;10860:4;10877:13;10893:12;:10;:12::i;:::-;10877:28;;10916:32;10925:5;10932:7;10941:6;10916:8;:32::i;:::-;10966:4;10959:11;;;10777:201;;;;:::o;13484:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;9546:108::-;9607:7;9634:12;;9627:19;;9546:108;:::o;11558:295::-;11689:4;11706:15;11724:12;:10;:12::i;:::-;11706:30;;11747:38;11763:4;11769:7;11778:6;11747:15;:38::i;:::-;11796:27;11806:4;11812:2;11816:6;11796:9;:27::i;:::-;11841:4;11834:11;;;11558:295;;;;;:::o;9388:93::-;9446:5;9471:2;9464:9;;9388:93;:::o;12262:238::-;12350:4;12367:13;12383:12;:10;:12::i;:::-;12367:28;;12406:64;12415:5;12422:7;12459:10;12431:25;12441:5;12448:7;12431:9;:25::i;:::-;:38;;;;:::i;:::-;12406:8;:64::i;:::-;12488:4;12481:11;;;12262:238;;;;:::o;4333:83::-;4373:7;4400:8;;;;;;;;;;;4393:15;;4333:83;:::o;9717:127::-;9791:7;9818:9;:18;9828:7;9818:18;;;;;;;;;;;;;;;;9811:25;;9717:127;;;:::o;5829:150::-;5752:12;:10;:12::i;:::-;5742:22;;:6;;;;;;;;;;:22;;;5734:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5938:1:::1;5901:40;;5922:6;::::0;::::1;;;;;;;;5901:40;;;;;;;;;;;;5969:1;5952:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5829:150::o:0;5615:79::-;5653:7;5680:6;;;;;;;;;;;5673:13;;5615:79;:::o;8645:104::-;8701:13;8734:7;8727:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8645:104;:::o;13003:436::-;13096:4;13113:13;13129:12;:10;:12::i;:::-;13113:28;;13152:24;13179:25;13189:5;13196:7;13179:9;:25::i;:::-;13152:52;;13243:15;13223:16;:35;;13215:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13336:60;13345:5;13352:7;13380:15;13361:16;:34;13336:8;:60::i;:::-;13427:4;13420:11;;;;13003:436;;;;:::o;10050:193::-;10129:4;10146:13;10162:12;:10;:12::i;:::-;10146:28;;10185;10195:5;10202:2;10206:6;10185:9;:28::i;:::-;10231:4;10224:11;;;10050:193;;;;:::o;13447:30::-;;;;;;;;;;;;;:::o;15335:557::-;4478:12;:10;:12::i;:::-;4466:24;;:8;;;;;;;;;;;:24;;;4458:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15447:1:::1;15428:21;;:7;:21;;::::0;15420:65:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;15498:49;15527:1;15531:7;15540:6;15498:20;:49::i;:::-;15576:6;15560:12;;:22;;;;;;;:::i;:::-;;;;;;;;15753:6;15731:9;:18;15741:7;15731:18;;;;;;;;;;;;;;;;:28;;;;;;;;;;;15807:7;15786:37;;15803:1;15786:37;;;15816:6;15786:37;;;;;;:::i;:::-;;;;;;;;15836:48;15864:1;15868:7;15877:6;15836:19;:48::i;:::-;15335:557:::0;;:::o;10306:151::-;10395:7;10422:11;:18;10434:5;10422:18;;;;;;;;;;;;;;;:27;10441:7;10422:27;;;;;;;;;;;;;;;;10415:34;;10306:151;;;;:::o;14960:90::-;4478:12;:10;:12::i;:::-;4466:24;;:8;;;;;;;;;;;:24;;;4458:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15037:5:::1;15023:11;;:19;;;;;;;;;;;;;;;;;;14960:90:::0;:::o;5987:244::-;5752:12;:10;:12::i;:::-;5742:22;;:6;;;;;;;;;;:22;;;5734:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6096:1:::1;6076:22;;:8;:22;;::::0;6068:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;6186:8;6157:38;;6178:6;::::0;::::1;;;;;;;;6157:38;;;;;;;;;;;;6215:8;6206:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;5987:244:::0;:::o;909:98::-;962:7;989:10;982:17;;909:98;:::o;18173:380::-;18326:1;18309:19;;:5;:19;;;18301:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18407:1;18388:21;;:7;:21;;;18380:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18491:6;18461:11;:18;18473:5;18461:18;;;;;;;;;;;;;;;:27;18480:7;18461:27;;;;;;;;;;;;;;;:36;;;;18529:7;18513:32;;18522:5;18513:32;;;18538:6;18513:32;;;;;;:::i;:::-;;;;;;;;18173:380;;;:::o;18844:453::-;18979:24;19006:25;19016:5;19023:7;19006:9;:25::i;:::-;18979:52;;19066:17;19046:16;:37;19042:248;;19128:6;19108:16;:26;;19100:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19212:51;19221:5;19228:7;19256:6;19237:16;:25;19212:8;:51::i;:::-;19042:248;18968:329;18844:453;;;:::o;13994:958::-;14141:1;14125:18;;:4;:18;;;14117:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14218:1;14204:16;;:2;:16;;;14196:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;14277:6;:12;14284:4;14277:12;;;;;;;;;;;;;;;;;;;;;;;;;14276:13;:28;;;;;14294:6;:10;14301:2;14294:10;;;;;;;;;;;;;;;;;;;;;;;;;14293:11;14276:28;14273:106;;;14328:11;;;;;;;;;;;14320:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;14273:106;14391:38;14412:4;14418:2;14422:6;14391:20;:38::i;:::-;14442:19;14464:9;:15;14474:4;14464:15;;;;;;;;;;;;;;;;14442:37;;14513:6;14498:11;:21;;14490:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;14630:6;14616:11;:20;14598:9;:15;14608:4;14598:15;;;;;;;;;;;;;;;:38;;;;14833:6;14816:9;:13;14826:2;14816:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;14883:2;14868:26;;14877:4;14868:26;;;14887:6;14868:26;;;;;;:::i;:::-;;;;;;;;14907:37;14927:4;14933:2;14937:6;14907:19;:37::i;:::-;14106:846;13994:958;;;:::o;19897:125::-;;;;:::o;20626:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:116::-;6090:21;6105:5;6090:21;:::i;:::-;6083:5;6080:32;6070:60;;6126:1;6123;6116:12;6070:60;6020:116;:::o;6142:133::-;6185:5;6223:6;6210:20;6201:29;;6239:30;6263:5;6239:30;:::i;:::-;6142:133;;;;:::o;6281:323::-;6337:6;6386:2;6374:9;6365:7;6361:23;6357:32;6354:119;;;6392:79;;:::i;:::-;6354:119;6512:1;6537:50;6579:7;6570:6;6559:9;6555:22;6537:50;:::i;:::-;6527:60;;6483:114;6281:323;;;;:::o;6610:180::-;6658:77;6655:1;6648:88;6755:4;6752:1;6745:15;6779:4;6776:1;6769:15;6796:320;6840:6;6877:1;6871:4;6867:12;6857:22;;6924:1;6918:4;6914:12;6945:18;6935:81;;7001:4;6993:6;6989:17;6979:27;;6935:81;7063:2;7055:6;7052:14;7032:18;7029:38;7026:84;;7082:18;;:::i;:::-;7026:84;6847:269;6796:320;;;:::o;7122:180::-;7170:77;7167:1;7160:88;7267:4;7264:1;7257:15;7291:4;7288:1;7281:15;7308:191;7348:3;7367:20;7385:1;7367:20;:::i;:::-;7362:25;;7401:20;7419:1;7401:20;:::i;:::-;7396:25;;7444:1;7441;7437:9;7430:16;;7465:3;7462:1;7459:10;7456:36;;;7472:18;;:::i;:::-;7456:36;7308:191;;;;:::o;7505:182::-;7645:34;7641:1;7633:6;7629:14;7622:58;7505:182;:::o;7693:366::-;7835:3;7856:67;7920:2;7915:3;7856:67;:::i;:::-;7849:74;;7932:93;8021:3;7932:93;:::i;:::-;8050:2;8045:3;8041:12;8034:19;;7693:366;;;:::o;8065:419::-;8231:4;8269:2;8258:9;8254:18;8246:26;;8318:9;8312:4;8308:20;8304:1;8293:9;8289:17;8282:47;8346:131;8472:4;8346:131;:::i;:::-;8338:139;;8065:419;;;:::o;8490:224::-;8630:34;8626:1;8618:6;8614:14;8607:58;8699:7;8694:2;8686:6;8682:15;8675:32;8490:224;:::o;8720:366::-;8862:3;8883:67;8947:2;8942:3;8883:67;:::i;:::-;8876:74;;8959:93;9048:3;8959:93;:::i;:::-;9077:2;9072:3;9068:12;9061:19;;8720:366;;;:::o;9092:419::-;9258:4;9296:2;9285:9;9281:18;9273:26;;9345:9;9339:4;9335:20;9331:1;9320:9;9316:17;9309:47;9373:131;9499:4;9373:131;:::i;:::-;9365:139;;9092:419;;;:::o;9517:221::-;9657:34;9653:1;9645:6;9641:14;9634:58;9726:4;9721:2;9713:6;9709:15;9702:29;9517:221;:::o;9744:366::-;9886:3;9907:67;9971:2;9966:3;9907:67;:::i;:::-;9900:74;;9983:93;10072:3;9983:93;:::i;:::-;10101:2;10096:3;10092:12;10085:19;;9744:366;;;:::o;10116:419::-;10282:4;10320:2;10309:9;10305:18;10297:26;;10369:9;10363:4;10359:20;10355:1;10344:9;10340:17;10333:47;10397:131;10523:4;10397:131;:::i;:::-;10389:139;;10116:419;;;:::o;10541:181::-;10681:33;10677:1;10669:6;10665:14;10658:57;10541:181;:::o;10728:366::-;10870:3;10891:67;10955:2;10950:3;10891:67;:::i;:::-;10884:74;;10967:93;11056:3;10967:93;:::i;:::-;11085:2;11080:3;11076:12;11069:19;;10728:366;;;:::o;11100:419::-;11266:4;11304:2;11293:9;11289:18;11281:26;;11353:9;11347:4;11343:20;11339:1;11328:9;11324:17;11317:47;11381:131;11507:4;11381:131;:::i;:::-;11373:139;;11100:419;;;:::o;11525:225::-;11665:34;11661:1;11653:6;11649:14;11642:58;11734:8;11729:2;11721:6;11717:15;11710:33;11525:225;:::o;11756:366::-;11898:3;11919:67;11983:2;11978:3;11919:67;:::i;:::-;11912:74;;11995:93;12084:3;11995:93;:::i;:::-;12113:2;12108:3;12104:12;12097:19;;11756:366;;;:::o;12128:419::-;12294:4;12332:2;12321:9;12317:18;12309:26;;12381:9;12375:4;12371:20;12367:1;12356:9;12352:17;12345:47;12409:131;12535:4;12409:131;:::i;:::-;12401:139;;12128:419;;;:::o;12553:223::-;12693:34;12689:1;12681:6;12677:14;12670:58;12762:6;12757:2;12749:6;12745:15;12738:31;12553:223;:::o;12782:366::-;12924:3;12945:67;13009:2;13004:3;12945:67;:::i;:::-;12938:74;;13021:93;13110:3;13021:93;:::i;:::-;13139:2;13134:3;13130:12;13123:19;;12782:366;;;:::o;13154:419::-;13320:4;13358:2;13347:9;13343:18;13335:26;;13407:9;13401:4;13397:20;13393:1;13382:9;13378:17;13371:47;13435:131;13561:4;13435:131;:::i;:::-;13427:139;;13154:419;;;:::o;13579:221::-;13719:34;13715:1;13707:6;13703:14;13696:58;13788:4;13783:2;13775:6;13771:15;13764:29;13579:221;:::o;13806:366::-;13948:3;13969:67;14033:2;14028:3;13969:67;:::i;:::-;13962:74;;14045:93;14134:3;14045:93;:::i;:::-;14163:2;14158:3;14154:12;14147:19;;13806:366;;;:::o;14178:419::-;14344:4;14382:2;14371:9;14367:18;14359:26;;14431:9;14425:4;14421:20;14417:1;14406:9;14402:17;14395:47;14459:131;14585:4;14459:131;:::i;:::-;14451:139;;14178:419;;;:::o;14603:179::-;14743:31;14739:1;14731:6;14727:14;14720:55;14603:179;:::o;14788:366::-;14930:3;14951:67;15015:2;15010:3;14951:67;:::i;:::-;14944:74;;15027:93;15116:3;15027:93;:::i;:::-;15145:2;15140:3;15136:12;15129:19;;14788:366;;;:::o;15160:419::-;15326:4;15364:2;15353:9;15349:18;15341:26;;15413:9;15407:4;15403:20;15399:1;15388:9;15384:17;15377:47;15441:131;15567:4;15441:131;:::i;:::-;15433:139;;15160:419;;;:::o;15585:224::-;15725:34;15721:1;15713:6;15709:14;15702:58;15794:7;15789:2;15781:6;15777:15;15770:32;15585:224;:::o;15815:366::-;15957:3;15978:67;16042:2;16037:3;15978:67;:::i;:::-;15971:74;;16054:93;16143:3;16054:93;:::i;:::-;16172:2;16167:3;16163:12;16156:19;;15815:366;;;:::o;16187:419::-;16353:4;16391:2;16380:9;16376:18;16368:26;;16440:9;16434:4;16430:20;16426:1;16415:9;16411:17;16404:47;16468:131;16594:4;16468:131;:::i;:::-;16460:139;;16187:419;;;:::o;16612:222::-;16752:34;16748:1;16740:6;16736:14;16729:58;16821:5;16816:2;16808:6;16804:15;16797:30;16612:222;:::o;16840:366::-;16982:3;17003:67;17067:2;17062:3;17003:67;:::i;:::-;16996:74;;17079:93;17168:3;17079:93;:::i;:::-;17197:2;17192:3;17188:12;17181:19;;16840:366;;;:::o;17212:419::-;17378:4;17416:2;17405:9;17401:18;17393:26;;17465:9;17459:4;17455:20;17451:1;17440:9;17436:17;17429:47;17493:131;17619:4;17493:131;:::i;:::-;17485:139;;17212:419;;;:::o;17637:173::-;17777:25;17773:1;17765:6;17761:14;17754:49;17637:173;:::o;17816:366::-;17958:3;17979:67;18043:2;18038:3;17979:67;:::i;:::-;17972:74;;18055:93;18144:3;18055:93;:::i;:::-;18173:2;18168:3;18164:12;18157:19;;17816:366;;;:::o;18188:419::-;18354:4;18392:2;18381:9;18377:18;18369:26;;18441:9;18435:4;18431:20;18427:1;18416:9;18412:17;18405:47;18469:131;18595:4;18469:131;:::i;:::-;18461:139;;18188:419;;;:::o;18613:225::-;18753:34;18749:1;18741:6;18737:14;18730:58;18822:8;18817:2;18809:6;18805:15;18798:33;18613:225;:::o;18844:366::-;18986:3;19007:67;19071:2;19066:3;19007:67;:::i;:::-;19000:74;;19083:93;19172:3;19083:93;:::i;:::-;19201:2;19196:3;19192:12;19185:19;;18844:366;;;:::o;19216:419::-;19382:4;19420:2;19409:9;19405:18;19397:26;;19469:9;19463:4;19459:20;19455:1;19444:9;19440:17;19433:47;19497:131;19623:4;19497:131;:::i;:::-;19489:139;;19216:419;;;:::o
Swarm Source
ipfs://b138b9ec9a761a0b09400a3c2c1fb9a71891d97b57be16b606054500130d41f0
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.