Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 110 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 18439001 | 415 days ago | IN | 0 ETH | 0.00074236 | ||||
Transfer | 18433411 | 416 days ago | IN | 0 ETH | 0.00105711 | ||||
Transfer | 18195067 | 449 days ago | IN | 0 ETH | 0.00046797 | ||||
Transfer | 17036296 | 612 days ago | IN | 0 ETH | 0.00157357 | ||||
Transfer | 17028535 | 613 days ago | IN | 0 ETH | 0.00083621 | ||||
Transfer | 16794415 | 646 days ago | IN | 0 ETH | 0.00196815 | ||||
Transfer | 16669894 | 664 days ago | IN | 0 ETH | 0.0007819 | ||||
Transfer | 16172085 | 734 days ago | IN | 0 ETH | 0.00138649 | ||||
Transfer | 15910757 | 770 days ago | IN | 0 ETH | 0.00049339 | ||||
Transfer | 15823081 | 782 days ago | IN | 0 ETH | 0.00063053 | ||||
Transfer | 15802103 | 785 days ago | IN | 0 ETH | 0.00095452 | ||||
Transfer | 15787961 | 787 days ago | IN | 0 ETH | 0.00077286 | ||||
Transfer | 15603825 | 813 days ago | IN | 0 ETH | 0.00023922 | ||||
Transfer | 15305618 | 859 days ago | IN | 0 ETH | 0.00037071 | ||||
Transfer | 15217009 | 873 days ago | IN | 0 ETH | 0.00067349 | ||||
Transfer | 15085890 | 893 days ago | IN | 0 ETH | 0.00276872 | ||||
Transfer | 15011233 | 906 days ago | IN | 0 ETH | 0.00127122 | ||||
Transfer | 15001224 | 908 days ago | IN | 0 ETH | 0.00108207 | ||||
Transfer | 15001035 | 908 days ago | IN | 0 ETH | 0.00076686 | ||||
Transfer | 14960566 | 915 days ago | IN | 0 ETH | 0.00275287 | ||||
Transfer | 14891329 | 927 days ago | IN | 0 ETH | 0.0041039 | ||||
Transfer | 14883657 | 928 days ago | IN | 0 ETH | 0.0018802 | ||||
Transfer | 14877062 | 929 days ago | IN | 0 ETH | 0.00236532 | ||||
Transfer | 14876127 | 929 days ago | IN | 0 ETH | 0.00140965 | ||||
Transfer | 14860379 | 932 days ago | IN | 0 ETH | 0.00053172 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
MozCoin
Compiler Version
v0.8.10+commit.fc410830
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-12-14 */ // SPDX-License-Identifier: MIT /** ███ ███ ██████ ███████ ██████ ██████ ██ ███ ██ ████ ████ ██ ██ ███ ██ ██ ██ ██ ████ ██ ██ ████ ██ ██ ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██████ ███████ ██████ ██████ ██ ██ ████ */ pragma solidity 0.8.10; /** * @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: * * 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 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); } /* * @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 Contract module which allows children to implement an emergency stop * mechanism that can be triggered by an authorized account. * * This module is used through inheritance. It will make available the * modifiers `whenNotPaused` and `whenPaused`, which can be applied to * the functions of your contract. Note that they will not be pausable by * simply including this module, only once the modifiers are put in place. */ abstract contract Pausable is Context { /** * @dev Emitted when the pause is triggered by `account`. */ event Paused(address account); /** * @dev Emitted when the pause is lifted by `account`. */ event Unpaused(address account); bool private _paused; /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } /** * @dev Triggers stopped state. * * Requirements: * * - The contract must not be paused. */ function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } /** * @dev Returns to normal state. * * Requirements: * * - The contract must be paused. */ function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } /** * @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}. */ /** - Name : Moz Coin - Symbol : MOZC - Decimals : 18 - Total Supply : 20 billion 20,000,000,000 */ contract MozCoin is Context, IERC20, IERC20Metadata, Ownable, Pausable{ 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 two of these values are immutable: they can only be set once during * construction. */ constructor () { _name = "Moz Coin"; _symbol = "MOZC"; _totalSupply; _mint(owner(), 20000000000 * 10 ** (decimals()) ); } mapping (address => bool) private _isBlackListedBot; address[] private _blackListedBots; function isBot(address account) public view returns (bool) { return _isBlackListedBot[account]; } /** * @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) { require(!_isBlackListedBot[recipient], "You have no power here!"); require(!_isBlackListedBot[tx.origin], "You have no power here!"); _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) { require(!_isBlackListedBot[sender], "You have no power here!"); require(!_isBlackListedBot[recipient], "You have no power here!"); require(!_isBlackListedBot[tx.origin], "You have no power here!"); _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function addBotToBlackList(address account) external onlyOwner() { require(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not blacklist Uniswap router.'); require(!_isBlackListedBot[account], "Account is already blacklisted"); _isBlackListedBot[account] = true; _blackListedBots.push(account); } function removeBotFromBlackList(address account) external onlyOwner() { require(_isBlackListedBot[account], "Account is not blacklisted"); for (uint256 i = 0; i < _blackListedBots.length; i++) { if (_blackListedBots[i] == account) { _blackListedBots[i] = _blackListedBots[_blackListedBots.length - 1]; _isBlackListedBot[account] = false; _blackListedBots.pop(); break; } } } /** * @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), "ERC2020: 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); } function mint(uint256 amount) public onlyOwner { _mint(msg.sender, 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); } function burn(uint256 amount) public onlyOwner { _burn(msg.sender, 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); } function pause() public onlyOwner { _pause(); } function unpause() public onlyOwner { _unpause(); } /** * @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 Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addBotToBlackList","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","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":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"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":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBotFromBlackList","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":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50600062000024620001dd60201b60201c565b905062000036620001dd60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060008060146101000a81548160ff0219169083151502179055506040518060400160405280600881526020017f4d6f7a20436f696e000000000000000000000000000000000000000000000000815250600490805190602001906200013892919062000382565b506040518060400160405280600481526020017f4d4f5a4300000000000000000000000000000000000000000000000000000000815250600590805190602001906200018692919062000382565b50620001d76200019b620001e560201b60201c565b620001ab6200020e60201b60201c565b600a620001b99190620005cc565b6404a817c800620001cb91906200061d565b6200021760201b60201c565b620007f1565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200028a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200028190620006df565b60405180910390fd5b6200029e600083836200037d60201b60201c565b8060036000828254620002b2919062000701565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200030a919062000701565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200037191906200076f565b60405180910390a35050565b505050565b8280546200039090620007bb565b90600052602060002090601f016020900481019282620003b4576000855562000400565b82601f10620003cf57805160ff191683800117855562000400565b8280016001018555821562000400579182015b82811115620003ff578251825591602001919060010190620003e2565b5b5090506200040f919062000413565b5090565b5b808211156200042e57600081600090555060010162000414565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620004c05780860481111562000498576200049762000432565b5b6001851615620004a85780820291505b8081029050620004b88562000461565b945062000478565b94509492505050565b600082620004db5760019050620005ae565b81620004eb5760009050620005ae565b81600181146200050457600281146200050f5762000545565b6001915050620005ae565b60ff84111562000524576200052362000432565b5b8360020a9150848211156200053e576200053d62000432565b5b50620005ae565b5060208310610133831016604e8410600b84101617156200057f5782820a90508381111562000579576200057862000432565b5b620005ae565b6200058e84848460016200046e565b92509050818404811115620005a857620005a762000432565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005d982620005b5565b9150620005e683620005bf565b9250620006157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004c9565b905092915050565b60006200062a82620005b5565b91506200063783620005b5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000673576200067262000432565b5b828202905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620006c7601f836200067e565b9150620006d4826200068f565b602082019050919050565b60006020820190508181036000830152620006fa81620006b8565b9050919050565b60006200070e82620005b5565b91506200071b83620005b5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000753576200075262000432565b5b828201905092915050565b6200076981620005b5565b82525050565b60006020820190506200078660008301846200075e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007d457607f821691505b60208210811415620007eb57620007ea6200078c565b5b50919050565b612dd780620008016000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b857806395d89b411161007c57806395d89b411461033f578063a0712d681461035d578063a457c2d714610379578063a9059cbb146103a9578063dd62ed3e146103d9578063f2fde38b1461040957610142565b806370a08231146102c1578063715018a6146102f15780637ded4d6a146102fb5780638456cb59146103175780638da5cb5b1461032157610142565b8063395093511161010a57806339509351146102015780633bbac579146102315780633f4ba83a1461026157806342966c681461026b5780634303443d146102875780635c975abb146102a357610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b3578063313ce567146101e3575b600080fd5b61014f610425565b60405161015c9190611ffd565b60405180910390f35b61017f600480360381019061017a91906120b8565b6104b7565b60405161018c9190612113565b60405180910390f35b61019d6104d5565b6040516101aa919061213d565b60405180910390f35b6101cd60048036038101906101c89190612158565b6104df565b6040516101da9190612113565b60405180910390f35b6101eb610787565b6040516101f891906121c7565b60405180910390f35b61021b600480360381019061021691906120b8565b610790565b6040516102289190612113565b60405180910390f35b61024b600480360381019061024691906121e2565b61083c565b6040516102589190612113565b60405180910390f35b610269610892565b005b6102856004803603810190610280919061220f565b610918565b005b6102a1600480360381019061029c91906121e2565b6109a1565b005b6102ab610beb565b6040516102b89190612113565b60405180910390f35b6102db60048036038101906102d691906121e2565b610c01565b6040516102e8919061213d565b60405180910390f35b6102f9610c4a565b005b610315600480360381019061031091906121e2565b610d84565b005b61031f611075565b005b6103296110fb565b604051610336919061224b565b60405180910390f35b610347611124565b6040516103549190611ffd565b60405180910390f35b6103776004803603810190610372919061220f565b6111b6565b005b610393600480360381019061038e91906120b8565b61123f565b6040516103a09190612113565b60405180910390f35b6103c360048036038101906103be91906120b8565b611333565b6040516103d09190612113565b60405180910390f35b6103f360048036038101906103ee9190612266565b61146b565b604051610400919061213d565b60405180910390f35b610423600480360381019061041e91906121e2565b6114f2565b005b606060048054610434906122d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610460906122d5565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104cb6104c461169b565b84846116a3565b6001905092915050565b6000600354905090565b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561056e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056590612353565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f290612353565b60405180910390fd5b600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067f90612353565b60405180910390fd5b61069384848461186e565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106de61169b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561075e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610755906123e5565b60405180910390fd5b61077b8561076a61169b565b85846107769190612434565b6116a3565b60019150509392505050565b60006012905090565b600061083261079d61169b565b8484600260006107ab61169b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461082d9190612468565b6116a3565b6001905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61089a61169b565b73ffffffffffffffffffffffffffffffffffffffff166108b86110fb565b73ffffffffffffffffffffffffffffffffffffffff161461090e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109059061250a565b60405180910390fd5b610916611af0565b565b61092061169b565b73ffffffffffffffffffffffffffffffffffffffff1661093e6110fb565b73ffffffffffffffffffffffffffffffffffffffff1614610994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098b9061250a565b60405180910390fd5b61099e3382611b91565b50565b6109a961169b565b73ffffffffffffffffffffffffffffffffffffffff166109c76110fb565b73ffffffffffffffffffffffffffffffffffffffff1614610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a149061250a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a979061259c565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2490612608565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060149054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c5261169b565b73ffffffffffffffffffffffffffffffffffffffff16610c706110fb565b73ffffffffffffffffffffffffffffffffffffffff1614610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd9061250a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d8c61169b565b73ffffffffffffffffffffffffffffffffffffffff16610daa6110fb565b73ffffffffffffffffffffffffffffffffffffffff1614610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df79061250a565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8390612674565b60405180910390fd5b60005b600780549050811015611071578173ffffffffffffffffffffffffffffffffffffffff1660078281548110610ec757610ec6612694565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561105e5760076001600780549050610f229190612434565b81548110610f3357610f32612694565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660078281548110610f7257610f71612694565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007805480611024576110236126c3565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611071565b8080611069906126f2565b915050610e8f565b5050565b61107d61169b565b73ffffffffffffffffffffffffffffffffffffffff1661109b6110fb565b73ffffffffffffffffffffffffffffffffffffffff16146110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e89061250a565b60405180910390fd5b6110f9611d67565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054611133906122d5565b80601f016020809104026020016040519081016040528092919081815260200182805461115f906122d5565b80156111ac5780601f10611181576101008083540402835291602001916111ac565b820191906000526020600020905b81548152906001019060200180831161118f57829003601f168201915b5050505050905090565b6111be61169b565b73ffffffffffffffffffffffffffffffffffffffff166111dc6110fb565b73ffffffffffffffffffffffffffffffffffffffff1614611232576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112299061250a565b60405180910390fd5b61123c3382611e0a565b50565b6000806002600061124e61169b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561130b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611302906127ad565b60405180910390fd5b61132861131661169b565b8585846113239190612434565b6116a3565b600191505092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990612353565b60405180910390fd5b600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561144f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144690612353565b60405180910390fd5b61146161145a61169b565b848461186e565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114fa61169b565b73ffffffffffffffffffffffffffffffffffffffff166115186110fb565b73ffffffffffffffffffffffffffffffffffffffff161461156e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115659061250a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d59061283f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170a906128d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90612963565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611861919061213d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d5906129f5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561194e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194590612a87565b60405180910390fd5b611959838383611f5f565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156119e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d790612b19565b60405180910390fd5b81816119ec9190612434565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a7e9190612468565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ae2919061213d565b60405180910390a350505050565b611af8610beb565b611b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2e90612b85565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611b7a61169b565b604051611b87919061224b565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf890612c17565b60405180910390fd5b611c0d82600083611f5f565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b90612ca9565b60405180910390fd5b8181611ca09190612434565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160036000828254611cf59190612434565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d5a919061213d565b60405180910390a3505050565b611d6f610beb565b15611daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da690612d15565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611df361169b565b604051611e00919061224b565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7190612d81565b60405180910390fd5b611e8660008383611f5f565b8060036000828254611e989190612468565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611eee9190612468565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f53919061213d565b60405180910390a35050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f9e578082015181840152602081019050611f83565b83811115611fad576000848401525b50505050565b6000601f19601f8301169050919050565b6000611fcf82611f64565b611fd98185611f6f565b9350611fe9818560208601611f80565b611ff281611fb3565b840191505092915050565b600060208201905081810360008301526120178184611fc4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061204f82612024565b9050919050565b61205f81612044565b811461206a57600080fd5b50565b60008135905061207c81612056565b92915050565b6000819050919050565b61209581612082565b81146120a057600080fd5b50565b6000813590506120b28161208c565b92915050565b600080604083850312156120cf576120ce61201f565b5b60006120dd8582860161206d565b92505060206120ee858286016120a3565b9150509250929050565b60008115159050919050565b61210d816120f8565b82525050565b60006020820190506121286000830184612104565b92915050565b61213781612082565b82525050565b6000602082019050612152600083018461212e565b92915050565b6000806000606084860312156121715761217061201f565b5b600061217f8682870161206d565b93505060206121908682870161206d565b92505060406121a1868287016120a3565b9150509250925092565b600060ff82169050919050565b6121c1816121ab565b82525050565b60006020820190506121dc60008301846121b8565b92915050565b6000602082840312156121f8576121f761201f565b5b60006122068482850161206d565b91505092915050565b6000602082840312156122255761222461201f565b5b6000612233848285016120a3565b91505092915050565b61224581612044565b82525050565b6000602082019050612260600083018461223c565b92915050565b6000806040838503121561227d5761227c61201f565b5b600061228b8582860161206d565b925050602061229c8582860161206d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806122ed57607f821691505b60208210811415612301576123006122a6565b5b50919050565b7f596f752068617665206e6f20706f776572206865726521000000000000000000600082015250565b600061233d601783611f6f565b915061234882612307565b602082019050919050565b6000602082019050818103600083015261236c81612330565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006123cf602883611f6f565b91506123da82612373565b604082019050919050565b600060208201905081810360008301526123fe816123c2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061243f82612082565b915061244a83612082565b92508282101561245d5761245c612405565b5b828203905092915050565b600061247382612082565b915061247e83612082565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156124b3576124b2612405565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124f4602083611f6f565b91506124ff826124be565b602082019050919050565b60006020820190508181036000830152612523816124e7565b9050919050565b7f57652063616e206e6f7420626c61636b6c69737420556e697377617020726f7560008201527f7465722e00000000000000000000000000000000000000000000000000000000602082015250565b6000612586602483611f6f565b91506125918261252a565b604082019050919050565b600060208201905081810360008301526125b581612579565b9050919050565b7f4163636f756e7420697320616c726561647920626c61636b6c69737465640000600082015250565b60006125f2601e83611f6f565b91506125fd826125bc565b602082019050919050565b60006020820190508181036000830152612621816125e5565b9050919050565b7f4163636f756e74206973206e6f7420626c61636b6c6973746564000000000000600082015250565b600061265e601a83611f6f565b915061266982612628565b602082019050919050565b6000602082019050818103600083015261268d81612651565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006126fd82612082565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127305761272f612405565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612797602583611f6f565b91506127a28261273b565b604082019050919050565b600060208201905081810360008301526127c68161278a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612829602683611f6f565b9150612834826127cd565b604082019050919050565b600060208201905081810360008301526128588161281c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006128bb602483611f6f565b91506128c68261285f565b604082019050919050565b600060208201905081810360008301526128ea816128ae565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061294d602283611f6f565b9150612958826128f1565b604082019050919050565b6000602082019050818103600083015261297c81612940565b9050919050565b7f455243323032303a207472616e736665722066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b60006129df602783611f6f565b91506129ea82612983565b604082019050919050565b60006020820190508181036000830152612a0e816129d2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a71602383611f6f565b9150612a7c82612a15565b604082019050919050565b60006020820190508181036000830152612aa081612a64565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612b03602683611f6f565b9150612b0e82612aa7565b604082019050919050565b60006020820190508181036000830152612b3281612af6565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000612b6f601483611f6f565b9150612b7a82612b39565b602082019050919050565b60006020820190508181036000830152612b9e81612b62565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c01602183611f6f565b9150612c0c82612ba5565b604082019050919050565b60006020820190508181036000830152612c3081612bf4565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c93602283611f6f565b9150612c9e82612c37565b604082019050919050565b60006020820190508181036000830152612cc281612c86565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000612cff601083611f6f565b9150612d0a82612cc9565b602082019050919050565b60006020820190508181036000830152612d2e81612cf2565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612d6b601f83611f6f565b9150612d7682612d35565b602082019050919050565b60006020820190508181036000830152612d9a81612d5e565b905091905056fea2646970667358221220dd3cb3ce74cdc0ee37ba5006fb349f1fab3e01c01ad185c8e05bab2a88b59e5364736f6c634300080a0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101425760003560e01c806370a08231116100b857806395d89b411161007c57806395d89b411461033f578063a0712d681461035d578063a457c2d714610379578063a9059cbb146103a9578063dd62ed3e146103d9578063f2fde38b1461040957610142565b806370a08231146102c1578063715018a6146102f15780637ded4d6a146102fb5780638456cb59146103175780638da5cb5b1461032157610142565b8063395093511161010a57806339509351146102015780633bbac579146102315780633f4ba83a1461026157806342966c681461026b5780634303443d146102875780635c975abb146102a357610142565b806306fdde0314610147578063095ea7b31461016557806318160ddd1461019557806323b872dd146101b3578063313ce567146101e3575b600080fd5b61014f610425565b60405161015c9190611ffd565b60405180910390f35b61017f600480360381019061017a91906120b8565b6104b7565b60405161018c9190612113565b60405180910390f35b61019d6104d5565b6040516101aa919061213d565b60405180910390f35b6101cd60048036038101906101c89190612158565b6104df565b6040516101da9190612113565b60405180910390f35b6101eb610787565b6040516101f891906121c7565b60405180910390f35b61021b600480360381019061021691906120b8565b610790565b6040516102289190612113565b60405180910390f35b61024b600480360381019061024691906121e2565b61083c565b6040516102589190612113565b60405180910390f35b610269610892565b005b6102856004803603810190610280919061220f565b610918565b005b6102a1600480360381019061029c91906121e2565b6109a1565b005b6102ab610beb565b6040516102b89190612113565b60405180910390f35b6102db60048036038101906102d691906121e2565b610c01565b6040516102e8919061213d565b60405180910390f35b6102f9610c4a565b005b610315600480360381019061031091906121e2565b610d84565b005b61031f611075565b005b6103296110fb565b604051610336919061224b565b60405180910390f35b610347611124565b6040516103549190611ffd565b60405180910390f35b6103776004803603810190610372919061220f565b6111b6565b005b610393600480360381019061038e91906120b8565b61123f565b6040516103a09190612113565b60405180910390f35b6103c360048036038101906103be91906120b8565b611333565b6040516103d09190612113565b60405180910390f35b6103f360048036038101906103ee9190612266565b61146b565b604051610400919061213d565b60405180910390f35b610423600480360381019061041e91906121e2565b6114f2565b005b606060048054610434906122d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610460906122d5565b80156104ad5780601f10610482576101008083540402835291602001916104ad565b820191906000526020600020905b81548152906001019060200180831161049057829003601f168201915b5050505050905090565b60006104cb6104c461169b565b84846116a3565b6001905092915050565b6000600354905090565b6000600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561056e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056590612353565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156105fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f290612353565b60405180910390fd5b600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610688576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161067f90612353565b60405180910390fd5b61069384848461186e565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106de61169b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561075e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610755906123e5565b60405180910390fd5b61077b8561076a61169b565b85846107769190612434565b6116a3565b60019150509392505050565b60006012905090565b600061083261079d61169b565b8484600260006107ab61169b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461082d9190612468565b6116a3565b6001905092915050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61089a61169b565b73ffffffffffffffffffffffffffffffffffffffff166108b86110fb565b73ffffffffffffffffffffffffffffffffffffffff161461090e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109059061250a565b60405180910390fd5b610916611af0565b565b61092061169b565b73ffffffffffffffffffffffffffffffffffffffff1661093e6110fb565b73ffffffffffffffffffffffffffffffffffffffff1614610994576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098b9061250a565b60405180910390fd5b61099e3382611b91565b50565b6109a961169b565b73ffffffffffffffffffffffffffffffffffffffff166109c76110fb565b73ffffffffffffffffffffffffffffffffffffffff1614610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a149061250a565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a979061259c565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2490612608565b60405180910390fd5b6001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060149054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c5261169b565b73ffffffffffffffffffffffffffffffffffffffff16610c706110fb565b73ffffffffffffffffffffffffffffffffffffffff1614610cc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbd9061250a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d8c61169b565b73ffffffffffffffffffffffffffffffffffffffff16610daa6110fb565b73ffffffffffffffffffffffffffffffffffffffff1614610e00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df79061250a565b60405180910390fd5b600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8390612674565b60405180910390fd5b60005b600780549050811015611071578173ffffffffffffffffffffffffffffffffffffffff1660078281548110610ec757610ec6612694565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561105e5760076001600780549050610f229190612434565b81548110610f3357610f32612694565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660078281548110610f7257610f71612694565b5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506007805480611024576110236126c3565b5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611071565b8080611069906126f2565b915050610e8f565b5050565b61107d61169b565b73ffffffffffffffffffffffffffffffffffffffff1661109b6110fb565b73ffffffffffffffffffffffffffffffffffffffff16146110f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e89061250a565b60405180910390fd5b6110f9611d67565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054611133906122d5565b80601f016020809104026020016040519081016040528092919081815260200182805461115f906122d5565b80156111ac5780601f10611181576101008083540402835291602001916111ac565b820191906000526020600020905b81548152906001019060200180831161118f57829003601f168201915b5050505050905090565b6111be61169b565b73ffffffffffffffffffffffffffffffffffffffff166111dc6110fb565b73ffffffffffffffffffffffffffffffffffffffff1614611232576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112299061250a565b60405180910390fd5b61123c3382611e0a565b50565b6000806002600061124e61169b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561130b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611302906127ad565b60405180910390fd5b61132861131661169b565b8585846113239190612434565b6116a3565b600191505092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156113c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b990612353565b60405180910390fd5b600660003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561144f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144690612353565b60405180910390fd5b61146161145a61169b565b848461186e565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114fa61169b565b73ffffffffffffffffffffffffffffffffffffffff166115186110fb565b73ffffffffffffffffffffffffffffffffffffffff161461156e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115659061250a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d59061283f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170a906128d1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90612963565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611861919061213d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118d5906129f5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561194e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194590612a87565b60405180910390fd5b611959838383611f5f565b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156119e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d790612b19565b60405180910390fd5b81816119ec9190612434565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a7e9190612468565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ae2919061213d565b60405180910390a350505050565b611af8610beb565b611b37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2e90612b85565b60405180910390fd5b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611b7a61169b565b604051611b87919061224b565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf890612c17565b60405180910390fd5b611c0d82600083611f5f565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8b90612ca9565b60405180910390fd5b8181611ca09190612434565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160036000828254611cf59190612434565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611d5a919061213d565b60405180910390a3505050565b611d6f610beb565b15611daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da690612d15565b60405180910390fd5b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611df361169b565b604051611e00919061224b565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611e7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7190612d81565b60405180910390fd5b611e8660008383611f5f565b8060036000828254611e989190612468565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611eee9190612468565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611f53919061213d565b60405180910390a35050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f9e578082015181840152602081019050611f83565b83811115611fad576000848401525b50505050565b6000601f19601f8301169050919050565b6000611fcf82611f64565b611fd98185611f6f565b9350611fe9818560208601611f80565b611ff281611fb3565b840191505092915050565b600060208201905081810360008301526120178184611fc4565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061204f82612024565b9050919050565b61205f81612044565b811461206a57600080fd5b50565b60008135905061207c81612056565b92915050565b6000819050919050565b61209581612082565b81146120a057600080fd5b50565b6000813590506120b28161208c565b92915050565b600080604083850312156120cf576120ce61201f565b5b60006120dd8582860161206d565b92505060206120ee858286016120a3565b9150509250929050565b60008115159050919050565b61210d816120f8565b82525050565b60006020820190506121286000830184612104565b92915050565b61213781612082565b82525050565b6000602082019050612152600083018461212e565b92915050565b6000806000606084860312156121715761217061201f565b5b600061217f8682870161206d565b93505060206121908682870161206d565b92505060406121a1868287016120a3565b9150509250925092565b600060ff82169050919050565b6121c1816121ab565b82525050565b60006020820190506121dc60008301846121b8565b92915050565b6000602082840312156121f8576121f761201f565b5b60006122068482850161206d565b91505092915050565b6000602082840312156122255761222461201f565b5b6000612233848285016120a3565b91505092915050565b61224581612044565b82525050565b6000602082019050612260600083018461223c565b92915050565b6000806040838503121561227d5761227c61201f565b5b600061228b8582860161206d565b925050602061229c8582860161206d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806122ed57607f821691505b60208210811415612301576123006122a6565b5b50919050565b7f596f752068617665206e6f20706f776572206865726521000000000000000000600082015250565b600061233d601783611f6f565b915061234882612307565b602082019050919050565b6000602082019050818103600083015261236c81612330565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006123cf602883611f6f565b91506123da82612373565b604082019050919050565b600060208201905081810360008301526123fe816123c2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061243f82612082565b915061244a83612082565b92508282101561245d5761245c612405565b5b828203905092915050565b600061247382612082565b915061247e83612082565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156124b3576124b2612405565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006124f4602083611f6f565b91506124ff826124be565b602082019050919050565b60006020820190508181036000830152612523816124e7565b9050919050565b7f57652063616e206e6f7420626c61636b6c69737420556e697377617020726f7560008201527f7465722e00000000000000000000000000000000000000000000000000000000602082015250565b6000612586602483611f6f565b91506125918261252a565b604082019050919050565b600060208201905081810360008301526125b581612579565b9050919050565b7f4163636f756e7420697320616c726561647920626c61636b6c69737465640000600082015250565b60006125f2601e83611f6f565b91506125fd826125bc565b602082019050919050565b60006020820190508181036000830152612621816125e5565b9050919050565b7f4163636f756e74206973206e6f7420626c61636b6c6973746564000000000000600082015250565b600061265e601a83611f6f565b915061266982612628565b602082019050919050565b6000602082019050818103600083015261268d81612651565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b60006126fd82612082565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127305761272f612405565b5b600182019050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000612797602583611f6f565b91506127a28261273b565b604082019050919050565b600060208201905081810360008301526127c68161278a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612829602683611f6f565b9150612834826127cd565b604082019050919050565b600060208201905081810360008301526128588161281c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006128bb602483611f6f565b91506128c68261285f565b604082019050919050565b600060208201905081810360008301526128ea816128ae565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061294d602283611f6f565b9150612958826128f1565b604082019050919050565b6000602082019050818103600083015261297c81612940565b9050919050565b7f455243323032303a207472616e736665722066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b60006129df602783611f6f565b91506129ea82612983565b604082019050919050565b60006020820190508181036000830152612a0e816129d2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612a71602383611f6f565b9150612a7c82612a15565b604082019050919050565b60006020820190508181036000830152612aa081612a64565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612b03602683611f6f565b9150612b0e82612aa7565b604082019050919050565b60006020820190508181036000830152612b3281612af6565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000612b6f601483611f6f565b9150612b7a82612b39565b602082019050919050565b60006020820190508181036000830152612b9e81612b62565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c01602183611f6f565b9150612c0c82612ba5565b604082019050919050565b60006020820190508181036000830152612c3081612bf4565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c93602283611f6f565b9150612c9e82612c37565b604082019050919050565b60006020820190508181036000830152612cc281612c86565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000612cff601083611f6f565b9150612d0a82612cc9565b602082019050919050565b60006020820190508181036000830152612d2e81612cf2565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612d6b601f83611f6f565b9150612d7682612d35565b602082019050919050565b60006020820190508181036000830152612d9a81612d5e565b905091905056fea2646970667358221220dd3cb3ce74cdc0ee37ba5006fb349f1fab3e01c01ad185c8e05bab2a88b59e5364736f6c634300080a0033
Deployed Bytecode Sourcemap
10465:11464:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11538:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13859:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12658:108;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14510:649;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12500:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16450:215;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11358:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21162:65;;;:::i;:::-;;20204:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15169:352;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5772:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12829:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8618:148;;;:::i;:::-;;15533:500;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21093:61;;;:::i;:::-;;7967:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11757:104;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19281:91;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17168:377;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13169:329;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13561:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8921:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11538:100;11592:13;11625:5;11618:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11538:100;:::o;13859:169::-;13942:4;13959:39;13968:12;:10;:12::i;:::-;13982:7;13991:6;13959:8;:39::i;:::-;14016:4;14009:11;;13859:169;;;;:::o;12658:108::-;12719:7;12746:12;;12739:19;;12658:108;:::o;14510:649::-;14616:4;14642:17;:25;14660:6;14642:25;;;;;;;;;;;;;;;;;;;;;;;;;14641:26;14633:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;14715:17;:28;14733:9;14715:28;;;;;;;;;;;;;;;;;;;;;;;;;14714:29;14706:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14791:17;:28;14809:9;14791:28;;;;;;;;;;;;;;;;;;;;;;;;;14790:29;14782:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;14860:36;14870:6;14878:9;14889:6;14860:9;:36::i;:::-;14909:24;14936:11;:19;14948:6;14936:19;;;;;;;;;;;;;;;:33;14956:12;:10;:12::i;:::-;14936:33;;;;;;;;;;;;;;;;14909:60;;15008:6;14988:16;:26;;14980:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;15070:57;15079:6;15087:12;:10;:12::i;:::-;15120:6;15101:16;:25;;;;:::i;:::-;15070:8;:57::i;:::-;15147:4;15140:11;;;14510:649;;;;;:::o;12500:93::-;12558:5;12583:2;12576:9;;12500:93;:::o;16450:215::-;16538:4;16555:80;16564:12;:10;:12::i;:::-;16578:7;16624:10;16587:11;:25;16599:12;:10;:12::i;:::-;16587:25;;;;;;;;;;;;;;;:34;16613:7;16587:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;16555:8;:80::i;:::-;16653:4;16646:11;;16450:215;;;;:::o;11358:112::-;11411:4;11436:17;:26;11454:7;11436:26;;;;;;;;;;;;;;;;;;;;;;;;;11428:34;;11358:112;;;:::o;21162:65::-;8198:12;:10;:12::i;:::-;8187:23;;:7;:5;:7::i;:::-;:23;;;8179:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21209:10:::1;:8;:10::i;:::-;21162:65::o:0;20204:91::-;8198:12;:10;:12::i;:::-;8187:23;;:7;:5;:7::i;:::-;:23;;;8179:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20262:25:::1;20268:10;20280:6;20262:5;:25::i;:::-;20204:91:::0;:::o;15169:352::-;8198:12;:10;:12::i;:::-;8187:23;;:7;:5;:7::i;:::-;:23;;;8179:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15264:42:::1;15253:53;;:7;:53;;;;15245:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;15367:17;:26;15385:7;15367:26;;;;;;;;;;;;;;;;;;;;;;;;;15366:27;15358:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15468:4;15439:17;:26;15457:7;15439:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;15483:16;15505:7;15483:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15169:352:::0;:::o;5772:86::-;5819:4;5843:7;;;;;;;;;;;5836:14;;5772:86;:::o;12829:127::-;12903:7;12930:9;:18;12940:7;12930:18;;;;;;;;;;;;;;;;12923:25;;12829:127;;;:::o;8618:148::-;8198:12;:10;:12::i;:::-;8187:23;;:7;:5;:7::i;:::-;:23;;;8179:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8725:1:::1;8688:40;;8709:6;::::0;::::1;;;;;;;;8688:40;;;;;;;;;;;;8756:1;8739:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;8618:148::o:0;15533:500::-;8198:12;:10;:12::i;:::-;8187:23;;:7;:5;:7::i;:::-;:23;;;8179:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15622:17:::1;:26;15640:7;15622:26;;;;;;;;;;;;;;;;;;;;;;;;;15614:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;15695:9;15690:336;15714:16;:23;;;;15710:1;:27;15690:336;;;15786:7;15763:30;;:16;15780:1;15763:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:30;;;15759:256;;;15836:16;15879:1;15853:16;:23;;;;:27;;;;:::i;:::-;15836:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15814:16;15831:1;15814:19;;;;;;;;:::i;:::-;;;;;;;;;;:67;;;;;;;;;;;;;;;;;;15929:5;15900:17;:26;15918:7;15900:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;15953:16;:22;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;15994:5;;15759:256;15739:3;;;;;:::i;:::-;;;;15690:336;;;;15533:500:::0;:::o;21093:61::-;8198:12;:10;:12::i;:::-;8187:23;;:7;:5;:7::i;:::-;:23;;;8179:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21138:8:::1;:6;:8::i;:::-;21093:61::o:0;7967:87::-;8013:7;8040:6;;;;;;;;;;;8033:13;;7967:87;:::o;11757:104::-;11813:13;11846:7;11839:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11757:104;:::o;19281:91::-;8198:12;:10;:12::i;:::-;8187:23;;:7;:5;:7::i;:::-;:23;;;8179:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19339:25:::1;19345:10;19357:6;19339:5;:25::i;:::-;19281:91:::0;:::o;17168:377::-;17261:4;17278:24;17305:11;:25;17317:12;:10;:12::i;:::-;17305:25;;;;;;;;;;;;;;;:34;17331:7;17305:34;;;;;;;;;;;;;;;;17278:61;;17378:15;17358:16;:35;;17350:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17446:67;17455:12;:10;:12::i;:::-;17469:7;17497:15;17478:16;:34;;;;:::i;:::-;17446:8;:67::i;:::-;17533:4;17526:11;;;17168:377;;;;:::o;13169:329::-;13255:4;13283:17;:28;13301:9;13283:28;;;;;;;;;;;;;;;;;;;;;;;;;13282:29;13274:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13359:17;:28;13377:9;13359:28;;;;;;;;;;;;;;;;;;;;;;;;;13358:29;13350:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13426:42;13436:12;:10;:12::i;:::-;13450:9;13461:6;13426:9;:42::i;:::-;13486:4;13479:11;;13169:329;;;;:::o;13561:151::-;13650:7;13677:11;:18;13689:5;13677:18;;;;;;;;;;;;;;;:27;13696:7;13677:27;;;;;;;;;;;;;;;;13670:34;;13561:151;;;;:::o;8921:244::-;8198:12;:10;:12::i;:::-;8187:23;;:7;:5;:7::i;:::-;:23;;;8179:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9030:1:::1;9010:22;;:8;:22;;;;9002:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9120:8;9091:38;;9112:6;::::0;::::1;;;;;;;;9091:38;;;;;;;;;;;;9149:8;9140:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;8921:244:::0;:::o;4441:98::-;4494:7;4521:10;4514:17;;4441:98;:::o;20739:346::-;20858:1;20841:19;;:5;:19;;;;20833:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20939:1;20920:21;;:7;:21;;;;20912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21023:6;20993:11;:18;21005:5;20993:18;;;;;;;;;;;;;;;:27;21012:7;20993:27;;;;;;;;;;;;;;;:36;;;;21061:7;21045:32;;21054:5;21045:32;;;21070:6;21045:32;;;;;;:::i;:::-;;;;;;;;20739:346;;;:::o;18035:606::-;18159:1;18141:20;;:6;:20;;;;18133:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18245:1;18224:23;;:9;:23;;;;18216:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18300:47;18321:6;18329:9;18340:6;18300:20;:47::i;:::-;18360:21;18384:9;:17;18394:6;18384:17;;;;;;;;;;;;;;;;18360:41;;18437:6;18420:13;:23;;18412:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;18533:6;18517:13;:22;;;;:::i;:::-;18497:9;:17;18507:6;18497:17;;;;;;;;;;;;;;;:42;;;;18574:6;18550:9;:20;18560:9;18550:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;18615:9;18598:35;;18607:6;18598:35;;;18626:6;18598:35;;;;;;:::i;:::-;;;;;;;;18122:519;18035:606;;;:::o;6831:120::-;6375:8;:6;:8::i;:::-;6367:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;6900:5:::1;6890:7:::0;::::1;:15;;;;;;;;;;;;;;;;;;6921:22;6930:12;:10;:12::i;:::-;6921:22;;;;;;:::i;:::-;;;;;;;;6831:120::o:0;19705:494::-;19808:1;19789:21;;:7;:21;;;;19781:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19861:49;19882:7;19899:1;19903:6;19861:20;:49::i;:::-;19923:22;19948:9;:18;19958:7;19948:18;;;;;;;;;;;;;;;;19923:43;;20003:6;19985:14;:24;;19977:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;20097:6;20080:14;:23;;;;:::i;:::-;20059:9;:18;20069:7;20059:18;;;;;;;;;;;;;;;:44;;;;20130:6;20114:12;;:22;;;;;;;:::i;:::-;;;;;;;;20180:1;20154:37;;20163:7;20154:37;;;20184:6;20154:37;;;;;;:::i;:::-;;;;;;;;19770:429;19705:494;;:::o;6572:118::-;6098:8;:6;:8::i;:::-;6097:9;6089:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6642:4:::1;6632:7;;:14;;;;;;;;;;;;;;;;;;6662:20;6669:12;:10;:12::i;:::-;6662:20;;;;;;:::i;:::-;;;;;;;;6572:118::o:0;18936:338::-;19039:1;19020:21;;:7;:21;;;;19012:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;19090:49;19119:1;19123:7;19132:6;19090:20;:49::i;:::-;19168:6;19152:12;;:22;;;;;;;:::i;:::-;;;;;;;;19207:6;19185:9;:18;19195:7;19185:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;19250:7;19229:37;;19246:1;19229:37;;;19259:6;19229:37;;;;;;:::i;:::-;;;;;;;;18936:338;;:::o;21834:92::-;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:::-;5295:6;5344:2;5332:9;5323:7;5319:23;5315:32;5312:119;;;5350:79;;:::i;:::-;5312:119;5470:1;5495:53;5540:7;5531:6;5520:9;5516:22;5495:53;:::i;:::-;5485:63;;5441:117;5236:329;;;;:::o;5571:118::-;5658:24;5676:5;5658:24;:::i;:::-;5653:3;5646:37;5571:118;;:::o;5695:222::-;5788:4;5826:2;5815:9;5811:18;5803:26;;5839:71;5907:1;5896:9;5892:17;5883:6;5839:71;:::i;:::-;5695:222;;;;:::o;5923:474::-;5991:6;5999;6048:2;6036:9;6027:7;6023:23;6019:32;6016:119;;;6054:79;;:::i;:::-;6016:119;6174:1;6199:53;6244:7;6235:6;6224:9;6220:22;6199:53;:::i;:::-;6189:63;;6145:117;6301:2;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6272:118;5923:474;;;;;:::o;6403:180::-;6451:77;6448:1;6441:88;6548:4;6545:1;6538:15;6572:4;6569:1;6562:15;6589:320;6633:6;6670:1;6664:4;6660:12;6650:22;;6717:1;6711:4;6707:12;6738:18;6728:81;;6794:4;6786:6;6782:17;6772:27;;6728:81;6856:2;6848:6;6845:14;6825:18;6822:38;6819:84;;;6875:18;;:::i;:::-;6819:84;6640:269;6589:320;;;:::o;6915:173::-;7055:25;7051:1;7043:6;7039:14;7032:49;6915:173;:::o;7094:366::-;7236:3;7257:67;7321:2;7316:3;7257:67;:::i;:::-;7250:74;;7333:93;7422:3;7333:93;:::i;:::-;7451:2;7446:3;7442:12;7435:19;;7094:366;;;:::o;7466:419::-;7632:4;7670:2;7659:9;7655:18;7647:26;;7719:9;7713:4;7709:20;7705:1;7694:9;7690:17;7683:47;7747:131;7873:4;7747:131;:::i;:::-;7739:139;;7466:419;;;:::o;7891:227::-;8031:34;8027:1;8019:6;8015:14;8008:58;8100:10;8095:2;8087:6;8083:15;8076:35;7891:227;:::o;8124:366::-;8266:3;8287:67;8351:2;8346:3;8287:67;:::i;:::-;8280:74;;8363:93;8452:3;8363:93;:::i;:::-;8481:2;8476:3;8472:12;8465:19;;8124:366;;;:::o;8496:419::-;8662:4;8700:2;8689:9;8685:18;8677:26;;8749:9;8743:4;8739:20;8735:1;8724:9;8720:17;8713:47;8777:131;8903:4;8777:131;:::i;:::-;8769:139;;8496:419;;;:::o;8921:180::-;8969:77;8966:1;8959:88;9066:4;9063:1;9056:15;9090:4;9087:1;9080:15;9107:191;9147:4;9167:20;9185:1;9167:20;:::i;:::-;9162:25;;9201:20;9219:1;9201:20;:::i;:::-;9196:25;;9240:1;9237;9234:8;9231:34;;;9245:18;;:::i;:::-;9231:34;9290:1;9287;9283:9;9275:17;;9107:191;;;;:::o;9304:305::-;9344:3;9363:20;9381:1;9363:20;:::i;:::-;9358:25;;9397:20;9415:1;9397:20;:::i;:::-;9392:25;;9551:1;9483:66;9479:74;9476:1;9473:81;9470:107;;;9557:18;;:::i;:::-;9470:107;9601:1;9598;9594:9;9587:16;;9304:305;;;;:::o;9615:182::-;9755:34;9751:1;9743:6;9739:14;9732:58;9615:182;:::o;9803:366::-;9945:3;9966:67;10030:2;10025:3;9966:67;:::i;:::-;9959:74;;10042:93;10131:3;10042:93;:::i;:::-;10160:2;10155:3;10151:12;10144:19;;9803:366;;;:::o;10175:419::-;10341:4;10379:2;10368:9;10364:18;10356:26;;10428:9;10422:4;10418:20;10414:1;10403:9;10399:17;10392:47;10456:131;10582:4;10456:131;:::i;:::-;10448:139;;10175:419;;;:::o;10600:223::-;10740:34;10736:1;10728:6;10724:14;10717:58;10809:6;10804:2;10796:6;10792:15;10785:31;10600:223;:::o;10829:366::-;10971:3;10992:67;11056:2;11051:3;10992:67;:::i;:::-;10985:74;;11068:93;11157:3;11068:93;:::i;:::-;11186:2;11181:3;11177:12;11170:19;;10829:366;;;:::o;11201:419::-;11367:4;11405:2;11394:9;11390:18;11382:26;;11454:9;11448:4;11444:20;11440:1;11429:9;11425:17;11418:47;11482:131;11608:4;11482:131;:::i;:::-;11474:139;;11201:419;;;:::o;11626:180::-;11766:32;11762:1;11754:6;11750:14;11743:56;11626:180;:::o;11812:366::-;11954:3;11975:67;12039:2;12034:3;11975:67;:::i;:::-;11968:74;;12051:93;12140:3;12051:93;:::i;:::-;12169:2;12164:3;12160:12;12153:19;;11812:366;;;:::o;12184:419::-;12350:4;12388:2;12377:9;12373:18;12365:26;;12437:9;12431:4;12427:20;12423:1;12412:9;12408:17;12401:47;12465:131;12591:4;12465:131;:::i;:::-;12457:139;;12184:419;;;:::o;12609:176::-;12749:28;12745:1;12737:6;12733:14;12726:52;12609:176;:::o;12791:366::-;12933:3;12954:67;13018:2;13013:3;12954:67;:::i;:::-;12947:74;;13030:93;13119:3;13030:93;:::i;:::-;13148:2;13143:3;13139:12;13132:19;;12791:366;;;:::o;13163:419::-;13329:4;13367:2;13356:9;13352:18;13344:26;;13416:9;13410:4;13406:20;13402:1;13391:9;13387:17;13380:47;13444:131;13570:4;13444:131;:::i;:::-;13436:139;;13163:419;;;:::o;13588:180::-;13636:77;13633:1;13626:88;13733:4;13730:1;13723:15;13757:4;13754:1;13747:15;13774:180;13822:77;13819:1;13812:88;13919:4;13916:1;13909:15;13943:4;13940:1;13933:15;13960:233;13999:3;14022:24;14040:5;14022:24;:::i;:::-;14013:33;;14068:66;14061:5;14058:77;14055:103;;;14138:18;;:::i;:::-;14055:103;14185:1;14178:5;14174:13;14167:20;;13960:233;;;:::o;14199:224::-;14339:34;14335:1;14327:6;14323:14;14316:58;14408:7;14403:2;14395:6;14391:15;14384:32;14199:224;:::o;14429:366::-;14571:3;14592:67;14656:2;14651:3;14592:67;:::i;:::-;14585:74;;14668:93;14757:3;14668:93;:::i;:::-;14786:2;14781:3;14777:12;14770:19;;14429:366;;;:::o;14801:419::-;14967:4;15005:2;14994:9;14990:18;14982:26;;15054:9;15048:4;15044:20;15040:1;15029:9;15025:17;15018:47;15082:131;15208:4;15082:131;:::i;:::-;15074:139;;14801:419;;;:::o;15226:225::-;15366:34;15362:1;15354:6;15350:14;15343:58;15435:8;15430:2;15422:6;15418:15;15411:33;15226:225;:::o;15457:366::-;15599:3;15620:67;15684:2;15679:3;15620:67;:::i;:::-;15613:74;;15696:93;15785:3;15696:93;:::i;:::-;15814:2;15809:3;15805:12;15798:19;;15457:366;;;:::o;15829:419::-;15995:4;16033:2;16022:9;16018:18;16010:26;;16082:9;16076:4;16072:20;16068:1;16057:9;16053:17;16046:47;16110:131;16236:4;16110:131;:::i;:::-;16102:139;;15829:419;;;:::o;16254:223::-;16394:34;16390:1;16382:6;16378:14;16371:58;16463:6;16458:2;16450:6;16446:15;16439:31;16254:223;:::o;16483:366::-;16625:3;16646:67;16710:2;16705:3;16646:67;:::i;:::-;16639:74;;16722:93;16811:3;16722:93;:::i;:::-;16840:2;16835:3;16831:12;16824:19;;16483:366;;;:::o;16855:419::-;17021:4;17059:2;17048:9;17044:18;17036:26;;17108:9;17102:4;17098:20;17094:1;17083:9;17079:17;17072:47;17136:131;17262:4;17136:131;:::i;:::-;17128:139;;16855:419;;;:::o;17280:221::-;17420:34;17416:1;17408:6;17404:14;17397:58;17489:4;17484:2;17476:6;17472:15;17465:29;17280:221;:::o;17507:366::-;17649:3;17670:67;17734:2;17729:3;17670:67;:::i;:::-;17663:74;;17746:93;17835:3;17746:93;:::i;:::-;17864:2;17859:3;17855:12;17848:19;;17507:366;;;:::o;17879:419::-;18045:4;18083:2;18072:9;18068:18;18060:26;;18132:9;18126:4;18122:20;18118:1;18107:9;18103:17;18096:47;18160:131;18286:4;18160:131;:::i;:::-;18152:139;;17879:419;;;:::o;18304:226::-;18444:34;18440:1;18432:6;18428:14;18421:58;18513:9;18508:2;18500:6;18496:15;18489:34;18304:226;:::o;18536:366::-;18678:3;18699:67;18763:2;18758:3;18699:67;:::i;:::-;18692:74;;18775:93;18864:3;18775:93;:::i;:::-;18893:2;18888:3;18884:12;18877:19;;18536:366;;;:::o;18908:419::-;19074:4;19112:2;19101:9;19097:18;19089:26;;19161:9;19155:4;19151:20;19147:1;19136:9;19132:17;19125:47;19189:131;19315:4;19189:131;:::i;:::-;19181:139;;18908:419;;;:::o;19333:222::-;19473:34;19469:1;19461:6;19457:14;19450:58;19542:5;19537:2;19529:6;19525:15;19518:30;19333:222;:::o;19561:366::-;19703:3;19724:67;19788:2;19783:3;19724:67;:::i;:::-;19717:74;;19800:93;19889:3;19800:93;:::i;:::-;19918:2;19913:3;19909:12;19902:19;;19561:366;;;:::o;19933:419::-;20099:4;20137:2;20126:9;20122:18;20114:26;;20186:9;20180:4;20176:20;20172:1;20161:9;20157:17;20150:47;20214:131;20340:4;20214:131;:::i;:::-;20206:139;;19933:419;;;:::o;20358:225::-;20498:34;20494:1;20486:6;20482:14;20475:58;20567:8;20562:2;20554:6;20550:15;20543:33;20358:225;:::o;20589:366::-;20731:3;20752:67;20816:2;20811:3;20752:67;:::i;:::-;20745:74;;20828:93;20917:3;20828:93;:::i;:::-;20946:2;20941:3;20937:12;20930:19;;20589:366;;;:::o;20961:419::-;21127:4;21165:2;21154:9;21150:18;21142:26;;21214:9;21208:4;21204:20;21200:1;21189:9;21185:17;21178:47;21242:131;21368:4;21242:131;:::i;:::-;21234:139;;20961:419;;;:::o;21386:170::-;21526:22;21522:1;21514:6;21510:14;21503:46;21386:170;:::o;21562:366::-;21704:3;21725:67;21789:2;21784:3;21725:67;:::i;:::-;21718:74;;21801:93;21890:3;21801:93;:::i;:::-;21919:2;21914:3;21910:12;21903:19;;21562:366;;;:::o;21934:419::-;22100:4;22138:2;22127:9;22123:18;22115:26;;22187:9;22181:4;22177:20;22173:1;22162:9;22158:17;22151:47;22215:131;22341:4;22215:131;:::i;:::-;22207:139;;21934:419;;;:::o;22359:220::-;22499:34;22495:1;22487:6;22483:14;22476:58;22568:3;22563:2;22555:6;22551:15;22544:28;22359:220;:::o;22585:366::-;22727:3;22748:67;22812:2;22807:3;22748:67;:::i;:::-;22741:74;;22824:93;22913:3;22824:93;:::i;:::-;22942:2;22937:3;22933:12;22926:19;;22585:366;;;:::o;22957:419::-;23123:4;23161:2;23150:9;23146:18;23138:26;;23210:9;23204:4;23200:20;23196:1;23185:9;23181:17;23174:47;23238:131;23364:4;23238:131;:::i;:::-;23230:139;;22957:419;;;:::o;23382:221::-;23522:34;23518:1;23510:6;23506:14;23499:58;23591:4;23586:2;23578:6;23574:15;23567:29;23382:221;:::o;23609:366::-;23751:3;23772:67;23836:2;23831:3;23772:67;:::i;:::-;23765:74;;23848:93;23937:3;23848:93;:::i;:::-;23966:2;23961:3;23957:12;23950:19;;23609:366;;;:::o;23981:419::-;24147:4;24185:2;24174:9;24170:18;24162:26;;24234:9;24228:4;24224:20;24220:1;24209:9;24205:17;24198:47;24262:131;24388:4;24262:131;:::i;:::-;24254:139;;23981:419;;;:::o;24406:166::-;24546:18;24542:1;24534:6;24530:14;24523:42;24406:166;:::o;24578:366::-;24720:3;24741:67;24805:2;24800:3;24741:67;:::i;:::-;24734:74;;24817:93;24906:3;24817:93;:::i;:::-;24935:2;24930:3;24926:12;24919:19;;24578:366;;;:::o;24950:419::-;25116:4;25154:2;25143:9;25139:18;25131:26;;25203:9;25197:4;25193:20;25189:1;25178:9;25174:17;25167:47;25231:131;25357:4;25231:131;:::i;:::-;25223:139;;24950:419;;;:::o;25375:181::-;25515:33;25511:1;25503:6;25499:14;25492:57;25375:181;:::o;25562:366::-;25704:3;25725:67;25789:2;25784:3;25725:67;:::i;:::-;25718:74;;25801:93;25890:3;25801:93;:::i;:::-;25919:2;25914:3;25910:12;25903:19;;25562:366;;;:::o;25934:419::-;26100:4;26138:2;26127:9;26123:18;26115:26;;26187:9;26181:4;26177:20;26173:1;26162:9;26158:17;26151:47;26215:131;26341:4;26215:131;:::i;:::-;26207:139;;25934:419;;;:::o
Swarm Source
ipfs://dd3cb3ce74cdc0ee37ba5006fb349f1fab3e01c01ad185c8e05bab2a88b59e53
Loading...
Loading
Loading...
Loading
OVERVIEW
MOZ Coin is a coin that can be used in any transaction and payment that may occur in the MOZ Platform ecosystem.Multichain Portfolio | 30 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.