ERC-20
Overview
Max Total Supply
999,993,505.4899999995 NWX
Holders
184
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
9,132 NWXValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Token
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-06-01 */ pragma solidity ^0.5.0; // ---------------------------------------------------------------------------- // Safe maths // ---------------------------------------------------------------------------- library SafeMath { function add(uint a, uint b) internal pure returns (uint c) { c = a + b; require(c >= a); } function sub(uint a, uint b) internal pure returns (uint c) { require(b <= a); c = a - b; } function mul(uint a, uint b) internal pure returns (uint c) { c = a * b; require(a == 0 || c / a == b); } function div(uint a, uint b) internal pure returns (uint c) { require(b > 0); c = a / b; } } // ---------------------------------------------------------------------------- // ERC Toke n Standard #20 Interface // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md // ---------------------------------------------------------------------------- contract ERC20Interface { function totalSupply() public view returns (uint); function balanceOf(address tokenOwner) public view returns (uint balance); function allowance(address tokenOwner, address spender) public view returns (uint remaining); function transfer(address to, uint tokens) public returns (bool success); function approve(address spender, uint tokens) public returns (bool success); function transferFrom(address from, address to, uint tokens) public returns (bool success); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); } // ---------------------------------------------------------------------------- // Contract function to receive approval and execute function in one call // // Borrowed from MiniMeToken // ---------------------------------------------------------------------------- contract ApproveAndCallFallBack { function receiveApproval(address from, uint256 tokens, address token, bytes memory data) public; } // ---------------------------------------------------------------------------- // Owned contract // ---------------------------------------------------------------------------- contract Owned { address public owner; address public newOwner; event OwnershipTransferred(address indexed _from, address indexed _to); constructor() public { owner = 0x9E48E9C4a696020cCFd07aAD7476a830eA14a819; } modifier onlyOwner { require(msg.sender == owner); _; } function transferOwnership(address _newOwner) public onlyOwner { newOwner = _newOwner; } function acceptOwnership() public { require(msg.sender == newOwner); emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } } contract ERC1132 { /** * @dev Reasons why a user's tokens have been locked */ mapping(address => bytes32[]) public lockReason; /** * @dev locked token structure */ struct lockToken { uint256 amount; uint256 validity; bool claimed; } /** * @dev Holds number & validity of tokens locked for a given reason for * a specified address */ mapping(address => mapping(bytes32 => lockToken)) public locked; /** * @dev Records data of all the tokens Locked */ event Locked( address indexed _of, bytes32 indexed _reason, uint256 _amount, uint256 _validity ); /** * @dev Records data of all the tokens unlocked */ event Unlocked( address indexed _of, bytes32 indexed _reason, uint256 _amount ); /** * @dev Locks a specified amount of tokens against an address, * for a specified reason and time * @param _reason The reason to lock tokens * @param _amount Number of tokens to be locked * @param _time Lock time in seconds */ function lock(bytes32 _reason, uint256 _amount, uint256 _time) public returns (bool); /** * @dev Returns tokens locked for a specified address for a * specified reason * * @param _of The address whose tokens are locked * @param _reason The reason to query the lock tokens for */ function tokensLocked(address _of, bytes32 _reason) public view returns (uint256 amount); /** * @dev Returns tokens locked for a specified address for a * specified reason at a specific time * * @param _of The address whose tokens are locked * @param _reason The reason to query the lock tokens for * @param _time The timestamp to query the lock tokens for */ function tokensLockedAtTime(address _of, bytes32 _reason, uint256 _time) public view returns (uint256 amount); /** * @dev Returns total tokens held by an address (locked + transferable) * @param _of The address to query the total balance of */ function totalBalanceOf(address _of) public view returns (uint256 amount); /** * @dev Extends lock for a specified reason and time * @param _reason The reason to lock tokens * @param _time Lock extension time in seconds */ function extendLock(bytes32 _reason, uint256 _time) public returns (bool); /** * @dev Increase number of tokens locked for a specified reason * @param _reason The reason to lock tokens * @param _amount Number of tokens to be increased */ function increaseLockAmount(bytes32 _reason, uint256 _amount) public returns (bool); /** * @dev Returns unlockable tokens for a specified address for a specified reason * @param _of The address to query the the unlockable token count of * @param _reason The reason to query the unlockable tokens for */ function tokensUnlockable(address _of, bytes32 _reason) public view returns (uint256 amount); /** * @dev Unlocks the unlockable tokens of a specified address * @param _of Address of user, claiming back unlockable tokens */ function unlock(address _of) public returns (uint256 unlockableTokens); /** * @dev Gets the unlockable tokens of a specified address * @param _of The address to query the the unlockable token count of */ function getUnlockableTokens(address _of) public view returns (uint256 unlockableTokens); } // ---------------------------------------------------------------------------- // ERC20 Token, with the addition of symbol, name and decimals and a // fixed supply // ---------------------------------------------------------------------------- contract Token is ERC1132, ERC20Interface, Owned { using SafeMath for uint; string internal constant ALREADY_LOCKED = 'Tokens already locked'; string internal constant NOT_LOCKED = 'No tokens locked'; string internal constant AMOUNT_ZERO = 'Amount can not be 0'; string public symbol; string public name; uint8 public decimals; uint _totalSupply; mapping(address => uint) balances; mapping(address => mapping(address => uint)) allowed; // ------------------------------------------------------------------------ // Constructor // ------------------------------------------------------------------------ constructor() public { name = "NIWIX"; symbol = "NWX"; decimals = 18; _totalSupply = 1000000000 * 10**uint(decimals); balances[owner] = _totalSupply; emit Transfer(address(0), owner, _totalSupply); } // ------------------------------------------------------------------------ // Total supply // ------------------------------------------------------------------------ function totalSupply() public view returns (uint) { return _totalSupply.sub(balances[address(0)]); } // ------------------------------------------------------------------------ // Get the token balance for account `tokenOwner` // ------------------------------------------------------------------------ function balanceOf(address tokenOwner) public view returns (uint balance) { return balances[tokenOwner]; } // ------------------------------------------------------------------------ // Transfer the balance from token owner's account to `to` account // - Owner's account must have sufficient balance to transfer // - 0 value transfers are allowed // ------------------------------------------------------------------------ function transfer(address to, uint tokens) public returns (bool success) { balances[msg.sender] = balances[msg.sender].sub(tokens); balances[to] = balances[to].add(tokens); emit Transfer(msg.sender, to, tokens); return true; } // ------------------------------------------------------------------------ // Token owner can approve for `spender` to transferFrom(...) `tokens` // from the token owner's account // // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md // recommends that there are no checks for the approval double-spend attack // as this should be implemented in user interfaces // ------------------------------------------------------------------------ function approve(address spender, uint tokens) public returns (bool success) { allowed[msg.sender][spender] = tokens; emit Approval(msg.sender, spender, tokens); return true; } // ------------------------------------------------------------------------ // Transfer `tokens` from the `from` account to the `to` account // // The calling account must already have sufficient tokens approve(...)-d // for spending from the `from` account and // - From account must have sufficient balance to transfer // - Spender must have sufficient allowance to transfer // - 0 value transfers are allowed // ------------------------------------------------------------------------ function transferFrom(address from, address to, uint tokens) public returns (bool success) { balances[from] = balances[from].sub(tokens); allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens); balances[to] = balances[to].add(tokens); emit Transfer(from, to, tokens); return true; } // ------------------------------------------------------------------------ // Returns the amount of tokens approved by the owner that can be // transferred to the spender's account // ------------------------------------------------------------------------ function allowance(address tokenOwner, address spender) public view returns (uint remaining) { return allowed[tokenOwner][spender]; } // ------------------------------------------------------------------------ // Token owner can approve for `spender` to transferFrom(...) `tokens` // from the token owner's account. The `spender` contract function // `receiveApproval(...)` is then executed // ------------------------------------------------------------------------ function approveAndCall(address spender, uint tokens, bytes memory data) public returns (bool success) { allowed[msg.sender][spender] = tokens; emit Approval(msg.sender, spender, tokens); ApproveAndCallFallBack(spender).receiveApproval(msg.sender, tokens, address(this), data); return true; } // ------------------------------------------------------------------------ // Don't accept ETH // ------------------------------------------------------------------------ function () external payable { revert(); } // ------------------------------------------------------------------------ // Owner can transfer out any accidentally sent ERC20 tokens // ------------------------------------------------------------------------ function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) { return ERC20Interface(tokenAddress).transfer(owner, tokens); } function mint(address account, uint256 amount) onlyOwner public returns (bool) { require(account != address(0), "ERC20: mint to the zero address"); _totalSupply = _totalSupply.add(amount); balances[account] = balances[account].add(amount); emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function burn(address account, uint256 amount) onlyOwner public returns (bool) { require(account != address(0), "ERC20: burn from the zero address"); balances[account] = balances[account].sub(amount); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } /** * @dev Locks a specified amount of tokens against an address, * for a specified reason and time * @param _reason The reason to lock tokens * @param _amount Number of tokens to be locked * @param _time Lock time in seconds */ function lock(bytes32 _reason, uint256 _amount, uint256 _time) public returns (bool) { uint256 validUntil = now.add(_time); //solhint-disable-line // If tokens are already locked, then functions extendLock or // increaseLockAmount should be used to make any changes require(tokensLocked(msg.sender, _reason) == 0, ALREADY_LOCKED); require(_amount != 0, AMOUNT_ZERO); if (locked[msg.sender][_reason].amount == 0) lockReason[msg.sender].push(_reason); transfer(address(this), _amount); locked[msg.sender][_reason] = lockToken(_amount, validUntil, false); emit Locked(msg.sender, _reason, _amount, validUntil); return true; } /** * @dev Transfers and Locks a specified amount of tokens, * for a specified reason and time * @param _to adress to which tokens are to be transfered * @param _reason The reason to lock tokens * @param _amount Number of tokens to be transfered and locked * @param _time Lock time in seconds */ function transferWithLock(address _to, bytes32 _reason, uint256 _amount, uint256 _time) public returns (bool) { uint256 validUntil = now.add(_time); //solhint-disable-line require(tokensLocked(_to, _reason) == 0, ALREADY_LOCKED); require(_amount != 0, AMOUNT_ZERO); if (locked[_to][_reason].amount == 0) lockReason[_to].push(_reason); transfer(address(this), _amount); locked[_to][_reason] = lockToken(_amount, validUntil, false); emit Locked(_to, _reason, _amount, validUntil); return true; } /** * @dev Returns tokens locked for a specified address for a * specified reason * * @param _of The address whose tokens are locked * @param _reason The reason to query the lock tokens for */ function tokensLocked(address _of, bytes32 _reason) public view returns (uint256 amount) { if (!locked[_of][_reason].claimed) amount = locked[_of][_reason].amount; } /** * @dev Returns tokens locked for a specified address for a * specified reason at a specific time * * @param _of The address whose tokens are locked * @param _reason The reason to query the lock tokens for * @param _time The timestamp to query the lock tokens for */ function tokensLockedAtTime(address _of, bytes32 _reason, uint256 _time) public view returns (uint256 amount) { if (locked[_of][_reason].validity > _time) amount = locked[_of][_reason].amount; } /** * @dev Returns total tokens held by an address (locked + transferable) * @param _of The address to query the total balance of */ function totalBalanceOf(address _of) public view returns (uint256 amount) { amount = balanceOf(_of); for (uint256 i = 0; i < lockReason[_of].length; i++) { amount = amount.add(tokensLocked(_of, lockReason[_of][i])); } } /** * @dev Extends lock for a specified reason and time * @param _reason The reason to lock tokens * @param _time Lock extension time in seconds */ function extendLock(bytes32 _reason, uint256 _time) public returns (bool) { require(tokensLocked(msg.sender, _reason) > 0, NOT_LOCKED); locked[msg.sender][_reason].validity = locked[msg.sender][_reason].validity.add(_time); emit Locked(msg.sender, _reason, locked[msg.sender][_reason].amount, locked[msg.sender][_reason].validity); return true; } /** * @dev Increase number of tokens locked for a specified reason * @param _reason The reason to lock tokens * @param _amount Number of tokens to be increased */ function increaseLockAmount(bytes32 _reason, uint256 _amount) public returns (bool) { require(tokensLocked(msg.sender, _reason) > 0, NOT_LOCKED); transfer(address(this), _amount); locked[msg.sender][_reason].amount = locked[msg.sender][_reason].amount.add(_amount); emit Locked(msg.sender, _reason, locked[msg.sender][_reason].amount, locked[msg.sender][_reason].validity); return true; } /** * @dev Returns unlockable tokens for a specified address for a specified reason * @param _of The address to query the the unlockable token count of * @param _reason The reason to query the unlockable tokens for */ function tokensUnlockable(address _of, bytes32 _reason) public view returns (uint256 amount) { if (locked[_of][_reason].validity <= now && !locked[_of][_reason].claimed) //solhint-disable-line amount = locked[_of][_reason].amount; } /** * @dev Unlocks the unlockable tokens of a specified address * @param _of Address of user, claiming back unlockable tokens */ function unlock(address _of) public returns (uint256 unlockableTokens) { uint256 lockedTokens; for (uint256 i = 0; i < lockReason[_of].length; i++) { lockedTokens = tokensUnlockable(_of, lockReason[_of][i]); if (lockedTokens > 0) { unlockableTokens = unlockableTokens.add(lockedTokens); locked[_of][lockReason[_of][i]].claimed = true; emit Unlocked(_of, lockReason[_of][i], lockedTokens); } } if (unlockableTokens > 0) this.transfer(_of, unlockableTokens); } /** * @dev Gets the unlockable tokens of a specified address * @param _of The address to query the the unlockable token count of */ function getUnlockableTokens(address _of) public view returns (uint256 unlockableTokens) { for (uint256 i = 0; i < lockReason[_of].length; i++) { unlockableTokens = unlockableTokens.add(tokensUnlockable(_of, lockReason[_of][i])); } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_of","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_reason","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_validity","type":"uint256"}],"name":"Locked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_of","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_reason","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Unlocked","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_reason","type":"bytes32"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"extendLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"}],"name":"getUnlockableTokens","outputs":[{"internalType":"uint256","name":"unlockableTokens","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_reason","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"increaseLockAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_reason","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"lock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"lockReason","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"locked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"validity","type":"uint256"},{"internalType":"bool","name":"claimed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"},{"internalType":"bytes32","name":"_reason","type":"bytes32"}],"name":"tokensLocked","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"},{"internalType":"bytes32","name":"_reason","type":"bytes32"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"tokensLockedAtTime","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"},{"internalType":"bytes32","name":"_reason","type":"bytes32"}],"name":"tokensUnlockable","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_of","type":"address"}],"name":"totalBalanceOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"bytes32","name":"_reason","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"transferWithLock","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_of","type":"address"}],"name":"unlock","outputs":[{"internalType":"uint256","name":"unlockableTokens","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50600280546001600160a01b031916739e48e9c4a696020ccfd07aad7476a830ea14a8191790556040805180820190915260058082526409c92ae92b60db1b602090920191825262000064918162000118565b506040805180820190915260038082526209caeb60eb1b6020909201918252620000919160049162000118565b5060068054601260ff19909116179081905560ff16600a0a633b9aca00026007819055600280546001600160a01b039081166000908152600860209081526040808320869055935484519586529351939092169390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a3620001bd565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015b57805160ff19168380011785556200018b565b828001600101855582156200018b579182015b828111156200018b5782518255916020019190600101906200016e565b50620001999291506200019d565b5090565b620001ba91905b80821115620001995760008155600101620001a4565b90565b611c0880620001cd6000396000f3fe6080604052600436106101c25760003560e01c806371d66f00116100f7578063a9dab16711610095578063d71be8db11610064578063d71be8db146107a9578063dc39d06d14610802578063dd62ed3e1461083b578063f2fde38b14610876576101c2565b8063a9dab16714610669578063ab4a2eb314610699578063cae9ca51146106cc578063d4ee1d9014610794576101c2565b80638da5cb5b116100d15780638da5cb5b146105b157806395d89b41146105e25780639dc29fac146105f7578063a9059cbb14610630576101c2565b806371d66f001461053157806379ba50971461056a57806381fc4d9014610581576101c2565b8063313ce567116101645780634cb5465f1161013e5780634cb5465f146104475780635294d0e81461048c5780635ca48d8c146104c557806370a08231146104fe576101c2565b8063313ce567146103b057806340c10f19146103db5780634b0ee02a14610414576101c2565b806318160ddd116101a057806318160ddd146102ef57806323b872dd146103045780632e82aaf2146103475780632f6c493c1461037d576101c2565b806306fdde03146101c7578063095ea7b314610251578063179e91f11461029e575b600080fd5b3480156101d357600080fd5b506101dc6108a9565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102165781810151838201526020016101fe565b50505050905090810190601f1680156102435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025d57600080fd5b5061028a6004803603604081101561027457600080fd5b506001600160a01b038135169060200135610937565b604080519115158252519081900360200190f35b3480156102aa57600080fd5b506102dd600480360360608110156102c157600080fd5b506001600160a01b03813516906020810135906040013561099e565b60408051918252519081900360200190f35b3480156102fb57600080fd5b506102dd6109f7565b34801561031057600080fd5b5061028a6004803603606081101561032757600080fd5b506001600160a01b03813581169160208101359091169060400135610a3a565b34801561035357600080fd5b5061028a6004803603606081101561036a57600080fd5b5080359060208101359060400135610b33565b34801561038957600080fd5b506102dd600480360360208110156103a057600080fd5b50356001600160a01b0316610d50565b3480156103bc57600080fd5b506103c5610f2b565b6040805160ff9092168252519081900360200190f35b3480156103e757600080fd5b5061028a600480360360408110156103fe57600080fd5b506001600160a01b038135169060200135610f34565b34801561042057600080fd5b506102dd6004803603602081101561043757600080fd5b50356001600160a01b0316611030565b34801561045357600080fd5b5061028a6004803603608081101561046a57600080fd5b506001600160a01b0381351690602081013590604081013590606001356110bd565b34801561049857600080fd5b506102dd600480360360408110156104af57600080fd5b506001600160a01b0381351690602001356112b9565b3480156104d157600080fd5b506102dd600480360360408110156104e857600080fd5b506001600160a01b038135169060200135611342565b34801561050a57600080fd5b506102dd6004803603602081101561052157600080fd5b50356001600160a01b0316611399565b34801561053d57600080fd5b506102dd6004803603604081101561055457600080fd5b506001600160a01b0381351690602001356113b4565b34801561057657600080fd5b5061057f6113e2565b005b34801561058d57600080fd5b5061028a600480360360408110156105a457600080fd5b508035906020013561145f565b3480156105bd57600080fd5b506105c6611568565b604080516001600160a01b039092168252519081900360200190f35b3480156105ee57600080fd5b506101dc611577565b34801561060357600080fd5b5061028a6004803603604081101561061a57600080fd5b506001600160a01b0381351690602001356115d2565b34801561063c57600080fd5b5061028a6004803603604081101561065357600080fd5b506001600160a01b0381351690602001356116be565b34801561067557600080fd5b5061028a6004803603604081101561068c57600080fd5b508035906020013561175c565b3480156106a557600080fd5b506102dd600480360360208110156106bc57600080fd5b50356001600160a01b0316611860565b3480156106d857600080fd5b5061028a600480360360608110156106ef57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561071f57600080fd5b82018360208201111561073157600080fd5b8035906020019184600183028401116401000000008311171561075357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118c4945050505050565b3480156107a057600080fd5b506105c6611a0c565b3480156107b557600080fd5b506107e2600480360360408110156107cc57600080fd5b506001600160a01b038135169060200135611a1b565b604080519384526020840192909252151582820152519081900360600190f35b34801561080e57600080fd5b5061028a6004803603604081101561082557600080fd5b506001600160a01b038135169060200135611a46565b34801561084757600080fd5b506102dd6004803603604081101561085e57600080fd5b506001600160a01b0381358116916020013516611ae9565b34801561088257600080fd5b5061057f6004803603602081101561089957600080fd5b50356001600160a01b0316611b14565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b505050505081565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6001600160a01b0383166000908152600160208181526040808420868552909152822001548210156109f057506001600160a01b03831660009081526001602090815260408083208584529091529020545b9392505050565b600080805260086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c754600754610a359163ffffffff611b4d16565b905090565b6001600160a01b038316600090815260086020526040812054610a63908363ffffffff611b4d16565b6001600160a01b0385166000908152600860209081526040808320939093556009815282822033835290522054610aa0908363ffffffff611b4d16565b6001600160a01b038086166000908152600960209081526040808320338452825280832094909455918616815260089091522054610ae4908363ffffffff611b6216565b6001600160a01b038085166000818152600860209081526040918290209490945580518681529051919392881692600080516020611b9383398151915292918290030190a35060019392505050565b600080610b46428463ffffffff611b6216565b9050610b523386611342565b604080518082019091526015815274151bdad95b9cc8185b1c9958591e481b1bd8dad959605a1b60208201529015610c085760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bcd578181015183820152602001610bb5565b50505050905090810190601f168015610bfa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506040805180820190915260138152720416d6f756e742063616e206e6f74206265203606c1b602082015284610c7f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b50336000908152600160209081526040808320888452909152902054610cc05733600090815260208181526040822080546001810182559083529120018590555b610cca30856116be565b5060408051606081018252858152602080820184815260008385018181523380835260018086528784208d855286529287902095518655925191850191909155516002909301805460ff191693151593909317909255825187815290810184905282518893600080516020611b73833981519152928290030190a3506001949350505050565b600080805b6001600160a01b038416600090815260208190526040902054811015610ea2576001600160a01b03841660009081526020819052604090208054610daf91869184908110610d9f57fe5b90600052602060002001546112b9565b91508115610e9a57610dc7838363ffffffff611b6216565b6001600160a01b0385166000908152600160208181526040808420918490528320805494975091939092919085908110610dfd57fe5b60009182526020808320919091015483528281019390935260409182018120600201805460ff1916941515949094179093556001600160a01b0387168352908290529020805482908110610e4d57fe5b9060005260206000200154846001600160a01b03167f11f87fd5adcd05786919b8b868f59a70d78ae4eb6f305c5927f9c5b1659841a4846040518082815260200191505060405180910390a35b600101610d55565b508115610f25576040805163a9059cbb60e01b81526001600160a01b0385166004820152602481018490529051309163a9059cbb9160448083019260209291908290030181600087803b158015610ef857600080fd5b505af1158015610f0c573d6000803e3d6000fd5b505050506040513d6020811015610f2257600080fd5b50505b50919050565b60065460ff1681565b6002546000906001600160a01b03163314610f4e57600080fd5b6001600160a01b038316610fa9576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600754610fbc908363ffffffff611b6216565b6007556001600160a01b038316600090815260086020526040902054610fe8908363ffffffff611b6216565b6001600160a01b0384166000818152600860209081526040808320949094558351868152935192939192600080516020611b938339815191529281900390910190a392915050565b600061103b82611399565b905060005b6001600160a01b038316600090815260208190526040902054811015610f25576110b36110a684600080876001600160a01b03166001600160a01b03168152602001908152602001600020848154811061109657fe5b9060005260206000200154611342565b839063ffffffff611b6216565b9150600101611040565b6000806110d0428463ffffffff611b6216565b90506110dc8686611342565b604080518082019091526015815274151bdad95b9cc8185b1c9958591e481b1bd8dad959605a1b602082015290156111555760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b506040805180820190915260138152720416d6f756e742063616e206e6f74206265203606c1b6020820152846111cc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b506001600160a01b038616600090815260016020908152604080832088845290915290205461121f576001600160a01b038616600090815260208181526040822080546001810182559083529120018590555b61122930856116be565b5060408051606081018252858152602080820184815260008385018181526001600160a01b038c1680835260018086528784208d855286529287902095518655925191850191909155516002909301805460ff191693151593909317909255825187815290810184905282518893600080516020611b73833981519152928290030190a350600195945050505050565b6001600160a01b038216600090815260016020818152604080842085855290915282200154421080159061131457506001600160a01b038316600090815260016020908152604080832085845290915290206002015460ff16155b1561099857506001600160a01b03919091166000908152600160209081526040808320938352929052205490565b6001600160a01b038216600090815260016020908152604080832084845290915281206002015460ff1661099857506001600160a01b03919091166000908152600160209081526040808320938352929052205490565b6001600160a01b031660009081526008602052604090205490565b600060205281600052604060002081815481106113cd57fe5b90600052602060002001600091509150505481565b6003546001600160a01b031633146113f957600080fd5b6003546002546040516001600160a01b0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360038054600280546001600160a01b03199081166001600160a01b03841617909155169055565b60008061146c3385611342565b116040518060400160405280601081526020016f139bc81d1bdad95b9cc81b1bd8dad95960821b815250906114e25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b506114ed30836116be565b50336000908152600160209081526040808320868452909152902054611519908363ffffffff611b6216565b3360008181526001602081815260408084208985528252928390208581559091015482519485529084015280518693600080516020611b7383398151915292908290030190a350600192915050565b6002546001600160a01b031681565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561092f5780601f106109045761010080835404028352916020019161092f565b6002546000906001600160a01b031633146115ec57600080fd5b6001600160a01b0383166116315760405162461bcd60e51b8152600401808060200182810382526021815260200180611bb36021913960400191505060405180910390fd5b6001600160a01b03831660009081526008602052604090205461165a908363ffffffff611b4d16565b6001600160a01b038416600090815260086020526040902055600754611686908363ffffffff611b4d16565b6007556040805183815290516000916001600160a01b03861691600080516020611b938339815191529181900360200190a392915050565b336000908152600860205260408120546116de908363ffffffff611b4d16565b33600090815260086020526040808220929092556001600160a01b03851681522054611710908363ffffffff611b6216565b6001600160a01b038416600081815260086020908152604091829020939093558051858152905191923392600080516020611b938339815191529281900390910190a350600192915050565b6000806117693385611342565b116040518060400160405280601081526020016f139bc81d1bdad95b9cc81b1bd8dad95960821b815250906117df5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b50336000908152600160208181526040808420878552909152909120015461180d908363ffffffff611b6216565b336000818152600160208181526040808420898552825292839020918201859055905482519081529081019390935280518693600080516020611b7383398151915292908290030190a350600192915050565b6000805b6001600160a01b038316600090815260208190526040902054811015610f25576118ba6110a684600080876001600160a01b03166001600160a01b031681526020019081526020016000208481548110610d9f57fe5b9150600101611864565b3360008181526009602090815260408083206001600160a01b038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a3604051638f4ffcb160e01b815233600482018181526024830186905230604484018190526080606485019081528651608486015286516001600160a01b038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b8381101561199b578181015183820152602001611983565b50505050905090810190601f1680156119c85780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156119ea57600080fd5b505af11580156119fe573d6000803e3d6000fd5b506001979650505050505050565b6003546001600160a01b031681565b6001602081815260009384526040808520909152918352912080549181015460029091015460ff1683565b6002546000906001600160a01b03163314611a6057600080fd5b6002546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519185169163a9059cbb916044808201926020929091908290030181600087803b158015611ab657600080fd5b505af1158015611aca573d6000803e3d6000fd5b505050506040513d6020811015611ae057600080fd5b50519392505050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6002546001600160a01b03163314611b2b57600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600082821115611b5c57600080fd5b50900390565b8181018281101561099857600080fdfeea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafddddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f2061646472657373a265627a7a723158203321a918c5f5c3c79259d09e35b2429b7f004db74d315e796a241c392e204e9864736f6c63430005110032
Deployed Bytecode
0x6080604052600436106101c25760003560e01c806371d66f00116100f7578063a9dab16711610095578063d71be8db11610064578063d71be8db146107a9578063dc39d06d14610802578063dd62ed3e1461083b578063f2fde38b14610876576101c2565b8063a9dab16714610669578063ab4a2eb314610699578063cae9ca51146106cc578063d4ee1d9014610794576101c2565b80638da5cb5b116100d15780638da5cb5b146105b157806395d89b41146105e25780639dc29fac146105f7578063a9059cbb14610630576101c2565b806371d66f001461053157806379ba50971461056a57806381fc4d9014610581576101c2565b8063313ce567116101645780634cb5465f1161013e5780634cb5465f146104475780635294d0e81461048c5780635ca48d8c146104c557806370a08231146104fe576101c2565b8063313ce567146103b057806340c10f19146103db5780634b0ee02a14610414576101c2565b806318160ddd116101a057806318160ddd146102ef57806323b872dd146103045780632e82aaf2146103475780632f6c493c1461037d576101c2565b806306fdde03146101c7578063095ea7b314610251578063179e91f11461029e575b600080fd5b3480156101d357600080fd5b506101dc6108a9565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102165781810151838201526020016101fe565b50505050905090810190601f1680156102435780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561025d57600080fd5b5061028a6004803603604081101561027457600080fd5b506001600160a01b038135169060200135610937565b604080519115158252519081900360200190f35b3480156102aa57600080fd5b506102dd600480360360608110156102c157600080fd5b506001600160a01b03813516906020810135906040013561099e565b60408051918252519081900360200190f35b3480156102fb57600080fd5b506102dd6109f7565b34801561031057600080fd5b5061028a6004803603606081101561032757600080fd5b506001600160a01b03813581169160208101359091169060400135610a3a565b34801561035357600080fd5b5061028a6004803603606081101561036a57600080fd5b5080359060208101359060400135610b33565b34801561038957600080fd5b506102dd600480360360208110156103a057600080fd5b50356001600160a01b0316610d50565b3480156103bc57600080fd5b506103c5610f2b565b6040805160ff9092168252519081900360200190f35b3480156103e757600080fd5b5061028a600480360360408110156103fe57600080fd5b506001600160a01b038135169060200135610f34565b34801561042057600080fd5b506102dd6004803603602081101561043757600080fd5b50356001600160a01b0316611030565b34801561045357600080fd5b5061028a6004803603608081101561046a57600080fd5b506001600160a01b0381351690602081013590604081013590606001356110bd565b34801561049857600080fd5b506102dd600480360360408110156104af57600080fd5b506001600160a01b0381351690602001356112b9565b3480156104d157600080fd5b506102dd600480360360408110156104e857600080fd5b506001600160a01b038135169060200135611342565b34801561050a57600080fd5b506102dd6004803603602081101561052157600080fd5b50356001600160a01b0316611399565b34801561053d57600080fd5b506102dd6004803603604081101561055457600080fd5b506001600160a01b0381351690602001356113b4565b34801561057657600080fd5b5061057f6113e2565b005b34801561058d57600080fd5b5061028a600480360360408110156105a457600080fd5b508035906020013561145f565b3480156105bd57600080fd5b506105c6611568565b604080516001600160a01b039092168252519081900360200190f35b3480156105ee57600080fd5b506101dc611577565b34801561060357600080fd5b5061028a6004803603604081101561061a57600080fd5b506001600160a01b0381351690602001356115d2565b34801561063c57600080fd5b5061028a6004803603604081101561065357600080fd5b506001600160a01b0381351690602001356116be565b34801561067557600080fd5b5061028a6004803603604081101561068c57600080fd5b508035906020013561175c565b3480156106a557600080fd5b506102dd600480360360208110156106bc57600080fd5b50356001600160a01b0316611860565b3480156106d857600080fd5b5061028a600480360360608110156106ef57600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561071f57600080fd5b82018360208201111561073157600080fd5b8035906020019184600183028401116401000000008311171561075357600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506118c4945050505050565b3480156107a057600080fd5b506105c6611a0c565b3480156107b557600080fd5b506107e2600480360360408110156107cc57600080fd5b506001600160a01b038135169060200135611a1b565b604080519384526020840192909252151582820152519081900360600190f35b34801561080e57600080fd5b5061028a6004803603604081101561082557600080fd5b506001600160a01b038135169060200135611a46565b34801561084757600080fd5b506102dd6004803603604081101561085e57600080fd5b506001600160a01b0381358116916020013516611ae9565b34801561088257600080fd5b5061057f6004803603602081101561089957600080fd5b50356001600160a01b0316611b14565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561092f5780601f106109045761010080835404028352916020019161092f565b820191906000526020600020905b81548152906001019060200180831161091257829003601f168201915b505050505081565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b6001600160a01b0383166000908152600160208181526040808420868552909152822001548210156109f057506001600160a01b03831660009081526001602090815260408083208584529091529020545b9392505050565b600080805260086020527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c754600754610a359163ffffffff611b4d16565b905090565b6001600160a01b038316600090815260086020526040812054610a63908363ffffffff611b4d16565b6001600160a01b0385166000908152600860209081526040808320939093556009815282822033835290522054610aa0908363ffffffff611b4d16565b6001600160a01b038086166000908152600960209081526040808320338452825280832094909455918616815260089091522054610ae4908363ffffffff611b6216565b6001600160a01b038085166000818152600860209081526040918290209490945580518681529051919392881692600080516020611b9383398151915292918290030190a35060019392505050565b600080610b46428463ffffffff611b6216565b9050610b523386611342565b604080518082019091526015815274151bdad95b9cc8185b1c9958591e481b1bd8dad959605a1b60208201529015610c085760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bcd578181015183820152602001610bb5565b50505050905090810190601f168015610bfa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506040805180820190915260138152720416d6f756e742063616e206e6f74206265203606c1b602082015284610c7f5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b50336000908152600160209081526040808320888452909152902054610cc05733600090815260208181526040822080546001810182559083529120018590555b610cca30856116be565b5060408051606081018252858152602080820184815260008385018181523380835260018086528784208d855286529287902095518655925191850191909155516002909301805460ff191693151593909317909255825187815290810184905282518893600080516020611b73833981519152928290030190a3506001949350505050565b600080805b6001600160a01b038416600090815260208190526040902054811015610ea2576001600160a01b03841660009081526020819052604090208054610daf91869184908110610d9f57fe5b90600052602060002001546112b9565b91508115610e9a57610dc7838363ffffffff611b6216565b6001600160a01b0385166000908152600160208181526040808420918490528320805494975091939092919085908110610dfd57fe5b60009182526020808320919091015483528281019390935260409182018120600201805460ff1916941515949094179093556001600160a01b0387168352908290529020805482908110610e4d57fe5b9060005260206000200154846001600160a01b03167f11f87fd5adcd05786919b8b868f59a70d78ae4eb6f305c5927f9c5b1659841a4846040518082815260200191505060405180910390a35b600101610d55565b508115610f25576040805163a9059cbb60e01b81526001600160a01b0385166004820152602481018490529051309163a9059cbb9160448083019260209291908290030181600087803b158015610ef857600080fd5b505af1158015610f0c573d6000803e3d6000fd5b505050506040513d6020811015610f2257600080fd5b50505b50919050565b60065460ff1681565b6002546000906001600160a01b03163314610f4e57600080fd5b6001600160a01b038316610fa9576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600754610fbc908363ffffffff611b6216565b6007556001600160a01b038316600090815260086020526040902054610fe8908363ffffffff611b6216565b6001600160a01b0384166000818152600860209081526040808320949094558351868152935192939192600080516020611b938339815191529281900390910190a392915050565b600061103b82611399565b905060005b6001600160a01b038316600090815260208190526040902054811015610f25576110b36110a684600080876001600160a01b03166001600160a01b03168152602001908152602001600020848154811061109657fe5b9060005260206000200154611342565b839063ffffffff611b6216565b9150600101611040565b6000806110d0428463ffffffff611b6216565b90506110dc8686611342565b604080518082019091526015815274151bdad95b9cc8185b1c9958591e481b1bd8dad959605a1b602082015290156111555760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b506040805180820190915260138152720416d6f756e742063616e206e6f74206265203606c1b6020820152846111cc5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b506001600160a01b038616600090815260016020908152604080832088845290915290205461121f576001600160a01b038616600090815260208181526040822080546001810182559083529120018590555b61122930856116be565b5060408051606081018252858152602080820184815260008385018181526001600160a01b038c1680835260018086528784208d855286529287902095518655925191850191909155516002909301805460ff191693151593909317909255825187815290810184905282518893600080516020611b73833981519152928290030190a350600195945050505050565b6001600160a01b038216600090815260016020818152604080842085855290915282200154421080159061131457506001600160a01b038316600090815260016020908152604080832085845290915290206002015460ff16155b1561099857506001600160a01b03919091166000908152600160209081526040808320938352929052205490565b6001600160a01b038216600090815260016020908152604080832084845290915281206002015460ff1661099857506001600160a01b03919091166000908152600160209081526040808320938352929052205490565b6001600160a01b031660009081526008602052604090205490565b600060205281600052604060002081815481106113cd57fe5b90600052602060002001600091509150505481565b6003546001600160a01b031633146113f957600080fd5b6003546002546040516001600160a01b0392831692909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360038054600280546001600160a01b03199081166001600160a01b03841617909155169055565b60008061146c3385611342565b116040518060400160405280601081526020016f139bc81d1bdad95b9cc81b1bd8dad95960821b815250906114e25760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b506114ed30836116be565b50336000908152600160209081526040808320868452909152902054611519908363ffffffff611b6216565b3360008181526001602081815260408084208985528252928390208581559091015482519485529084015280518693600080516020611b7383398151915292908290030190a350600192915050565b6002546001600160a01b031681565b6004805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561092f5780601f106109045761010080835404028352916020019161092f565b6002546000906001600160a01b031633146115ec57600080fd5b6001600160a01b0383166116315760405162461bcd60e51b8152600401808060200182810382526021815260200180611bb36021913960400191505060405180910390fd5b6001600160a01b03831660009081526008602052604090205461165a908363ffffffff611b4d16565b6001600160a01b038416600090815260086020526040902055600754611686908363ffffffff611b4d16565b6007556040805183815290516000916001600160a01b03861691600080516020611b938339815191529181900360200190a392915050565b336000908152600860205260408120546116de908363ffffffff611b4d16565b33600090815260086020526040808220929092556001600160a01b03851681522054611710908363ffffffff611b6216565b6001600160a01b038416600081815260086020908152604091829020939093558051858152905191923392600080516020611b938339815191529281900390910190a350600192915050565b6000806117693385611342565b116040518060400160405280601081526020016f139bc81d1bdad95b9cc81b1bd8dad95960821b815250906117df5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bcd578181015183820152602001610bb5565b50336000908152600160208181526040808420878552909152909120015461180d908363ffffffff611b6216565b336000818152600160208181526040808420898552825292839020918201859055905482519081529081019390935280518693600080516020611b7383398151915292908290030190a350600192915050565b6000805b6001600160a01b038316600090815260208190526040902054811015610f25576118ba6110a684600080876001600160a01b03166001600160a01b031681526020019081526020016000208481548110610d9f57fe5b9150600101611864565b3360008181526009602090815260408083206001600160a01b038816808552908352818420879055815187815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a3604051638f4ffcb160e01b815233600482018181526024830186905230604484018190526080606485019081528651608486015286516001600160a01b038a1695638f4ffcb195948a94938a939192909160a490910190602085019080838360005b8381101561199b578181015183820152602001611983565b50505050905090810190601f1680156119c85780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156119ea57600080fd5b505af11580156119fe573d6000803e3d6000fd5b506001979650505050505050565b6003546001600160a01b031681565b6001602081815260009384526040808520909152918352912080549181015460029091015460ff1683565b6002546000906001600160a01b03163314611a6057600080fd5b6002546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519185169163a9059cbb916044808201926020929091908290030181600087803b158015611ab657600080fd5b505af1158015611aca573d6000803e3d6000fd5b505050506040513d6020811015611ae057600080fd5b50519392505050565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6002546001600160a01b03163314611b2b57600080fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600082821115611b5c57600080fd5b50900390565b8181018281101561099857600080fdfeea90ef40963535482537f0689e05cb8d259e459ebd21530e826702294d0eafddddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a206275726e2066726f6d20746865207a65726f2061646472657373a265627a7a723158203321a918c5f5c3c79259d09e35b2429b7f004db74d315e796a241c392e204e9864736f6c63430005110032
Deployed Bytecode Sourcemap
6977:13311:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12179:8;;;7300:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7300:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7300:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9712:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9712:208:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9712:208:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;16465:253;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16465:253:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16465:253:0;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8117:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8117:114:0;;;:::i;10463:343::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10463:343:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10463:343:0;;;;;;;;;;;;;;;;;:::i;13913:763::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13913:763:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13913:763:0;;;;;;;;;;;;:::i;19165:631::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19165:631:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19165:631:0;-1:-1:-1;;;;;19165:631:0;;:::i;7326:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7326:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12629:328;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12629:328:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12629:328:0;;;;;;;;:::i;16882:301::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16882:301:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16882:301:0;-1:-1:-1;;;;;16882:301:0;;:::i;15036:624::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15036:624:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;15036:624:0;;;;;;;;;;;;;;;;;;:::i;18714:291::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18714:291:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18714:291:0;;;;;;;;:::i;15907:224::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15907:224:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15907:224:0;;;;;;;;:::i;8458:120::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8458:120:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8458:120:0;-1:-1:-1;;;;;8458:120:0;;:::i;3037:47::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3037:47:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3037:47:0;;;;;;;;:::i;2734:196::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2734:196:0;;;:::i;:::-;;17994:465;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17994:465:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17994:465:0;;;;;;;:::i;2304:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2304:20:0;;;:::i;:::-;;;;-1:-1:-1;;;;;2304:20:0;;;;;;;;;;;;;;7273;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7273:20:0;;;:::i;13289:330::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13289:330:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13289:330:0;;;;;;;;:::i;8929:267::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8929:267:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8929:267:0;;;;;;;;:::i;17376:414::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17376:414:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17376:414:0;;;;;;;:::i;19959:303::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19959:303:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19959:303:0;-1:-1:-1;;;;;19959:303:0;;:::i;11609:333::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11609:333:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;11609:333:0;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;11609:333:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11609:333:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;11609:333:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;11609:333:0;;-1:-1:-1;11609:333:0;;-1:-1:-1;;;;;11609:333:0:i;2331:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2331:23:0;;;:::i;3383:63::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3383:63:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3383:63:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12433:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12433:184:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12433:184:0;;;;;;;;:::i;11094:147::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11094:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11094:147:0;;;;;;;;;;:::i;2626:102::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2626:102:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2626:102:0;-1:-1:-1;;;;;2626:102:0;;:::i;7300:19::-;;;;;;;;;;;;;;;-1:-1:-1;;7300:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9712:208::-;9808:10;9775:12;9800:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;9800:28:0;;;;;;;;;;;:37;;;9853;;;;;;;9775:12;;9800:28;;9808:10;;9853:37;;;;;;;;-1:-1:-1;9908:4:0;9712:208;;;;;:::o;16465:253::-;-1:-1:-1;;;;;16622:11:0;;16586:14;16622:11;;;:6;:11;;;;;;;;:20;;;;;;;;:29;;:37;-1:-1:-1;16618:92:0;;;-1:-1:-1;;;;;;16683:11:0;;;;;;:6;:11;;;;;;;;:20;;;;;;;;:27;16618:92;16465:253;;;;;:::o;8117:114::-;8161:4;8202:20;;;:8;:20;;;;8185:12;;:38;;;:16;:38;:::i;:::-;8178:45;;8117:114;:::o;10463:343::-;-1:-1:-1;;;;;10582:14:0;;10540:12;10582:14;;;:8;:14;;;;;;:26;;10601:6;10582:26;:18;:26;:::i;:::-;-1:-1:-1;;;;;10565:14:0;;;;;;:8;:14;;;;;;;;:43;;;;10647:7;:13;;;;;10661:10;10647:25;;;;;;:37;;10677:6;10647:37;:29;:37;:::i;:::-;-1:-1:-1;;;;;10619:13:0;;;;;;;:7;:13;;;;;;;;10633:10;10619:25;;;;;;;:65;;;;10710:12;;;;;:8;:12;;;;;:24;;10727:6;10710:24;:16;:24;:::i;:::-;-1:-1:-1;;;;;10695:12:0;;;;;;;:8;:12;;;;;;;;;:39;;;;10750:26;;;;;;;10695:12;;10750:26;;;;-1:-1:-1;;;;;;;;;;;10750:26:0;;;;;;;;-1:-1:-1;10794:4:0;10463:343;;;;;:::o;13913:763::-;14010:4;;14053:14;:3;14061:5;14053:14;:7;:14;:::i;:::-;14032:35;;14248:33;14261:10;14273:7;14248:12;:33::i;:::-;14288:14;;;;;;;;;;;;-1:-1:-1;;;14288:14:0;;;;;14248:38;14240:63;;;;-1:-1:-1;;;14240:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14240:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14336:11:0;;;;;;;;;;;;-1:-1:-1;;;14336:11:0;;;;14322:12;14314:34;;;;-1:-1:-1;;;14314:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;14314:34:0;-1:-1:-1;14372:10:0;14365:18;;;;:6;:18;;;;;;;;:27;;;;;;;;:34;14361:94;;14430:10;14419;:22;;;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;14419:36:0;;;;;;;;;14361:94;14468:32;14485:4;14492:7;14468:8;:32::i;:::-;-1:-1:-1;14543:37:0;;;;;;;;;;;;;;;;;;-1:-1:-1;14543:37:0;;;;;;14520:10;14513:18;;;14543:37;14513:18;;;;;;:27;;;;;;;;;:67;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;14513:67:0;;;;;;;;;;;14598:48;;;;;;;;;;;;;14513:27;;-1:-1:-1;;;;;;;;;;;14598:48:0;;;;;;;-1:-1:-1;14664:4:0;;13913:763;-1:-1:-1;;;;13913:763:0:o;19165:631::-;19228:24;;;19303:396;-1:-1:-1;;;;;19327:15:0;;:10;:15;;;;;;;;;;:22;19323:26;;19303:396;;;-1:-1:-1;;;;;19408:15:0;;:10;:15;;;;;;;;;;:18;;19386:41;;19403:3;;19424:1;;19408:18;;;;;;;;;;;;;;19386:16;:41::i;:::-;19371:56;-1:-1:-1;19446:16:0;;19442:246;;19502:34;:16;19523:12;19502:34;:20;:34;:::i;:::-;-1:-1:-1;;;;;19555:11:0;;;;;;19597:4;19555:11;;;;;;;;19567:15;;;;;;:18;;19483:53;;-1:-1:-1;19597:4:0;;19555:11;;;19567:15;19583:1;;19567:18;;;;;;;;;;;;;;;;;;;19555:31;;;;;;;;;;;;;;;:39;;:46;;-1:-1:-1;;19555:46:0;;;;;;;;;;;-1:-1:-1;;;;;19639:15:0;;;;;;;;;;:18;;19655:1;;19639:18;;;;;;;;;;;;;;19634:3;-1:-1:-1;;;;;19625:47:0;;19659:12;19625:47;;;;;;;;;;;;;;;;;;19442:246;19351:3;;19303:396;;;-1:-1:-1;19717:20:0;;19713:75;;19752:36;;;-1:-1:-1;;;19752:36:0;;-1:-1:-1;;;;;19752:36:0;;;;;;;;;;;;;;:4;;:13;;:36;;;;;;;;;;;;;;-1:-1:-1;19752:4:0;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;19752:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19752:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;19713:75:0;19165:631;;;;:::o;7326:21::-;;;;;;:::o;12629:328::-;2592:5;;12702:4;;-1:-1:-1;;;;;2592:5:0;2578:10;:19;2570:28;;;;;;-1:-1:-1;;;;;12727:21:0;;12719:65;;;;;-1:-1:-1;;;12719:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12812:12;;:24;;12829:6;12812:24;:16;:24;:::i;:::-;12797:12;:39;-1:-1:-1;;;;;12867:17:0;;;;;;:8;:17;;;;;;:29;;12889:6;12867:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;12847:17:0;;;;;;:8;:17;;;;;;;;:49;;;;12912:37;;;;;;;12847:17;;;;-1:-1:-1;;;;;;;;;;;12912:37:0;;;;;;;;;12629:328;;;;:::o;16882:301::-;16967:14;17008;17018:3;17008:9;:14::i;:::-;16999:23;-1:-1:-1;17040:9:0;17035:138;-1:-1:-1;;;;;17059:15:0;;:10;:15;;;;;;;;;;:22;17055:26;;17035:138;;;17112:49;17123:37;17136:3;17141:10;:15;17152:3;-1:-1:-1;;;;;17141:15:0;-1:-1:-1;;;;;17141:15:0;;;;;;;;;;;;17157:1;17141:18;;;;;;;;;;;;;;;;17123:12;:37::i;:::-;17112:6;;:49;:10;:49;:::i;:::-;17103:58;-1:-1:-1;17083:3:0;;17035:138;;15036:624;15158:4;;15201:14;:3;15209:5;15201:14;:7;:14;:::i;:::-;15180:35;;15259:26;15272:3;15277:7;15259:12;:26::i;:::-;15292:14;;;;;;;;;;;;-1:-1:-1;;;15292:14:0;;;;;15259:31;15251:56;;;;-1:-1:-1;;;15251:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;15251:56:0;-1:-1:-1;15340:11:0;;;;;;;;;;;;-1:-1:-1;;;15340:11:0;;;;15326:12;15318:34;;;;-1:-1:-1;;;15318:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;15318:34:0;-1:-1:-1;;;;;;15369:11:0;;;;;;:6;:11;;;;;;;;:20;;;;;;;;:27;15365:80;;-1:-1:-1;;;;;15416:15:0;;:10;:15;;;;;;;;;;27:10:-1;;39:1;23:18;;45:23;;15416:29:0;;;;;;;;;15365:80;15458:32;15475:4;15482:7;15458:8;:32::i;:::-;-1:-1:-1;15526:37:0;;;;;;;;;;;;;;;;;;-1:-1:-1;15526:37:0;;;;;;-1:-1:-1;;;;;15503:11:0;;;;;15526:37;15503:11;;;;;;:20;;;;;;;;;:60;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;15503:60:0;;;;;;;;;;;15589:41;;;;;;;;;;;;;15503:20;;-1:-1:-1;;;;;;;;;;;15589:41:0;;;;;;;-1:-1:-1;15648:4:0;;15036:624;-1:-1:-1;;;;;15036:624:0:o;18714:291::-;-1:-1:-1;;;;;18854:11:0;;18818:14;18854:11;;;:6;:11;;;;;;;;:20;;;;;;;;:29;;18887:3;-1:-1:-1;18854:36:0;;;:69;;-1:-1:-1;;;;;;18895:11:0;;;;;;:6;:11;;;;;;;;:20;;;;;;;;:28;;;;;18894:29;18854:69;18850:147;;;-1:-1:-1;;;;;;18970:11:0;;;;;;;;:6;:11;;;;;;;;:20;;;;;;;:27;;18714:291::o;15907:224::-;-1:-1:-1;;;;;16044:11:0;;16007:14;16044:11;;;:6;:11;;;;;;;;:20;;;;;;;;:28;;;;;16039:84;;-1:-1:-1;;;;;;16096:11:0;;;;;;;;:6;:11;;;;;;;;:20;;;;;;;:27;;15907:224::o;8458:120::-;-1:-1:-1;;;;;8550:20:0;8518:12;8550:20;;;:8;:20;;;;;;;8458:120::o;3037:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2734:196::-;2801:8;;-1:-1:-1;;;;;2801:8:0;2787:10;:22;2779:31;;;;;;2854:8;;2847:5;;2826:37;;-1:-1:-1;;;;;2854:8:0;;;;2847:5;;;;2826:37;;2854:8;;2826:37;2882:8;;;2874:5;:16;;-1:-1:-1;;;;;;2874:16:0;;;-1:-1:-1;;;;;2882:8:0;;2874:16;;;;2901:21;;;2734:196::o;17994:465::-;18090:4;18156:1;18120:33;18133:10;18145:7;18120:12;:33::i;:::-;:37;18159:10;;;;;;;;;;;;;-1:-1:-1;;;18159:10:0;;;18112:58;;;;;-1:-1:-1;;;18112:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;18112:58:0;;18181:32;18198:4;18205:7;18181:8;:32::i;:::-;-1:-1:-1;18270:10:0;18263:18;;;;:6;:18;;;;;;;;:27;;;;;;;;:34;:47;;18302:7;18263:47;:38;:47;:::i;:::-;18233:10;18226:18;;;;:6;:18;;;;;;;;:27;;;;;;;;;:84;;;18392:36;;;;18328:101;;;;;;;;;;;18226:27;;-1:-1:-1;;;;;;;;;;;18328:101:0;;;;;;;;-1:-1:-1;18447:4:0;17994:465;;;;:::o;2304:20::-;;;-1:-1:-1;;;;;2304:20:0;;:::o;7273:::-;;;;;;;;;;;;;;;-1:-1:-1;;7273:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13289:330;2592:5;;13362:4;;-1:-1:-1;;;;;2592:5:0;2578:10;:19;2570:28;;;;;;-1:-1:-1;;;;;13387:21:0;;13379:67;;;;-1:-1:-1;;;13379:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13479:17:0;;;;;;:8;:17;;;;;;:29;;13501:6;13479:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;13459:17:0;;;;;;:8;:17;;;;;:49;13534:12;;:24;;13551:6;13534:24;:16;:24;:::i;:::-;13519:12;:39;13574:37;;;;;;;;13600:1;;-1:-1:-1;;;;;13574:37:0;;;-1:-1:-1;;;;;;;;;;;13574:37:0;;;;;;;;13289:330;;;;:::o;8929:267::-;9045:10;8988:12;9036:20;;;:8;:20;;;;;;:32;;9061:6;9036:32;:24;:32;:::i;:::-;9022:10;9013:20;;;;:8;:20;;;;;;:55;;;;-1:-1:-1;;;;;9094:12:0;;;;;;:24;;9111:6;9094:24;:16;:24;:::i;:::-;-1:-1:-1;;;;;9079:12:0;;;;;;:8;:12;;;;;;;;;:39;;;;9134:32;;;;;;;9079:12;;9143:10;;-1:-1:-1;;;;;;;;;;;9134:32:0;;;;;;;;;-1:-1:-1;9184:4:0;8929:267;;;;:::o;17376:414::-;17462:4;17528:1;17492:33;17505:10;17517:7;17492:12;:33::i;:::-;:37;17531:10;;;;;;;;;;;;;-1:-1:-1;;;17531:10:0;;;17484:58;;;;;-1:-1:-1;;;17484:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;17484:58:0;-1:-1:-1;17601:10:0;17594:18;;;;:6;:18;;;;;;;;:27;;;;;;;;;:36;;:47;;17635:5;17594:47;:40;:47;:::i;:::-;17562:10;17555:18;;;;:6;:18;;;;;;;;:27;;;;;;;;;:36;;;:86;;;17687:34;;17659:101;;;;;;;;;;;;;;17555:27;;-1:-1:-1;;;;;;;;;;;17659:101:0;;;;;;;;-1:-1:-1;17778:4:0;17376:414;;;;:::o;19959:303::-;20049:24;;20091:162;-1:-1:-1;;;;;20115:15:0;;:10;:15;;;;;;;;;;:22;20111:26;;20091:162;;;20178:63;20199:41;20216:3;20221:10;:15;20232:3;-1:-1:-1;;;;;20221:15:0;-1:-1:-1;;;;;20221:15:0;;;;;;;;;;;;20237:1;20221:18;;;;;;;20178:63;20159:82;-1:-1:-1;20139:3:0;;20091:162;;11609:333;11731:10;11698:12;11723:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;11723:28:0;;;;;;;;;;;:37;;;11776;;;;;;;11698:12;;11723:28;;11731:10;;11776:37;;;;;;;;11824:88;;-1:-1:-1;;;11824:88:0;;11872:10;11824:88;;;;;;;;;;;;11900:4;11824:88;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11824:47:0;;;;;11872:10;11884:6;;11900:4;11907;;11824:88;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;11824:88:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11824:88:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;11930:4:0;;11609:333;-1:-1:-1;;;;;;;11609:333:0:o;2331:23::-;;;-1:-1:-1;;;;;2331:23:0;;:::o;3383:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;12433:184::-;2592:5;;12525:12;;-1:-1:-1;;;;;2592:5:0;2578:10;:19;2570:28;;;;;;12595:5;;12557:52;;;-1:-1:-1;;;12557:52:0;;-1:-1:-1;;;;;12595:5:0;;;12557:52;;;;;;;;;;;;:37;;;;;;:52;;;;;;;;;;;;;;;12595:5;12557:37;:52;;;5:2:-1;;;;30:1;27;20:12;5:2;12557:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12557:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12557:52:0;;12433:184;-1:-1:-1;;;12433:184:0:o;11094:147::-;-1:-1:-1;;;;;11205:19:0;;;11171:14;11205:19;;;:7;:19;;;;;;;;:28;;;;;;;;;;;;;11094:147::o;2626:102::-;2592:5;;-1:-1:-1;;;;;2592:5:0;2578:10;:19;2570:28;;;;;;2700:8;:20;;-1:-1:-1;;;;;;2700:20:0;-1:-1:-1;;;;;2700:20:0;;;;;;;;;;2626:102::o;352:114::-;404:6;436:1;431;:6;;423:15;;;;;;-1:-1:-1;453:5:0;;;352:114::o;232:::-;307:5;;;331:6;;;;323:15;;;;
Swarm Source
bzzr://3321a918c5f5c3c79259d09e35b2429b7f004db74d315e796a241c392e204e98
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.