ERC-20
MEME
Overview
Max Total Supply
98,402,129,553.319388450042896197 CHEDDA
Holders
7,803 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
62,370.700679849108803677 CHEDDAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CheddaToken
Compiler Version
v0.8.5+commit.a4f2e591
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-13 */ // File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Context.sol // OpenZeppelin Contracts v4.3.2 (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: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts v4.3.2 (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.3.2 (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); } // File: https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts v4.3.2 (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.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // File: contracts/CheddaV2.sol pragma solidity ^0.8.5; // OpenZeppelin Contracts v4.3.2 (token/ERC20/ERC20.sol) contract Ownable is Context { address private _owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function getUnlockTime() public view returns (uint256) { return _lockTime; } } //Chedda V2 contract CheddaToken is ERC20, Ownable { mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcluded; address[] private _excluded; address MarketWallet1 = 0x9625088c654d26B9132feB52D37107AB898d19C6; address MarketWallet2 = 0xA0bd9f30daD7ea2a5daa5F93806966649950712D; address MarketWallet3 = 0xc17b1D72F07AE3f63c5484A8f0862763b581C6d9; address MarketWallet4 = 0x216E3DD4B71F2CAc69ae760809930d1B6574B2fF; address MarketWallet5 = 0xBD2d730CCaf5B4587c05A39b55Acff3D855ed336; address DevWallet1 = 0x625A181906e85e131eACE493F052b1166F1A443C; address DevWallet2 = 0x1D3E1ce1B7d9ae6e918357Ebc1aFD151b5ca5bA4; address DevWallet3 = 0x00F4DF21bc1A50bc06208F6A00D5D8F2bBc93Ae4; address DevWallet4 = 0x61Ff7eE1D9a7B8b7B68127c36475423cB08A2976; constructor() ERC20('Chedda Token', 'CHEDDA') { // Exclude dev wallet from fees for testing _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[MarketWallet1] = true; _isExcludedFromFee[MarketWallet2] = true; _isExcludedFromFee[MarketWallet3] = true; _isExcludedFromFee[MarketWallet4] = true; _isExcludedFromFee[MarketWallet5] = true; _isExcludedFromFee[DevWallet1] = true; _isExcludedFromFee[DevWallet2] = true; _isExcludedFromFee[DevWallet3] = true; _isExcludedFromFee[DevWallet4] = true; _mint(msg.sender, 100000000000 * 10 ** 18); } /** * @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) { uint256 singleFee = (amount / 100); //Calculate 1% fee uint256 totalFee = singleFee * 3; //Calculate total fee (3%) uint256 marketFee = singleFee * 2; //Calculate Dev Fee uint256 newAmmount = amount - totalFee; //Calc new amount if(isExcludedFromFee(_msgSender())) { _transfer(_msgSender(), recipient, amount); } else { _transfer(_msgSender(), MarketWallet1, marketFee); _burn(_msgSender(), singleFee); _transfer(_msgSender(), recipient, newAmmount); } return true; } function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { uint256 singleFee = (amount / 100); //Calculate 1% fee uint256 totalFee = singleFee * 3; //Calculate total fee (3%) uint256 marketFee = singleFee * 2; //Calculate Dev Fee uint256 newAmmount = amount - totalFee; //Calc new amount uint256 currentAllowance = allowance(sender,_msgSender()); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } if(isExcludedFromFee(_msgSender())) { _transfer(sender, recipient, amount); } else { _transfer(sender, MarketWallet1, marketFee); _burn(sender, singleFee); _transfer(sender, recipient, newAmmount); } return true; } function isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function setExcludeFromFee(address account, bool excluded) external onlyOwner() { _isExcludedFromFee[account] = excluded; } function isExcludedFromFee(address account) public view returns(bool) { return _isExcludedFromFee[account]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"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":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052739625088c654d26b9132feb52d37107ab898d19c6600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a0bd9f30dad7ea2a5daa5f93806966649950712d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c17b1d72f07ae3f63c5484a8f0862763b581c6d9600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073216e3dd4b71f2cac69ae760809930d1b6574b2ff600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073bd2d730ccaf5b4587c05a39b55acff3d855ed336600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073625a181906e85e131eace493f052b1166f1a443c601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731d3e1ce1b7d9ae6e918357ebc1afd151b5ca5ba4601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555072f4df21bc1a50bc06208f6a00d5d8f2bbc93ae4601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507361ff7ee1d9a7b8b7b68127c36475423cb08a2976601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200030d57600080fd5b506040518060400160405280600c81526020017f43686564646120546f6b656e00000000000000000000000000000000000000008152506040518060400160405280600681526020017f434845444441000000000000000000000000000000000000000000000000000081525081600390805190602001906200039292919062000b42565b508060049080519060200190620003ab92919062000b42565b5050506000620003c06200098d60201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600160086000620004756200099560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000987336c01431e0fae6d7217caa0000000620009bf60201b60201c565b62000d9e565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000a32576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a299062000c2a565b60405180910390fd5b62000a466000838362000b3860201b60201c565b806002600082825462000a5a919062000c7a565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000ab1919062000c7a565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b18919062000c4c565b60405180910390a362000b346000838362000b3d60201b60201c565b5050565b505050565b505050565b82805462000b509062000ce1565b90600052602060002090601f01602090048101928262000b74576000855562000bc0565b82601f1062000b8f57805160ff191683800117855562000bc0565b8280016001018555821562000bc0579182015b8281111562000bbf57825182559160200191906001019062000ba2565b5b50905062000bcf919062000bd3565b5090565b5b8082111562000bee57600081600090555060010162000bd4565b5090565b600062000c01601f8362000c69565b915062000c0e8262000d75565b602082019050919050565b62000c248162000cd7565b82525050565b6000602082019050818103600083015262000c458162000bf2565b9050919050565b600060208201905062000c63600083018462000c19565b92915050565b600082825260208201905092915050565b600062000c878262000cd7565b915062000c948362000cd7565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000ccc5762000ccb62000d17565b5b828201905092915050565b6000819050919050565b6000600282049050600182168062000cfa57607f821691505b6020821081141562000d115762000d1062000d46565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6120738062000dae6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a9059cbb11610071578063a9059cbb146102f9578063af9549e014610329578063cba0e99614610345578063dd62ed3e14610375578063f2fde38b146103a557610116565b8063715018a6146102835780638da5cb5b1461028d57806395d89b41146102ab578063a457c2d7146102c957610116565b8063313ce567116100e9578063313ce567146101b757806339509351146101d55780635342acb414610205578063602bc62b1461023557806370a082311461025357610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461016957806323b872dd14610187575b600080fd5b6101236103c1565b6040516101309190611873565b60405180910390f35b610153600480360381019061014e9190611607565b610453565b6040516101609190611858565b60405180910390f35b610171610471565b60405161017e91906119f5565b60405180910390f35b6101a1600480360381019061019c9190611574565b61047b565b6040516101ae9190611858565b60405180910390f35b6101bf6105cb565b6040516101cc9190611a10565b60405180910390f35b6101ef60048036038101906101ea9190611607565b6105d4565b6040516101fc9190611858565b60405180910390f35b61021f600480360381019061021a9190611507565b610680565b60405161022c9190611858565b60405180910390f35b61023d6106d6565b60405161024a91906119f5565b60405180910390f35b61026d60048036038101906102689190611507565b6106e0565b60405161027a91906119f5565b60405180910390f35b61028b610728565b005b610295610880565b6040516102a2919061183d565b60405180910390f35b6102b36108aa565b6040516102c09190611873565b60405180910390f35b6102e360048036038101906102de9190611607565b61093c565b6040516102f09190611858565b60405180910390f35b610313600480360381019061030e9190611607565b610a27565b6040516103209190611858565b60405180910390f35b610343600480360381019061033e91906115c7565b610afd565b005b61035f600480360381019061035a9190611507565b610bef565b60405161036c9190611858565b60405180910390f35b61038f600480360381019061038a9190611534565b610c45565b60405161039c91906119f5565b60405180910390f35b6103bf60048036038101906103ba9190611507565b610ccc565b005b6060600380546103d090611be4565b80601f01602080910402602001604051908101604052809291908181526020018280546103fc90611be4565b80156104495780601f1061041e57610100808354040283529160200191610449565b820191906000526020600020905b81548152906001019060200180831161042c57829003601f168201915b5050505050905090565b6000610467610460610e93565b8484610e9b565b6001905092915050565b6000600254905090565b60008060648361048b9190611a9d565b9050600060038261049c9190611ace565b905060006002836104ad9190611ace565b9050600082866104bd9190611b28565b905060006104d2896104cd610e93565b610c45565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610553578681101561053e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053590611935565b60405180910390fd5b6105528961054a610e93565b898403610e9b565b5b61056361055e610e93565b610680565b1561057857610573898989611066565b6105bb565b6105a589600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611066565b6105af89866112e7565b6105ba898984611066565b5b6001955050505050509392505050565b60006012905090565b60006106766105e1610e93565b8484600160006105ef610e93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106719190611a47565b610e9b565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600754905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610730610e93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690611955565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546108b990611be4565b80601f01602080910402602001604051908101604052809291908181526020018280546108e590611be4565b80156109325780601f1061090757610100808354040283529160200191610932565b820191906000526020600020905b81548152906001019060200180831161091557829003601f168201915b5050505050905090565b6000806001600061094b610e93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906119d5565b60405180910390fd5b610a1c610a13610e93565b85858403610e9b565b600191505092915050565b600080606483610a379190611a9d565b90506000600382610a489190611ace565b90506000600283610a599190611ace565b905060008286610a699190611b28565b9050610a7b610a76610e93565b610680565b15610a9757610a92610a8b610e93565b8888611066565b610aef565b610acb610aa2610e93565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611066565b610adc610ad6610e93565b856112e7565b610aee610ae7610e93565b8883611066565b5b600194505050505092915050565b610b05610e93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b90611955565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610cd4610e93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a90611955565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dca906118d5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f02906119b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f72906118f5565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161105991906119f5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90611995565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d90611895565b60405180910390fd5b6111518383836114be565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce90611915565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461126a9190611a47565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112ce91906119f5565b60405180910390a36112e18484846114c3565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90611975565b60405180910390fd5b611363826000836114be565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e0906118b5565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546114409190611b28565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114a591906119f5565b60405180910390a36114b9836000846114c3565b505050565b505050565b505050565b6000813590506114d781611ff8565b92915050565b6000813590506114ec8161200f565b92915050565b60008135905061150181612026565b92915050565b60006020828403121561151d5761151c611ca3565b5b600061152b848285016114c8565b91505092915050565b6000806040838503121561154b5761154a611ca3565b5b6000611559858286016114c8565b925050602061156a858286016114c8565b9150509250929050565b60008060006060848603121561158d5761158c611ca3565b5b600061159b868287016114c8565b93505060206115ac868287016114c8565b92505060406115bd868287016114f2565b9150509250925092565b600080604083850312156115de576115dd611ca3565b5b60006115ec858286016114c8565b92505060206115fd858286016114dd565b9150509250929050565b6000806040838503121561161e5761161d611ca3565b5b600061162c858286016114c8565b925050602061163d858286016114f2565b9150509250929050565b61165081611b5c565b82525050565b61165f81611b6e565b82525050565b600061167082611a2b565b61167a8185611a36565b935061168a818560208601611bb1565b61169381611ca8565b840191505092915050565b60006116ab602383611a36565b91506116b682611cb9565b604082019050919050565b60006116ce602283611a36565b91506116d982611d08565b604082019050919050565b60006116f1602683611a36565b91506116fc82611d57565b604082019050919050565b6000611714602283611a36565b915061171f82611da6565b604082019050919050565b6000611737602683611a36565b915061174282611df5565b604082019050919050565b600061175a602883611a36565b915061176582611e44565b604082019050919050565b600061177d602083611a36565b915061178882611e93565b602082019050919050565b60006117a0602183611a36565b91506117ab82611ebc565b604082019050919050565b60006117c3602583611a36565b91506117ce82611f0b565b604082019050919050565b60006117e6602483611a36565b91506117f182611f5a565b604082019050919050565b6000611809602583611a36565b915061181482611fa9565b604082019050919050565b61182881611b9a565b82525050565b61183781611ba4565b82525050565b60006020820190506118526000830184611647565b92915050565b600060208201905061186d6000830184611656565b92915050565b6000602082019050818103600083015261188d8184611665565b905092915050565b600060208201905081810360008301526118ae8161169e565b9050919050565b600060208201905081810360008301526118ce816116c1565b9050919050565b600060208201905081810360008301526118ee816116e4565b9050919050565b6000602082019050818103600083015261190e81611707565b9050919050565b6000602082019050818103600083015261192e8161172a565b9050919050565b6000602082019050818103600083015261194e8161174d565b9050919050565b6000602082019050818103600083015261196e81611770565b9050919050565b6000602082019050818103600083015261198e81611793565b9050919050565b600060208201905081810360008301526119ae816117b6565b9050919050565b600060208201905081810360008301526119ce816117d9565b9050919050565b600060208201905081810360008301526119ee816117fc565b9050919050565b6000602082019050611a0a600083018461181f565b92915050565b6000602082019050611a25600083018461182e565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611a5282611b9a565b9150611a5d83611b9a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a9257611a91611c16565b5b828201905092915050565b6000611aa882611b9a565b9150611ab383611b9a565b925082611ac357611ac2611c45565b5b828204905092915050565b6000611ad982611b9a565b9150611ae483611b9a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b1d57611b1c611c16565b5b828202905092915050565b6000611b3382611b9a565b9150611b3e83611b9a565b925082821015611b5157611b50611c16565b5b828203905092915050565b6000611b6782611b7a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611bcf578082015181840152602081019050611bb4565b83811115611bde576000848401525b50505050565b60006002820490506001821680611bfc57607f821691505b60208210811415611c1057611c0f611c74565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61200181611b5c565b811461200c57600080fd5b50565b61201881611b6e565b811461202357600080fd5b50565b61202f81611b9a565b811461203a57600080fd5b5056fea2646970667358221220639c4bee4c86b30268187d79e9105e8ccfc1133e843eec1f724aa533bc792c7264736f6c63430008050033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a2578063a9059cbb11610071578063a9059cbb146102f9578063af9549e014610329578063cba0e99614610345578063dd62ed3e14610375578063f2fde38b146103a557610116565b8063715018a6146102835780638da5cb5b1461028d57806395d89b41146102ab578063a457c2d7146102c957610116565b8063313ce567116100e9578063313ce567146101b757806339509351146101d55780635342acb414610205578063602bc62b1461023557806370a082311461025357610116565b806306fdde031461011b578063095ea7b31461013957806318160ddd1461016957806323b872dd14610187575b600080fd5b6101236103c1565b6040516101309190611873565b60405180910390f35b610153600480360381019061014e9190611607565b610453565b6040516101609190611858565b60405180910390f35b610171610471565b60405161017e91906119f5565b60405180910390f35b6101a1600480360381019061019c9190611574565b61047b565b6040516101ae9190611858565b60405180910390f35b6101bf6105cb565b6040516101cc9190611a10565b60405180910390f35b6101ef60048036038101906101ea9190611607565b6105d4565b6040516101fc9190611858565b60405180910390f35b61021f600480360381019061021a9190611507565b610680565b60405161022c9190611858565b60405180910390f35b61023d6106d6565b60405161024a91906119f5565b60405180910390f35b61026d60048036038101906102689190611507565b6106e0565b60405161027a91906119f5565b60405180910390f35b61028b610728565b005b610295610880565b6040516102a2919061183d565b60405180910390f35b6102b36108aa565b6040516102c09190611873565b60405180910390f35b6102e360048036038101906102de9190611607565b61093c565b6040516102f09190611858565b60405180910390f35b610313600480360381019061030e9190611607565b610a27565b6040516103209190611858565b60405180910390f35b610343600480360381019061033e91906115c7565b610afd565b005b61035f600480360381019061035a9190611507565b610bef565b60405161036c9190611858565b60405180910390f35b61038f600480360381019061038a9190611534565b610c45565b60405161039c91906119f5565b60405180910390f35b6103bf60048036038101906103ba9190611507565b610ccc565b005b6060600380546103d090611be4565b80601f01602080910402602001604051908101604052809291908181526020018280546103fc90611be4565b80156104495780601f1061041e57610100808354040283529160200191610449565b820191906000526020600020905b81548152906001019060200180831161042c57829003601f168201915b5050505050905090565b6000610467610460610e93565b8484610e9b565b6001905092915050565b6000600254905090565b60008060648361048b9190611a9d565b9050600060038261049c9190611ace565b905060006002836104ad9190611ace565b9050600082866104bd9190611b28565b905060006104d2896104cd610e93565b610c45565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610553578681101561053e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053590611935565b60405180910390fd5b6105528961054a610e93565b898403610e9b565b5b61056361055e610e93565b610680565b1561057857610573898989611066565b6105bb565b6105a589600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611066565b6105af89866112e7565b6105ba898984611066565b5b6001955050505050509392505050565b60006012905090565b60006106766105e1610e93565b8484600160006105ef610e93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106719190611a47565b610e9b565b6001905092915050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600754905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610730610e93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690611955565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546108b990611be4565b80601f01602080910402602001604051908101604052809291908181526020018280546108e590611be4565b80156109325780601f1061090757610100808354040283529160200191610932565b820191906000526020600020905b81548152906001019060200180831161091557829003601f168201915b5050505050905090565b6000806001600061094b610e93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906119d5565b60405180910390fd5b610a1c610a13610e93565b85858403610e9b565b600191505092915050565b600080606483610a379190611a9d565b90506000600382610a489190611ace565b90506000600283610a599190611ace565b905060008286610a699190611b28565b9050610a7b610a76610e93565b610680565b15610a9757610a92610a8b610e93565b8888611066565b610aef565b610acb610aa2610e93565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611066565b610adc610ad6610e93565b856112e7565b610aee610ae7610e93565b8883611066565b5b600194505050505092915050565b610b05610e93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b90611955565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610cd4610e93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5a90611955565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dca906118d5565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f02906119b5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f72906118f5565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161105991906119f5565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90611995565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d90611895565b60405180910390fd5b6111518383836114be565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156111d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ce90611915565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461126a9190611a47565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516112ce91906119f5565b60405180910390a36112e18484846114c3565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90611975565b60405180910390fd5b611363826000836114be565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e0906118b5565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546114409190611b28565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114a591906119f5565b60405180910390a36114b9836000846114c3565b505050565b505050565b505050565b6000813590506114d781611ff8565b92915050565b6000813590506114ec8161200f565b92915050565b60008135905061150181612026565b92915050565b60006020828403121561151d5761151c611ca3565b5b600061152b848285016114c8565b91505092915050565b6000806040838503121561154b5761154a611ca3565b5b6000611559858286016114c8565b925050602061156a858286016114c8565b9150509250929050565b60008060006060848603121561158d5761158c611ca3565b5b600061159b868287016114c8565b93505060206115ac868287016114c8565b92505060406115bd868287016114f2565b9150509250925092565b600080604083850312156115de576115dd611ca3565b5b60006115ec858286016114c8565b92505060206115fd858286016114dd565b9150509250929050565b6000806040838503121561161e5761161d611ca3565b5b600061162c858286016114c8565b925050602061163d858286016114f2565b9150509250929050565b61165081611b5c565b82525050565b61165f81611b6e565b82525050565b600061167082611a2b565b61167a8185611a36565b935061168a818560208601611bb1565b61169381611ca8565b840191505092915050565b60006116ab602383611a36565b91506116b682611cb9565b604082019050919050565b60006116ce602283611a36565b91506116d982611d08565b604082019050919050565b60006116f1602683611a36565b91506116fc82611d57565b604082019050919050565b6000611714602283611a36565b915061171f82611da6565b604082019050919050565b6000611737602683611a36565b915061174282611df5565b604082019050919050565b600061175a602883611a36565b915061176582611e44565b604082019050919050565b600061177d602083611a36565b915061178882611e93565b602082019050919050565b60006117a0602183611a36565b91506117ab82611ebc565b604082019050919050565b60006117c3602583611a36565b91506117ce82611f0b565b604082019050919050565b60006117e6602483611a36565b91506117f182611f5a565b604082019050919050565b6000611809602583611a36565b915061181482611fa9565b604082019050919050565b61182881611b9a565b82525050565b61183781611ba4565b82525050565b60006020820190506118526000830184611647565b92915050565b600060208201905061186d6000830184611656565b92915050565b6000602082019050818103600083015261188d8184611665565b905092915050565b600060208201905081810360008301526118ae8161169e565b9050919050565b600060208201905081810360008301526118ce816116c1565b9050919050565b600060208201905081810360008301526118ee816116e4565b9050919050565b6000602082019050818103600083015261190e81611707565b9050919050565b6000602082019050818103600083015261192e8161172a565b9050919050565b6000602082019050818103600083015261194e8161174d565b9050919050565b6000602082019050818103600083015261196e81611770565b9050919050565b6000602082019050818103600083015261198e81611793565b9050919050565b600060208201905081810360008301526119ae816117b6565b9050919050565b600060208201905081810360008301526119ce816117d9565b9050919050565b600060208201905081810360008301526119ee816117fc565b9050919050565b6000602082019050611a0a600083018461181f565b92915050565b6000602082019050611a25600083018461182e565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611a5282611b9a565b9150611a5d83611b9a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611a9257611a91611c16565b5b828201905092915050565b6000611aa882611b9a565b9150611ab383611b9a565b925082611ac357611ac2611c45565b5b828204905092915050565b6000611ad982611b9a565b9150611ae483611b9a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615611b1d57611b1c611c16565b5b828202905092915050565b6000611b3382611b9a565b9150611b3e83611b9a565b925082821015611b5157611b50611c16565b5b828203905092915050565b6000611b6782611b7a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611bcf578082015181840152602081019050611bb4565b83811115611bde576000848401525b50505050565b60006002820490506001821680611bfc57607f821691505b60208210811415611c1057611c0f611c74565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61200181611b5c565b811461200c57600080fd5b50565b61201881611b6e565b811461202357600080fd5b50565b61202f81611b9a565b811461203a57600080fd5b5056fea2646970667358221220639c4bee4c86b30268187d79e9105e8ccfc1133e843eec1f724aa533bc792c7264736f6c63430008050033
Deployed Bytecode Sourcemap
18840:4044:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6867:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9034:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7987:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21401:1060;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7829:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10586:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22752:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18723:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8158:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18161:153;;;:::i;:::-;;17517:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7086:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11304:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20631:758;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22597:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22473:116;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8736:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18466:249;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6867:100;6921:13;6954:5;6947:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6867:100;:::o;9034:169::-;9117:4;9134:39;9143:12;:10;:12::i;:::-;9157:7;9166:6;9134:8;:39::i;:::-;9191:4;9184:11;;9034:169;;;;:::o;7987:108::-;8048:7;8075:12;;8068:19;;7987:108;:::o;21401:1060::-;21507:4;21529:17;21559:3;21550:6;:12;;;;:::i;:::-;21529:34;;21597:16;21628:1;21616:9;:13;;;;:::i;:::-;21597:32;;21673:17;21705:1;21693:9;:13;;;;:::i;:::-;21673:33;;21742:18;21772:8;21763:6;:17;;;;:::i;:::-;21742:38;;21807:24;21834:30;21844:6;21851:12;:10;:12::i;:::-;21834:9;:30::i;:::-;21807:57;;21897:17;21877:16;:37;21873:233;;21954:6;21934:16;:26;;21926:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;22037:57;22046:6;22054:12;:10;:12::i;:::-;22087:6;22068:16;:25;22037:8;:57::i;:::-;21873:233;22129:31;22147:12;:10;:12::i;:::-;22129:17;:31::i;:::-;22126:296;;;22186:36;22196:6;22204:9;22215:6;22186:9;:36::i;:::-;22126:296;;;22273:43;22283:6;22291:13;;;;;;;;;;;22306:9;22273;:43::i;:::-;22331:24;22337:6;22345:9;22331:5;:24::i;:::-;22370:40;22380:6;22388:9;22399:10;22370:9;:40::i;:::-;22126:296;22449:4;22442:11;;;;;;;21401:1060;;;;;:::o;7829:93::-;7887:5;7912:2;7905:9;;7829:93;:::o;10586:215::-;10674:4;10691:80;10700:12;:10;:12::i;:::-;10714:7;10760:10;10723:11;:25;10735:12;:10;:12::i;:::-;10723:25;;;;;;;;;;;;;;;:34;10749:7;10723:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;10691:8;:80::i;:::-;10789:4;10782:11;;10586:215;;;;:::o;22752:129::-;22816:4;22846:18;:27;22865:7;22846:27;;;;;;;;;;;;;;;;;;;;;;;;;22839:34;;22752:129;;;:::o;18723:95::-;18769:7;18801:9;;18794:16;;18723:95;:::o;8158:127::-;8232:7;8259:9;:18;8269:7;8259:18;;;;;;;;;;;;;;;;8252:25;;8158:127;;;:::o;18161:153::-;17747:12;:10;:12::i;:::-;17737:22;;:6;;;;;;;;;;;:22;;;17729:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18273:1:::1;18236:40;;18257:6;;;;;;;;;;;18236:40;;;;;;;;;;;;18304:1;18287:6;;:19;;;;;;;;;;;;;;;;;;18161:153::o:0;17517:84::-;17555:7;17587:6;;;;;;;;;;;17580:13;;17517:84;:::o;7086:104::-;7142:13;7175:7;7168:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7086:104;:::o;11304:413::-;11397:4;11414:24;11441:11;:25;11453:12;:10;:12::i;:::-;11441:25;;;;;;;;;;;;;;;:34;11467:7;11441:34;;;;;;;;;;;;;;;;11414:61;;11514:15;11494:16;:35;;11486:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;11607:67;11616:12;:10;:12::i;:::-;11630:7;11658:15;11639:16;:34;11607:8;:67::i;:::-;11705:4;11698:11;;;11304:413;;;;:::o;20631:758::-;20717:4;20740:17;20770:3;20761:6;:12;;;;:::i;:::-;20740:34;;20808:16;20839:1;20827:9;:13;;;;:::i;:::-;20808:32;;20884:17;20916:1;20904:9;:13;;;;:::i;:::-;20884:33;;20953:18;20983:8;20974:6;:17;;;;:::i;:::-;20953:38;;21033:31;21051:12;:10;:12::i;:::-;21033:17;:31::i;:::-;21030:320;;;21090:42;21100:12;:10;:12::i;:::-;21114:9;21125:6;21090:9;:42::i;:::-;21030:320;;;21183:49;21193:12;:10;:12::i;:::-;21207:13;;;;;;;;;;;21222:9;21183;:49::i;:::-;21247:30;21253:12;:10;:12::i;:::-;21267:9;21247:5;:30::i;:::-;21292:46;21302:12;:10;:12::i;:::-;21316:9;21327:10;21292:9;:46::i;:::-;21030:320;21377:4;21370:11;;;;;;20631:758;;;;:::o;22597:143::-;17747:12;:10;:12::i;:::-;17737:22;;:6;;;;;;;;;;;:22;;;17729:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22724:8:::1;22694:18;:27;22713:7;22694:27;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;22597:143:::0;;:::o;22473:116::-;22531:4;22561:11;:20;22573:7;22561:20;;;;;;;;;;;;;;;;;;;;;;;;;22554:27;;22473:116;;;:::o;8736:151::-;8825:7;8852:11;:18;8864:5;8852:18;;;;;;;;;;;;;;;:27;8871:7;8852:27;;;;;;;;;;;;;;;;8845:34;;8736:151;;;;:::o;18466:249::-;17747:12;:10;:12::i;:::-;17737:22;;:6;;;;;;;;;;;:22;;;17729:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18580:1:::1;18560:22;;:8;:22;;;;18552:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18670:8;18641:38;;18662:6;;;;;;;;;;;18641:38;;;;;;;;;;;;18699:8;18690:6;;:17;;;;;;;;;;;;;;;;;;18466:249:::0;:::o;732:98::-;785:7;812:10;805:17;;732:98;:::o;14988:380::-;15141:1;15124:19;;:5;:19;;;;15116:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15222:1;15203:21;;:7;:21;;;;15195:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15306:6;15276:11;:18;15288:5;15276:18;;;;;;;;;;;;;;;:27;15295:7;15276:27;;;;;;;;;;;;;;;:36;;;;15344:7;15328:32;;15337:5;15328:32;;;15353:6;15328:32;;;;;;:::i;:::-;;;;;;;;14988:380;;;:::o;12207:733::-;12365:1;12347:20;;:6;:20;;;;12339:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12449:1;12428:23;;:9;:23;;;;12420:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12504:47;12525:6;12533:9;12544:6;12504:20;:47::i;:::-;12564:21;12588:9;:17;12598:6;12588:17;;;;;;;;;;;;;;;;12564:41;;12641:6;12624:13;:23;;12616:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12762:6;12746:13;:22;12726:9;:17;12736:6;12726:17;;;;;;;;;;;;;;;:42;;;;12814:6;12790:9;:20;12800:9;12790:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12855:9;12838:35;;12847:6;12838:35;;;12866:6;12838:35;;;;;;:::i;:::-;;;;;;;;12886:46;12906:6;12914:9;12925:6;12886:19;:46::i;:::-;12328:612;12207:733;;;:::o;13959:591::-;14062:1;14043:21;;:7;:21;;;;14035:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14115:49;14136:7;14153:1;14157:6;14115:20;:49::i;:::-;14177:22;14202:9;:18;14212:7;14202:18;;;;;;;;;;;;;;;;14177:43;;14257:6;14239:14;:24;;14231:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14376:6;14359:14;:23;14338:9;:18;14348:7;14338:18;;;;;;;;;;;;;;;:44;;;;14420:6;14404:12;;:22;;;;;;;:::i;:::-;;;;;;;;14470:1;14444:37;;14453:7;14444:37;;;14474:6;14444:37;;;;;;:::i;:::-;;;;;;;;14494:48;14514:7;14531:1;14535:6;14494:19;:48::i;:::-;14024:526;13959:591;;:::o;15968:125::-;;;;:::o;16697:124::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:133::-;195:5;233:6;220:20;211:29;;249:30;273:5;249:30;:::i;:::-;201:84;;;;:::o;291:139::-;337:5;375:6;362:20;353:29;;391:33;418:5;391:33;:::i;:::-;343:87;;;;:::o;436:329::-;495:6;544:2;532:9;523:7;519:23;515:32;512:2;;;550:79;;:::i;:::-;512:2;670:1;695:53;740:7;731:6;720:9;716:22;695:53;:::i;:::-;685:63;;641:117;502:263;;;;:::o;771:474::-;839:6;847;896:2;884:9;875:7;871:23;867:32;864:2;;;902:79;;:::i;:::-;864:2;1022:1;1047:53;1092:7;1083:6;1072:9;1068:22;1047:53;:::i;:::-;1037:63;;993:117;1149:2;1175:53;1220:7;1211:6;1200:9;1196:22;1175:53;:::i;:::-;1165:63;;1120:118;854:391;;;;;:::o;1251:619::-;1328:6;1336;1344;1393:2;1381:9;1372:7;1368:23;1364:32;1361:2;;;1399:79;;:::i;:::-;1361:2;1519:1;1544:53;1589:7;1580:6;1569:9;1565:22;1544:53;:::i;:::-;1534:63;;1490:117;1646:2;1672:53;1717:7;1708:6;1697:9;1693:22;1672:53;:::i;:::-;1662:63;;1617:118;1774:2;1800:53;1845:7;1836:6;1825:9;1821:22;1800:53;:::i;:::-;1790:63;;1745:118;1351:519;;;;;:::o;1876:468::-;1941:6;1949;1998:2;1986:9;1977:7;1973:23;1969:32;1966:2;;;2004:79;;:::i;:::-;1966:2;2124:1;2149:53;2194:7;2185:6;2174:9;2170:22;2149:53;:::i;:::-;2139:63;;2095:117;2251:2;2277:50;2319:7;2310:6;2299:9;2295:22;2277:50;:::i;:::-;2267:60;;2222:115;1956:388;;;;;:::o;2350:474::-;2418:6;2426;2475:2;2463:9;2454:7;2450:23;2446:32;2443:2;;;2481:79;;:::i;:::-;2443:2;2601:1;2626:53;2671:7;2662:6;2651:9;2647:22;2626:53;:::i;:::-;2616:63;;2572:117;2728:2;2754:53;2799:7;2790:6;2779:9;2775:22;2754:53;:::i;:::-;2744:63;;2699:118;2433:391;;;;;:::o;2830:118::-;2917:24;2935:5;2917:24;:::i;:::-;2912:3;2905:37;2895:53;;:::o;2954:109::-;3035:21;3050:5;3035:21;:::i;:::-;3030:3;3023:34;3013:50;;:::o;3069:364::-;3157:3;3185:39;3218:5;3185:39;:::i;:::-;3240:71;3304:6;3299:3;3240:71;:::i;:::-;3233:78;;3320:52;3365:6;3360:3;3353:4;3346:5;3342:16;3320:52;:::i;:::-;3397:29;3419:6;3397:29;:::i;:::-;3392:3;3388:39;3381:46;;3161:272;;;;;:::o;3439:366::-;3581:3;3602:67;3666:2;3661:3;3602:67;:::i;:::-;3595:74;;3678:93;3767:3;3678:93;:::i;:::-;3796:2;3791:3;3787:12;3780:19;;3585:220;;;:::o;3811:366::-;3953:3;3974:67;4038:2;4033:3;3974:67;:::i;:::-;3967:74;;4050:93;4139:3;4050:93;:::i;:::-;4168:2;4163:3;4159:12;4152:19;;3957:220;;;:::o;4183:366::-;4325:3;4346:67;4410:2;4405:3;4346:67;:::i;:::-;4339:74;;4422:93;4511:3;4422:93;:::i;:::-;4540:2;4535:3;4531:12;4524:19;;4329:220;;;:::o;4555:366::-;4697:3;4718:67;4782:2;4777:3;4718:67;:::i;:::-;4711:74;;4794:93;4883:3;4794:93;:::i;:::-;4912:2;4907:3;4903:12;4896:19;;4701:220;;;:::o;4927:366::-;5069:3;5090:67;5154:2;5149:3;5090:67;:::i;:::-;5083:74;;5166:93;5255:3;5166:93;:::i;:::-;5284:2;5279:3;5275:12;5268:19;;5073:220;;;:::o;5299:366::-;5441:3;5462:67;5526:2;5521:3;5462:67;:::i;:::-;5455:74;;5538:93;5627:3;5538:93;:::i;:::-;5656:2;5651:3;5647:12;5640:19;;5445:220;;;:::o;5671:366::-;5813:3;5834:67;5898:2;5893:3;5834:67;:::i;:::-;5827:74;;5910:93;5999:3;5910:93;:::i;:::-;6028:2;6023:3;6019:12;6012:19;;5817:220;;;:::o;6043:366::-;6185:3;6206:67;6270:2;6265:3;6206:67;:::i;:::-;6199:74;;6282:93;6371:3;6282:93;:::i;:::-;6400:2;6395:3;6391:12;6384:19;;6189:220;;;:::o;6415:366::-;6557:3;6578:67;6642:2;6637:3;6578:67;:::i;:::-;6571:74;;6654:93;6743:3;6654:93;:::i;:::-;6772:2;6767:3;6763:12;6756:19;;6561:220;;;:::o;6787:366::-;6929:3;6950:67;7014:2;7009:3;6950:67;:::i;:::-;6943:74;;7026:93;7115:3;7026:93;:::i;:::-;7144:2;7139:3;7135:12;7128:19;;6933:220;;;:::o;7159:366::-;7301:3;7322:67;7386:2;7381:3;7322:67;:::i;:::-;7315:74;;7398:93;7487:3;7398:93;:::i;:::-;7516:2;7511:3;7507:12;7500:19;;7305:220;;;:::o;7531:118::-;7618:24;7636:5;7618:24;:::i;:::-;7613:3;7606:37;7596:53;;:::o;7655:112::-;7738:22;7754:5;7738:22;:::i;:::-;7733:3;7726:35;7716:51;;:::o;7773:222::-;7866:4;7904:2;7893:9;7889:18;7881:26;;7917:71;7985:1;7974:9;7970:17;7961:6;7917:71;:::i;:::-;7871:124;;;;:::o;8001:210::-;8088:4;8126:2;8115:9;8111:18;8103:26;;8139:65;8201:1;8190:9;8186:17;8177:6;8139:65;:::i;:::-;8093:118;;;;:::o;8217:313::-;8330:4;8368:2;8357:9;8353:18;8345:26;;8417:9;8411:4;8407:20;8403:1;8392:9;8388:17;8381:47;8445:78;8518:4;8509:6;8445:78;:::i;:::-;8437:86;;8335:195;;;;:::o;8536:419::-;8702:4;8740:2;8729:9;8725:18;8717:26;;8789:9;8783:4;8779:20;8775:1;8764:9;8760:17;8753:47;8817:131;8943:4;8817:131;:::i;:::-;8809:139;;8707:248;;;:::o;8961:419::-;9127:4;9165:2;9154:9;9150:18;9142:26;;9214:9;9208:4;9204:20;9200:1;9189:9;9185:17;9178:47;9242:131;9368:4;9242:131;:::i;:::-;9234:139;;9132:248;;;:::o;9386:419::-;9552:4;9590:2;9579:9;9575:18;9567:26;;9639:9;9633:4;9629:20;9625:1;9614:9;9610:17;9603:47;9667:131;9793:4;9667:131;:::i;:::-;9659:139;;9557:248;;;:::o;9811:419::-;9977:4;10015:2;10004:9;10000:18;9992:26;;10064:9;10058:4;10054:20;10050:1;10039:9;10035:17;10028:47;10092:131;10218:4;10092:131;:::i;:::-;10084:139;;9982:248;;;:::o;10236:419::-;10402:4;10440:2;10429:9;10425:18;10417:26;;10489:9;10483:4;10479:20;10475:1;10464:9;10460:17;10453:47;10517:131;10643:4;10517:131;:::i;:::-;10509:139;;10407:248;;;:::o;10661:419::-;10827:4;10865:2;10854:9;10850:18;10842:26;;10914:9;10908:4;10904:20;10900:1;10889:9;10885:17;10878:47;10942:131;11068:4;10942:131;:::i;:::-;10934:139;;10832:248;;;:::o;11086:419::-;11252:4;11290:2;11279:9;11275:18;11267:26;;11339:9;11333:4;11329:20;11325:1;11314:9;11310:17;11303:47;11367:131;11493:4;11367:131;:::i;:::-;11359:139;;11257:248;;;:::o;11511:419::-;11677:4;11715:2;11704:9;11700:18;11692:26;;11764:9;11758:4;11754:20;11750:1;11739:9;11735:17;11728:47;11792:131;11918:4;11792:131;:::i;:::-;11784:139;;11682:248;;;:::o;11936:419::-;12102:4;12140:2;12129:9;12125:18;12117:26;;12189:9;12183:4;12179:20;12175:1;12164:9;12160:17;12153:47;12217:131;12343:4;12217:131;:::i;:::-;12209:139;;12107:248;;;:::o;12361:419::-;12527:4;12565:2;12554:9;12550:18;12542:26;;12614:9;12608:4;12604:20;12600:1;12589:9;12585:17;12578:47;12642:131;12768:4;12642:131;:::i;:::-;12634:139;;12532:248;;;:::o;12786:419::-;12952:4;12990:2;12979:9;12975:18;12967:26;;13039:9;13033:4;13029:20;13025:1;13014:9;13010:17;13003:47;13067:131;13193:4;13067:131;:::i;:::-;13059:139;;12957:248;;;:::o;13211:222::-;13304:4;13342:2;13331:9;13327:18;13319:26;;13355:71;13423:1;13412:9;13408:17;13399:6;13355:71;:::i;:::-;13309:124;;;;:::o;13439:214::-;13528:4;13566:2;13555:9;13551:18;13543:26;;13579:67;13643:1;13632:9;13628:17;13619:6;13579:67;:::i;:::-;13533:120;;;;:::o;13740:99::-;13792:6;13826:5;13820:12;13810:22;;13799:40;;;:::o;13845:169::-;13929:11;13963:6;13958:3;13951:19;14003:4;13998:3;13994:14;13979:29;;13941:73;;;;:::o;14020:305::-;14060:3;14079:20;14097:1;14079:20;:::i;:::-;14074:25;;14113:20;14131:1;14113:20;:::i;:::-;14108:25;;14267:1;14199:66;14195:74;14192:1;14189:81;14186:2;;;14273:18;;:::i;:::-;14186:2;14317:1;14314;14310:9;14303:16;;14064:261;;;;:::o;14331:185::-;14371:1;14388:20;14406:1;14388:20;:::i;:::-;14383:25;;14422:20;14440:1;14422:20;:::i;:::-;14417:25;;14461:1;14451:2;;14466:18;;:::i;:::-;14451:2;14508:1;14505;14501:9;14496:14;;14373:143;;;;:::o;14522:348::-;14562:7;14585:20;14603:1;14585:20;:::i;:::-;14580:25;;14619:20;14637:1;14619:20;:::i;:::-;14614:25;;14807:1;14739:66;14735:74;14732:1;14729:81;14724:1;14717:9;14710:17;14706:105;14703:2;;;14814:18;;:::i;:::-;14703:2;14862:1;14859;14855:9;14844:20;;14570:300;;;;:::o;14876:191::-;14916:4;14936:20;14954:1;14936:20;:::i;:::-;14931:25;;14970:20;14988:1;14970:20;:::i;:::-;14965:25;;15009:1;15006;15003:8;15000:2;;;15014:18;;:::i;:::-;15000:2;15059:1;15056;15052:9;15044:17;;14921:146;;;;:::o;15073:96::-;15110:7;15139:24;15157:5;15139:24;:::i;:::-;15128:35;;15118:51;;;:::o;15175:90::-;15209:7;15252:5;15245:13;15238:21;15227:32;;15217:48;;;:::o;15271:126::-;15308:7;15348:42;15341:5;15337:54;15326:65;;15316:81;;;:::o;15403:77::-;15440:7;15469:5;15458:16;;15448:32;;;:::o;15486:86::-;15521:7;15561:4;15554:5;15550:16;15539:27;;15529:43;;;:::o;15578:307::-;15646:1;15656:113;15670:6;15667:1;15664:13;15656:113;;;15755:1;15750:3;15746:11;15740:18;15736:1;15731:3;15727:11;15720:39;15692:2;15689:1;15685:10;15680:15;;15656:113;;;15787:6;15784:1;15781:13;15778:2;;;15867:1;15858:6;15853:3;15849:16;15842:27;15778:2;15627:258;;;;:::o;15891:320::-;15935:6;15972:1;15966:4;15962:12;15952:22;;16019:1;16013:4;16009:12;16040:18;16030:2;;16096:4;16088:6;16084:17;16074:27;;16030:2;16158;16150:6;16147:14;16127:18;16124:38;16121:2;;;16177:18;;:::i;:::-;16121:2;15942:269;;;;:::o;16217:180::-;16265:77;16262:1;16255:88;16362:4;16359:1;16352:15;16386:4;16383:1;16376:15;16403:180;16451:77;16448:1;16441:88;16548:4;16545:1;16538:15;16572:4;16569:1;16562:15;16589:180;16637:77;16634:1;16627:88;16734:4;16731:1;16724:15;16758:4;16755:1;16748:15;16898:117;17007:1;17004;16997:12;17021:102;17062:6;17113:2;17109:7;17104:2;17097:5;17093:14;17089:28;17079:38;;17069:54;;;:::o;17129:222::-;17269:34;17265:1;17257:6;17253:14;17246:58;17338:5;17333:2;17325:6;17321:15;17314:30;17235:116;:::o;17357:221::-;17497:34;17493:1;17485:6;17481:14;17474:58;17566:4;17561:2;17553:6;17549:15;17542:29;17463:115;:::o;17584:225::-;17724:34;17720:1;17712:6;17708:14;17701:58;17793:8;17788:2;17780:6;17776:15;17769:33;17690:119;:::o;17815:221::-;17955:34;17951:1;17943:6;17939:14;17932:58;18024:4;18019:2;18011:6;18007:15;18000:29;17921:115;:::o;18042:225::-;18182:34;18178:1;18170:6;18166:14;18159:58;18251:8;18246:2;18238:6;18234:15;18227:33;18148:119;:::o;18273:227::-;18413:34;18409:1;18401:6;18397:14;18390:58;18482:10;18477:2;18469:6;18465:15;18458:35;18379:121;:::o;18506:182::-;18646:34;18642:1;18634:6;18630:14;18623:58;18612:76;:::o;18694:220::-;18834:34;18830:1;18822:6;18818:14;18811:58;18903:3;18898:2;18890:6;18886:15;18879:28;18800:114;:::o;18920:224::-;19060:34;19056:1;19048:6;19044:14;19037:58;19129:7;19124:2;19116:6;19112:15;19105:32;19026:118;:::o;19150:223::-;19290:34;19286:1;19278:6;19274:14;19267:58;19359:6;19354:2;19346:6;19342:15;19335:31;19256:117;:::o;19379:224::-;19519:34;19515:1;19507:6;19503:14;19496:58;19588:7;19583:2;19575:6;19571:15;19564:32;19485:118;:::o;19609:122::-;19682:24;19700:5;19682:24;:::i;:::-;19675:5;19672:35;19662:2;;19721:1;19718;19711:12;19662:2;19652:79;:::o;19737:116::-;19807:21;19822:5;19807:21;:::i;:::-;19800:5;19797:32;19787:2;;19843:1;19840;19833:12;19787:2;19777:76;:::o;19859:122::-;19932:24;19950:5;19932:24;:::i;:::-;19925:5;19922:35;19912:2;;19971:1;19968;19961:12;19912:2;19902:79;:::o
Swarm Source
ipfs://639c4bee4c86b30268187d79e9105e8ccfc1133e843eec1f724aa533bc792c72
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.