Token Poison.Finance Gold Potion
Overview ERC20
Price
$0.00 @ 0.000000 ETH
Fully Diluted Market Cap
Total Supply:
4.818201 pGOLD
Holders:
62 addresses
Transfers:
-
Contract:
Decimals:
18
[ Download CSV Export ]
[ Download CSV Export ]
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
pToken
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-17 */ // @@@@@@@ @@@@@@ @@@ @@@@@@ @@@@@@ @@@ @@@ // @@@@@@@@ @@@@@@@@ @@@ @@@@@@@ @@@@@@@@ @@@@ @@@ // @@! @@@ @@! @@@ @@! [email protected]@ @@! @@@ @@[email protected][email protected]@@ // [email protected]! @[email protected] [email protected]! @[email protected] [email protected]! [email protected]! [email protected]! @[email protected] [email protected][email protected][email protected]! // @[email protected]@[email protected]! @[email protected] [email protected]! [email protected] [email protected]@!! @[email protected] [email protected]! @[email protected] [email protected]! // [email protected]!!! [email protected]! !!! !!! [email protected]!!! [email protected]! !!! [email protected]! !!! // !!: !!: !!! !!: !:! !!: !!! !!: !!! // :!: :!: !:! :!: !:! :!: !:! :!: !:! // :: ::::: :: :: :::: :: ::::: :: :: :: // : : : : : :: : : : : : :: : // https://Poison.Finance 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) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { 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; } } /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin guidelines: functions revert instead * of returning `false` on failure. This behavior is nonetheless conventional * and does not conflict with the expectations of ERC20 applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20 { 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 defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All three 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 returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual 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 * overloaded; * * 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 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"); _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"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(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"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(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 to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } contract pToken is ERC20("Poison.Finance Gold Potion", "pGOLD"), Ownable { address public immutable underlying = 0x0000000000000000000000000000000000000000; mapping(address => bool) public authorized; /// @notice Creates `_amount` token to `_to`. Must only be called by the authorized. function mint(address _to, uint256 _amount) external returns (bool) { require(authorized[msg.sender], "Not authorized"); _mint(_to, _amount); return true; } function burn(address _from, uint256 _amount) external returns (bool){ require(authorized[msg.sender], "Not authorized"); _burn(_from, _amount); return true; } function addAuthorized(address _toAdd) onlyOwner external { authorized[_toAdd] = true; } function removeAuthorized(address _toRemove) onlyOwner external { authorized[_toRemove] = false; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":"_toAdd","type":"address"}],"name":"addAuthorized","outputs":[],"stateMutability":"nonpayable","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":"","type":"address"}],"name":"authorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"_from","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_toRemove","type":"address"}],"name":"removeAuthorized","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"underlying","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60a0604052600073ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b8152503480156200004857600080fd5b506040518060400160405280601a81526020017f506f69736f6e2e46696e616e636520476f6c6420506f74696f6e0000000000008152506040518060400160405280600581526020017f70474f4c440000000000000000000000000000000000000000000000000000008152508160039080519060200190620000cd929190620001a8565b508060049080519060200190620000e6929190620001a8565b5050506000620000fb620001a060201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620002bd565b600033905090565b828054620001b69062000258565b90600052602060002090601f016020900481019282620001da576000855562000226565b82601f10620001f557805160ff191683800117855562000226565b8280016001018555821562000226579182015b828111156200022557825182559160200191906001019062000208565b5b50905062000235919062000239565b5090565b5b80821115620002545760008160009055506001016200023a565b5090565b600060028204905060018216806200027157607f821691505b602082108114156200028857620002876200028e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60805160601c61222b620002dc600039600061080e015261222b6000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb1461035b578063b91816111461038b578063cf1c316a146103bb578063dd62ed3e146103d7578063f2fde38b146104075761012c565b8063715018a6146102b55780638da5cb5b146102bf57806395d89b41146102dd5780639dc29fac146102fb578063a457c2d71461032b5761012c565b806339509351116100f457806339509351146101eb57806340c10f191461021b578063485d7d941461024b5780636f307dc31461026757806370a08231146102855761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b610139610423565b6040516101469190611a6a565b60405180910390f35b610169600480360381019061016491906117b8565b6104b5565b6040516101769190611a4f565b60405180910390f35b6101876104d3565b6040516101949190611c2c565b60405180910390f35b6101b760048036038101906101b29190611765565b6104dd565b6040516101c49190611a4f565b60405180910390f35b6101d56105de565b6040516101e29190611c47565b60405180910390f35b610205600480360381019061020091906117b8565b6105e7565b6040516102129190611a4f565b60405180910390f35b610235600480360381019061023091906117b8565b610693565b6040516102429190611a4f565b60405180910390f35b610265600480360381019061026091906116f8565b610735565b005b61026f61080c565b60405161027c9190611a34565b60405180910390f35b61029f600480360381019061029a91906116f8565b610830565b6040516102ac9190611c2c565b60405180910390f35b6102bd610878565b005b6102c76109b5565b6040516102d49190611a34565b60405180910390f35b6102e56109df565b6040516102f29190611a6a565b60405180910390f35b610315600480360381019061031091906117b8565b610a71565b6040516103229190611a4f565b60405180910390f35b610345600480360381019061034091906117b8565b610b13565b6040516103529190611a4f565b60405180910390f35b610375600480360381019061037091906117b8565b610c07565b6040516103829190611a4f565b60405180910390f35b6103a560048036038101906103a091906116f8565b610c25565b6040516103b29190611a4f565b60405180910390f35b6103d560048036038101906103d091906116f8565b610c45565b005b6103f160048036038101906103ec9190611725565b610d1c565b6040516103fe9190611c2c565b60405180910390f35b610421600480360381019061041c91906116f8565b610da3565b005b60606003805461043290611d90565b80601f016020809104026020016040519081016040528092919081815260200182805461045e90611d90565b80156104ab5780601f10610480576101008083540402835291602001916104ab565b820191906000526020600020905b81548152906001019060200180831161048e57829003601f168201915b5050505050905090565b60006104c96104c2610f4f565b8484610f57565b6001905092915050565b6000600254905090565b60006104ea848484611122565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610535610f4f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156105b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ac90611b2c565b60405180910390fd5b6105d2856105c1610f4f565b85846105cd9190611cd4565b610f57565b60019150509392505050565b60006012905090565b60006106896105f4610f4f565b848460016000610602610f4f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106849190611c7e565b610f57565b6001905092915050565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610721576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071890611bec565b60405180910390fd5b61072b83836113a1565b6001905092915050565b61073d610f4f565b73ffffffffffffffffffffffffffffffffffffffff1661075b6109b5565b73ffffffffffffffffffffffffffffffffffffffff16146107b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a890611b4c565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610880610f4f565b73ffffffffffffffffffffffffffffffffffffffff1661089e6109b5565b73ffffffffffffffffffffffffffffffffffffffff16146108f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108eb90611b4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546109ee90611d90565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1a90611d90565b8015610a675780601f10610a3c57610100808354040283529160200191610a67565b820191906000526020600020905b815481529060010190602001808311610a4a57829003601f168201915b5050505050905090565b6000600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610aff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af690611bec565b60405180910390fd5b610b0983836114f5565b6001905092915050565b60008060016000610b22610f4f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610bdf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bd690611bcc565b60405180910390fd5b610bfc610bea610f4f565b858584610bf79190611cd4565b610f57565b600191505092915050565b6000610c1b610c14610f4f565b8484611122565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b610c4d610f4f565b73ffffffffffffffffffffffffffffffffffffffff16610c6b6109b5565b73ffffffffffffffffffffffffffffffffffffffff1614610cc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb890611b4c565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610dab610f4f565b73ffffffffffffffffffffffffffffffffffffffff16610dc96109b5565b73ffffffffffffffffffffffffffffffffffffffff1614610e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1690611b4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610e8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8690611acc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fbe90611bac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102e90611aec565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111159190611c2c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611192576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118990611b8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f990611a8c565b60405180910390fd5b61120d8383836116c9565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611293576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128a90611b0c565b60405180910390fd5b818161129f9190611cd4565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461132f9190611c7e565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113939190611c2c565b60405180910390a350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611411576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140890611c0c565b60405180910390fd5b61141d600083836116c9565b806002600082825461142f9190611c7e565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114849190611c7e565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114e99190611c2c565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c90611b6c565b60405180910390fd5b611571826000836116c9565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156115f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ee90611aac565b60405180910390fd5b81816116039190611cd4565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282546116579190611cd4565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516116bc9190611c2c565b60405180910390a3505050565b505050565b6000813590506116dd816121c7565b92915050565b6000813590506116f2816121de565b92915050565b60006020828403121561170e5761170d611e20565b5b600061171c848285016116ce565b91505092915050565b6000806040838503121561173c5761173b611e20565b5b600061174a858286016116ce565b925050602061175b858286016116ce565b9150509250929050565b60008060006060848603121561177e5761177d611e20565b5b600061178c868287016116ce565b935050602061179d868287016116ce565b92505060406117ae868287016116e3565b9150509250925092565b600080604083850312156117cf576117ce611e20565b5b60006117dd858286016116ce565b92505060206117ee858286016116e3565b9150509250929050565b61180181611d08565b82525050565b61181081611d1a565b82525050565b600061182182611c62565b61182b8185611c6d565b935061183b818560208601611d5d565b61184481611e25565b840191505092915050565b600061185c602383611c6d565b915061186782611e36565b604082019050919050565b600061187f602283611c6d565b915061188a82611e85565b604082019050919050565b60006118a2602683611c6d565b91506118ad82611ed4565b604082019050919050565b60006118c5602283611c6d565b91506118d082611f23565b604082019050919050565b60006118e8602683611c6d565b91506118f382611f72565b604082019050919050565b600061190b602883611c6d565b915061191682611fc1565b604082019050919050565b600061192e602083611c6d565b915061193982612010565b602082019050919050565b6000611951602183611c6d565b915061195c82612039565b604082019050919050565b6000611974602583611c6d565b915061197f82612088565b604082019050919050565b6000611997602483611c6d565b91506119a2826120d7565b604082019050919050565b60006119ba602583611c6d565b91506119c582612126565b604082019050919050565b60006119dd600e83611c6d565b91506119e882612175565b602082019050919050565b6000611a00601f83611c6d565b9150611a0b8261219e565b602082019050919050565b611a1f81611d46565b82525050565b611a2e81611d50565b82525050565b6000602082019050611a4960008301846117f8565b92915050565b6000602082019050611a646000830184611807565b92915050565b60006020820190508181036000830152611a848184611816565b905092915050565b60006020820190508181036000830152611aa58161184f565b9050919050565b60006020820190508181036000830152611ac581611872565b9050919050565b60006020820190508181036000830152611ae581611895565b9050919050565b60006020820190508181036000830152611b05816118b8565b9050919050565b60006020820190508181036000830152611b25816118db565b9050919050565b60006020820190508181036000830152611b45816118fe565b9050919050565b60006020820190508181036000830152611b6581611921565b9050919050565b60006020820190508181036000830152611b8581611944565b9050919050565b60006020820190508181036000830152611ba581611967565b9050919050565b60006020820190508181036000830152611bc58161198a565b9050919050565b60006020820190508181036000830152611be5816119ad565b9050919050565b60006020820190508181036000830152611c05816119d0565b9050919050565b60006020820190508181036000830152611c25816119f3565b9050919050565b6000602082019050611c416000830184611a16565b92915050565b6000602082019050611c5c6000830184611a25565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611c8982611d46565b9150611c9483611d46565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115611cc957611cc8611dc2565b5b828201905092915050565b6000611cdf82611d46565b9150611cea83611d46565b925082821015611cfd57611cfc611dc2565b5b828203905092915050565b6000611d1382611d26565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611d7b578082015181840152602081019050611d60565b83811115611d8a576000848401525b50505050565b60006002820490506001821680611da857607f821691505b60208210811415611dbc57611dbb611df1565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420617574686f72697a6564000000000000000000000000000000000000600082015250565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6121d081611d08565b81146121db57600080fd5b50565b6121e781611d46565b81146121f257600080fd5b5056fea26469706673582212208cbe519f1b9ca5f0bb8a97ecd74ad9927901ba811641a4bff8a2de6f768181aa64736f6c63430008070033
Deployed ByteCode Sourcemap
17198:951:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10594:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9547:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11245:422;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9398:84;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12076:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17516:188;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18028:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17284:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9718:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5944:148;;;:::i;:::-;;5293:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8664:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17716:190;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12794:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10058:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17371:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17918:102;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10296:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6247:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8454:91;8499:13;8532:5;8525:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8454:91;:::o;10594:169::-;10677:4;10694:39;10703:12;:10;:12::i;:::-;10717:7;10726:6;10694:8;:39::i;:::-;10751:4;10744:11;;10594:169;;;;:::o;9547:108::-;9608:7;9635:12;;9628:19;;9547:108;:::o;11245:422::-;11351:4;11368:36;11378:6;11386:9;11397:6;11368:9;:36::i;:::-;11417:24;11444:11;:19;11456:6;11444:19;;;;;;;;;;;;;;;:33;11464:12;:10;:12::i;:::-;11444:33;;;;;;;;;;;;;;;;11417:60;;11516:6;11496:16;:26;;11488:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11578:57;11587:6;11595:12;:10;:12::i;:::-;11628:6;11609:16;:25;;;;:::i;:::-;11578:8;:57::i;:::-;11655:4;11648:11;;;11245:422;;;;;:::o;9398:84::-;9447:5;9472:2;9465:9;;9398:84;:::o;12076:215::-;12164:4;12181:80;12190:12;:10;:12::i;:::-;12204:7;12250:10;12213:11;:25;12225:12;:10;:12::i;:::-;12213:25;;;;;;;;;;;;;;;:34;12239:7;12213:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;12181:8;:80::i;:::-;12279:4;12272:11;;12076:215;;;;:::o;17516:188::-;17578:4;17603:10;:22;17614:10;17603:22;;;;;;;;;;;;;;;;;;;;;;;;;17595:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17655:19;17661:3;17666:7;17655:5;:19::i;:::-;17692:4;17685:11;;17516:188;;;;:::o;18028:112::-;5524:12;:10;:12::i;:::-;5513:23;;:7;:5;:7::i;:::-;:23;;;5505:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18127:5:::1;18103:10;:21;18114:9;18103:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;18028:112:::0;:::o;17284:80::-;;;:::o;9718:127::-;9792:7;9819:9;:18;9829:7;9819:18;;;;;;;;;;;;;;;;9812:25;;9718:127;;;:::o;5944:148::-;5524:12;:10;:12::i;:::-;5513:23;;:7;:5;:7::i;:::-;:23;;;5505:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6051:1:::1;6014:40;;6035:6;;;;;;;;;;;6014:40;;;;;;;;;;;;6082:1;6065:6;;:19;;;;;;;;;;;;;;;;;;5944:148::o:0;5293:87::-;5339:7;5366:6;;;;;;;;;;;5359:13;;5293:87;:::o;8664:95::-;8711:13;8744:7;8737:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8664:95;:::o;17716:190::-;17780:4;17803:10;:22;17814:10;17803:22;;;;;;;;;;;;;;;;;;;;;;;;;17795:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;17855:21;17861:5;17868:7;17855:5;:21::i;:::-;17894:4;17887:11;;17716:190;;;;:::o;12794:377::-;12887:4;12904:24;12931:11;:25;12943:12;:10;:12::i;:::-;12931:25;;;;;;;;;;;;;;;:34;12957:7;12931:34;;;;;;;;;;;;;;;;12904:61;;13004:15;12984:16;:35;;12976:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;13072:67;13081:12;:10;:12::i;:::-;13095:7;13123:15;13104:16;:34;;;;:::i;:::-;13072:8;:67::i;:::-;13159:4;13152:11;;;12794:377;;;;:::o;10058:175::-;10144:4;10161:42;10171:12;:10;:12::i;:::-;10185:9;10196:6;10161:9;:42::i;:::-;10221:4;10214:11;;10058:175;;;;:::o;17371:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;17918:102::-;5524:12;:10;:12::i;:::-;5513:23;;:7;:5;:7::i;:::-;:23;;;5505:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18008:4:::1;17987:10;:18;17998:6;17987:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;17918:102:::0;:::o;10296:151::-;10385:7;10412:11;:18;10424:5;10412:18;;;;;;;;;;;;;;;:27;10431:7;10412:27;;;;;;;;;;;;;;;;10405:34;;10296:151;;;;:::o;6247:244::-;5524:12;:10;:12::i;:::-;5513:23;;:7;:5;:7::i;:::-;:23;;;5505:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6356:1:::1;6336:22;;:8;:22;;;;6328:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6446:8;6417:38;;6438:6;;;;;;;;;;;6417:38;;;;;;;;;;;;6475:8;6466:6;;:17;;;;;;;;;;;;;;;;;;6247:244:::0;:::o;1220:98::-;1273:7;1300:10;1293:17;;1220:98;:::o;16150:346::-;16269:1;16252:19;;:5;:19;;;;16244:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16350:1;16331:21;;:7;:21;;;;16323:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16434:6;16404:11;:18;16416:5;16404:18;;;;;;;;;;;;;;;:27;16423:7;16404:27;;;;;;;;;;;;;;;:36;;;;16472:7;16456:32;;16465:5;16456:32;;;16481:6;16456:32;;;;;;:::i;:::-;;;;;;;;16150:346;;;:::o;13661:604::-;13785:1;13767:20;;:6;:20;;;;13759:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13869:1;13848:23;;:9;:23;;;;13840:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;13924:47;13945:6;13953:9;13964:6;13924:20;:47::i;:::-;13984:21;14008:9;:17;14018:6;14008:17;;;;;;;;;;;;;;;;13984:41;;14061:6;14044:13;:23;;14036:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14157:6;14141:13;:22;;;;:::i;:::-;14121:9;:17;14131:6;14121:17;;;;;;;;;;;;;;;:42;;;;14198:6;14174:9;:20;14184:9;14174:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;14239:9;14222:35;;14231:6;14222:35;;;14250:6;14222:35;;;;;;:::i;:::-;;;;;;;;13748:517;13661:604;;;:::o;14547:338::-;14650:1;14631:21;;:7;:21;;;;14623:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14701:49;14730:1;14734:7;14743:6;14701:20;:49::i;:::-;14779:6;14763:12;;:22;;;;;;;:::i;:::-;;;;;;;;14818:6;14796:9;:18;14806:7;14796:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;14861:7;14840:37;;14857:1;14840:37;;;14870:6;14840:37;;;;;;:::i;:::-;;;;;;;;14547:338;;:::o;15218:494::-;15321:1;15302:21;;:7;:21;;;;15294:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15374:49;15395:7;15412:1;15416:6;15374:20;:49::i;:::-;15436:22;15461:9;:18;15471:7;15461:18;;;;;;;;;;;;;;;;15436:43;;15516:6;15498:14;:24;;15490:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15610:6;15593:14;:23;;;;:::i;:::-;15572:9;:18;15582:7;15572:18;;;;;;;;;;;;;;;:44;;;;15643:6;15627:12;;:22;;;;;;;:::i;:::-;;;;;;;;15693:1;15667:37;;15676:7;15667:37;;;15697:6;15667:37;;;;;;:::i;:::-;;;;;;;;15283:429;15218:494;;:::o;17099:92::-;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:::-;198:5;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;152:139;;;;:::o;297:329::-;356:6;405:2;393:9;384:7;380:23;376:32;373:119;;;411:79;;:::i;:::-;373:119;531:1;556:53;601:7;592:6;581:9;577:22;556:53;:::i;:::-;546:63;;502:117;297:329;;;;:::o;632:474::-;700:6;708;757:2;745:9;736:7;732:23;728:32;725:119;;;763:79;;:::i;:::-;725:119;883:1;908:53;953:7;944:6;933:9;929:22;908:53;:::i;:::-;898:63;;854:117;1010:2;1036:53;1081:7;1072:6;1061:9;1057:22;1036:53;:::i;:::-;1026:63;;981:118;632:474;;;;;:::o;1112:619::-;1189:6;1197;1205;1254:2;1242:9;1233:7;1229:23;1225:32;1222:119;;;1260:79;;:::i;:::-;1222:119;1380:1;1405:53;1450:7;1441:6;1430:9;1426:22;1405:53;:::i;:::-;1395:63;;1351:117;1507:2;1533:53;1578:7;1569:6;1558:9;1554:22;1533:53;:::i;:::-;1523:63;;1478:118;1635:2;1661:53;1706:7;1697:6;1686:9;1682:22;1661:53;:::i;:::-;1651:63;;1606:118;1112:619;;;;;:::o;1737:474::-;1805:6;1813;1862:2;1850:9;1841:7;1837:23;1833:32;1830:119;;;1868:79;;:::i;:::-;1830:119;1988:1;2013:53;2058:7;2049:6;2038:9;2034:22;2013:53;:::i;:::-;2003:63;;1959:117;2115:2;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2086:118;1737:474;;;;;:::o;2217:118::-;2304:24;2322:5;2304:24;:::i;:::-;2299:3;2292:37;2217:118;;:::o;2341:109::-;2422:21;2437:5;2422:21;:::i;:::-;2417:3;2410:34;2341:109;;:::o;2456:364::-;2544:3;2572:39;2605:5;2572:39;:::i;:::-;2627:71;2691:6;2686:3;2627:71;:::i;:::-;2620:78;;2707:52;2752:6;2747:3;2740:4;2733:5;2729:16;2707:52;:::i;:::-;2784:29;2806:6;2784:29;:::i;:::-;2779:3;2775:39;2768:46;;2548:272;2456:364;;;;:::o;2826:366::-;2968:3;2989:67;3053:2;3048:3;2989:67;:::i;:::-;2982:74;;3065:93;3154:3;3065:93;:::i;:::-;3183:2;3178:3;3174:12;3167:19;;2826:366;;;:::o;3198:::-;3340:3;3361:67;3425:2;3420:3;3361:67;:::i;:::-;3354:74;;3437:93;3526:3;3437:93;:::i;:::-;3555:2;3550:3;3546:12;3539:19;;3198:366;;;:::o;3570:::-;3712:3;3733:67;3797:2;3792:3;3733:67;:::i;:::-;3726:74;;3809:93;3898:3;3809:93;:::i;:::-;3927:2;3922:3;3918:12;3911:19;;3570:366;;;:::o;3942:::-;4084:3;4105:67;4169:2;4164:3;4105:67;:::i;:::-;4098:74;;4181:93;4270:3;4181:93;:::i;:::-;4299:2;4294:3;4290:12;4283:19;;3942:366;;;:::o;4314:::-;4456:3;4477:67;4541:2;4536:3;4477:67;:::i;:::-;4470:74;;4553:93;4642:3;4553:93;:::i;:::-;4671:2;4666:3;4662:12;4655:19;;4314:366;;;:::o;4686:::-;4828:3;4849:67;4913:2;4908:3;4849:67;:::i;:::-;4842:74;;4925:93;5014:3;4925:93;:::i;:::-;5043:2;5038:3;5034:12;5027:19;;4686:366;;;:::o;5058:::-;5200:3;5221:67;5285:2;5280:3;5221:67;:::i;:::-;5214:74;;5297:93;5386:3;5297:93;:::i;:::-;5415:2;5410:3;5406:12;5399:19;;5058:366;;;:::o;5430:::-;5572:3;5593:67;5657:2;5652:3;5593:67;:::i;:::-;5586:74;;5669:93;5758:3;5669:93;:::i;:::-;5787:2;5782:3;5778:12;5771:19;;5430:366;;;:::o;5802:::-;5944:3;5965:67;6029:2;6024:3;5965:67;:::i;:::-;5958:74;;6041:93;6130:3;6041:93;:::i;:::-;6159:2;6154:3;6150:12;6143:19;;5802:366;;;:::o;6174:::-;6316:3;6337:67;6401:2;6396:3;6337:67;:::i;:::-;6330:74;;6413:93;6502:3;6413:93;:::i;:::-;6531:2;6526:3;6522:12;6515:19;;6174:366;;;:::o;6546:::-;6688:3;6709:67;6773:2;6768:3;6709:67;:::i;:::-;6702:74;;6785:93;6874:3;6785:93;:::i;:::-;6903:2;6898:3;6894:12;6887:19;;6546:366;;;:::o;6918:::-;7060:3;7081:67;7145:2;7140:3;7081:67;:::i;:::-;7074:74;;7157:93;7246:3;7157:93;:::i;:::-;7275:2;7270:3;7266:12;7259:19;;6918:366;;;:::o;7290:::-;7432:3;7453:67;7517:2;7512:3;7453:67;:::i;:::-;7446:74;;7529:93;7618:3;7529:93;:::i;:::-;7647:2;7642:3;7638:12;7631:19;;7290:366;;;:::o;7662:118::-;7749:24;7767:5;7749:24;:::i;:::-;7744:3;7737:37;7662:118;;:::o;7786:112::-;7869:22;7885:5;7869:22;:::i;:::-;7864:3;7857:35;7786:112;;:::o;7904:222::-;7997:4;8035:2;8024:9;8020:18;8012:26;;8048:71;8116:1;8105:9;8101:17;8092:6;8048:71;:::i;:::-;7904:222;;;;:::o;8132:210::-;8219:4;8257:2;8246:9;8242:18;8234:26;;8270:65;8332:1;8321:9;8317:17;8308:6;8270:65;:::i;:::-;8132:210;;;;:::o;8348:313::-;8461:4;8499:2;8488:9;8484:18;8476:26;;8548:9;8542:4;8538:20;8534:1;8523:9;8519:17;8512:47;8576:78;8649:4;8640:6;8576:78;:::i;:::-;8568:86;;8348:313;;;;:::o;8667:419::-;8833:4;8871:2;8860:9;8856:18;8848:26;;8920:9;8914:4;8910:20;8906:1;8895:9;8891:17;8884:47;8948:131;9074:4;8948:131;:::i;:::-;8940:139;;8667:419;;;:::o;9092:::-;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:::-;9683:4;9721:2;9710:9;9706:18;9698:26;;9770:9;9764:4;9760:20;9756:1;9745:9;9741:17;9734:47;9798:131;9924:4;9798:131;:::i;:::-;9790:139;;9517:419;;;:::o;9942:::-;10108:4;10146:2;10135:9;10131:18;10123:26;;10195:9;10189:4;10185:20;10181:1;10170:9;10166:17;10159:47;10223:131;10349:4;10223:131;:::i;:::-;10215:139;;9942:419;;;:::o;10367:::-;10533:4;10571:2;10560:9;10556:18;10548:26;;10620:9;10614:4;10610:20;10606:1;10595:9;10591:17;10584:47;10648:131;10774:4;10648:131;:::i;:::-;10640:139;;10367:419;;;:::o;10792:::-;10958:4;10996:2;10985:9;10981:18;10973:26;;11045:9;11039:4;11035:20;11031:1;11020:9;11016:17;11009:47;11073:131;11199:4;11073:131;:::i;:::-;11065:139;;10792:419;;;:::o;11217:::-;11383:4;11421:2;11410:9;11406:18;11398:26;;11470:9;11464:4;11460:20;11456:1;11445:9;11441:17;11434:47;11498:131;11624:4;11498:131;:::i;:::-;11490:139;;11217:419;;;:::o;11642:::-;11808:4;11846:2;11835:9;11831:18;11823:26;;11895:9;11889:4;11885:20;11881:1;11870:9;11866:17;11859:47;11923:131;12049:4;11923:131;:::i;:::-;11915:139;;11642:419;;;:::o;12067:::-;12233:4;12271:2;12260:9;12256:18;12248:26;;12320:9;12314:4;12310:20;12306:1;12295:9;12291:17;12284:47;12348:131;12474:4;12348:131;:::i;:::-;12340:139;;12067:419;;;:::o;12492:::-;12658:4;12696:2;12685:9;12681:18;12673:26;;12745:9;12739:4;12735:20;12731:1;12720:9;12716:17;12709:47;12773:131;12899:4;12773:131;:::i;:::-;12765:139;;12492:419;;;:::o;12917:::-;13083:4;13121:2;13110:9;13106:18;13098:26;;13170:9;13164:4;13160:20;13156:1;13145:9;13141:17;13134:47;13198:131;13324:4;13198:131;:::i;:::-;13190:139;;12917:419;;;:::o;13342:::-;13508:4;13546:2;13535:9;13531:18;13523:26;;13595:9;13589:4;13585:20;13581:1;13570:9;13566:17;13559:47;13623:131;13749:4;13623:131;:::i;:::-;13615:139;;13342:419;;;:::o;13767:::-;13933:4;13971:2;13960:9;13956:18;13948:26;;14020:9;14014:4;14010:20;14006:1;13995:9;13991:17;13984:47;14048:131;14174:4;14048:131;:::i;:::-;14040:139;;13767:419;;;:::o;14192:222::-;14285:4;14323:2;14312:9;14308:18;14300:26;;14336:71;14404:1;14393:9;14389:17;14380:6;14336:71;:::i;:::-;14192:222;;;;:::o;14420:214::-;14509:4;14547:2;14536:9;14532:18;14524:26;;14560:67;14624:1;14613:9;14609:17;14600:6;14560:67;:::i;:::-;14420:214;;;;:::o;14721:99::-;14773:6;14807:5;14801:12;14791:22;;14721:99;;;:::o;14826:169::-;14910:11;14944:6;14939:3;14932:19;14984:4;14979:3;14975:14;14960:29;;14826:169;;;;:::o;15001:305::-;15041:3;15060:20;15078:1;15060:20;:::i;:::-;15055:25;;15094:20;15112:1;15094:20;:::i;:::-;15089:25;;15248:1;15180:66;15176:74;15173:1;15170:81;15167:107;;;15254:18;;:::i;:::-;15167:107;15298:1;15295;15291:9;15284:16;;15001:305;;;;:::o;15312:191::-;15352:4;15372:20;15390:1;15372:20;:::i;:::-;15367:25;;15406:20;15424:1;15406:20;:::i;:::-;15401:25;;15445:1;15442;15439:8;15436:34;;;15450:18;;:::i;:::-;15436:34;15495:1;15492;15488:9;15480:17;;15312:191;;;;:::o;15509:96::-;15546:7;15575:24;15593:5;15575:24;:::i;:::-;15564:35;;15509:96;;;:::o;15611:90::-;15645:7;15688:5;15681:13;15674:21;15663:32;;15611:90;;;:::o;15707:126::-;15744:7;15784:42;15777:5;15773:54;15762:65;;15707:126;;;:::o;15839:77::-;15876:7;15905:5;15894:16;;15839:77;;;:::o;15922:86::-;15957:7;15997:4;15990:5;15986:16;15975:27;;15922:86;;;:::o;16014:307::-;16082:1;16092:113;16106:6;16103:1;16100:13;16092:113;;;16191:1;16186:3;16182:11;16176:18;16172:1;16167:3;16163:11;16156:39;16128:2;16125:1;16121:10;16116:15;;16092:113;;;16223:6;16220:1;16217:13;16214:101;;;16303:1;16294:6;16289:3;16285:16;16278:27;16214:101;16063:258;16014:307;;;:::o;16327:320::-;16371:6;16408:1;16402:4;16398:12;16388:22;;16455:1;16449:4;16445:12;16476:18;16466:81;;16532:4;16524:6;16520:17;16510:27;;16466:81;16594:2;16586:6;16583:14;16563:18;16560:38;16557:84;;;16613:18;;:::i;:::-;16557:84;16378:269;16327:320;;;:::o;16653:180::-;16701:77;16698:1;16691:88;16798:4;16795:1;16788:15;16822:4;16819:1;16812:15;16839:180;16887:77;16884:1;16877:88;16984:4;16981:1;16974:15;17008:4;17005:1;16998:15;17148:117;17257:1;17254;17247:12;17271:102;17312:6;17363:2;17359:7;17354:2;17347:5;17343:14;17339:28;17329:38;;17271:102;;;:::o;17379:222::-;17519:34;17515:1;17507:6;17503:14;17496:58;17588:5;17583:2;17575:6;17571:15;17564:30;17379:222;:::o;17607:221::-;17747:34;17743:1;17735:6;17731:14;17724:58;17816:4;17811:2;17803:6;17799:15;17792:29;17607:221;:::o;17834:225::-;17974:34;17970:1;17962:6;17958:14;17951:58;18043:8;18038:2;18030:6;18026:15;18019:33;17834:225;:::o;18065:221::-;18205:34;18201:1;18193:6;18189:14;18182:58;18274:4;18269:2;18261:6;18257:15;18250:29;18065:221;:::o;18292:225::-;18432:34;18428:1;18420:6;18416:14;18409:58;18501:8;18496:2;18488:6;18484:15;18477:33;18292:225;:::o;18523:227::-;18663:34;18659:1;18651:6;18647:14;18640:58;18732:10;18727:2;18719:6;18715:15;18708:35;18523:227;:::o;18756:182::-;18896:34;18892:1;18884:6;18880:14;18873:58;18756:182;:::o;18944:220::-;19084:34;19080:1;19072:6;19068:14;19061:58;19153:3;19148:2;19140:6;19136:15;19129:28;18944:220;:::o;19170:224::-;19310:34;19306:1;19298:6;19294:14;19287:58;19379:7;19374:2;19366:6;19362:15;19355:32;19170:224;:::o;19400:223::-;19540:34;19536:1;19528:6;19524:14;19517:58;19609:6;19604:2;19596:6;19592:15;19585:31;19400:223;:::o;19629:224::-;19769:34;19765:1;19757:6;19753:14;19746:58;19838:7;19833:2;19825:6;19821:15;19814:32;19629:224;:::o;19859:164::-;19999:16;19995:1;19987:6;19983:14;19976:40;19859:164;:::o;20029:181::-;20169:33;20165:1;20157:6;20153:14;20146:57;20029:181;:::o;20216:122::-;20289:24;20307:5;20289:24;:::i;:::-;20282:5;20279:35;20269:63;;20328:1;20325;20318:12;20269:63;20216:122;:::o;20344:::-;20417:24;20435:5;20417:24;:::i;:::-;20410:5;20407:35;20397:63;;20456:1;20453;20446:12;20397:63;20344:122;:::o
Metadata Hash
ipfs://8cbe519f1b9ca5f0bb8a97ecd74ad9927901ba811641a4bff8a2de6f768181aa