Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 317 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20534581 | 6 days ago | IN | 0 ETH | 0.00028607 | ||||
Approve | 20432526 | 20 days ago | IN | 0 ETH | 0.00032598 | ||||
Approve | 20335556 | 34 days ago | IN | 0 ETH | 0.00048675 | ||||
Approve | 20333861 | 34 days ago | IN | 0 ETH | 0.00056589 | ||||
Approve | 20332962 | 34 days ago | IN | 0 ETH | 0.00043477 | ||||
Approve | 20331878 | 35 days ago | IN | 0 ETH | 0.00045884 | ||||
Approve | 20331821 | 35 days ago | IN | 0 ETH | 0.00042116 | ||||
Approve | 20331806 | 35 days ago | IN | 0 ETH | 0.00041289 | ||||
Approve | 20331802 | 35 days ago | IN | 0 ETH | 0.00042143 | ||||
Approve | 20331784 | 35 days ago | IN | 0 ETH | 0.00038588 | ||||
Approve | 20331778 | 35 days ago | IN | 0 ETH | 0.00040089 | ||||
Transfer | 20331755 | 35 days ago | IN | 0 ETH | 0.00033782 | ||||
Transfer | 20331737 | 35 days ago | IN | 0 ETH | 0.00033749 | ||||
Transfer | 20331718 | 35 days ago | IN | 0 ETH | 0.0003129 | ||||
Transfer | 20331704 | 35 days ago | IN | 0 ETH | 0.00030013 | ||||
Transfer | 20331659 | 35 days ago | IN | 0 ETH | 0.00028458 | ||||
Transfer | 20331631 | 35 days ago | IN | 0 ETH | 0.00029459 | ||||
Transfer | 20331622 | 35 days ago | IN | 0 ETH | 0.00029611 | ||||
Transfer | 20331616 | 35 days ago | IN | 0 ETH | 0.00029399 | ||||
Transfer | 20331582 | 35 days ago | IN | 0 ETH | 0.00028751 | ||||
Transfer | 20331565 | 35 days ago | IN | 0 ETH | 0.00026849 | ||||
Transfer | 20331553 | 35 days ago | IN | 0 ETH | 0.00025616 | ||||
Transfer | 20331542 | 35 days ago | IN | 0 ETH | 0.0002777 | ||||
Transfer | 20331525 | 35 days ago | IN | 0 ETH | 0.0002721 | ||||
Transfer | 20331517 | 35 days ago | IN | 0 ETH | 0.00026232 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
HUMMUS
Compiler Version
v0.8.25+commit.b61c2a91
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-04-05 */ /** *Submitted for verification at Etherscan.io on 2023-04-14 */ // Sources flattened with hardhat v2.7.0 https://hardhat.org // File @openzeppelin/contracts/utils/[email protected] // SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.0 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File @openzeppelin/contracts/access/[email protected] // OpenZeppelin Contracts v4.4.0 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_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 { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File @openzeppelin/contracts/token/ERC20/[email protected] // OpenZeppelin Contracts v4.4.0 (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 @openzeppelin/contracts/token/ERC20/extensions/[email protected] // OpenZeppelin Contracts v4.4.0 (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 @openzeppelin/contracts/token/ERC20/[email protected] // OpenZeppelin Contracts v4.4.0 (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.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/HUMMUS.sol pragma solidity ^0.8.0; contract HUMMUS is Ownable, ERC20 { bool public limited; uint256 public maxHoldingAmount; uint256 public minHoldingAmount; address public uniswapV2Pair; mapping(address => bool) public blacklists; constructor(uint256 _totalSupply) ERC20("Hummus", "HUMMUS") { _mint(msg.sender, _totalSupply); } function blacklist(address[] calldata _address, bool _isBlacklisting) external onlyOwner { for (uint256 i; i< _address.length; i++) { blacklists[_address[i]] = _isBlacklisting; } } function setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount) external onlyOwner { limited = _limited; uniswapV2Pair = _uniswapV2Pair; maxHoldingAmount = _maxHoldingAmount; minHoldingAmount = _minHoldingAmount; } function _beforeTokenTransfer( address from, address to, uint256 amount ) override internal virtual { require(!blacklists[to] && !blacklists[from], "Blacklisted"); if (uniswapV2Pair == address(0)) { require(from == owner() || to == owner(), "trading is not started"); return; } if (limited && from == uniswapV2Pair) { require(super.balanceOf(to) + amount <= maxHoldingAmount && super.balanceOf(to) + amount >= minHoldingAmount, "Forbid"); } } function burn(uint256 value) external { _burn(msg.sender, value); } } //$HUMMUS is a meme coin with no intristic value or expectation of financial return. //There is no formal team or any roadmap. The coin is completely useless and for entertainment purposes only.
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"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":[{"internalType":"address[]","name":"_address","type":"address[]"},{"internalType":"bool","name":"_isBlacklisting","type":"bool"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limited","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minHoldingAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"bool","name":"_limited","type":"bool"},{"internalType":"address","name":"_uniswapV2Pair","type":"address"},{"internalType":"uint256","name":"_maxHoldingAmount","type":"uint256"},{"internalType":"uint256","name":"_minHoldingAmount","type":"uint256"}],"name":"setRule","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":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
608060405234801561000f575f80fd5b50604051612fa4380380612fa4833981810160405281019061003191906106b2565b6040518060400160405280600681526020017f48756d6d757300000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f48554d4d555300000000000000000000000000000000000000000000000000008152506100b96100ae6100f160201b60201c565b6100f860201b60201c565b81600490816100c8919061090e565b5080600590816100d8919061090e565b5050506100eb33826101b960201b60201c565b50610c15565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610227576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161021e90610a37565b60405180910390fd5b6102385f838361031d60201b60201c565b8060035f8282546102499190610a82565b925050819055508060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461029c9190610a82565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516103009190610ac4565b60405180910390a36103195f838361060960201b60201c565b5050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156103bb5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6103fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103f190610b27565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036105115761045c61060e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806104cd575061049e61060e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b61050c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050390610b8f565b60405180910390fd5b610604565b60065f9054906101000a900460ff168015610578575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561060357600754816105908461063560201b60201c565b61059a9190610a82565b111580156105c35750600854816105b68461063560201b60201c565b6105c09190610a82565b10155b610602576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f990610bf7565b60405180910390fd5b5b5b505050565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f80fd5b5f819050919050565b6106918161067f565b811461069b575f80fd5b50565b5f815190506106ac81610688565b92915050565b5f602082840312156106c7576106c661067b565b5b5f6106d48482850161069e565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061075857607f821691505b60208210810361076b5761076a610714565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026107cd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82610792565b6107d78683610792565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61081261080d6108088461067f565b6107ef565b61067f565b9050919050565b5f819050919050565b61082b836107f8565b61083f61083782610819565b84845461079e565b825550505050565b5f90565b610853610847565b61085e818484610822565b505050565b5b81811015610881576108765f8261084b565b600181019050610864565b5050565b601f8211156108c65761089781610771565b6108a084610783565b810160208510156108af578190505b6108c36108bb85610783565b830182610863565b50505b505050565b5f82821c905092915050565b5f6108e65f19846008026108cb565b1980831691505092915050565b5f6108fe83836108d7565b9150826002028217905092915050565b610917826106dd565b67ffffffffffffffff8111156109305761092f6106e7565b5b61093a8254610741565b610945828285610885565b5f60209050601f831160018114610976575f8415610964578287015190505b61096e85826108f3565b8655506109d5565b601f19841661098486610771565b5f5b828110156109ab57848901518255600182019150602085019450602081019050610986565b868310156109c857848901516109c4601f8916826108d7565b8355505b6001600288020188555050505b505050505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f610a21601f836109dd565b9150610a2c826109ed565b602082019050919050565b5f6020820190508181035f830152610a4e81610a15565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610a8c8261067f565b9150610a978361067f565b9250828201905080821115610aaf57610aae610a55565b5b92915050565b610abe8161067f565b82525050565b5f602082019050610ad75f830184610ab5565b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f610b11600b836109dd565b9150610b1c82610add565b602082019050919050565b5f6020820190508181035f830152610b3e81610b05565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f610b796016836109dd565b9150610b8482610b45565b602082019050919050565b5f6020820190508181035f830152610ba681610b6d565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f610be16006836109dd565b9150610bec82610bad565b602082019050919050565b5f6020820190508181035f830152610c0e81610bd5565b9050919050565b61238280610c225f395ff3fe608060405234801561000f575f80fd5b5060043610610140575f3560e01c806370a08231116100b657806395d89b411161007a57806395d89b4114610366578063a457c2d714610384578063a9059cbb146103b4578063c997eb8d146103e4578063dd62ed3e14610400578063f2fde38b1461043057610140565b806370a08231146102d2578063715018a614610302578063860a32ec1461030c57806389f9a1d31461032a5780638da5cb5b1461034857610140565b806323b872dd1161010857806323b872dd146101fe578063313ce5671461022e578063395093511461024c5780633aa633aa1461027c57806342966c681461029857806349bd5a5e146102b457610140565b806306fdde0314610144578063095ea7b31461016257806316c021291461019257806318160ddd146101c25780631ab99e12146101e0575b5f80fd5b61014c61044c565b6040516101599190611729565b60405180910390f35b61017c600480360381019061017791906117de565b6104dc565b6040516101899190611836565b60405180910390f35b6101ac60048036038101906101a7919061184f565b6104f9565b6040516101b99190611836565b60405180910390f35b6101ca610516565b6040516101d79190611889565b60405180910390f35b6101e861051f565b6040516101f59190611889565b60405180910390f35b610218600480360381019061021391906118a2565b610525565b6040516102259190611836565b60405180910390f35b610236610617565b604051610243919061190d565b60405180910390f35b610266600480360381019061026191906117de565b61061f565b6040516102739190611836565b60405180910390f35b61029660048036038101906102919190611950565b6106c6565b005b6102b260048036038101906102ad91906119b4565b6107af565b005b6102bc6107bc565b6040516102c991906119ee565b60405180910390f35b6102ec60048036038101906102e7919061184f565b6107e1565b6040516102f99190611889565b60405180910390f35b61030a610827565b005b6103146108ae565b6040516103219190611836565b60405180910390f35b6103326108c0565b60405161033f9190611889565b60405180910390f35b6103506108c6565b60405161035d91906119ee565b60405180910390f35b61036e6108ed565b60405161037b9190611729565b60405180910390f35b61039e600480360381019061039991906117de565b61097d565b6040516103ab9190611836565b60405180910390f35b6103ce60048036038101906103c991906117de565b610a63565b6040516103db9190611836565b60405180910390f35b6103fe60048036038101906103f99190611a68565b610a80565b005b61041a60048036038101906104159190611ac5565b610b97565b6040516104279190611889565b60405180910390f35b61044a6004803603810190610445919061184f565b610c19565b005b60606004805461045b90611b30565b80601f016020809104026020016040519081016040528092919081815260200182805461048790611b30565b80156104d25780601f106104a9576101008083540402835291602001916104d2565b820191905f5260205f20905b8154815290600101906020018083116104b557829003601f168201915b5050505050905090565b5f6104ef6104e8610d0f565b8484610d16565b6001905092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60085481565b5f610531848484610ed9565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610578610d0f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156105f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ee90611bd0565b60405180910390fd5b61060b85610603610d0f565b858403610d16565b60019150509392505050565b5f6012905090565b5f6106bc61062b610d0f565b848460025f610638610d0f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106b79190611c1b565b610d16565b6001905092915050565b6106ce610d0f565b73ffffffffffffffffffffffffffffffffffffffff166106ec6108c6565b73ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990611c98565b60405180910390fd5b8360065f6101000a81548160ff0219169083151502179055508260095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b6107b93382611151565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61082f610d0f565b73ffffffffffffffffffffffffffffffffffffffff1661084d6108c6565b73ffffffffffffffffffffffffffffffffffffffff16146108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90611c98565b60405180910390fd5b6108ac5f61131f565b565b60065f9054906101000a900460ff1681565b60075481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108fc90611b30565b80601f016020809104026020016040519081016040528092919081815260200182805461092890611b30565b80156109735780601f1061094a57610100808354040283529160200191610973565b820191905f5260205f20905b81548152906001019060200180831161095657829003601f168201915b5050505050905090565b5f8060025f61098a610d0f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3b90611d26565b60405180910390fd5b610a58610a4f610d0f565b85858403610d16565b600191505092915050565b5f610a76610a6f610d0f565b8484610ed9565b6001905092915050565b610a88610d0f565b73ffffffffffffffffffffffffffffffffffffffff16610aa66108c6565b73ffffffffffffffffffffffffffffffffffffffff1614610afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af390611c98565b60405180910390fd5b5f5b83839050811015610b915781600a5f868685818110610b2057610b1f611d44565b5b9050602002016020810190610b35919061184f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610afe565b50505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610c21610d0f565b73ffffffffffffffffffffffffffffffffffffffff16610c3f6108c6565b73ffffffffffffffffffffffffffffffffffffffff1614610c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8c90611c98565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa90611de1565b60405180910390fd5b610d0c8161131f565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7b90611e6f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de990611efd565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ecc9190611889565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3e90611f8b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90612019565b60405180910390fd5b610fc08383836113e0565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b906120a7565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110d49190611c1b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111389190611889565b60405180910390a361114b8484846116b4565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690612135565b60405180910390fd5b6111ca825f836113e0565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561124e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611245906121c3565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8282546112a391906121e1565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113079190611889565b60405180910390a361131a835f846116b4565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561147e5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b49061225e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036115c8576115196108c6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061158457506115556108c6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba906122c6565b60405180910390fd5b6116af565b60065f9054906101000a900460ff16801561162f575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156116ae5760075481611641846107e1565b61164b9190611c1b565b1115801561166e575060085481611661846107e1565b61166b9190611c1b565b10155b6116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a49061232e565b60405180910390fd5b5b5b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116fb826116b9565b61170581856116c3565b93506117158185602086016116d3565b61171e816116e1565b840191505092915050565b5f6020820190508181035f83015261174181846116f1565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61177a82611751565b9050919050565b61178a81611770565b8114611794575f80fd5b50565b5f813590506117a581611781565b92915050565b5f819050919050565b6117bd816117ab565b81146117c7575f80fd5b50565b5f813590506117d8816117b4565b92915050565b5f80604083850312156117f4576117f3611749565b5b5f61180185828601611797565b9250506020611812858286016117ca565b9150509250929050565b5f8115159050919050565b6118308161181c565b82525050565b5f6020820190506118495f830184611827565b92915050565b5f6020828403121561186457611863611749565b5b5f61187184828501611797565b91505092915050565b611883816117ab565b82525050565b5f60208201905061189c5f83018461187a565b92915050565b5f805f606084860312156118b9576118b8611749565b5b5f6118c686828701611797565b93505060206118d786828701611797565b92505060406118e8868287016117ca565b9150509250925092565b5f60ff82169050919050565b611907816118f2565b82525050565b5f6020820190506119205f8301846118fe565b92915050565b61192f8161181c565b8114611939575f80fd5b50565b5f8135905061194a81611926565b92915050565b5f805f806080858703121561196857611967611749565b5b5f6119758782880161193c565b945050602061198687828801611797565b9350506040611997878288016117ca565b92505060606119a8878288016117ca565b91505092959194509250565b5f602082840312156119c9576119c8611749565b5b5f6119d6848285016117ca565b91505092915050565b6119e881611770565b82525050565b5f602082019050611a015f8301846119df565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611a2857611a27611a07565b5b8235905067ffffffffffffffff811115611a4557611a44611a0b565b5b602083019150836020820283011115611a6157611a60611a0f565b5b9250929050565b5f805f60408486031215611a7f57611a7e611749565b5b5f84013567ffffffffffffffff811115611a9c57611a9b61174d565b5b611aa886828701611a13565b93509350506020611abb8682870161193c565b9150509250925092565b5f8060408385031215611adb57611ada611749565b5b5f611ae885828601611797565b9250506020611af985828601611797565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b4757607f821691505b602082108103611b5a57611b59611b03565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f611bba6028836116c3565b9150611bc582611b60565b604082019050919050565b5f6020820190508181035f830152611be781611bae565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c25826117ab565b9150611c30836117ab565b9250828201905080821115611c4857611c47611bee565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611c826020836116c3565b9150611c8d82611c4e565b602082019050919050565b5f6020820190508181035f830152611caf81611c76565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611d106025836116c3565b9150611d1b82611cb6565b604082019050919050565b5f6020820190508181035f830152611d3d81611d04565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611dcb6026836116c3565b9150611dd682611d71565b604082019050919050565b5f6020820190508181035f830152611df881611dbf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611e596024836116c3565b9150611e6482611dff565b604082019050919050565b5f6020820190508181035f830152611e8681611e4d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611ee76022836116c3565b9150611ef282611e8d565b604082019050919050565b5f6020820190508181035f830152611f1481611edb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611f756025836116c3565b9150611f8082611f1b565b604082019050919050565b5f6020820190508181035f830152611fa281611f69565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6120036023836116c3565b915061200e82611fa9565b604082019050919050565b5f6020820190508181035f83015261203081611ff7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6120916026836116c3565b915061209c82612037565b604082019050919050565b5f6020820190508181035f8301526120be81612085565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61211f6021836116c3565b915061212a826120c5565b604082019050919050565b5f6020820190508181035f83015261214c81612113565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6121ad6022836116c3565b91506121b882612153565b604082019050919050565b5f6020820190508181035f8301526121da816121a1565b9050919050565b5f6121eb826117ab565b91506121f6836117ab565b925082820390508181111561220e5761220d611bee565b5b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f612248600b836116c3565b915061225382612214565b602082019050919050565b5f6020820190508181035f8301526122758161223c565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f6122b06016836116c3565b91506122bb8261227c565b602082019050919050565b5f6020820190508181035f8301526122dd816122a4565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f6123186006836116c3565b9150612323826122e4565b602082019050919050565b5f6020820190508181035f8301526123458161230c565b905091905056fea264697066735822122051fc1a2f9dd0dd3bf1e0c4c895e791d090c194d9fddfb953434d53cbd7ca3d3a64736f6c634300081900330000000000000000000000000000000000000000169e43a85eb381aa58000000
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610140575f3560e01c806370a08231116100b657806395d89b411161007a57806395d89b4114610366578063a457c2d714610384578063a9059cbb146103b4578063c997eb8d146103e4578063dd62ed3e14610400578063f2fde38b1461043057610140565b806370a08231146102d2578063715018a614610302578063860a32ec1461030c57806389f9a1d31461032a5780638da5cb5b1461034857610140565b806323b872dd1161010857806323b872dd146101fe578063313ce5671461022e578063395093511461024c5780633aa633aa1461027c57806342966c681461029857806349bd5a5e146102b457610140565b806306fdde0314610144578063095ea7b31461016257806316c021291461019257806318160ddd146101c25780631ab99e12146101e0575b5f80fd5b61014c61044c565b6040516101599190611729565b60405180910390f35b61017c600480360381019061017791906117de565b6104dc565b6040516101899190611836565b60405180910390f35b6101ac60048036038101906101a7919061184f565b6104f9565b6040516101b99190611836565b60405180910390f35b6101ca610516565b6040516101d79190611889565b60405180910390f35b6101e861051f565b6040516101f59190611889565b60405180910390f35b610218600480360381019061021391906118a2565b610525565b6040516102259190611836565b60405180910390f35b610236610617565b604051610243919061190d565b60405180910390f35b610266600480360381019061026191906117de565b61061f565b6040516102739190611836565b60405180910390f35b61029660048036038101906102919190611950565b6106c6565b005b6102b260048036038101906102ad91906119b4565b6107af565b005b6102bc6107bc565b6040516102c991906119ee565b60405180910390f35b6102ec60048036038101906102e7919061184f565b6107e1565b6040516102f99190611889565b60405180910390f35b61030a610827565b005b6103146108ae565b6040516103219190611836565b60405180910390f35b6103326108c0565b60405161033f9190611889565b60405180910390f35b6103506108c6565b60405161035d91906119ee565b60405180910390f35b61036e6108ed565b60405161037b9190611729565b60405180910390f35b61039e600480360381019061039991906117de565b61097d565b6040516103ab9190611836565b60405180910390f35b6103ce60048036038101906103c991906117de565b610a63565b6040516103db9190611836565b60405180910390f35b6103fe60048036038101906103f99190611a68565b610a80565b005b61041a60048036038101906104159190611ac5565b610b97565b6040516104279190611889565b60405180910390f35b61044a6004803603810190610445919061184f565b610c19565b005b60606004805461045b90611b30565b80601f016020809104026020016040519081016040528092919081815260200182805461048790611b30565b80156104d25780601f106104a9576101008083540402835291602001916104d2565b820191905f5260205f20905b8154815290600101906020018083116104b557829003601f168201915b5050505050905090565b5f6104ef6104e8610d0f565b8484610d16565b6001905092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b5f600354905090565b60085481565b5f610531848484610ed9565b5f60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610578610d0f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156105f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ee90611bd0565b60405180910390fd5b61060b85610603610d0f565b858403610d16565b60019150509392505050565b5f6012905090565b5f6106bc61062b610d0f565b848460025f610638610d0f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546106b79190611c1b565b610d16565b6001905092915050565b6106ce610d0f565b73ffffffffffffffffffffffffffffffffffffffff166106ec6108c6565b73ffffffffffffffffffffffffffffffffffffffff1614610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073990611c98565b60405180910390fd5b8360065f6101000a81548160ff0219169083151502179055508260095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550816007819055508060088190555050505050565b6107b93382611151565b50565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61082f610d0f565b73ffffffffffffffffffffffffffffffffffffffff1661084d6108c6565b73ffffffffffffffffffffffffffffffffffffffff16146108a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089a90611c98565b60405180910390fd5b6108ac5f61131f565b565b60065f9054906101000a900460ff1681565b60075481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600580546108fc90611b30565b80601f016020809104026020016040519081016040528092919081815260200182805461092890611b30565b80156109735780601f1061094a57610100808354040283529160200191610973565b820191905f5260205f20905b81548152906001019060200180831161095657829003601f168201915b5050505050905090565b5f8060025f61098a610d0f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610a44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3b90611d26565b60405180910390fd5b610a58610a4f610d0f565b85858403610d16565b600191505092915050565b5f610a76610a6f610d0f565b8484610ed9565b6001905092915050565b610a88610d0f565b73ffffffffffffffffffffffffffffffffffffffff16610aa66108c6565b73ffffffffffffffffffffffffffffffffffffffff1614610afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af390611c98565b60405180910390fd5b5f5b83839050811015610b915781600a5f868685818110610b2057610b1f611d44565b5b9050602002016020810190610b35919061184f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610afe565b50505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610c21610d0f565b73ffffffffffffffffffffffffffffffffffffffff16610c3f6108c6565b73ffffffffffffffffffffffffffffffffffffffff1614610c95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8c90611c98565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa90611de1565b60405180910390fd5b610d0c8161131f565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7b90611e6f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610df2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de990611efd565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ecc9190611889565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3e90611f8b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90612019565b60405180910390fd5b610fc08383836113e0565b5f60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b906120a7565b60405180910390fd5b81810360015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546110d49190611c1b565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111389190611889565b60405180910390a361114b8484846116b4565b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b690612135565b60405180910390fd5b6111ca825f836113e0565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561124e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611245906121c3565b60405180910390fd5b81810360015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508160035f8282546112a391906121e1565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113079190611889565b60405180910390a361131a835f846116b4565b505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561147e5750600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6114bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b49061225e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036115c8576115196108c6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061158457506115556108c6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6115c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ba906122c6565b60405180910390fd5b6116af565b60065f9054906101000a900460ff16801561162f575060095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b156116ae5760075481611641846107e1565b61164b9190611c1b565b1115801561166e575060085481611661846107e1565b61166b9190611c1b565b10155b6116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a49061232e565b60405180910390fd5b5b5b505050565b505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6116fb826116b9565b61170581856116c3565b93506117158185602086016116d3565b61171e816116e1565b840191505092915050565b5f6020820190508181035f83015261174181846116f1565b905092915050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61177a82611751565b9050919050565b61178a81611770565b8114611794575f80fd5b50565b5f813590506117a581611781565b92915050565b5f819050919050565b6117bd816117ab565b81146117c7575f80fd5b50565b5f813590506117d8816117b4565b92915050565b5f80604083850312156117f4576117f3611749565b5b5f61180185828601611797565b9250506020611812858286016117ca565b9150509250929050565b5f8115159050919050565b6118308161181c565b82525050565b5f6020820190506118495f830184611827565b92915050565b5f6020828403121561186457611863611749565b5b5f61187184828501611797565b91505092915050565b611883816117ab565b82525050565b5f60208201905061189c5f83018461187a565b92915050565b5f805f606084860312156118b9576118b8611749565b5b5f6118c686828701611797565b93505060206118d786828701611797565b92505060406118e8868287016117ca565b9150509250925092565b5f60ff82169050919050565b611907816118f2565b82525050565b5f6020820190506119205f8301846118fe565b92915050565b61192f8161181c565b8114611939575f80fd5b50565b5f8135905061194a81611926565b92915050565b5f805f806080858703121561196857611967611749565b5b5f6119758782880161193c565b945050602061198687828801611797565b9350506040611997878288016117ca565b92505060606119a8878288016117ca565b91505092959194509250565b5f602082840312156119c9576119c8611749565b5b5f6119d6848285016117ca565b91505092915050565b6119e881611770565b82525050565b5f602082019050611a015f8301846119df565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611a2857611a27611a07565b5b8235905067ffffffffffffffff811115611a4557611a44611a0b565b5b602083019150836020820283011115611a6157611a60611a0f565b5b9250929050565b5f805f60408486031215611a7f57611a7e611749565b5b5f84013567ffffffffffffffff811115611a9c57611a9b61174d565b5b611aa886828701611a13565b93509350506020611abb8682870161193c565b9150509250925092565b5f8060408385031215611adb57611ada611749565b5b5f611ae885828601611797565b9250506020611af985828601611797565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680611b4757607f821691505b602082108103611b5a57611b59611b03565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f611bba6028836116c3565b9150611bc582611b60565b604082019050919050565b5f6020820190508181035f830152611be781611bae565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611c25826117ab565b9150611c30836117ab565b9250828201905080821115611c4857611c47611bee565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611c826020836116c3565b9150611c8d82611c4e565b602082019050919050565b5f6020820190508181035f830152611caf81611c76565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611d106025836116c3565b9150611d1b82611cb6565b604082019050919050565b5f6020820190508181035f830152611d3d81611d04565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f611dcb6026836116c3565b9150611dd682611d71565b604082019050919050565b5f6020820190508181035f830152611df881611dbf565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611e596024836116c3565b9150611e6482611dff565b604082019050919050565b5f6020820190508181035f830152611e8681611e4d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611ee76022836116c3565b9150611ef282611e8d565b604082019050919050565b5f6020820190508181035f830152611f1481611edb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f611f756025836116c3565b9150611f8082611f1b565b604082019050919050565b5f6020820190508181035f830152611fa281611f69565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6120036023836116c3565b915061200e82611fa9565b604082019050919050565b5f6020820190508181035f83015261203081611ff7565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6120916026836116c3565b915061209c82612037565b604082019050919050565b5f6020820190508181035f8301526120be81612085565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f206164647265735f8201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b5f61211f6021836116c3565b915061212a826120c5565b604082019050919050565b5f6020820190508181035f83015261214c81612113565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e5f8201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b5f6121ad6022836116c3565b91506121b882612153565b604082019050919050565b5f6020820190508181035f8301526121da816121a1565b9050919050565b5f6121eb826117ab565b91506121f6836117ab565b925082820390508181111561220e5761220d611bee565b5b92915050565b7f426c61636b6c69737465640000000000000000000000000000000000000000005f82015250565b5f612248600b836116c3565b915061225382612214565b602082019050919050565b5f6020820190508181035f8301526122758161223c565b9050919050565b7f74726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f6122b06016836116c3565b91506122bb8261227c565b602082019050919050565b5f6020820190508181035f8301526122dd816122a4565b9050919050565b7f466f7262696400000000000000000000000000000000000000000000000000005f82015250565b5f6123186006836116c3565b9150612323826122e4565b602082019050919050565b5f6020820190508181035f8301526123458161230c565b905091905056fea264697066735822122051fc1a2f9dd0dd3bf1e0c4c895e791d090c194d9fddfb953434d53cbd7ca3d3a64736f6c63430008190033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000000000000000000000169e43a85eb381aa58000000
-----Decoded View---------------
Arg [0] : _totalSupply (uint256): 7000000000000000000000000000
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000169e43a85eb381aa58000000
Deployed Bytecode Sourcemap
19411:1562:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9383:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11550:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19589:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10503:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19516:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12201:492;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10345:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13102:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19997:301;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20889:81;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19554:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10674:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2784:103;;;:::i;:::-;;19452:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19478:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2133:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9602:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13820:413;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11014:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19758:228;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11252:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3042:201;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9383:100;9437:13;9470:5;9463:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9383:100;:::o;11550:169::-;11633:4;11650:39;11659:12;:10;:12::i;:::-;11673:7;11682:6;11650:8;:39::i;:::-;11707:4;11700:11;;11550:169;;;;:::o;19589:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;10503:108::-;10564:7;10591:12;;10584:19;;10503:108;:::o;19516:31::-;;;;:::o;12201:492::-;12341:4;12358:36;12368:6;12376:9;12387:6;12358:9;:36::i;:::-;12407:24;12434:11;:19;12446:6;12434:19;;;;;;;;;;;;;;;:33;12454:12;:10;:12::i;:::-;12434:33;;;;;;;;;;;;;;;;12407:60;;12506:6;12486:16;:26;;12478:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;12593:57;12602:6;12610:12;:10;:12::i;:::-;12643:6;12624:16;:25;12593:8;:57::i;:::-;12681:4;12674:11;;;12201:492;;;;;:::o;10345:93::-;10403:5;10428:2;10421:9;;10345:93;:::o;13102:215::-;13190:4;13207:80;13216:12;:10;:12::i;:::-;13230:7;13276:10;13239:11;:25;13251:12;:10;:12::i;:::-;13239:25;;;;;;;;;;;;;;;:34;13265:7;13239:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;13207:8;:80::i;:::-;13305:4;13298:11;;13102:215;;;;:::o;19997:301::-;2364:12;:10;:12::i;:::-;2353:23;;:7;:5;:7::i;:::-;:23;;;2345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20147:8:::1;20137:7;;:18;;;;;;;;;;;;;;;;;;20182:14;20166:13;;:30;;;;;;;;;;;;;;;;;;20226:17;20207:16;:36;;;;20273:17;20254:16;:36;;;;19997:301:::0;;;;:::o;20889:81::-;20938:24;20944:10;20956:5;20938;:24::i;:::-;20889:81;:::o;19554:28::-;;;;;;;;;;;;;:::o;10674:127::-;10748:7;10775:9;:18;10785:7;10775:18;;;;;;;;;;;;;;;;10768:25;;10674:127;;;:::o;2784:103::-;2364:12;:10;:12::i;:::-;2353:23;;:7;:5;:7::i;:::-;:23;;;2345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2849:30:::1;2876:1;2849:18;:30::i;:::-;2784:103::o:0;19452:19::-;;;;;;;;;;;;;:::o;19478:31::-;;;;:::o;2133:87::-;2179:7;2206:6;;;;;;;;;;;2199:13;;2133:87;:::o;9602:104::-;9658:13;9691:7;9684:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9602:104;:::o;13820:413::-;13913:4;13930:24;13957:11;:25;13969:12;:10;:12::i;:::-;13957:25;;;;;;;;;;;;;;;:34;13983:7;13957:34;;;;;;;;;;;;;;;;13930:61;;14030:15;14010:16;:35;;14002:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14123:67;14132:12;:10;:12::i;:::-;14146:7;14174:15;14155:16;:34;14123:8;:67::i;:::-;14221:4;14214:11;;;13820:413;;;;:::o;11014:175::-;11100:4;11117:42;11127:12;:10;:12::i;:::-;11141:9;11152:6;11117:9;:42::i;:::-;11177:4;11170:11;;11014:175;;;;:::o;19758:228::-;2364:12;:10;:12::i;:::-;2353:23;;:7;:5;:7::i;:::-;:23;;;2345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19866:9:::1;19861:118;19880:8;;:15;;19877:1;:18;19861:118;;;19952:15;19926:10;:23;19937:8;;19946:1;19937:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19926:23;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;19897:3;;;;;;;19861:118;;;;19758:228:::0;;;:::o;11252:151::-;11341:7;11368:11;:18;11380:5;11368:18;;;;;;;;;;;;;;;:27;11387:7;11368:27;;;;;;;;;;;;;;;;11361:34;;11252:151;;;;:::o;3042:201::-;2364:12;:10;:12::i;:::-;2353:23;;:7;:5;:7::i;:::-;:23;;;2345:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3151:1:::1;3131:22;;:8;:22;;::::0;3123:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3207:28;3226:8;3207:18;:28::i;:::-;3042:201:::0;:::o;851:98::-;904:7;931:10;924:17;;851:98;:::o;17504:380::-;17657:1;17640:19;;:5;:19;;;17632:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17738:1;17719:21;;:7;:21;;;17711:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17822:6;17792:11;:18;17804:5;17792:18;;;;;;;;;;;;;;;:27;17811:7;17792:27;;;;;;;;;;;;;;;:36;;;;17860:7;17844:32;;17853:5;17844:32;;;17869:6;17844:32;;;;;;:::i;:::-;;;;;;;;17504:380;;;:::o;14723:733::-;14881:1;14863:20;;:6;:20;;;14855:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;14965:1;14944:23;;:9;:23;;;14936:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15020:47;15041:6;15049:9;15060:6;15020:20;:47::i;:::-;15080:21;15104:9;:17;15114:6;15104:17;;;;;;;;;;;;;;;;15080:41;;15157:6;15140:13;:23;;15132:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15278:6;15262:13;:22;15242:9;:17;15252:6;15242:17;;;;;;;;;;;;;;;:42;;;;15330:6;15306:9;:20;15316:9;15306:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15371:9;15354:35;;15363:6;15354:35;;;15382:6;15354:35;;;;;;:::i;:::-;;;;;;;;15402:46;15422:6;15430:9;15441:6;15402:19;:46::i;:::-;14844:612;14723:733;;;:::o;16475:591::-;16578:1;16559:21;;:7;:21;;;16551:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16631:49;16652:7;16669:1;16673:6;16631:20;:49::i;:::-;16693:22;16718:9;:18;16728:7;16718:18;;;;;;;;;;;;;;;;16693:43;;16773:6;16755:14;:24;;16747:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16892:6;16875:14;:23;16854:9;:18;16864:7;16854:18;;;;;;;;;;;;;;;:44;;;;16936:6;16920:12;;:22;;;;;;;:::i;:::-;;;;;;;;16986:1;16960:37;;16969:7;16960:37;;;16990:6;16960:37;;;;;;:::i;:::-;;;;;;;;17010:48;17030:7;17047:1;17051:6;17010:19;:48::i;:::-;16540:526;16475:591;;:::o;3403:191::-;3477:16;3496:6;;;;;;;;;;;3477:25;;3522:8;3513:6;;:17;;;;;;;;;;;;;;;;;;3577:8;3546:40;;3567:8;3546:40;;;;;;;;;;;;3466:128;3403:191;:::o;20306:575::-;20458:10;:14;20469:2;20458:14;;;;;;;;;;;;;;;;;;;;;;;;;20457:15;:36;;;;;20477:10;:16;20488:4;20477:16;;;;;;;;;;;;;;;;;;;;;;;;;20476:17;20457:36;20449:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;20559:1;20534:27;;:13;;;;;;;;;;;:27;;;20530:148;;20594:7;:5;:7::i;:::-;20586:15;;:4;:15;;;:32;;;;20611:7;:5;:7::i;:::-;20605:13;;:2;:13;;;20586:32;20578:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20660:7;;20530:148;20694:7;;;;;;;;;;;:32;;;;;20713:13;;;;;;;;;;;20705:21;;:4;:21;;;20694:32;20690:184;;;20783:16;;20773:6;20751:19;20767:2;20751:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;:100;;;;;20835:16;;20825:6;20803:19;20819:2;20803:15;:19::i;:::-;:28;;;;:::i;:::-;:48;;20751:100;20743:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;20690:184;20306:575;;;;:::o;19213:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:329::-;3398:6;3447:2;3435:9;3426:7;3422:23;3418:32;3415:119;;;3453:79;;:::i;:::-;3415:119;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3339:329;;;;:::o;3674:118::-;3761:24;3779:5;3761:24;:::i;:::-;3756:3;3749:37;3674:118;;:::o;3798:222::-;3891:4;3929:2;3918:9;3914:18;3906:26;;3942:71;4010:1;3999:9;3995:17;3986:6;3942:71;:::i;:::-;3798:222;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:116::-;5151:21;5166:5;5151:21;:::i;:::-;5144:5;5141:32;5131:60;;5187:1;5184;5177:12;5131:60;5081:116;:::o;5203:133::-;5246:5;5284:6;5271:20;5262:29;;5300:30;5324:5;5300:30;:::i;:::-;5203:133;;;;:::o;5342:759::-;5425:6;5433;5441;5449;5498:3;5486:9;5477:7;5473:23;5469:33;5466:120;;;5505:79;;:::i;:::-;5466:120;5625:1;5650:50;5692:7;5683:6;5672:9;5668:22;5650:50;:::i;:::-;5640:60;;5596:114;5749:2;5775:53;5820:7;5811:6;5800:9;5796:22;5775:53;:::i;:::-;5765:63;;5720:118;5877:2;5903:53;5948:7;5939:6;5928:9;5924:22;5903:53;:::i;:::-;5893:63;;5848:118;6005:2;6031:53;6076:7;6067:6;6056:9;6052:22;6031:53;:::i;:::-;6021:63;;5976:118;5342:759;;;;;;;:::o;6107:329::-;6166:6;6215:2;6203:9;6194:7;6190:23;6186:32;6183:119;;;6221:79;;:::i;:::-;6183:119;6341:1;6366:53;6411:7;6402:6;6391:9;6387:22;6366:53;:::i;:::-;6356:63;;6312:117;6107:329;;;;:::o;6442:118::-;6529:24;6547:5;6529:24;:::i;:::-;6524:3;6517:37;6442:118;;:::o;6566:222::-;6659:4;6697:2;6686:9;6682:18;6674:26;;6710:71;6778:1;6767:9;6763:17;6754:6;6710:71;:::i;:::-;6566:222;;;;:::o;6794:117::-;6903:1;6900;6893:12;6917:117;7026:1;7023;7016:12;7040:117;7149:1;7146;7139:12;7180:568;7253:8;7263:6;7313:3;7306:4;7298:6;7294:17;7290:27;7280:122;;7321:79;;:::i;:::-;7280:122;7434:6;7421:20;7411:30;;7464:18;7456:6;7453:30;7450:117;;;7486:79;;:::i;:::-;7450:117;7600:4;7592:6;7588:17;7576:29;;7654:3;7646:4;7638:6;7634:17;7624:8;7620:32;7617:41;7614:128;;;7661:79;;:::i;:::-;7614:128;7180:568;;;;;:::o;7754:698::-;7846:6;7854;7862;7911:2;7899:9;7890:7;7886:23;7882:32;7879:119;;;7917:79;;:::i;:::-;7879:119;8065:1;8054:9;8050:17;8037:31;8095:18;8087:6;8084:30;8081:117;;;8117:79;;:::i;:::-;8081:117;8230:80;8302:7;8293:6;8282:9;8278:22;8230:80;:::i;:::-;8212:98;;;;8008:312;8359:2;8385:50;8427:7;8418:6;8407:9;8403:22;8385:50;:::i;:::-;8375:60;;8330:115;7754:698;;;;;:::o;8458:474::-;8526:6;8534;8583:2;8571:9;8562:7;8558:23;8554:32;8551:119;;;8589:79;;:::i;:::-;8551:119;8709:1;8734:53;8779:7;8770:6;8759:9;8755:22;8734:53;:::i;:::-;8724:63;;8680:117;8836:2;8862:53;8907:7;8898:6;8887:9;8883:22;8862:53;:::i;:::-;8852:63;;8807:118;8458:474;;;;;:::o;8938:180::-;8986:77;8983:1;8976:88;9083:4;9080:1;9073:15;9107:4;9104:1;9097:15;9124:320;9168:6;9205:1;9199:4;9195:12;9185:22;;9252:1;9246:4;9242:12;9273:18;9263:81;;9329:4;9321:6;9317:17;9307:27;;9263:81;9391:2;9383:6;9380:14;9360:18;9357:38;9354:84;;9410:18;;:::i;:::-;9354:84;9175:269;9124:320;;;:::o;9450:227::-;9590:34;9586:1;9578:6;9574:14;9567:58;9659:10;9654:2;9646:6;9642:15;9635:35;9450:227;:::o;9683:366::-;9825:3;9846:67;9910:2;9905:3;9846:67;:::i;:::-;9839:74;;9922:93;10011:3;9922:93;:::i;:::-;10040:2;10035:3;10031:12;10024:19;;9683:366;;;:::o;10055:419::-;10221:4;10259:2;10248:9;10244:18;10236:26;;10308:9;10302:4;10298:20;10294:1;10283:9;10279:17;10272:47;10336:131;10462:4;10336:131;:::i;:::-;10328:139;;10055:419;;;:::o;10480:180::-;10528:77;10525:1;10518:88;10625:4;10622:1;10615:15;10649:4;10646:1;10639:15;10666:191;10706:3;10725:20;10743:1;10725:20;:::i;:::-;10720:25;;10759:20;10777:1;10759:20;:::i;:::-;10754:25;;10802:1;10799;10795:9;10788:16;;10823:3;10820:1;10817:10;10814:36;;;10830:18;;:::i;:::-;10814:36;10666:191;;;;:::o;10863:182::-;11003:34;10999:1;10991:6;10987:14;10980:58;10863:182;:::o;11051:366::-;11193:3;11214:67;11278:2;11273:3;11214:67;:::i;:::-;11207:74;;11290:93;11379:3;11290:93;:::i;:::-;11408:2;11403:3;11399:12;11392:19;;11051:366;;;:::o;11423:419::-;11589:4;11627:2;11616:9;11612:18;11604:26;;11676:9;11670:4;11666:20;11662:1;11651:9;11647:17;11640:47;11704:131;11830:4;11704:131;:::i;:::-;11696:139;;11423:419;;;:::o;11848:224::-;11988:34;11984:1;11976:6;11972:14;11965:58;12057:7;12052:2;12044:6;12040:15;12033:32;11848:224;:::o;12078:366::-;12220:3;12241:67;12305:2;12300:3;12241:67;:::i;:::-;12234:74;;12317:93;12406:3;12317:93;:::i;:::-;12435:2;12430:3;12426:12;12419:19;;12078:366;;;:::o;12450:419::-;12616:4;12654:2;12643:9;12639:18;12631:26;;12703:9;12697:4;12693:20;12689:1;12678:9;12674:17;12667:47;12731:131;12857:4;12731:131;:::i;:::-;12723:139;;12450:419;;;:::o;12875:180::-;12923:77;12920:1;12913:88;13020:4;13017:1;13010:15;13044:4;13041:1;13034:15;13061:225;13201:34;13197:1;13189:6;13185:14;13178:58;13270:8;13265:2;13257:6;13253:15;13246:33;13061:225;:::o;13292:366::-;13434:3;13455:67;13519:2;13514:3;13455:67;:::i;:::-;13448:74;;13531:93;13620:3;13531:93;:::i;:::-;13649:2;13644:3;13640:12;13633:19;;13292:366;;;:::o;13664:419::-;13830:4;13868:2;13857:9;13853:18;13845:26;;13917:9;13911:4;13907:20;13903:1;13892:9;13888:17;13881:47;13945:131;14071:4;13945:131;:::i;:::-;13937:139;;13664:419;;;:::o;14089:223::-;14229:34;14225:1;14217:6;14213:14;14206:58;14298:6;14293:2;14285:6;14281:15;14274:31;14089:223;:::o;14318:366::-;14460:3;14481:67;14545:2;14540:3;14481:67;:::i;:::-;14474:74;;14557:93;14646:3;14557:93;:::i;:::-;14675:2;14670:3;14666:12;14659:19;;14318:366;;;:::o;14690:419::-;14856:4;14894:2;14883:9;14879:18;14871:26;;14943:9;14937:4;14933:20;14929:1;14918:9;14914:17;14907:47;14971:131;15097:4;14971:131;:::i;:::-;14963:139;;14690:419;;;:::o;15115:221::-;15255:34;15251:1;15243:6;15239:14;15232:58;15324:4;15319:2;15311:6;15307:15;15300:29;15115:221;:::o;15342:366::-;15484:3;15505:67;15569:2;15564:3;15505:67;:::i;:::-;15498:74;;15581:93;15670:3;15581:93;:::i;:::-;15699:2;15694:3;15690:12;15683:19;;15342:366;;;:::o;15714:419::-;15880:4;15918:2;15907:9;15903:18;15895:26;;15967:9;15961:4;15957:20;15953:1;15942:9;15938:17;15931:47;15995:131;16121:4;15995:131;:::i;:::-;15987:139;;15714:419;;;:::o;16139:224::-;16279:34;16275:1;16267:6;16263:14;16256:58;16348:7;16343:2;16335:6;16331:15;16324:32;16139:224;:::o;16369:366::-;16511:3;16532:67;16596:2;16591:3;16532:67;:::i;:::-;16525:74;;16608:93;16697:3;16608:93;:::i;:::-;16726:2;16721:3;16717:12;16710:19;;16369:366;;;:::o;16741:419::-;16907:4;16945:2;16934:9;16930:18;16922:26;;16994:9;16988:4;16984:20;16980:1;16969:9;16965:17;16958:47;17022:131;17148:4;17022:131;:::i;:::-;17014:139;;16741:419;;;:::o;17166:222::-;17306:34;17302:1;17294:6;17290:14;17283:58;17375:5;17370:2;17362:6;17358:15;17351:30;17166:222;:::o;17394:366::-;17536:3;17557:67;17621:2;17616:3;17557:67;:::i;:::-;17550:74;;17633:93;17722:3;17633:93;:::i;:::-;17751:2;17746:3;17742:12;17735:19;;17394:366;;;:::o;17766:419::-;17932:4;17970:2;17959:9;17955:18;17947:26;;18019:9;18013:4;18009:20;18005:1;17994:9;17990:17;17983:47;18047:131;18173:4;18047:131;:::i;:::-;18039:139;;17766:419;;;:::o;18191:225::-;18331:34;18327:1;18319:6;18315:14;18308:58;18400:8;18395:2;18387:6;18383:15;18376:33;18191:225;:::o;18422:366::-;18564:3;18585:67;18649:2;18644:3;18585:67;:::i;:::-;18578:74;;18661:93;18750:3;18661:93;:::i;:::-;18779:2;18774:3;18770:12;18763:19;;18422:366;;;:::o;18794:419::-;18960:4;18998:2;18987:9;18983:18;18975:26;;19047:9;19041:4;19037:20;19033:1;19022:9;19018:17;19011:47;19075:131;19201:4;19075:131;:::i;:::-;19067:139;;18794:419;;;:::o;19219:220::-;19359:34;19355:1;19347:6;19343:14;19336:58;19428:3;19423:2;19415:6;19411:15;19404:28;19219:220;:::o;19445:366::-;19587:3;19608:67;19672:2;19667:3;19608:67;:::i;:::-;19601:74;;19684:93;19773:3;19684:93;:::i;:::-;19802:2;19797:3;19793:12;19786:19;;19445:366;;;:::o;19817:419::-;19983:4;20021:2;20010:9;20006:18;19998:26;;20070:9;20064:4;20060:20;20056:1;20045:9;20041:17;20034:47;20098:131;20224:4;20098:131;:::i;:::-;20090:139;;19817:419;;;:::o;20242:221::-;20382:34;20378:1;20370:6;20366:14;20359:58;20451:4;20446:2;20438:6;20434:15;20427:29;20242:221;:::o;20469:366::-;20611:3;20632:67;20696:2;20691:3;20632:67;:::i;:::-;20625:74;;20708:93;20797:3;20708:93;:::i;:::-;20826:2;20821:3;20817:12;20810:19;;20469:366;;;:::o;20841:419::-;21007:4;21045:2;21034:9;21030:18;21022:26;;21094:9;21088:4;21084:20;21080:1;21069:9;21065:17;21058:47;21122:131;21248:4;21122:131;:::i;:::-;21114:139;;20841:419;;;:::o;21266:194::-;21306:4;21326:20;21344:1;21326:20;:::i;:::-;21321:25;;21360:20;21378:1;21360:20;:::i;:::-;21355:25;;21404:1;21401;21397:9;21389:17;;21428:1;21422:4;21419:11;21416:37;;;21433:18;;:::i;:::-;21416:37;21266:194;;;;:::o;21466:161::-;21606:13;21602:1;21594:6;21590:14;21583:37;21466:161;:::o;21633:366::-;21775:3;21796:67;21860:2;21855:3;21796:67;:::i;:::-;21789:74;;21872:93;21961:3;21872:93;:::i;:::-;21990:2;21985:3;21981:12;21974:19;;21633:366;;;:::o;22005:419::-;22171:4;22209:2;22198:9;22194:18;22186:26;;22258:9;22252:4;22248:20;22244:1;22233:9;22229:17;22222:47;22286:131;22412:4;22286:131;:::i;:::-;22278:139;;22005:419;;;:::o;22430:172::-;22570:24;22566:1;22558:6;22554:14;22547:48;22430:172;:::o;22608:366::-;22750:3;22771:67;22835:2;22830:3;22771:67;:::i;:::-;22764:74;;22847:93;22936:3;22847:93;:::i;:::-;22965:2;22960:3;22956:12;22949:19;;22608:366;;;:::o;22980:419::-;23146:4;23184:2;23173:9;23169:18;23161:26;;23233:9;23227:4;23223:20;23219:1;23208:9;23204:17;23197:47;23261:131;23387:4;23261:131;:::i;:::-;23253:139;;22980:419;;;:::o;23405:156::-;23545:8;23541:1;23533:6;23529:14;23522:32;23405:156;:::o;23567:365::-;23709:3;23730:66;23794:1;23789:3;23730:66;:::i;:::-;23723:73;;23805:93;23894:3;23805:93;:::i;:::-;23923:2;23918:3;23914:12;23907:19;;23567:365;;;:::o;23938:419::-;24104:4;24142:2;24131:9;24127:18;24119:26;;24191:9;24185:4;24181:20;24177:1;24166:9;24162:17;24155:47;24219:131;24345:4;24219:131;:::i;:::-;24211:139;;23938:419;;;:::o
Swarm Source
ipfs://51fc1a2f9dd0dd3bf1e0c4c895e791d090c194d9fddfb953434d53cbd7ca3d3a
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.