ERC-20
Overview
Max Total Supply
1,000,000,000 FWIF
Holders
1,735
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,767.790268146448079296 FWIFValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FrogWifHatToken
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-02-25 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.9; interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 amount) external returns (bool); } 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) { return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), 'Ownable: caller is not the owner'); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), 'Ownable: new owner is the zero address'); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } /** * @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 { bool private _paused; /** * @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); /** * @dev The operation failed because the contract is paused. */ error EnforcedPause(); /** * @dev The operation failed because the contract is not paused. */ error ExpectedPause(); /** * @dev Initializes the contract in unpaused state. */ constructor() { _paused = false; } /** * @dev Modifier to make a function callable only when the contract is not paused. * * Requirements: * * - The contract must not be paused. */ modifier whenNotPaused() { _requireNotPaused(); _; } /** * @dev Modifier to make a function callable only when the contract is paused. * * Requirements: * * - The contract must be paused. */ modifier whenPaused() { _requirePaused(); _; } /** * @dev Returns true if the contract is paused, and false otherwise. */ function paused() public view virtual returns (bool) { return _paused; } /** * @dev Throws if the contract is paused. */ function _requireNotPaused() internal view virtual { if (paused()) { revert EnforcedPause(); } } /** * @dev Throws if the contract is not paused. */ function _requirePaused() internal view virtual { if (!paused()) { revert ExpectedPause(); } } /** * @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()); } } contract FrogWifHatToken is Context, IERC20Metadata, Ownable, Pausable { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) public isBlacklisted; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private constant _decimals = 18; uint256 public constant hardCap = 1_000_000_000 * (10 ** _decimals); //1 billion address public _pauser; address public _blacklister; event PauserUpdated(address indexed by, address indexed oldPauser, address indexed newPauser, uint256 timestamp); event BlacklisterUpdated(address indexed by, address indexed oldBlacklister, address indexed newBlacklister, uint256 timestamp); event PauserRenounced(address indexed by, uint256 timestamp); event BlacklisterRenounced(address indexed by, uint256 timestamp); event AddedToBlacklist(address indexed by, address[] users, uint256 timestamp); event RemovedFromBlacklist(address indexed by, address[] users, uint256 timestamp); /** * @dev Contract constructor. * @param name_ The name of the token. * @param symbol_ The symbol of the token. * @param pauser_ Pauser address. * @param blacklister_ Blacklister address. */ constructor(string memory name_, string memory symbol_, address pauser_, address blacklister_) { require(pauser_ != address(0) && blacklister_ != address(0), 'Zero Address'); _name = name_; _symbol = symbol_; _pauser = pauser_; _blacklister = blacklister_; _mint(msg.sender, hardCap); emit PauserUpdated(msg.sender, address(0), pauser_, block.timestamp); emit BlacklisterUpdated(msg.sender, address(0), blacklister_, block.timestamp); } modifier onlyBlacklister() { require(msg.sender == _blacklister, 'Caller is not the blacklister'); _; } modifier onlyPauser() { require(msg.sender == _pauser, 'Caller is not the pauser'); _; } /** * @notice Function for blacklister to blacklist users. * @param _users Array of user addresses to be blacklisted. */ function blacklistUser(address[] calldata _users) external onlyBlacklister { for (uint256 i = 0; i < _users.length; i++) { isBlacklisted[_users[i]] = true; } emit AddedToBlacklist(msg.sender, _users, block.timestamp); } /** * @notice Function for blacklister to remove users from blacklist. * @param _users Array of user addresses to be removed from blacklist. */ function removeUserFromBlacklist(address[] calldata _users) external onlyBlacklister { for (uint256 i = 0; i < _users.length; i++) { isBlacklisted[_users[i]] = false; } emit RemovedFromBlacklist(msg.sender, _users, block.timestamp); } /// @notice Function to pause the contract. function pause() external onlyPauser { _pause(); } /// @notice Function to unpause the contract. function unpause() external onlyPauser { _unpause(); } /** * @notice Function for owner to update the blacklister address. * @param _newBlacklister Address of the new blacklister. */ function updateBlacklister(address _newBlacklister) external onlyOwner { require(_newBlacklister != address(0), 'Zero Address!'); require(_blacklister != address(0), 'Blacklister functionality is renounced!'); address oldBlacklister = _blacklister; _blacklister = _newBlacklister; emit BlacklisterUpdated(msg.sender, oldBlacklister, _newBlacklister, block.timestamp); } /** * @notice Function for owner to update the pauser address. * @param _newPauser Address of the new pauser. */ function updatePauser(address _newPauser) external onlyOwner { require(_newPauser != address(0), 'Zero Address!'); require(_pauser != address(0), 'Pauser functionality is renounced!'); address oldPauser = _pauser; _pauser = _newPauser; emit PauserUpdated(msg.sender, oldPauser, _newPauser, block.timestamp); } /** * @notice Function for owner to renounce the blacklister functionality. * @dev This will make blacklisting functionality unusable. */ function renounceBlacklister() external onlyOwner { _blacklister = address(0); emit BlacklisterRenounced(msg.sender, block.timestamp); } /** * @notice Function for owner to renounce the pauser functionality. * @dev This will make pause/unpause functionality unusable. */ function renouncePauser() external onlyOwner { _pauser = address(0); emit PauserRenounced(msg.sender, block.timestamp); } /** * @dev Returns the name of the token. * @return The name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token. * @return The symbol of the token. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used for token display. * @return The number of decimals. */ function decimals() public view virtual override returns (uint8) { return _decimals; } /** * @dev Returns the total supply of the token. * @return The total supply. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev Returns the balance of the specified account. * @param account The address to check the balance for. * @return The balance of the account. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev Transfers tokens from the caller to a specified recipient. * @param recipient The address to transfer tokens to. * @param amount The amount of tokens to transfer. * @return A boolean value indicating whether the transfer was successful. */ function transfer(address recipient, uint256 amount) public virtual override whenNotPaused returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev Returns the amount of tokens that the spender is allowed to spend on behalf of the owner. * @param from The address that approves the spending. * @param to The address that is allowed to spend. * @return The remaining allowance for the spender. */ function allowance(address from, address to) public view virtual override returns (uint256) { return _allowances[from][to]; } /** * @dev Approves the specified address to spend the specified amount of tokens on behalf of the caller. * @param to The address to approve the spending for. * @param amount The amount of tokens to approve. * @return A boolean value indicating whether the approval was successful. */ function approve(address to, uint256 amount) public virtual override whenNotPaused returns (bool) { _approve(_msgSender(), to, amount); return true; } /** * @dev Transfers tokens from one address to another. * @param sender The address to transfer tokens from. * @param recipient The address to transfer tokens to. * @param amount The amount of tokens to transfer. * @return A boolean value indicating whether the transfer was successful. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override whenNotPaused returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, 'ERC20: transfer amount exceeds allowance'); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } /** * @dev Increases the allowance of the specified address to spend tokens on behalf of the caller. * @param to The address to increase the allowance for. * @param addedValue The amount of tokens to increase the allowance by. * @return A boolean value indicating whether the increase was successful. */ function increaseAllowance(address to, uint256 addedValue) public virtual whenNotPaused returns (bool) { _approve(_msgSender(), to, _allowances[_msgSender()][to] + addedValue); return true; } /** * @dev Decreases the allowance granted by the owner of the tokens to `to` account. * @param to The account allowed to spend the tokens. * @param subtractedValue The amount of tokens to decrease the allowance by. * @return A boolean value indicating whether the operation succeeded. */ function decreaseAllowance(address to, uint256 subtractedValue) public virtual whenNotPaused returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][to]; require(currentAllowance >= subtractedValue, 'ERC20: decreased allowance below zero'); unchecked { _approve(_msgSender(), to, currentAllowance - subtractedValue); } return true; } /** * @dev Transfers `amount` tokens from `sender` to `recipient`. * @param sender The account to transfer tokens from. * @param recipient The account to transfer tokens to. * @param amount The amount of tokens to transfer. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(!isBlacklisted[sender], 'sender blacklisted for this action'); require(!isBlacklisted[recipient], 'recipient blacklisted for this action'); require(amount > 0, 'ERC20: transfer amount zero'); require(sender != address(0), 'ERC20: transfer from the zero address'); require(recipient != address(0), 'ERC20: transfer to the zero address'); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, 'ERC20: transfer amount exceeds balance'); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** * @dev Creates `amount` tokens and assigns them to `account`. * @param account The account to assign the newly created tokens to. * @param amount The amount of tokens to create. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), 'ERC20: mint to the zero address'); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the total supply. * @param account The account to burn tokens from. * @param amount The amount of tokens to burn. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), 'ERC20: burn from the zero address'); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, 'ERC20: burn amount exceeds balance'); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); } /** * @dev Destroys `amount` tokens from the caller's account, reducing the total supply. * @param amount The amount of tokens to burn. */ function burn(uint256 amount) external whenNotPaused { _burn(_msgSender(), amount); } /** * @dev Sets `amount` as the allowance of `to` over the caller's tokens. * @param from The account granting the allowance. * @param to The account allowed to spend the tokens. * @param amount The amount of tokens to allow. */ function _approve(address from, address to, uint256 amount) internal virtual { require(from != address(0), 'ERC20: approve from the zero address'); require(to != address(0), 'ERC20: approve to the zero address'); _allowances[from][to] = amount; emit Approval(from, to, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"pauser_","type":"address"},{"internalType":"address","name":"blacklister_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"by","type":"address"},{"indexed":false,"internalType":"address[]","name":"users","type":"address[]"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"AddedToBlacklist","type":"event"},{"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":"by","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"BlacklisterRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"by","type":"address"},{"indexed":true,"internalType":"address","name":"oldBlacklister","type":"address"},{"indexed":true,"internalType":"address","name":"newBlacklister","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"BlacklisterUpdated","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":"by","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"PauserRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"by","type":"address"},{"indexed":true,"internalType":"address","name":"oldPauser","type":"address"},{"indexed":true,"internalType":"address","name":"newPauser","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"PauserUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"by","type":"address"},{"indexed":false,"internalType":"address[]","name":"users","type":"address[]"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"RemovedFromBlacklist","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":[],"name":"_blacklister","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_pauser","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"}],"name":"blacklistUser","outputs":[],"stateMutability":"nonpayable","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":"to","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hardCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"}],"name":"removeUserFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceBlacklister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renouncePauser","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"},{"inputs":[{"internalType":"address","name":"_newBlacklister","type":"address"}],"name":"updateBlacklister","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newPauser","type":"address"}],"name":"updatePauser","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b5060405162003e5f38038062003e5f8339818101604052810190620000379190620007dc565b620000576200004b6200030c60201b60201c565b6200031460201b60201c565b60008060146101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015620000dc5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b6200011e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200011590620008ed565b60405180910390fd5b8360059080519060200190620001369291906200052a565b5082600690805190602001906200014f9291906200052a565b5081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000204336012600a620001e7919062000aa9565b633b9aca00620001f8919062000afa565b620003d860201b60201c565b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f0396de32a489daf2b10f9a0bed7f609be9cf1012f098f365e37bdbf5a1b380f6426040516200027b919062000b6c565b60405180910390a48073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f3bf02c05ffb53c7cb13a872f22f8bd9a173a5784139d12a02499d95cc3d0011f42604051620002fa919062000b6c565b60405180910390a45050505062000cbd565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156200044b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004429062000bd9565b60405180910390fd5b80600460008282546200045f919062000bfb565b9250508190555080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620004b7919062000bfb565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200051e919062000b6c565b60405180910390a35050565b828054620005389062000c87565b90600052602060002090601f0160209004810192826200055c5760008555620005a8565b82601f106200057757805160ff1916838001178555620005a8565b82800160010185558215620005a8579182015b82811115620005a75782518255916020019190600101906200058a565b5b509050620005b79190620005bb565b5090565b5b80821115620005d6576000816000905550600101620005bc565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200064382620005f8565b810181811067ffffffffffffffff8211171562000665576200066462000609565b5b80604052505050565b60006200067a620005da565b905062000688828262000638565b919050565b600067ffffffffffffffff821115620006ab57620006aa62000609565b5b620006b682620005f8565b9050602081019050919050565b60005b83811015620006e3578082015181840152602081019050620006c6565b83811115620006f3576000848401525b50505050565b6000620007106200070a846200068d565b6200066e565b9050828152602081018484840111156200072f576200072e620005f3565b5b6200073c848285620006c3565b509392505050565b600082601f8301126200075c576200075b620005ee565b5b81516200076e848260208601620006f9565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007a48262000777565b9050919050565b620007b68162000797565b8114620007c257600080fd5b50565b600081519050620007d681620007ab565b92915050565b60008060008060808587031215620007f957620007f8620005e4565b5b600085015167ffffffffffffffff8111156200081a5762000819620005e9565b5b620008288782880162000744565b945050602085015167ffffffffffffffff8111156200084c576200084b620005e9565b5b6200085a8782880162000744565b93505060406200086d87828801620007c5565b92505060606200088087828801620007c5565b91505092959194509250565b600082825260208201905092915050565b7f5a65726f20416464726573730000000000000000000000000000000000000000600082015250565b6000620008d5600c836200088c565b9150620008e2826200089d565b602082019050919050565b600060208201905081810360008301526200090881620008c6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200099d578086048111156200097557620009746200090f565b5b6001851615620009855780820291505b808102905062000995856200093e565b945062000955565b94509492505050565b600082620009b8576001905062000a8b565b81620009c8576000905062000a8b565b8160018114620009e15760028114620009ec5762000a22565b600191505062000a8b565b60ff84111562000a015762000a006200090f565b5b8360020a91508482111562000a1b5762000a1a6200090f565b5b5062000a8b565b5060208310610133831016604e8410600b841016171562000a5c5782820a90508381111562000a565762000a556200090f565b5b62000a8b565b62000a6b84848460016200094b565b9250905081840481111562000a855762000a846200090f565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ab68262000a92565b915062000ac38362000a9c565b925062000af27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009a6565b905092915050565b600062000b078262000a92565b915062000b148362000a92565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b505762000b4f6200090f565b5b828202905092915050565b62000b668162000a92565b82525050565b600060208201905062000b83600083018462000b5b565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000bc1601f836200088c565b915062000bce8262000b89565b602082019050919050565b6000602082019050818103600083015262000bf48162000bb2565b9050919050565b600062000c088262000a92565b915062000c158362000a92565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000c4d5762000c4c6200090f565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ca057607f821691505b6020821081141562000cb75762000cb662000c58565b5b50919050565b6131928062000ccd6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80637a88cca4116100f9578063a457c2d711610097578063dd62ed3e11610071578063dd62ed3e14610497578063f2fde38b146104c7578063fb86a404146104e3578063fe575a8714610501576101c4565b8063a457c2d71461041b578063a9059cbb1461044b578063ad38bf221461047b576101c4565b80638da5cb5b116100d35780638da5cb5b146103a557806391b4af05146103c357806395d89b41146103e1578063994b9a4b146103ff576101c4565b80637a88cca4146103755780638456cb59146103915780638880997e1461039b576101c4565b80633f4ba83a116101665780635c975abb116101405780635c975abb146103135780636ef8d66d1461033157806370a082311461033b578063715018a61461036b576101c4565b80633f4ba83a146102d157806342966c68146102db578063554bab3c146102f7576101c4565b80631bf5fc4d116101a25780631bf5fc4d1461023557806323b872dd14610253578063313ce5671461028357806339509351146102a1576101c4565b806306fdde03146101c9578063095ea7b3146101e757806318160ddd14610217575b600080fd5b6101d1610531565b6040516101de9190611f85565b60405180910390f35b61020160048036038101906101fc9190612045565b6105c3565b60405161020e91906120a0565b60405180910390f35b61021f6105e9565b60405161022c91906120ca565b60405180910390f35b61023d6105f3565b60405161024a91906120f4565b60405180910390f35b61026d6004803603810190610268919061210f565b610619565b60405161027a91906120a0565b60405180910390f35b61028b610719565b604051610298919061217e565b60405180910390f35b6102bb60048036038101906102b69190612045565b610722565b6040516102c891906120a0565b60405180910390f35b6102d96107d6565b005b6102f560048036038101906102f09190612199565b610870565b005b610311600480360381019061030c91906121c6565b61088c565b005b61031b610a7e565b60405161032891906120a0565b60405180910390f35b610339610a94565b005b610355600480360381019061035091906121c6565b610b2e565b60405161036291906120ca565b60405180910390f35b610373610b77565b005b61038f600480360381019061038a9190612258565b610b8b565b005b610399610d12565b005b6103a3610dac565b005b6103ad610e46565b6040516103ba91906120f4565b60405180910390f35b6103cb610e6f565b6040516103d891906120f4565b60405180910390f35b6103e9610e95565b6040516103f69190611f85565b60405180910390f35b61041960048036038101906104149190612258565b610f27565b005b61043560048036038101906104309190612045565b6110ae565b60405161044291906120a0565b60405180910390f35b61046560048036038101906104609190612045565b6111a2565b60405161047291906120a0565b60405180910390f35b610495600480360381019061049091906121c6565b6111c8565b005b6104b160048036038101906104ac91906122a5565b6113ba565b6040516104be91906120ca565b60405180910390f35b6104e160048036038101906104dc91906121c6565b611441565b005b6104eb6114c5565b6040516104f891906120ca565b60405180910390f35b61051b600480360381019061051691906121c6565b6114e5565b60405161052891906120a0565b60405180910390f35b60606005805461054090612314565b80601f016020809104026020016040519081016040528092919081815260200182805461056c90612314565b80156105b95780601f1061058e576101008083540402835291602001916105b9565b820191906000526020600020905b81548152906001019060200180831161059c57829003601f168201915b5050505050905090565b60006105cd611505565b6105df6105d8611546565b848461154e565b6001905092915050565b6000600454905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610623611505565b61062e848484611719565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610679611546565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156106f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f0906123b8565b60405180910390fd5b61070d85610705611546565b85840361154e565b60019150509392505050565b60006012905090565b600061072c611505565b6107cc610737611546565b848460026000610745611546565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107c79190612407565b61154e565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d906124a9565b60405180910390fd5b61086e611ae4565b565b610878611505565b610889610883611546565b82611b46565b50565b610894611d07565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb90612515565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098d906125a7565b60405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f0396de32a489daf2b10f9a0bed7f609be9cf1012f098f365e37bdbf5a1b380f642604051610a7291906120ca565b60405180910390a45050565b60008060149054906101000a900460ff16905090565b610a9c611d07565b6000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f1538f8539aa2a70564e3d5b152ba989cd34b7f804fe4d9c521dfb1420c58543542604051610b2491906120ca565b60405180910390a2565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b7f611d07565b610b896000611d85565b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1290612613565b60405180910390fd5b60005b82829050811015610cbb57600060036000858585818110610c4257610c41612633565b5b9050602002016020810190610c5791906121c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610cb390612662565b915050610c1e565b503373ffffffffffffffffffffffffffffffffffffffff167f3c4e7591a9d73d49d5215894e6a354eeda25ba9abb20515061ccf9196e173915838342604051610d069392919061276e565b60405180910390a25050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d99906124a9565b60405180910390fd5b610daa611e49565b565b610db4611d07565b6000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fa377bf762677193e382b833a0c1d6bd3cb2fc30c30c787b40c999396692c047c42604051610e3c91906120ca565b60405180910390a2565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060068054610ea490612314565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed090612314565b8015610f1d5780601f10610ef257610100808354040283529160200191610f1d565b820191906000526020600020905b815481529060010190602001808311610f0057829003601f168201915b5050505050905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fae90612613565b60405180910390fd5b60005b8282905081101561105757600160036000858585818110610fde57610fdd612633565b5b9050602002016020810190610ff391906121c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061104f90612662565b915050610fba565b503373ffffffffffffffffffffffffffffffffffffffff167f49af2fb2b3e0837b10c80217895d8479b447967a740c129e3e55b40b024b69828383426040516110a29392919061276e565b60405180910390a25050565b60006110b8611505565b6000600260006110c6611546565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117a90612812565b60405180910390fd5b61119761118e611546565b8585840361154e565b600191505092915050565b60006111ac611505565b6111be6111b7611546565b8484611719565b6001905092915050565b6111d0611d07565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123790612515565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c9906128a4565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f3bf02c05ffb53c7cb13a872f22f8bd9a173a5784139d12a02499d95cc3d0011f426040516113ae91906120ca565b60405180910390a45050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611449611d07565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b090612936565b60405180910390fd5b6114c281611d85565b50565b6012600a6114d39190612a89565b633b9aca006114e29190612ad4565b81565b60036020528060005260406000206000915054906101000a900460ff1681565b61150d610a7e565b15611544576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b590612ba0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561162e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162590612c32565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161170c91906120ca565b60405180910390a3505050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d90612cc4565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182a90612d56565b60405180910390fd5b60008111611876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186d90612dc2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dd90612e54565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d90612ee6565b60405180910390fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156119dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d490612f78565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a729190612407565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ad691906120ca565b60405180910390a350505050565b611aec611eac565b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611b2f611546565b604051611b3c91906120f4565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bad9061300a565b60405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c349061309c565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160046000828254611c9591906130bc565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cfa91906120ca565b60405180910390a3505050565b611d0f611546565b73ffffffffffffffffffffffffffffffffffffffff16611d2d610e46565b73ffffffffffffffffffffffffffffffffffffffff1614611d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7a9061313c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611e51611505565b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611e95611546565b604051611ea291906120f4565b60405180910390a1565b611eb4610a7e565b611eea576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f26578082015181840152602081019050611f0b565b83811115611f35576000848401525b50505050565b6000601f19601f8301169050919050565b6000611f5782611eec565b611f618185611ef7565b9350611f71818560208601611f08565b611f7a81611f3b565b840191505092915050565b60006020820190508181036000830152611f9f8184611f4c565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fdc82611fb1565b9050919050565b611fec81611fd1565b8114611ff757600080fd5b50565b60008135905061200981611fe3565b92915050565b6000819050919050565b6120228161200f565b811461202d57600080fd5b50565b60008135905061203f81612019565b92915050565b6000806040838503121561205c5761205b611fa7565b5b600061206a85828601611ffa565b925050602061207b85828601612030565b9150509250929050565b60008115159050919050565b61209a81612085565b82525050565b60006020820190506120b56000830184612091565b92915050565b6120c48161200f565b82525050565b60006020820190506120df60008301846120bb565b92915050565b6120ee81611fd1565b82525050565b600060208201905061210960008301846120e5565b92915050565b60008060006060848603121561212857612127611fa7565b5b600061213686828701611ffa565b935050602061214786828701611ffa565b925050604061215886828701612030565b9150509250925092565b600060ff82169050919050565b61217881612162565b82525050565b6000602082019050612193600083018461216f565b92915050565b6000602082840312156121af576121ae611fa7565b5b60006121bd84828501612030565b91505092915050565b6000602082840312156121dc576121db611fa7565b5b60006121ea84828501611ffa565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612218576122176121f3565b5b8235905067ffffffffffffffff811115612235576122346121f8565b5b602083019150836020820283011115612251576122506121fd565b5b9250929050565b6000806020838503121561226f5761226e611fa7565b5b600083013567ffffffffffffffff81111561228d5761228c611fac565b5b61229985828601612202565b92509250509250929050565b600080604083850312156122bc576122bb611fa7565b5b60006122ca85828601611ffa565b92505060206122db85828601611ffa565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061232c57607f821691505b602082108114156123405761233f6122e5565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006123a2602883611ef7565b91506123ad82612346565b604082019050919050565b600060208201905081810360008301526123d181612395565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124128261200f565b915061241d8361200f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612452576124516123d8565b5b828201905092915050565b7f43616c6c6572206973206e6f7420746865207061757365720000000000000000600082015250565b6000612493601883611ef7565b915061249e8261245d565b602082019050919050565b600060208201905081810360008301526124c281612486565b9050919050565b7f5a65726f20416464726573732100000000000000000000000000000000000000600082015250565b60006124ff600d83611ef7565b915061250a826124c9565b602082019050919050565b6000602082019050818103600083015261252e816124f2565b9050919050565b7f5061757365722066756e6374696f6e616c6974792069732072656e6f756e636560008201527f6421000000000000000000000000000000000000000000000000000000000000602082015250565b6000612591602283611ef7565b915061259c82612535565b604082019050919050565b600060208201905081810360008301526125c081612584565b9050919050565b7f43616c6c6572206973206e6f742074686520626c61636b6c6973746572000000600082015250565b60006125fd601d83611ef7565b9150612608826125c7565b602082019050919050565b6000602082019050818103600083015261262c816125f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061266d8261200f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156126a05761269f6123d8565b5b600182019050919050565b600082825260208201905092915050565b6000819050919050565b6126cf81611fd1565b82525050565b60006126e183836126c6565b60208301905092915050565b60006126fc6020840184611ffa565b905092915050565b6000602082019050919050565b600061271d83856126ab565b9350612728826126bc565b8060005b858110156127615761273e82846126ed565b61274888826126d5565b975061275383612704565b92505060018101905061272c565b5085925050509392505050565b60006040820190508181036000830152612789818587612711565b905061279860208301846120bb565b949350505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006127fc602583611ef7565b9150612807826127a0565b604082019050919050565b6000602082019050818103600083015261282b816127ef565b9050919050565b7f426c61636b6c69737465722066756e6374696f6e616c6974792069732072656e60008201527f6f756e6365642100000000000000000000000000000000000000000000000000602082015250565b600061288e602783611ef7565b915061289982612832565b604082019050919050565b600060208201905081810360008301526128bd81612881565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612920602683611ef7565b915061292b826128c4565b604082019050919050565b6000602082019050818103600083015261294f81612913565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156129ad57808604811115612989576129886123d8565b5b60018516156129985780820291505b80810290506129a685612956565b945061296d565b94509492505050565b6000826129c65760019050612a82565b816129d45760009050612a82565b81600181146129ea57600281146129f457612a23565b6001915050612a82565b60ff841115612a0657612a056123d8565b5b8360020a915084821115612a1d57612a1c6123d8565b5b50612a82565b5060208310610133831016604e8410600b8410161715612a585782820a905083811115612a5357612a526123d8565b5b612a82565b612a658484846001612963565b92509050818404811115612a7c57612a7b6123d8565b5b81810290505b9392505050565b6000612a948261200f565b9150612a9f83612162565b9250612acc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129b6565b905092915050565b6000612adf8261200f565b9150612aea8361200f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b2357612b226123d8565b5b828202905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b8a602483611ef7565b9150612b9582612b2e565b604082019050919050565b60006020820190508181036000830152612bb981612b7d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c1c602283611ef7565b9150612c2782612bc0565b604082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b7f73656e64657220626c61636b6c697374656420666f722074686973206163746960008201527f6f6e000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cae602283611ef7565b9150612cb982612c52565b604082019050919050565b60006020820190508181036000830152612cdd81612ca1565b9050919050565b7f726563697069656e7420626c61636b6c697374656420666f722074686973206160008201527f6374696f6e000000000000000000000000000000000000000000000000000000602082015250565b6000612d40602583611ef7565b9150612d4b82612ce4565b604082019050919050565b60006020820190508181036000830152612d6f81612d33565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74207a65726f0000000000600082015250565b6000612dac601b83611ef7565b9150612db782612d76565b602082019050919050565b60006020820190508181036000830152612ddb81612d9f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e3e602583611ef7565b9150612e4982612de2565b604082019050919050565b60006020820190508181036000830152612e6d81612e31565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ed0602383611ef7565b9150612edb82612e74565b604082019050919050565b60006020820190508181036000830152612eff81612ec3565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612f62602683611ef7565b9150612f6d82612f06565b604082019050919050565b60006020820190508181036000830152612f9181612f55565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ff4602183611ef7565b9150612fff82612f98565b604082019050919050565b6000602082019050818103600083015261302381612fe7565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613086602283611ef7565b91506130918261302a565b604082019050919050565b600060208201905081810360008301526130b581613079565b9050919050565b60006130c78261200f565b91506130d28361200f565b9250828210156130e5576130e46123d8565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613126602083611ef7565b9150613131826130f0565b602082019050919050565b6000602082019050818103600083015261315581613119565b905091905056fea26469706673582212206708c130b773406a5bb70aa5f6520bff6141a005d992759d54d30922dd75662f64736f6c63430008090033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000c169b989cd015390a01873c03ba6aae8341d0abd000000000000000000000000acfa807c93aa76c1d11b997897da043d9019dd91000000000000000000000000000000000000000000000000000000000000000c46726f672057696620486174000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044657494600000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80637a88cca4116100f9578063a457c2d711610097578063dd62ed3e11610071578063dd62ed3e14610497578063f2fde38b146104c7578063fb86a404146104e3578063fe575a8714610501576101c4565b8063a457c2d71461041b578063a9059cbb1461044b578063ad38bf221461047b576101c4565b80638da5cb5b116100d35780638da5cb5b146103a557806391b4af05146103c357806395d89b41146103e1578063994b9a4b146103ff576101c4565b80637a88cca4146103755780638456cb59146103915780638880997e1461039b576101c4565b80633f4ba83a116101665780635c975abb116101405780635c975abb146103135780636ef8d66d1461033157806370a082311461033b578063715018a61461036b576101c4565b80633f4ba83a146102d157806342966c68146102db578063554bab3c146102f7576101c4565b80631bf5fc4d116101a25780631bf5fc4d1461023557806323b872dd14610253578063313ce5671461028357806339509351146102a1576101c4565b806306fdde03146101c9578063095ea7b3146101e757806318160ddd14610217575b600080fd5b6101d1610531565b6040516101de9190611f85565b60405180910390f35b61020160048036038101906101fc9190612045565b6105c3565b60405161020e91906120a0565b60405180910390f35b61021f6105e9565b60405161022c91906120ca565b60405180910390f35b61023d6105f3565b60405161024a91906120f4565b60405180910390f35b61026d6004803603810190610268919061210f565b610619565b60405161027a91906120a0565b60405180910390f35b61028b610719565b604051610298919061217e565b60405180910390f35b6102bb60048036038101906102b69190612045565b610722565b6040516102c891906120a0565b60405180910390f35b6102d96107d6565b005b6102f560048036038101906102f09190612199565b610870565b005b610311600480360381019061030c91906121c6565b61088c565b005b61031b610a7e565b60405161032891906120a0565b60405180910390f35b610339610a94565b005b610355600480360381019061035091906121c6565b610b2e565b60405161036291906120ca565b60405180910390f35b610373610b77565b005b61038f600480360381019061038a9190612258565b610b8b565b005b610399610d12565b005b6103a3610dac565b005b6103ad610e46565b6040516103ba91906120f4565b60405180910390f35b6103cb610e6f565b6040516103d891906120f4565b60405180910390f35b6103e9610e95565b6040516103f69190611f85565b60405180910390f35b61041960048036038101906104149190612258565b610f27565b005b61043560048036038101906104309190612045565b6110ae565b60405161044291906120a0565b60405180910390f35b61046560048036038101906104609190612045565b6111a2565b60405161047291906120a0565b60405180910390f35b610495600480360381019061049091906121c6565b6111c8565b005b6104b160048036038101906104ac91906122a5565b6113ba565b6040516104be91906120ca565b60405180910390f35b6104e160048036038101906104dc91906121c6565b611441565b005b6104eb6114c5565b6040516104f891906120ca565b60405180910390f35b61051b600480360381019061051691906121c6565b6114e5565b60405161052891906120a0565b60405180910390f35b60606005805461054090612314565b80601f016020809104026020016040519081016040528092919081815260200182805461056c90612314565b80156105b95780601f1061058e576101008083540402835291602001916105b9565b820191906000526020600020905b81548152906001019060200180831161059c57829003601f168201915b5050505050905090565b60006105cd611505565b6105df6105d8611546565b848461154e565b6001905092915050565b6000600454905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610623611505565b61062e848484611719565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610679611546565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156106f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f0906123b8565b60405180910390fd5b61070d85610705611546565b85840361154e565b60019150509392505050565b60006012905090565b600061072c611505565b6107cc610737611546565b848460026000610745611546565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107c79190612407565b61154e565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610866576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085d906124a9565b60405180910390fd5b61086e611ae4565b565b610878611505565b610889610883611546565b82611b46565b50565b610894611d07565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fb90612515565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610996576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098d906125a7565b60405180910390fd5b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f0396de32a489daf2b10f9a0bed7f609be9cf1012f098f365e37bdbf5a1b380f642604051610a7291906120ca565b60405180910390a45050565b60008060149054906101000a900460ff16905090565b610a9c611d07565b6000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f1538f8539aa2a70564e3d5b152ba989cd34b7f804fe4d9c521dfb1420c58543542604051610b2491906120ca565b60405180910390a2565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b7f611d07565b610b896000611d85565b565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1290612613565b60405180910390fd5b60005b82829050811015610cbb57600060036000858585818110610c4257610c41612633565b5b9050602002016020810190610c5791906121c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610cb390612662565b915050610c1e565b503373ffffffffffffffffffffffffffffffffffffffff167f3c4e7591a9d73d49d5215894e6a354eeda25ba9abb20515061ccf9196e173915838342604051610d069392919061276e565b60405180910390a25050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d99906124a9565b60405180910390fd5b610daa611e49565b565b610db4611d07565b6000600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff167fa377bf762677193e382b833a0c1d6bd3cb2fc30c30c787b40c999396692c047c42604051610e3c91906120ca565b60405180910390a2565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060068054610ea490612314565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed090612314565b8015610f1d5780601f10610ef257610100808354040283529160200191610f1d565b820191906000526020600020905b815481529060010190602001808311610f0057829003601f168201915b5050505050905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fae90612613565b60405180910390fd5b60005b8282905081101561105757600160036000858585818110610fde57610fdd612633565b5b9050602002016020810190610ff391906121c6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061104f90612662565b915050610fba565b503373ffffffffffffffffffffffffffffffffffffffff167f49af2fb2b3e0837b10c80217895d8479b447967a740c129e3e55b40b024b69828383426040516110a29392919061276e565b60405180910390a25050565b60006110b8611505565b6000600260006110c6611546565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611183576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117a90612812565b60405180910390fd5b61119761118e611546565b8585840361154e565b600191505092915050565b60006111ac611505565b6111be6111b7611546565b8484611719565b6001905092915050565b6111d0611d07565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123790612515565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c9906128a4565b60405180910390fd5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f3bf02c05ffb53c7cb13a872f22f8bd9a173a5784139d12a02499d95cc3d0011f426040516113ae91906120ca565b60405180910390a45050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611449611d07565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b090612936565b60405180910390fd5b6114c281611d85565b50565b6012600a6114d39190612a89565b633b9aca006114e29190612ad4565b81565b60036020528060005260406000206000915054906101000a900460ff1681565b61150d610a7e565b15611544576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b590612ba0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561162e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162590612c32565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161170c91906120ca565b60405180910390a3505050565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d90612cc4565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182a90612d56565b60405180910390fd5b60008111611876576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186d90612dc2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dd90612e54565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194d90612ee6565b60405180910390fd5b6000600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156119dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d490612f78565b60405180910390fd5b818103600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a729190612407565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ad691906120ca565b60405180910390a350505050565b611aec611eac565b60008060146101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611b2f611546565b604051611b3c91906120f4565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bad9061300a565b60405180910390fd5b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c349061309c565b60405180910390fd5b818103600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160046000828254611c9591906130bc565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611cfa91906120ca565b60405180910390a3505050565b611d0f611546565b73ffffffffffffffffffffffffffffffffffffffff16611d2d610e46565b73ffffffffffffffffffffffffffffffffffffffff1614611d83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7a9061313c565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611e51611505565b6001600060146101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611e95611546565b604051611ea291906120f4565b60405180910390a1565b611eb4610a7e565b611eea576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f26578082015181840152602081019050611f0b565b83811115611f35576000848401525b50505050565b6000601f19601f8301169050919050565b6000611f5782611eec565b611f618185611ef7565b9350611f71818560208601611f08565b611f7a81611f3b565b840191505092915050565b60006020820190508181036000830152611f9f8184611f4c565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611fdc82611fb1565b9050919050565b611fec81611fd1565b8114611ff757600080fd5b50565b60008135905061200981611fe3565b92915050565b6000819050919050565b6120228161200f565b811461202d57600080fd5b50565b60008135905061203f81612019565b92915050565b6000806040838503121561205c5761205b611fa7565b5b600061206a85828601611ffa565b925050602061207b85828601612030565b9150509250929050565b60008115159050919050565b61209a81612085565b82525050565b60006020820190506120b56000830184612091565b92915050565b6120c48161200f565b82525050565b60006020820190506120df60008301846120bb565b92915050565b6120ee81611fd1565b82525050565b600060208201905061210960008301846120e5565b92915050565b60008060006060848603121561212857612127611fa7565b5b600061213686828701611ffa565b935050602061214786828701611ffa565b925050604061215886828701612030565b9150509250925092565b600060ff82169050919050565b61217881612162565b82525050565b6000602082019050612193600083018461216f565b92915050565b6000602082840312156121af576121ae611fa7565b5b60006121bd84828501612030565b91505092915050565b6000602082840312156121dc576121db611fa7565b5b60006121ea84828501611ffa565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612218576122176121f3565b5b8235905067ffffffffffffffff811115612235576122346121f8565b5b602083019150836020820283011115612251576122506121fd565b5b9250929050565b6000806020838503121561226f5761226e611fa7565b5b600083013567ffffffffffffffff81111561228d5761228c611fac565b5b61229985828601612202565b92509250509250929050565b600080604083850312156122bc576122bb611fa7565b5b60006122ca85828601611ffa565b92505060206122db85828601611ffa565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061232c57607f821691505b602082108114156123405761233f6122e5565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006123a2602883611ef7565b91506123ad82612346565b604082019050919050565b600060208201905081810360008301526123d181612395565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006124128261200f565b915061241d8361200f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612452576124516123d8565b5b828201905092915050565b7f43616c6c6572206973206e6f7420746865207061757365720000000000000000600082015250565b6000612493601883611ef7565b915061249e8261245d565b602082019050919050565b600060208201905081810360008301526124c281612486565b9050919050565b7f5a65726f20416464726573732100000000000000000000000000000000000000600082015250565b60006124ff600d83611ef7565b915061250a826124c9565b602082019050919050565b6000602082019050818103600083015261252e816124f2565b9050919050565b7f5061757365722066756e6374696f6e616c6974792069732072656e6f756e636560008201527f6421000000000000000000000000000000000000000000000000000000000000602082015250565b6000612591602283611ef7565b915061259c82612535565b604082019050919050565b600060208201905081810360008301526125c081612584565b9050919050565b7f43616c6c6572206973206e6f742074686520626c61636b6c6973746572000000600082015250565b60006125fd601d83611ef7565b9150612608826125c7565b602082019050919050565b6000602082019050818103600083015261262c816125f0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061266d8261200f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156126a05761269f6123d8565b5b600182019050919050565b600082825260208201905092915050565b6000819050919050565b6126cf81611fd1565b82525050565b60006126e183836126c6565b60208301905092915050565b60006126fc6020840184611ffa565b905092915050565b6000602082019050919050565b600061271d83856126ab565b9350612728826126bc565b8060005b858110156127615761273e82846126ed565b61274888826126d5565b975061275383612704565b92505060018101905061272c565b5085925050509392505050565b60006040820190508181036000830152612789818587612711565b905061279860208301846120bb565b949350505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006127fc602583611ef7565b9150612807826127a0565b604082019050919050565b6000602082019050818103600083015261282b816127ef565b9050919050565b7f426c61636b6c69737465722066756e6374696f6e616c6974792069732072656e60008201527f6f756e6365642100000000000000000000000000000000000000000000000000602082015250565b600061288e602783611ef7565b915061289982612832565b604082019050919050565b600060208201905081810360008301526128bd81612881565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612920602683611ef7565b915061292b826128c4565b604082019050919050565b6000602082019050818103600083015261294f81612913565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156129ad57808604811115612989576129886123d8565b5b60018516156129985780820291505b80810290506129a685612956565b945061296d565b94509492505050565b6000826129c65760019050612a82565b816129d45760009050612a82565b81600181146129ea57600281146129f457612a23565b6001915050612a82565b60ff841115612a0657612a056123d8565b5b8360020a915084821115612a1d57612a1c6123d8565b5b50612a82565b5060208310610133831016604e8410600b8410161715612a585782820a905083811115612a5357612a526123d8565b5b612a82565b612a658484846001612963565b92509050818404811115612a7c57612a7b6123d8565b5b81810290505b9392505050565b6000612a948261200f565b9150612a9f83612162565b9250612acc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846129b6565b905092915050565b6000612adf8261200f565b9150612aea8361200f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b2357612b226123d8565b5b828202905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b8a602483611ef7565b9150612b9582612b2e565b604082019050919050565b60006020820190508181036000830152612bb981612b7d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c1c602283611ef7565b9150612c2782612bc0565b604082019050919050565b60006020820190508181036000830152612c4b81612c0f565b9050919050565b7f73656e64657220626c61636b6c697374656420666f722074686973206163746960008201527f6f6e000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cae602283611ef7565b9150612cb982612c52565b604082019050919050565b60006020820190508181036000830152612cdd81612ca1565b9050919050565b7f726563697069656e7420626c61636b6c697374656420666f722074686973206160008201527f6374696f6e000000000000000000000000000000000000000000000000000000602082015250565b6000612d40602583611ef7565b9150612d4b82612ce4565b604082019050919050565b60006020820190508181036000830152612d6f81612d33565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74207a65726f0000000000600082015250565b6000612dac601b83611ef7565b9150612db782612d76565b602082019050919050565b60006020820190508181036000830152612ddb81612d9f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e3e602583611ef7565b9150612e4982612de2565b604082019050919050565b60006020820190508181036000830152612e6d81612e31565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ed0602383611ef7565b9150612edb82612e74565b604082019050919050565b60006020820190508181036000830152612eff81612ec3565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612f62602683611ef7565b9150612f6d82612f06565b604082019050919050565b60006020820190508181036000830152612f9181612f55565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612ff4602183611ef7565b9150612fff82612f98565b604082019050919050565b6000602082019050818103600083015261302381612fe7565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613086602283611ef7565b91506130918261302a565b604082019050919050565b600060208201905081810360008301526130b581613079565b9050919050565b60006130c78261200f565b91506130d28361200f565b9250828210156130e5576130e46123d8565b5b828203905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613126602083611ef7565b9150613131826130f0565b602082019050919050565b6000602082019050818103600083015261315581613119565b905091905056fea26469706673582212206708c130b773406a5bb70aa5f6520bff6141a005d992759d54d30922dd75662f64736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000c169b989cd015390a01873c03ba6aae8341d0abd000000000000000000000000acfa807c93aa76c1d11b997897da043d9019dd91000000000000000000000000000000000000000000000000000000000000000c46726f672057696620486174000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044657494600000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): Frog Wif Hat
Arg [1] : symbol_ (string): FWIF
Arg [2] : pauser_ (address): 0xC169b989CD015390A01873c03Ba6aae8341d0AbD
Arg [3] : blacklister_ (address): 0xAcfA807C93Aa76c1d11B997897Da043d9019dD91
-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 000000000000000000000000c169b989cd015390a01873c03ba6aae8341d0abd
Arg [3] : 000000000000000000000000acfa807c93aa76c1d11b997897da043d9019dd91
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [5] : 46726f6720576966204861740000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 4657494600000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
8571:12067:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13329:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15540:163;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13944:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9034:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16027:440;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13748:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16800:204;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11554:62;;;:::i;:::-;;19980:93;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12296:337;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7649:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13096:134;;;:::i;:::-;;14224:121;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5249:97;;;:::i;:::-;;11129:259;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11441:58;;;:::i;:::-;;12792:149;;;:::i;:::-;;4644:81;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9061:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13526:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10720:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17322:384;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14625:179;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11765:397;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15092:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5491:191;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8950:67;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8771:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13329:94;13383:13;13412:5;13405:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13329:94;:::o;15540:163::-;15632:4;7294:19;:17;:19::i;:::-;15645:34:::1;15654:12;:10;:12::i;:::-;15668:2;15672:6;15645:8;:34::i;:::-;15693:4;15686:11;;15540:163:::0;;;;:::o;13944:102::-;14005:7;14028:12;;14021:19;;13944:102;:::o;9034:22::-;;;;;;;;;;;;;:::o;16027:440::-;16147:4;7294:19;:17;:19::i;:::-;16160:36:::1;16170:6;16178:9;16189:6;16160:9;:36::i;:::-;16205:24;16232:11;:19;16244:6;16232:19;;;;;;;;;;;;;;;:33;16252:12;:10;:12::i;:::-;16232:33;;;;;;;;;;;;;;;;16205:60;;16300:6;16280:16;:26;;16272:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;16377:57;16386:6;16394:12;:10;:12::i;:::-;16427:6;16408:16;:25;16377:8;:57::i;:::-;16457:4;16450:11;;;16027:440:::0;;;;;:::o;13748:94::-;13806:5;8943:2;13820:16;;13748:94;:::o;16800:204::-;16897:4;7294:19;:17;:19::i;:::-;16910:70:::1;16919:12;:10;:12::i;:::-;16933:2;16969:10;16937:11;:25;16949:12;:10;:12::i;:::-;16937:25;;;;;;;;;;;;;;;:29;16963:2;16937:29;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;16910:8;:70::i;:::-;16994:4;16987:11;;16800:204:::0;;;;:::o;11554:62::-;10528:7;;;;;;;;;;;10514:21;;:10;:21;;;10506:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;11600:10:::1;:8;:10::i;:::-;11554:62::o:0;19980:93::-;7294:19;:17;:19::i;:::-;20040:27:::1;20046:12;:10;:12::i;:::-;20060:6;20040:5;:27::i;:::-;19980:93:::0;:::o;12296:337::-;4544:13;:11;:13::i;:::-;12394:1:::1;12372:24;;:10;:24;;;;12364:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;12448:1;12429:21;;:7;;;;;;;;;;;:21;;;;12421:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12496:17;12516:7;;;;;;;;;;;12496:27;;12540:10;12530:7;;:20;;;;;;;;;;;;;;;;;;12599:10;12562:65;;12588:9;12562:65;;12576:10;12562:65;;;12611:15;12562:65;;;;;;:::i;:::-;;;;;;;;12357:276;12296:337:::0;:::o;7649:80::-;7696:4;7716:7;;;;;;;;;;;7709:14;;7649:80;:::o;13096:134::-;4544:13;:11;:13::i;:::-;13166:1:::1;13148:7;;:20;;;;;;;;;;;;;;;;;;13196:10;13180:44;;;13208:15;13180:44;;;;;;:::i;:::-;;;;;;;;13096:134::o:0;14224:121::-;14298:7;14321:9;:18;14331:7;14321:18;;;;;;;;;;;;;;;;14314:25;;14224:121;;;:::o;5249:97::-;4544:13;:11;:13::i;:::-;5310:30:::1;5337:1;5310:18;:30::i;:::-;5249:97::o:0;11129:259::-;10413:12;;;;;;;;;;;10399:26;;:10;:26;;;10391:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11226:9:::1;11221:93;11245:6;;:13;;11241:1;:17;11221:93;;;11301:5;11274:13;:24;11288:6;;11295:1;11288:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11274:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11260:3;;;;;:::i;:::-;;;;11221:93;;;;11346:10;11325:57;;;11358:6;;11366:15;11325:57;;;;;;;;:::i;:::-;;;;;;;;11129:259:::0;;:::o;11441:58::-;10528:7;;;;;;;;;;;10514:21;;:10;:21;;;10506:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;11485:8:::1;:6;:8::i;:::-;11441:58::o:0;12792:149::-;4544:13;:11;:13::i;:::-;12872:1:::1;12849:12;;:25;;;;;;;;;;;;;;;;;;12907:10;12886:49;;;12919:15;12886:49;;;;;;:::i;:::-;;;;;;;;12792:149::o:0;4644:81::-;4690:7;4713:6;;;;;;;;;;;4706:13;;4644:81;:::o;9061:27::-;;;;;;;;;;;;;:::o;13526:98::-;13582:13;13611:7;13604:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13526:98;:::o;10720:244::-;10413:12;;;;;;;;;;;10399:26;;:10;:26;;;10391:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10807:9:::1;10802:92;10826:6;;:13;;10822:1;:17;10802:92;;;10882:4;10855:13;:24;10869:6;;10876:1;10869:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;10855:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;10841:3;;;;;:::i;:::-;;;;10802:92;;;;10922:10;10905:53;;;10934:6;;10942:15;10905:53;;;;;;;;:::i;:::-;;;;;;;;10720:244:::0;;:::o;17322:384::-;17424:4;7294:19;:17;:19::i;:::-;17437:24:::1;17464:11;:25;17476:12;:10;:12::i;:::-;17464:25;;;;;;;;;;;;;;;:29;17490:2;17464:29;;;;;;;;;;;;;;;;17437:56;;17528:15;17508:16;:35;;17500:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17611:62;17620:12;:10;:12::i;:::-;17634:2;17657:15;17638:16;:34;17611:8;:62::i;:::-;17696:4;17689:11;;;17322:384:::0;;;;:::o;14625:179::-;14725:4;7294:19;:17;:19::i;:::-;14738:42:::1;14748:12;:10;:12::i;:::-;14762:9;14773:6;14738:9;:42::i;:::-;14794:4;14787:11;;14625:179:::0;;;;:::o;11765:397::-;4544:13;:11;:13::i;:::-;11878:1:::1;11851:29;;:15;:29;;;;11843:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;11937:1;11913:26;;:12;;;;;;;;;;;:26;;;;11905:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11990:22;12015:12;;;;;;;;;;;11990:37;;12049:15;12034:12;;:30;;;;;;;;;;;;;;;;;;12123:15;12076:80;;12107:14;12076:80;;12095:10;12076:80;;;12140:15;12076:80;;;;;;:::i;:::-;;;;;;;;11836:326;11765:397:::0;:::o;15092:133::-;15175:7;15198:11;:17;15210:4;15198:17;;;;;;;;;;;;;;;:21;15216:2;15198:21;;;;;;;;;;;;;;;;15191:28;;15092:133;;;;:::o;5491:191::-;4544:13;:11;:13::i;:::-;5596:1:::1;5576:22;;:8;:22;;;;5568:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5648:28;5667:8;5648:18;:28::i;:::-;5491:191:::0;:::o;8950:67::-;8943:2;9001;:15;;;;:::i;:::-;8984:13;:33;;;;:::i;:::-;8950:67;:::o;8771:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;7794:116::-;7856:8;:6;:8::i;:::-;7852:53;;;7882:15;;;;;;;;;;;;;;7852:53;7794:116::o;3411:92::-;3464:7;3487:10;3480:17;;3411:92;:::o;20331:304::-;20439:1;20423:18;;:4;:18;;;;20415:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20511:1;20497:16;;:2;:16;;;;20489:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;20585:6;20561:11;:17;20573:4;20561:17;;;;;;;;;;;;;;;:21;20579:2;20561:21;;;;;;;;;;;;;;;:30;;;;20618:2;20603:26;;20612:4;20603:26;;;20622:6;20603:26;;;;;;:::i;:::-;;;;;;;;20331:304;;;:::o;17962:755::-;18065:13;:21;18079:6;18065:21;;;;;;;;;;;;;;;;;;;;;;;;;18064:22;18056:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;18141:13;:24;18155:9;18141:24;;;;;;;;;;;;;;;;;;;;;;;;;18140:25;18132:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;18231:1;18222:6;:10;18214:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;18297:1;18279:20;;:6;:20;;;;18271:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;18377:1;18356:23;;:9;:23;;;;18348:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18428:21;18452:9;:17;18462:6;18452:17;;;;;;;;;;;;;;;;18428:41;;18501:6;18484:13;:23;;18476:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;18612:6;18596:13;:22;18576:9;:17;18586:6;18576:17;;;;;;;;;;;;;;;:42;;;;18656:6;18632:9;:20;18642:9;18632:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;18693:9;18676:35;;18685:6;18676:35;;;18704:6;18676:35;;;;;;:::i;:::-;;;;;;;;18049:668;17962:755;;;:::o;8454:110::-;7527:16;:14;:16::i;:::-;8519:5:::1;8509:7:::0;::::1;:15;;;;;;;;;;;;;;;;;;8536:22;8545:12;:10;:12::i;:::-;8536:22;;;;;;:::i;:::-;;;;;;;;8454:110::o:0;19388:432::-;19487:1;19468:21;;:7;:21;;;;19460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19536:22;19561:9;:18;19571:7;19561:18;;;;;;;;;;;;;;;;19536:43;;19612:6;19594:14;:24;;19586:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;19721:6;19704:14;:23;19683:9;:18;19693:7;19683:18;;;;;;;;;;;;;;;:44;;;;19757:6;19741:12;;:22;;;;;;;:::i;:::-;;;;;;;;19803:1;19777:37;;19786:7;19777:37;;;19807:6;19777:37;;;;;;:::i;:::-;;;;;;;;19453:367;19388:432;;:::o;4795:126::-;4866:12;:10;:12::i;:::-;4855:23;;:7;:5;:7::i;:::-;:23;;;4847:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4795:126::o;5832:177::-;5902:16;5921:6;;;;;;;;;;;5902:25;;5943:8;5934:6;;:17;;;;;;;;;;;;;;;;;;5994:8;5963:40;;5984:8;5963:40;;;;;;;;;;;;5895:114;5832:177;:::o;8221:108::-;7294:19;:17;:19::i;:::-;8287:4:::1;8277:7;;:14;;;;;;;;;;;;;;;;;;8303:20;8310:12;:10;:12::i;:::-;8303:20;;;;;;:::i;:::-;;;;;;;;8221:108::o:0;7979:114::-;8039:8;:6;:8::i;:::-;8034:54;;8065:15;;;;;;;;;;;;;;8034:54;7979:114::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;1601:117;1710:1;1707;1700: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:118::-;3933:24;3951:5;3933:24;:::i;:::-;3928:3;3921:37;3846:118;;:::o;3970:222::-;4063:4;4101:2;4090:9;4086:18;4078:26;;4114:71;4182:1;4171:9;4167:17;4158:6;4114:71;:::i;:::-;3970:222;;;;:::o;4198:619::-;4275:6;4283;4291;4340:2;4328:9;4319:7;4315:23;4311:32;4308:119;;;4346:79;;:::i;:::-;4308:119;4466:1;4491:53;4536:7;4527:6;4516:9;4512:22;4491:53;:::i;:::-;4481:63;;4437:117;4593:2;4619:53;4664:7;4655:6;4644:9;4640:22;4619:53;:::i;:::-;4609:63;;4564:118;4721:2;4747:53;4792:7;4783:6;4772:9;4768:22;4747:53;:::i;:::-;4737:63;;4692:118;4198:619;;;;;:::o;4823:86::-;4858:7;4898:4;4891:5;4887:16;4876:27;;4823:86;;;:::o;4915:112::-;4998:22;5014:5;4998:22;:::i;:::-;4993:3;4986:35;4915:112;;:::o;5033:214::-;5122:4;5160:2;5149:9;5145:18;5137:26;;5173:67;5237:1;5226:9;5222:17;5213:6;5173:67;:::i;:::-;5033:214;;;;:::o;5253:329::-;5312:6;5361:2;5349:9;5340:7;5336:23;5332:32;5329:119;;;5367:79;;:::i;:::-;5329:119;5487:1;5512:53;5557:7;5548:6;5537:9;5533:22;5512:53;:::i;:::-;5502:63;;5458:117;5253:329;;;;:::o;5588:::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:117::-;6032:1;6029;6022:12;6046:117;6155:1;6152;6145:12;6169:117;6278:1;6275;6268:12;6309:568;6382:8;6392:6;6442:3;6435:4;6427:6;6423:17;6419:27;6409:122;;6450:79;;:::i;:::-;6409:122;6563:6;6550:20;6540:30;;6593:18;6585:6;6582:30;6579:117;;;6615:79;;:::i;:::-;6579:117;6729:4;6721:6;6717:17;6705:29;;6783:3;6775:4;6767:6;6763:17;6753:8;6749:32;6746:41;6743:128;;;6790:79;;:::i;:::-;6743:128;6309:568;;;;;:::o;6883:559::-;6969:6;6977;7026:2;7014:9;7005:7;7001:23;6997:32;6994:119;;;7032:79;;:::i;:::-;6994:119;7180:1;7169:9;7165:17;7152:31;7210:18;7202:6;7199:30;7196:117;;;7232:79;;:::i;:::-;7196:117;7345:80;7417:7;7408:6;7397:9;7393:22;7345:80;:::i;:::-;7327:98;;;;7123:312;6883:559;;;;;:::o;7448:474::-;7516:6;7524;7573:2;7561:9;7552:7;7548:23;7544:32;7541:119;;;7579:79;;:::i;:::-;7541:119;7699:1;7724:53;7769:7;7760:6;7749:9;7745:22;7724:53;:::i;:::-;7714:63;;7670:117;7826:2;7852:53;7897:7;7888:6;7877:9;7873:22;7852:53;:::i;:::-;7842:63;;7797:118;7448:474;;;;;:::o;7928:180::-;7976:77;7973:1;7966:88;8073:4;8070:1;8063:15;8097:4;8094:1;8087:15;8114:320;8158:6;8195:1;8189:4;8185:12;8175:22;;8242:1;8236:4;8232:12;8263:18;8253:81;;8319:4;8311:6;8307:17;8297:27;;8253:81;8381:2;8373:6;8370:14;8350:18;8347:38;8344:84;;;8400:18;;:::i;:::-;8344:84;8165:269;8114:320;;;:::o;8440:227::-;8580:34;8576:1;8568:6;8564:14;8557:58;8649:10;8644:2;8636:6;8632:15;8625:35;8440:227;:::o;8673:366::-;8815:3;8836:67;8900:2;8895:3;8836:67;:::i;:::-;8829:74;;8912:93;9001:3;8912:93;:::i;:::-;9030:2;9025:3;9021:12;9014:19;;8673:366;;;:::o;9045:419::-;9211:4;9249:2;9238:9;9234:18;9226:26;;9298:9;9292:4;9288:20;9284:1;9273:9;9269:17;9262:47;9326:131;9452:4;9326:131;:::i;:::-;9318:139;;9045:419;;;:::o;9470:180::-;9518:77;9515:1;9508:88;9615:4;9612:1;9605:15;9639:4;9636:1;9629:15;9656:305;9696:3;9715:20;9733:1;9715:20;:::i;:::-;9710:25;;9749:20;9767:1;9749:20;:::i;:::-;9744:25;;9903:1;9835:66;9831:74;9828:1;9825:81;9822:107;;;9909:18;;:::i;:::-;9822:107;9953:1;9950;9946:9;9939:16;;9656:305;;;;:::o;9967:174::-;10107:26;10103:1;10095:6;10091:14;10084:50;9967:174;:::o;10147:366::-;10289:3;10310:67;10374:2;10369:3;10310:67;:::i;:::-;10303:74;;10386:93;10475:3;10386:93;:::i;:::-;10504:2;10499:3;10495:12;10488:19;;10147:366;;;:::o;10519:419::-;10685:4;10723:2;10712:9;10708:18;10700:26;;10772:9;10766:4;10762:20;10758:1;10747:9;10743:17;10736:47;10800:131;10926:4;10800:131;:::i;:::-;10792:139;;10519:419;;;:::o;10944:163::-;11084:15;11080:1;11072:6;11068:14;11061:39;10944:163;:::o;11113:366::-;11255:3;11276:67;11340:2;11335:3;11276:67;:::i;:::-;11269:74;;11352:93;11441:3;11352:93;:::i;:::-;11470:2;11465:3;11461:12;11454:19;;11113:366;;;:::o;11485:419::-;11651:4;11689:2;11678:9;11674:18;11666:26;;11738:9;11732:4;11728:20;11724:1;11713:9;11709:17;11702:47;11766:131;11892:4;11766:131;:::i;:::-;11758:139;;11485:419;;;:::o;11910:221::-;12050:34;12046:1;12038:6;12034:14;12027:58;12119:4;12114:2;12106:6;12102:15;12095:29;11910:221;:::o;12137:366::-;12279:3;12300:67;12364:2;12359:3;12300:67;:::i;:::-;12293:74;;12376:93;12465:3;12376:93;:::i;:::-;12494:2;12489:3;12485:12;12478:19;;12137:366;;;:::o;12509:419::-;12675:4;12713:2;12702:9;12698:18;12690:26;;12762:9;12756:4;12752:20;12748:1;12737:9;12733:17;12726:47;12790:131;12916:4;12790:131;:::i;:::-;12782:139;;12509:419;;;:::o;12934:179::-;13074:31;13070:1;13062:6;13058:14;13051:55;12934:179;:::o;13119:366::-;13261:3;13282:67;13346:2;13341:3;13282:67;:::i;:::-;13275:74;;13358:93;13447:3;13358:93;:::i;:::-;13476:2;13471:3;13467:12;13460:19;;13119:366;;;:::o;13491:419::-;13657:4;13695:2;13684:9;13680:18;13672:26;;13744:9;13738:4;13734:20;13730:1;13719:9;13715:17;13708:47;13772:131;13898:4;13772:131;:::i;:::-;13764:139;;13491:419;;;:::o;13916:180::-;13964:77;13961:1;13954:88;14061:4;14058:1;14051:15;14085:4;14082:1;14075:15;14102:233;14141:3;14164:24;14182:5;14164:24;:::i;:::-;14155:33;;14210:66;14203:5;14200:77;14197:103;;;14280:18;;:::i;:::-;14197:103;14327:1;14320:5;14316:13;14309:20;;14102:233;;;:::o;14341:184::-;14440:11;14474:6;14469:3;14462:19;14514:4;14509:3;14505:14;14490:29;;14341:184;;;;:::o;14531:102::-;14600:4;14623:3;14615:11;;14531:102;;;:::o;14639:108::-;14716:24;14734:5;14716:24;:::i;:::-;14711:3;14704:37;14639:108;;:::o;14753:179::-;14822:10;14843:46;14885:3;14877:6;14843:46;:::i;:::-;14921:4;14916:3;14912:14;14898:28;;14753:179;;;;:::o;14938:122::-;14990:5;15015:39;15050:2;15045:3;15041:12;15036:3;15015:39;:::i;:::-;15006:48;;14938:122;;;;:::o;15066:115::-;15138:4;15170;15165:3;15161:14;15153:22;;15066:115;;;:::o;15217:699::-;15346:3;15369:86;15448:6;15443:3;15369:86;:::i;:::-;15362:93;;15479:58;15531:5;15479:58;:::i;:::-;15560:7;15591:1;15576:315;15601:6;15598:1;15595:13;15576:315;;;15671:42;15706:6;15697:7;15671:42;:::i;:::-;15733:63;15792:3;15777:13;15733:63;:::i;:::-;15726:70;;15819:62;15874:6;15819:62;:::i;:::-;15809:72;;15636:255;15623:1;15620;15616:9;15611:14;;15576:315;;;15580:14;15907:3;15900:10;;15351:565;;15217:699;;;;;:::o;15922:503::-;16103:4;16141:2;16130:9;16126:18;16118:26;;16190:9;16184:4;16180:20;16176:1;16165:9;16161:17;16154:47;16218:118;16331:4;16322:6;16314;16218:118;:::i;:::-;16210:126;;16346:72;16414:2;16403:9;16399:18;16390:6;16346:72;:::i;:::-;15922:503;;;;;;:::o;16431:224::-;16571:34;16567:1;16559:6;16555:14;16548:58;16640:7;16635:2;16627:6;16623:15;16616:32;16431:224;:::o;16661:366::-;16803:3;16824:67;16888:2;16883:3;16824:67;:::i;:::-;16817:74;;16900:93;16989:3;16900:93;:::i;:::-;17018:2;17013:3;17009:12;17002:19;;16661:366;;;:::o;17033:419::-;17199:4;17237:2;17226:9;17222:18;17214:26;;17286:9;17280:4;17276:20;17272:1;17261:9;17257:17;17250:47;17314:131;17440:4;17314:131;:::i;:::-;17306:139;;17033:419;;;:::o;17458:226::-;17598:34;17594:1;17586:6;17582:14;17575:58;17667:9;17662:2;17654:6;17650:15;17643:34;17458:226;:::o;17690:366::-;17832:3;17853:67;17917:2;17912:3;17853:67;:::i;:::-;17846:74;;17929:93;18018:3;17929:93;:::i;:::-;18047:2;18042:3;18038:12;18031:19;;17690:366;;;:::o;18062:419::-;18228:4;18266:2;18255:9;18251:18;18243:26;;18315:9;18309:4;18305:20;18301:1;18290:9;18286:17;18279:47;18343:131;18469:4;18343:131;:::i;:::-;18335:139;;18062:419;;;:::o;18487:225::-;18627:34;18623:1;18615:6;18611:14;18604:58;18696:8;18691:2;18683:6;18679:15;18672:33;18487:225;:::o;18718:366::-;18860:3;18881:67;18945:2;18940:3;18881:67;:::i;:::-;18874:74;;18957:93;19046:3;18957:93;:::i;:::-;19075:2;19070:3;19066:12;19059:19;;18718:366;;;:::o;19090:419::-;19256:4;19294:2;19283:9;19279:18;19271:26;;19343:9;19337:4;19333:20;19329:1;19318:9;19314:17;19307:47;19371:131;19497:4;19371:131;:::i;:::-;19363:139;;19090:419;;;:::o;19515:102::-;19557:8;19604:5;19601:1;19597:13;19576:34;;19515:102;;;:::o;19623:848::-;19684:5;19691:4;19715:6;19706:15;;19739:5;19730:14;;19753:712;19774:1;19764:8;19761:15;19753:712;;;19869:4;19864:3;19860:14;19854:4;19851:24;19848:50;;;19878:18;;:::i;:::-;19848:50;19928:1;19918:8;19914:16;19911:451;;;20343:4;20336:5;20332:16;20323:25;;19911:451;20393:4;20387;20383:15;20375:23;;20423:32;20446:8;20423:32;:::i;:::-;20411:44;;19753:712;;;19623:848;;;;;;;:::o;20477:1073::-;20531:5;20722:8;20712:40;;20743:1;20734:10;;20745:5;;20712:40;20771:4;20761:36;;20788:1;20779:10;;20790:5;;20761:36;20857:4;20905:1;20900:27;;;;20941:1;20936:191;;;;20850:277;;20900:27;20918:1;20909:10;;20920:5;;;20936:191;20981:3;20971:8;20968:17;20965:43;;;20988:18;;:::i;:::-;20965:43;21037:8;21034:1;21030:16;21021:25;;21072:3;21065:5;21062:14;21059:40;;;21079:18;;:::i;:::-;21059:40;21112:5;;;20850:277;;21236:2;21226:8;21223:16;21217:3;21211:4;21208:13;21204:36;21186:2;21176:8;21173:16;21168:2;21162:4;21159:12;21155:35;21139:111;21136:246;;;21292:8;21286:4;21282:19;21273:28;;21327:3;21320:5;21317:14;21314:40;;;21334:18;;:::i;:::-;21314:40;21367:5;;21136:246;21407:42;21445:3;21435:8;21429:4;21426:1;21407:42;:::i;:::-;21392:57;;;;21481:4;21476:3;21472:14;21465:5;21462:25;21459:51;;;21490:18;;:::i;:::-;21459:51;21539:4;21532:5;21528:16;21519:25;;20477:1073;;;;;;:::o;21556:281::-;21614:5;21638:23;21656:4;21638:23;:::i;:::-;21630:31;;21682:25;21698:8;21682:25;:::i;:::-;21670:37;;21726:104;21763:66;21753:8;21747:4;21726:104;:::i;:::-;21717:113;;21556:281;;;;:::o;21843:348::-;21883:7;21906:20;21924:1;21906:20;:::i;:::-;21901:25;;21940:20;21958:1;21940:20;:::i;:::-;21935:25;;22128:1;22060:66;22056:74;22053:1;22050:81;22045:1;22038:9;22031:17;22027:105;22024:131;;;22135:18;;:::i;:::-;22024:131;22183:1;22180;22176:9;22165:20;;21843:348;;;;:::o;22197:223::-;22337:34;22333:1;22325:6;22321:14;22314:58;22406:6;22401:2;22393:6;22389:15;22382:31;22197:223;:::o;22426:366::-;22568:3;22589:67;22653:2;22648:3;22589:67;:::i;:::-;22582:74;;22665:93;22754:3;22665:93;:::i;:::-;22783:2;22778:3;22774:12;22767:19;;22426:366;;;:::o;22798:419::-;22964:4;23002:2;22991:9;22987:18;22979:26;;23051:9;23045:4;23041:20;23037:1;23026:9;23022:17;23015:47;23079:131;23205:4;23079:131;:::i;:::-;23071:139;;22798:419;;;:::o;23223:221::-;23363:34;23359:1;23351:6;23347:14;23340:58;23432:4;23427:2;23419:6;23415:15;23408:29;23223:221;:::o;23450:366::-;23592:3;23613:67;23677:2;23672:3;23613:67;:::i;:::-;23606:74;;23689:93;23778:3;23689:93;:::i;:::-;23807:2;23802:3;23798:12;23791:19;;23450:366;;;:::o;23822:419::-;23988:4;24026:2;24015:9;24011:18;24003:26;;24075:9;24069:4;24065:20;24061:1;24050:9;24046:17;24039:47;24103:131;24229:4;24103:131;:::i;:::-;24095:139;;23822:419;;;:::o;24247:221::-;24387:34;24383:1;24375:6;24371:14;24364:58;24456:4;24451:2;24443:6;24439:15;24432:29;24247:221;:::o;24474:366::-;24616:3;24637:67;24701:2;24696:3;24637:67;:::i;:::-;24630:74;;24713:93;24802:3;24713:93;:::i;:::-;24831:2;24826:3;24822:12;24815:19;;24474:366;;;:::o;24846:419::-;25012:4;25050:2;25039:9;25035:18;25027:26;;25099:9;25093:4;25089:20;25085:1;25074:9;25070:17;25063:47;25127:131;25253:4;25127:131;:::i;:::-;25119:139;;24846:419;;;:::o;25271:224::-;25411:34;25407:1;25399:6;25395:14;25388:58;25480:7;25475:2;25467:6;25463:15;25456:32;25271:224;:::o;25501:366::-;25643:3;25664:67;25728:2;25723:3;25664:67;:::i;:::-;25657:74;;25740:93;25829:3;25740:93;:::i;:::-;25858:2;25853:3;25849:12;25842:19;;25501:366;;;:::o;25873:419::-;26039:4;26077:2;26066:9;26062:18;26054:26;;26126:9;26120:4;26116:20;26112:1;26101:9;26097:17;26090:47;26154:131;26280:4;26154:131;:::i;:::-;26146:139;;25873:419;;;:::o;26298:177::-;26438:29;26434:1;26426:6;26422:14;26415:53;26298:177;:::o;26481:366::-;26623:3;26644:67;26708:2;26703:3;26644:67;:::i;:::-;26637:74;;26720:93;26809:3;26720:93;:::i;:::-;26838:2;26833:3;26829:12;26822:19;;26481:366;;;:::o;26853:419::-;27019:4;27057:2;27046:9;27042:18;27034:26;;27106:9;27100:4;27096:20;27092:1;27081:9;27077:17;27070:47;27134:131;27260:4;27134:131;:::i;:::-;27126:139;;26853:419;;;:::o;27278:224::-;27418:34;27414:1;27406:6;27402:14;27395:58;27487:7;27482:2;27474:6;27470:15;27463:32;27278:224;:::o;27508:366::-;27650:3;27671:67;27735:2;27730:3;27671:67;:::i;:::-;27664:74;;27747:93;27836:3;27747:93;:::i;:::-;27865:2;27860:3;27856:12;27849:19;;27508:366;;;:::o;27880:419::-;28046:4;28084:2;28073:9;28069:18;28061:26;;28133:9;28127:4;28123:20;28119:1;28108:9;28104:17;28097:47;28161:131;28287:4;28161:131;:::i;:::-;28153:139;;27880:419;;;:::o;28305:222::-;28445:34;28441:1;28433:6;28429:14;28422:58;28514:5;28509:2;28501:6;28497:15;28490:30;28305:222;:::o;28533:366::-;28675:3;28696:67;28760:2;28755:3;28696:67;:::i;:::-;28689:74;;28772:93;28861:3;28772:93;:::i;:::-;28890:2;28885:3;28881:12;28874:19;;28533:366;;;:::o;28905:419::-;29071:4;29109:2;29098:9;29094:18;29086:26;;29158:9;29152:4;29148:20;29144:1;29133:9;29129:17;29122:47;29186:131;29312:4;29186:131;:::i;:::-;29178:139;;28905:419;;;:::o;29330:225::-;29470:34;29466:1;29458:6;29454:14;29447:58;29539:8;29534:2;29526:6;29522:15;29515:33;29330:225;:::o;29561:366::-;29703:3;29724:67;29788:2;29783:3;29724:67;:::i;:::-;29717:74;;29800:93;29889:3;29800:93;:::i;:::-;29918:2;29913:3;29909:12;29902:19;;29561:366;;;:::o;29933:419::-;30099:4;30137:2;30126:9;30122:18;30114:26;;30186:9;30180:4;30176:20;30172:1;30161:9;30157:17;30150:47;30214:131;30340:4;30214:131;:::i;:::-;30206:139;;29933:419;;;:::o;30358:220::-;30498:34;30494:1;30486:6;30482:14;30475:58;30567:3;30562:2;30554:6;30550:15;30543:28;30358:220;:::o;30584:366::-;30726:3;30747:67;30811:2;30806:3;30747:67;:::i;:::-;30740:74;;30823:93;30912:3;30823:93;:::i;:::-;30941:2;30936:3;30932:12;30925:19;;30584:366;;;:::o;30956:419::-;31122:4;31160:2;31149:9;31145:18;31137:26;;31209:9;31203:4;31199:20;31195:1;31184:9;31180:17;31173:47;31237:131;31363:4;31237:131;:::i;:::-;31229:139;;30956:419;;;:::o;31381:221::-;31521:34;31517:1;31509:6;31505:14;31498:58;31590:4;31585:2;31577:6;31573:15;31566:29;31381:221;:::o;31608:366::-;31750:3;31771:67;31835:2;31830:3;31771:67;:::i;:::-;31764:74;;31847:93;31936:3;31847:93;:::i;:::-;31965:2;31960:3;31956:12;31949:19;;31608:366;;;:::o;31980:419::-;32146:4;32184:2;32173:9;32169:18;32161:26;;32233:9;32227:4;32223:20;32219:1;32208:9;32204:17;32197:47;32261:131;32387:4;32261:131;:::i;:::-;32253:139;;31980:419;;;:::o;32405:191::-;32445:4;32465:20;32483:1;32465:20;:::i;:::-;32460:25;;32499:20;32517:1;32499:20;:::i;:::-;32494:25;;32538:1;32535;32532:8;32529:34;;;32543:18;;:::i;:::-;32529:34;32588:1;32585;32581:9;32573:17;;32405:191;;;;:::o;32602:182::-;32742:34;32738:1;32730:6;32726:14;32719:58;32602:182;:::o;32790:366::-;32932:3;32953:67;33017:2;33012:3;32953:67;:::i;:::-;32946:74;;33029:93;33118:3;33029:93;:::i;:::-;33147:2;33142:3;33138:12;33131:19;;32790:366;;;:::o;33162:419::-;33328:4;33366:2;33355:9;33351:18;33343:26;;33415:9;33409:4;33405:20;33401:1;33390:9;33386:17;33379:47;33443:131;33569:4;33443:131;:::i;:::-;33435:139;;33162:419;;;:::o
Swarm Source
ipfs://6708c130b773406a5bb70aa5f6520bff6141a005d992759d54d30922dd75662f
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.