Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000,000,000,000 RONALDH-INU ⚽️ 🏃🏽
Holders
840
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
7,100,666,895.453254159 RONALDH-INU ⚽️ 🏃🏽Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
RONALDHINU
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-06-11 */ /** *Submitted for verification at Etherscan.io on 2021-06-11 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract RONALDHINU is Context, IERC20, IERC20Metadata, Ownable { mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcluded; address[] private _excluded; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100000000000 * 10**6 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private _name = 'RONALDH-INU'; string private _symbol = 'RONALDH-INU \xe2\x9a\xbd\xef\xb8\x8f \xf0\x9f\x8f\x83\xf0\x9f\x8f\xbd'; uint8 private _decimals = 9; uint256 public _maxTxAmount = 100000000 * 10**6 * 10**9; constructor () { _rOwned[_msgSender()] = _rTotal; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public view override returns (string memory) { return _name; } function symbol() public view override returns (string memory) { return _symbol; } function decimals() public view override returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); require(amount <= _allowances[sender][_msgSender()], "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), _allowances[sender][_msgSender()]- amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { require(subtractedValue <= _allowances[_msgSender()][spender], "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, _allowances[_msgSender()][spender] - subtractedValue); return true; } function isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() { _maxTxAmount = ((_tTotal * maxTxPercent) / 10**2); } function reflect(uint256 tAmount) public { address sender = _msgSender(); require(!_isExcluded[sender], "Excluded addresses cannot call this function"); (uint256 rAmount,,,,) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender] - rAmount; _rTotal = _rTotal - rAmount; _tFeeTotal = _tFeeTotal + tAmount; } function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) { require(tAmount <= _tTotal, "Amount must be less than supply"); if (!deductTransferFee) { (uint256 rAmount,,,,) = _getValues(tAmount); return rAmount; } else { (,uint256 rTransferAmount,,,) = _getValues(tAmount); return rTransferAmount; } } function tokenFromReflection(uint256 rAmount) public view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return (rAmount / currentRate); } function excludeAccount(address account) external onlyOwner() { require(!_isExcluded[account], "Account is already excluded"); if(_rOwned[account] > 0) { _tOwned[account] = tokenFromReflection(_rOwned[account]); } _isExcluded[account] = true; _excluded.push(account); } function includeAccount(address account) external onlyOwner() { require(_isExcluded[account], "Account is already excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address sender, address recipient, uint256 amount) private { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if(sender != owner() && recipient != owner()) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && !_isExcluded[recipient]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender] - rAmount; _rOwned[recipient] = _rOwned[recipient] + rTransferAmount; _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender] - rAmount; _tOwned[recipient] = _tOwned[recipient] + tTransferAmount; _rOwned[recipient] = _rOwned[recipient] + rTransferAmount; _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender] - tAmount; _rOwned[sender] = _rOwned[sender] - rAmount; _rOwned[recipient] = _rOwned[recipient] + rTransferAmount; _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee) = _getValues(tAmount); _tOwned[sender] = _tOwned[sender] - tAmount; _rOwned[sender] = _rOwned[sender] - rAmount; _tOwned[recipient] = _tOwned[recipient] + tTransferAmount; _rOwned[recipient] = _rOwned[recipient] + rTransferAmount; _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal - rFee; _tFeeTotal = _tFeeTotal + tFee; } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee); } function _getTValues(uint256 tAmount) private pure returns (uint256, uint256) { uint256 tFee = ((tAmount / 100) * 2); uint256 tTransferAmount = tAmount - tFee; return (tTransferAmount, tFee); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount * currentRate; uint256 rFee = tFee * currentRate; uint256 rTransferAmount = rAmount - rFee; return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return (rSupply / tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; for (uint256 i = 0; i < _excluded.length; i++) { if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal); rSupply = rSupply - _rOwned[_excluded[i]]; tSupply = tSupply - _tOwned[_excluded[i]]; } if (rSupply < (_rTotal / _tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","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":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"}]
Contract Creation Code
60806040526200001d6a52b7d2dcc80cd2e4000000600019620002d0565b6200002b906000196200026f565b60065560408051808201909152600b8082526a524f4e414c44482d494e5560a81b60209092019182526200006291600891620001c0565b5060408051808201909152601b8082527f524f4e414c44482d494e5520e29abdefb88f20f09f8f83f09f8fbd00000000006020909201918252620000a991600991620001c0565b50600a805460ff1916600917905569152d02c7e14af6800000600b55348015620000d257600080fd5b506000620000df620001bc565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654600160006200013a620001bc565b6001600160a01b031681526020810191909152604001600020556200015e620001bc565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6a52b7d2dcc80cd2e4000000604051620001ae919062000266565b60405180910390a3620002f1565b3390565b828054620001ce9062000293565b90600052602060002090601f016020900481019282620001f257600085556200023d565b82601f106200020d57805160ff19168380011785556200023d565b828001600101855582156200023d579182015b828111156200023d57825182559160200191906001019062000220565b506200024b9291506200024f565b5090565b5b808211156200024b576000815560010162000250565b90815260200190565b6000828210156200028e57634e487b7160e01b81526011600452602481fd5b500390565b600281046001821680620002a857607f821691505b60208210811415620002ca57634e487b7160e01b600052602260045260246000fd5b50919050565b600082620002ec57634e487b7160e01b81526012600452602481fd5b500690565b611b3d80620003016000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063cba0e9961161007c578063cba0e99614610289578063d543dbeb1461029c578063dd62ed3e146102af578063f2cc0c18146102c2578063f2fde38b146102d5578063f84354f1146102e85761014d565b8063715018a6146102365780637d1db4a51461023e5780638da5cb5b1461024657806395d89b411461025b578063a457c2d714610263578063a9059cbb146102765761014d565b806323b872dd1161011557806323b872dd146101c25780632d838119146101d5578063313ce567146101e857806339509351146101fd5780634549b0391461021057806370a08231146102235761014d565b8063053ab1821461015257806306fdde0314610167578063095ea7b31461018557806313114a9d146101a557806318160ddd146101ba575b600080fd5b6101656101603660046115ae565b6102fb565b005b61016f6103c0565b60405161017c9190611618565b60405180910390f35b610198610193366004611585565b610452565b60405161017c919061160d565b6101ad610470565b60405161017c9190611a16565b6101ad610476565b6101986101d036600461154a565b610485565b6101ad6101e33660046115ae565b61055b565b6101f061059e565b60405161017c9190611a1f565b61019861020b366004611585565b6105a7565b6101ad61021e3660046115c6565b6105f6565b6101ad6102313660046114f7565b61065a565b6101656106bc565b6101ad610745565b61024e61074b565b60405161017c91906115f9565b61016f61075a565b610198610271366004611585565b610769565b610198610284366004611585565b61080d565b6101986102973660046114f7565b610821565b6101656102aa3660046115ae565b61083f565b6101ad6102bd366004611518565b6108a5565b6101656102d03660046114f7565b6108d0565b6101656102e33660046114f7565b610a08565b6101656102f63660046114f7565b610ac8565b6000610305610c9d565b6001600160a01b03811660009081526004602052604090205490915060ff161561034a5760405162461bcd60e51b815260040161034190611985565b60405180910390fd5b600061035583610ca1565b5050506001600160a01b03841660009081526001602052604090205491925061038091839150611a84565b6001600160a01b0383166000908152600160205260409020556006546103a7908290611a84565b6006556007546103b8908490611a2d565b600755505050565b6060600880546103cf90611a9b565b80601f01602080910402602001604051908101604052809291908181526020018280546103fb90611a9b565b80156104485780601f1061041d57610100808354040283529160200191610448565b820191906000526020600020905b81548152906001019060200180831161042b57829003601f168201915b5050505050905090565b600061046661045f610c9d565b8484610ced565b5060015b92915050565b60075490565b6a52b7d2dcc80cd2e400000090565b6000610492848484610da1565b6001600160a01b0384166000908152600360205260408120906104b3610c9d565b6001600160a01b03166001600160a01b03168152602001908152602001600020548211156104f35760405162461bcd60e51b815260040161034190611836565b610551846104ff610c9d565b6001600160a01b03871660009081526003602052604081208691610521610c9d565b6001600160a01b03166001600160a01b031681526020019081526020016000205461054c9190611a84565b610ced565b5060019392505050565b600060065482111561057f5760405162461bcd60e51b8152600401610341906116ae565b6000610589610fcf565b90506105958184611a45565b9150505b919050565b600a5460ff1690565b60006104666105b4610c9d565b8484600360006105c2610c9d565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461054c9190611a2d565b60006a52b7d2dcc80cd2e40000008311156106235760405162461bcd60e51b8152600401610341906117b7565b8161064157600061063384610ca1565b5092945061046a9350505050565b600061064c84610ca1565b5091945061046a9350505050565b6001600160a01b03811660009081526004602052604081205460ff161561069a57506001600160a01b038116600090815260026020526040902054610599565b6001600160a01b03821660009081526001602052604090205461046a9061055b565b6106c4610c9d565b6001600160a01b03166106d561074b565b6001600160a01b0316146106fb5760405162461bcd60e51b81526004016103419061187e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600b5481565b6000546001600160a01b031690565b6060600980546103cf90611a9b565b600060036000610777610c9d565b6001600160a01b03908116825260208083019390935260409182016000908120918716815292529020548211156107c05760405162461bcd60e51b8152600401610341906119d1565b6104666107cb610c9d565b8484600360006107d9610c9d565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461054c9190611a84565b600061046661081a610c9d565b8484610da1565b6001600160a01b031660009081526004602052604090205460ff1690565b610847610c9d565b6001600160a01b031661085861074b565b6001600160a01b03161461087e5760405162461bcd60e51b81526004016103419061187e565b6064610895826a52b7d2dcc80cd2e4000000611a65565b61089f9190611a45565b600b5550565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6108d8610c9d565b6001600160a01b03166108e961074b565b6001600160a01b03161461090f5760405162461bcd60e51b81526004016103419061187e565b6001600160a01b03811660009081526004602052604090205460ff16156109485760405162461bcd60e51b815260040161034190611780565b6001600160a01b038116600090815260016020526040902054156109a2576001600160a01b0381166000908152600160205260409020546109889061055b565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b610a10610c9d565b6001600160a01b0316610a2161074b565b6001600160a01b031614610a475760405162461bcd60e51b81526004016103419061187e565b6001600160a01b038116610a6d5760405162461bcd60e51b8152600401610341906116f8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610ad0610c9d565b6001600160a01b0316610ae161074b565b6001600160a01b031614610b075760405162461bcd60e51b81526004016103419061187e565b6001600160a01b03811660009081526004602052604090205460ff16610b3f5760405162461bcd60e51b815260040161034190611780565b60005b600554811015610c9957816001600160a01b031660058281548110610b7757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610c875760058054610ba290600190611a84565b81548110610bc057634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600580546001600160a01b039092169183908110610bfa57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610c6057634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b0319169055019055610c99565b80610c9181611ad6565b915050610b42565b5050565b3390565b6000806000806000806000610cb588610ff2565b915091506000610cc3610fcf565b90506000806000610cd58c8686611025565b919e909d50909b509599509397509395505050505050565b6001600160a01b038316610d135760405162461bcd60e51b815260040161034190611941565b6001600160a01b038216610d395760405162461bcd60e51b81526004016103419061173e565b6001600160a01b0380841660008181526003602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d94908590611a16565b60405180910390a3505050565b6001600160a01b038316610dc75760405162461bcd60e51b8152600401610341906118fc565b6001600160a01b038216610ded5760405162461bcd60e51b81526004016103419061166b565b60008111610e0d5760405162461bcd60e51b8152600401610341906118b3565b610e1561074b565b6001600160a01b0316836001600160a01b031614158015610e4f5750610e3961074b565b6001600160a01b0316826001600160a01b031614155b15610e7657600b54811115610e765760405162461bcd60e51b8152600401610341906117ee565b6001600160a01b03831660009081526004602052604090205460ff168015610eb757506001600160a01b03821660009081526004602052604090205460ff16155b15610ecc57610ec7838383611061565b610fca565b6001600160a01b03831660009081526004602052604090205460ff16158015610f0d57506001600160a01b03821660009081526004602052604090205460ff165b15610f1d57610ec783838361117b565b6001600160a01b03831660009081526004602052604090205460ff16158015610f5f57506001600160a01b03821660009081526004602052604090205460ff16155b15610f6f57610ec7838383611224565b6001600160a01b03831660009081526004602052604090205460ff168015610faf57506001600160a01b03821660009081526004602052604090205460ff165b15610fbf57610ec7838383611266565b610fca838383611224565b505050565b6000806000610fdc6112d8565b9092509050610feb8183611a45565b9250505090565b60008080611001606485611a45565b61100c906002611a65565b9050600061101a8286611a84565b935090915050915091565b60008080806110348588611a65565b905060006110428688611a65565b905060006110508284611a84565b929992985090965090945050505050565b600080600080600061107286610ca1565b6001600160a01b038d16600090815260026020526040902054949950929750909550935091506110a3908790611a84565b6001600160a01b0389166000908152600260209081526040808320939093556001905220546110d3908690611a84565b6001600160a01b03808a166000908152600160205260408082209390935590891681522054611103908590611a2d565b6001600160a01b03881660009081526001602052604090205561112683826114ba565b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111699190611a16565b60405180910390a35050505050505050565b600080600080600061118c86610ca1565b6001600160a01b038d16600090815260016020526040902054949950929750909550935091506111bd908690611a84565b6001600160a01b03808a16600090815260016020908152604080832094909455918a168152600290915220546111f4908390611a2d565b6001600160a01b038816600090815260026020908152604080832093909355600190522054611103908590611a2d565b600080600080600061123586610ca1565b6001600160a01b038d16600090815260016020526040902054949950929750909550935091506110d3908690611a84565b600080600080600061127786610ca1565b6001600160a01b038d16600090815260026020526040902054949950929750909550935091506112a8908790611a84565b6001600160a01b0389166000908152600260209081526040808320939093556001905220546111bd908690611a84565b60065460009081906a52b7d2dcc80cd2e4000000825b6005548110156114755782600160006005848154811061131e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611397575081600260006005848154811061137057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156113b7576006546a52b7d2dcc80cd2e4000000945094505050506114b6565b60016000600583815481106113dc57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205461140b9084611a84565b9250600260006005838154811061143257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546114619083611a84565b91508061146d81611ad6565b9150506112ee565b506a52b7d2dcc80cd2e400000060065461148f9190611a45565b8210156114b0576006546a52b7d2dcc80cd2e40000009350935050506114b6565b90925090505b9091565b816006546114c89190611a84565b6006556007546114d9908290611a2d565b6007555050565b80356001600160a01b038116811461059957600080fd5b600060208284031215611508578081fd5b611511826114e0565b9392505050565b6000806040838503121561152a578081fd5b611533836114e0565b9150611541602084016114e0565b90509250929050565b60008060006060848603121561155e578081fd5b611567846114e0565b9250611575602085016114e0565b9150604084013590509250925092565b60008060408385031215611597578182fd5b6115a0836114e0565b946020939093013593505050565b6000602082840312156115bf578081fd5b5035919050565b600080604083850312156115d8578182fd5b82359150602083013580151581146115ee578182fd5b809150509250929050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b8181101561164457858101830151858201604001528201611628565b818111156116555783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252602a908201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260408201526965666c656374696f6e7360b01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604082015260600190565b6020808252601f908201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604082015260600190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602c908201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460408201526b3434b990333ab731ba34b7b760a11b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b60ff91909116815260200190565b60008219821115611a4057611a40611af1565b500190565b600082611a6057634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611a7f57611a7f611af1565b500290565b600082821015611a9657611a96611af1565b500390565b600281046001821680611aaf57607f821691505b60208210811415611ad057634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611aea57611aea611af1565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212206efbf3270df3375fea37a235f8fbcbca050915970be55218af390a0e82fd0bdd64736f6c63430008000033
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061014d5760003560e01c8063715018a6116100c3578063cba0e9961161007c578063cba0e99614610289578063d543dbeb1461029c578063dd62ed3e146102af578063f2cc0c18146102c2578063f2fde38b146102d5578063f84354f1146102e85761014d565b8063715018a6146102365780637d1db4a51461023e5780638da5cb5b1461024657806395d89b411461025b578063a457c2d714610263578063a9059cbb146102765761014d565b806323b872dd1161011557806323b872dd146101c25780632d838119146101d5578063313ce567146101e857806339509351146101fd5780634549b0391461021057806370a08231146102235761014d565b8063053ab1821461015257806306fdde0314610167578063095ea7b31461018557806313114a9d146101a557806318160ddd146101ba575b600080fd5b6101656101603660046115ae565b6102fb565b005b61016f6103c0565b60405161017c9190611618565b60405180910390f35b610198610193366004611585565b610452565b60405161017c919061160d565b6101ad610470565b60405161017c9190611a16565b6101ad610476565b6101986101d036600461154a565b610485565b6101ad6101e33660046115ae565b61055b565b6101f061059e565b60405161017c9190611a1f565b61019861020b366004611585565b6105a7565b6101ad61021e3660046115c6565b6105f6565b6101ad6102313660046114f7565b61065a565b6101656106bc565b6101ad610745565b61024e61074b565b60405161017c91906115f9565b61016f61075a565b610198610271366004611585565b610769565b610198610284366004611585565b61080d565b6101986102973660046114f7565b610821565b6101656102aa3660046115ae565b61083f565b6101ad6102bd366004611518565b6108a5565b6101656102d03660046114f7565b6108d0565b6101656102e33660046114f7565b610a08565b6101656102f63660046114f7565b610ac8565b6000610305610c9d565b6001600160a01b03811660009081526004602052604090205490915060ff161561034a5760405162461bcd60e51b815260040161034190611985565b60405180910390fd5b600061035583610ca1565b5050506001600160a01b03841660009081526001602052604090205491925061038091839150611a84565b6001600160a01b0383166000908152600160205260409020556006546103a7908290611a84565b6006556007546103b8908490611a2d565b600755505050565b6060600880546103cf90611a9b565b80601f01602080910402602001604051908101604052809291908181526020018280546103fb90611a9b565b80156104485780601f1061041d57610100808354040283529160200191610448565b820191906000526020600020905b81548152906001019060200180831161042b57829003601f168201915b5050505050905090565b600061046661045f610c9d565b8484610ced565b5060015b92915050565b60075490565b6a52b7d2dcc80cd2e400000090565b6000610492848484610da1565b6001600160a01b0384166000908152600360205260408120906104b3610c9d565b6001600160a01b03166001600160a01b03168152602001908152602001600020548211156104f35760405162461bcd60e51b815260040161034190611836565b610551846104ff610c9d565b6001600160a01b03871660009081526003602052604081208691610521610c9d565b6001600160a01b03166001600160a01b031681526020019081526020016000205461054c9190611a84565b610ced565b5060019392505050565b600060065482111561057f5760405162461bcd60e51b8152600401610341906116ae565b6000610589610fcf565b90506105958184611a45565b9150505b919050565b600a5460ff1690565b60006104666105b4610c9d565b8484600360006105c2610c9d565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461054c9190611a2d565b60006a52b7d2dcc80cd2e40000008311156106235760405162461bcd60e51b8152600401610341906117b7565b8161064157600061063384610ca1565b5092945061046a9350505050565b600061064c84610ca1565b5091945061046a9350505050565b6001600160a01b03811660009081526004602052604081205460ff161561069a57506001600160a01b038116600090815260026020526040902054610599565b6001600160a01b03821660009081526001602052604090205461046a9061055b565b6106c4610c9d565b6001600160a01b03166106d561074b565b6001600160a01b0316146106fb5760405162461bcd60e51b81526004016103419061187e565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600b5481565b6000546001600160a01b031690565b6060600980546103cf90611a9b565b600060036000610777610c9d565b6001600160a01b03908116825260208083019390935260409182016000908120918716815292529020548211156107c05760405162461bcd60e51b8152600401610341906119d1565b6104666107cb610c9d565b8484600360006107d9610c9d565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461054c9190611a84565b600061046661081a610c9d565b8484610da1565b6001600160a01b031660009081526004602052604090205460ff1690565b610847610c9d565b6001600160a01b031661085861074b565b6001600160a01b03161461087e5760405162461bcd60e51b81526004016103419061187e565b6064610895826a52b7d2dcc80cd2e4000000611a65565b61089f9190611a45565b600b5550565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6108d8610c9d565b6001600160a01b03166108e961074b565b6001600160a01b03161461090f5760405162461bcd60e51b81526004016103419061187e565b6001600160a01b03811660009081526004602052604090205460ff16156109485760405162461bcd60e51b815260040161034190611780565b6001600160a01b038116600090815260016020526040902054156109a2576001600160a01b0381166000908152600160205260409020546109889061055b565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556005805491820181559091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db00180546001600160a01b0319169091179055565b610a10610c9d565b6001600160a01b0316610a2161074b565b6001600160a01b031614610a475760405162461bcd60e51b81526004016103419061187e565b6001600160a01b038116610a6d5760405162461bcd60e51b8152600401610341906116f8565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610ad0610c9d565b6001600160a01b0316610ae161074b565b6001600160a01b031614610b075760405162461bcd60e51b81526004016103419061187e565b6001600160a01b03811660009081526004602052604090205460ff16610b3f5760405162461bcd60e51b815260040161034190611780565b60005b600554811015610c9957816001600160a01b031660058281548110610b7757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610c875760058054610ba290600190611a84565b81548110610bc057634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600580546001600160a01b039092169183908110610bfa57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556005805480610c6057634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b0319169055019055610c99565b80610c9181611ad6565b915050610b42565b5050565b3390565b6000806000806000806000610cb588610ff2565b915091506000610cc3610fcf565b90506000806000610cd58c8686611025565b919e909d50909b509599509397509395505050505050565b6001600160a01b038316610d135760405162461bcd60e51b815260040161034190611941565b6001600160a01b038216610d395760405162461bcd60e51b81526004016103419061173e565b6001600160a01b0380841660008181526003602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d94908590611a16565b60405180910390a3505050565b6001600160a01b038316610dc75760405162461bcd60e51b8152600401610341906118fc565b6001600160a01b038216610ded5760405162461bcd60e51b81526004016103419061166b565b60008111610e0d5760405162461bcd60e51b8152600401610341906118b3565b610e1561074b565b6001600160a01b0316836001600160a01b031614158015610e4f5750610e3961074b565b6001600160a01b0316826001600160a01b031614155b15610e7657600b54811115610e765760405162461bcd60e51b8152600401610341906117ee565b6001600160a01b03831660009081526004602052604090205460ff168015610eb757506001600160a01b03821660009081526004602052604090205460ff16155b15610ecc57610ec7838383611061565b610fca565b6001600160a01b03831660009081526004602052604090205460ff16158015610f0d57506001600160a01b03821660009081526004602052604090205460ff165b15610f1d57610ec783838361117b565b6001600160a01b03831660009081526004602052604090205460ff16158015610f5f57506001600160a01b03821660009081526004602052604090205460ff16155b15610f6f57610ec7838383611224565b6001600160a01b03831660009081526004602052604090205460ff168015610faf57506001600160a01b03821660009081526004602052604090205460ff165b15610fbf57610ec7838383611266565b610fca838383611224565b505050565b6000806000610fdc6112d8565b9092509050610feb8183611a45565b9250505090565b60008080611001606485611a45565b61100c906002611a65565b9050600061101a8286611a84565b935090915050915091565b60008080806110348588611a65565b905060006110428688611a65565b905060006110508284611a84565b929992985090965090945050505050565b600080600080600061107286610ca1565b6001600160a01b038d16600090815260026020526040902054949950929750909550935091506110a3908790611a84565b6001600160a01b0389166000908152600260209081526040808320939093556001905220546110d3908690611a84565b6001600160a01b03808a166000908152600160205260408082209390935590891681522054611103908590611a2d565b6001600160a01b03881660009081526001602052604090205561112683826114ba565b866001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111699190611a16565b60405180910390a35050505050505050565b600080600080600061118c86610ca1565b6001600160a01b038d16600090815260016020526040902054949950929750909550935091506111bd908690611a84565b6001600160a01b03808a16600090815260016020908152604080832094909455918a168152600290915220546111f4908390611a2d565b6001600160a01b038816600090815260026020908152604080832093909355600190522054611103908590611a2d565b600080600080600061123586610ca1565b6001600160a01b038d16600090815260016020526040902054949950929750909550935091506110d3908690611a84565b600080600080600061127786610ca1565b6001600160a01b038d16600090815260026020526040902054949950929750909550935091506112a8908790611a84565b6001600160a01b0389166000908152600260209081526040808320939093556001905220546111bd908690611a84565b60065460009081906a52b7d2dcc80cd2e4000000825b6005548110156114755782600160006005848154811061131e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020541180611397575081600260006005848154811061137057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156113b7576006546a52b7d2dcc80cd2e4000000945094505050506114b6565b60016000600583815481106113dc57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205461140b9084611a84565b9250600260006005838154811061143257634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020546114619083611a84565b91508061146d81611ad6565b9150506112ee565b506a52b7d2dcc80cd2e400000060065461148f9190611a45565b8210156114b0576006546a52b7d2dcc80cd2e40000009350935050506114b6565b90925090505b9091565b816006546114c89190611a84565b6006556007546114d9908290611a2d565b6007555050565b80356001600160a01b038116811461059957600080fd5b600060208284031215611508578081fd5b611511826114e0565b9392505050565b6000806040838503121561152a578081fd5b611533836114e0565b9150611541602084016114e0565b90509250929050565b60008060006060848603121561155e578081fd5b611567846114e0565b9250611575602085016114e0565b9150604084013590509250925092565b60008060408385031215611597578182fd5b6115a0836114e0565b946020939093013593505050565b6000602082840312156115bf578081fd5b5035919050565b600080604083850312156115d8578182fd5b82359150602083013580151581146115ee578182fd5b809150509250929050565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b8181101561164457858101830151858201604001528201611628565b818111156116555783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252602a908201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260408201526965666c656374696f6e7360b01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601b908201527f4163636f756e7420697320616c7265616479206578636c756465640000000000604082015260600190565b6020808252601f908201527f416d6f756e74206d757374206265206c657373207468616e20737570706c7900604082015260600190565b60208082526028908201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546040820152673c20b6b7bab73a1760c11b606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206040820152687468616e207a65726f60b81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252602c908201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460408201526b3434b990333ab731ba34b7b760a11b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b60ff91909116815260200190565b60008219821115611a4057611a40611af1565b500190565b600082611a6057634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615611a7f57611a7f611af1565b500290565b600082821015611a9657611a96611af1565b500390565b600281046001821680611aaf57607f821691505b60208210811415611ad057634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415611aea57611aea611af1565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212206efbf3270df3375fea37a235f8fbcbca050915970be55218af390a0e82fd0bdd64736f6c63430008000033
Deployed Bytecode Sourcemap
6496:10664:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9861:367;;;;;;:::i;:::-;;:::i;:::-;;7436:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8375:161;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;9612:87::-;;;:::i;:::-;;;;;;;:::i;7740:95::-;;;:::i;8544:372::-;;;;;;:::i;:::-;;:::i;10678:252::-;;;;;;:::i;:::-;;:::i;7640:92::-;;;:::i;:::-;;;;;;;:::i;8924:215::-;;;;;;:::i;:::-;;:::i;10236:434::-;;;;;;:::i;:::-;;:::i;7843:198::-;;;;;;:::i;:::-;;:::i;5940:148::-;;;:::i;7240:55::-;;;:::i;5289:87::-;;;:::i;:::-;;;;;;;:::i;7536:96::-;;;:::i;9147:339::-;;;;;;:::i;:::-;;:::i;8049:167::-;;;;;;:::i;:::-;;:::i;9494:110::-;;;;;;:::i;:::-;;:::i;9717:136::-;;;;;;:::i;:::-;;:::i;8224:143::-;;;;;;:::i;:::-;;:::i;10938:332::-;;;;;;:::i;:::-;;:::i;6243:244::-;;;;;;:::i;:::-;;:::i;11278:478::-;;;;;;:::i;:::-;;:::i;9861:367::-;9913:14;9930:12;:10;:12::i;:::-;-1:-1:-1;;;;;9962:19:0;;;;;;:11;:19;;;;;;9913:29;;-1:-1:-1;9962:19:0;;9961:20;9953:77;;;;-1:-1:-1;;;9953:77:0;;;;;;;:::i;:::-;;;;;;;;;10042:15;10065:19;10076:7;10065:10;:19::i;:::-;-1:-1:-1;;;;;;;;10113:15:0;;;;;;:7;:15;;;;;;10041:43;;-1:-1:-1;10113:25:0;;10041:43;;-1:-1:-1;10113:25:0;:::i;:::-;-1:-1:-1;;;;;10095:15:0;;;;;;:7;:15;;;;;:43;10159:7;;:17;;10169:7;;10159:17;:::i;:::-;10149:7;:27;10200:10;;:20;;10213:7;;10200:20;:::i;:::-;10187:10;:33;-1:-1:-1;;;9861:367:0:o;7436:92::-;7482:13;7515:5;7508:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7436:92;:::o;8375:161::-;8450:4;8467:39;8476:12;:10;:12::i;:::-;8490:7;8499:6;8467:8;:39::i;:::-;-1:-1:-1;8524:4:0;8375:161;;;;;:::o;9612:87::-;9681:10;;9612:87;:::o;7740:95::-;6928:28;7740:95;:::o;8544:372::-;8642:4;8659:36;8669:6;8677:9;8688:6;8659:9;:36::i;:::-;-1:-1:-1;;;;;8724:19:0;;;;;;:11;:19;;;;;;8744:12;:10;:12::i;:::-;-1:-1:-1;;;;;8724:33:0;-1:-1:-1;;;;;8724:33:0;;;;;;;;;;;;;8714:6;:43;;8706:96;;;;-1:-1:-1;;;8706:96:0;;;;;;;:::i;:::-;8813:73;8822:6;8830:12;:10;:12::i;:::-;-1:-1:-1;;;;;8844:19:0;;;;;;:11;:19;;;;;8879:6;;8864:12;:10;:12::i;:::-;-1:-1:-1;;;;;8844:33:0;-1:-1:-1;;;;;8844:33:0;;;;;;;;;;;;;:41;;;;:::i;:::-;8813:8;:73::i;:::-;-1:-1:-1;8904:4:0;8544:372;;;;;:::o;10678:252::-;10744:7;10783;;10772;:18;;10764:73;;;;-1:-1:-1;;;10764:73:0;;;;;;;:::i;:::-;10848:19;10871:10;:8;:10::i;:::-;10848:33;-1:-1:-1;10900:21:0;10848:33;10900:7;:21;:::i;:::-;10892:30;;;10678:252;;;;:::o;7640:92::-;7715:9;;;;7640:92;:::o;8924:215::-;9012:4;9029:80;9038:12;:10;:12::i;:::-;9052:7;9098:10;9061:11;:25;9073:12;:10;:12::i;:::-;-1:-1:-1;;;;;9061:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;9061:25:0;;;:34;;;;;;;;;;:47;;;;:::i;10236:434::-;10326:7;6928:28;10354:7;:18;;10346:62;;;;-1:-1:-1;;;10346:62:0;;;;;;;:::i;:::-;10424:17;10419:244;;10459:15;10482:19;10493:7;10482:10;:19::i;:::-;-1:-1:-1;10458:43:0;;-1:-1:-1;10516:14:0;;-1:-1:-1;;;;10516:14:0;10419:244;10565:23;10595:19;10606:7;10595:10;:19::i;:::-;-1:-1:-1;10563:51:0;;-1:-1:-1;10629:22:0;;-1:-1:-1;;;;10629:22:0;7843:198;-1:-1:-1;;;;;7933:20:0;;7909:7;7933:20;;;:11;:20;;;;;;;;7929:49;;;-1:-1:-1;;;;;;7962:16:0;;;;;;:7;:16;;;;;;7955:23;;7929:49;-1:-1:-1;;;;;8016:16:0;;;;;;:7;:16;;;;;;7996:37;;:19;:37::i;5940:148::-;5520:12;:10;:12::i;:::-;-1:-1:-1;;;;;5509:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5509:23:0;;5501:68;;;;-1:-1:-1;;;5501:68:0;;;;;;;:::i;:::-;6047:1:::1;6031:6:::0;;6010:40:::1;::::0;-1:-1:-1;;;;;6031:6:0;;::::1;::::0;6010:40:::1;::::0;6047:1;;6010:40:::1;6078:1;6061:19:::0;;-1:-1:-1;;;;;;6061:19:0::1;::::0;;5940:148::o;7240:55::-;;;;:::o;5289:87::-;5335:7;5362:6;-1:-1:-1;;;;;5362:6:0;5289:87;:::o;7536:96::-;7584:13;7617:7;7610:14;;;;;:::i;9147:339::-;9240:4;9284:11;:25;9296:12;:10;:12::i;:::-;-1:-1:-1;;;;;9284:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;9284:25:0;;;:34;;;;;;;;;;9265:53;;;9257:103;;;;-1:-1:-1;;;9257:103:0;;;;;;;:::i;:::-;9371:85;9380:12;:10;:12::i;:::-;9394:7;9440:15;9403:11;:25;9415:12;:10;:12::i;:::-;-1:-1:-1;;;;;9403:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;9403:25:0;;;:34;;;;;;;;;;:52;;;;:::i;8049:167::-;8127:4;8144:42;8154:12;:10;:12::i;:::-;8168:9;8179:6;8144:9;:42::i;9494:110::-;-1:-1:-1;;;;;9576:20:0;9552:4;9576:20;;;:11;:20;;;;;;;;;9494:110::o;9717:136::-;5520:12;:10;:12::i;:::-;-1:-1:-1;;;;;5509:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5509:23:0;;5501:68;;;;-1:-1:-1;;;5501:68:0;;;;;;;:::i;:::-;9839:5:::1;9813:22;9823:12:::0;6928:28:::1;9813:22;:::i;:::-;9812:32;;;;:::i;:::-;9796:12;:49:::0;-1:-1:-1;9717:136:0:o;8224:143::-;-1:-1:-1;;;;;8332:18:0;;;8305:7;8332:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8224:143::o;10938:332::-;5520:12;:10;:12::i;:::-;-1:-1:-1;;;;;5509:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5509:23:0;;5501:68;;;;-1:-1:-1;;;5501:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11020:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;11019:21;11011:61;;;;-1:-1:-1::0;;;11011:61:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11086:16:0;::::1;11105:1;11086:16:::0;;;:7:::1;:16;::::0;;;;;:20;11083:108:::1;;-1:-1:-1::0;;;;;11162:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;11142:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;11123:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;11083:108:::1;-1:-1:-1::0;;;;;11201:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;11201:27:0::1;11224:4;11201:27:::0;;::::1;::::0;;;11239:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;11239:23:0::1;::::0;;::::1;::::0;;10938:332::o;6243:244::-;5520:12;:10;:12::i;:::-;-1:-1:-1;;;;;5509:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5509:23:0;;5501:68;;;;-1:-1:-1;;;5501:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6332:22:0;::::1;6324:73;;;;-1:-1:-1::0;;;6324:73:0::1;;;;;;;:::i;:::-;6434:6;::::0;;6413:38:::1;::::0;-1:-1:-1;;;;;6413:38:0;;::::1;::::0;6434:6;::::1;::::0;6413:38:::1;::::0;::::1;6462:6;:17:::0;;-1:-1:-1;;;;;;6462:17:0::1;-1:-1:-1::0;;;;;6462:17:0;;;::::1;::::0;;;::::1;::::0;;6243:244::o;11278:478::-;5520:12;:10;:12::i;:::-;-1:-1:-1;;;;;5509:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;5509:23:0;;5501:68;;;;-1:-1:-1;;;5501:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11359:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;11351:60;;;;-1:-1:-1::0;;;11351:60:0::1;;;;;;;:::i;:::-;11427:9;11422:327;11446:9;:16:::0;11442:20;::::1;11422:327;;;11504:7;-1:-1:-1::0;;;;;11488:23:0::1;:9;11498:1;11488:12;;;;;;-1:-1:-1::0;;;11488:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;11488:12:0::1;:23;11484:254;;;11547:9;11557:16:::0;;:20:::1;::::0;11576:1:::1;::::0;11557:20:::1;:::i;:::-;11547:31;;;;;;-1:-1:-1::0;;;11547:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;11532:9:::1;:12:::0;;-1:-1:-1;;;;;11547:31:0;;::::1;::::0;11542:1;;11532:12;::::1;;;-1:-1:-1::0;;;11532:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;11532:46:0::1;-1:-1:-1::0;;;;;11532:46:0;;::::1;;::::0;;11597:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;11636:11:::1;:20:::0;;;;:28;;-1:-1:-1;;11636:28:0::1;::::0;;11683:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;11683:15:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;11683:15:0;;;;;-1:-1:-1;;;;;;11683:15:0::1;::::0;;;;;11717:5:::1;;11484:254;11464:3:::0;::::1;::::0;::::1;:::i;:::-;;;;11422:327;;;;11278:478:::0;:::o;672:98::-;752:10;672:98;:::o;15448:411::-;15507:7;15516;15525;15534;15543;15564:23;15589:12;15605:20;15617:7;15605:11;:20::i;:::-;15563:62;;;;15636:19;15659:10;:8;:10::i;:::-;15636:33;;15681:15;15698:23;15723:12;15739:39;15751:7;15760:4;15766:11;15739;:39::i;:::-;15680:98;;;;-1:-1:-1;15680:98:0;;-1:-1:-1;15829:15:0;;-1:-1:-1;15846:4:0;;-1:-1:-1;15448:411:0;;-1:-1:-1;;;;;;15448:411:0:o;11764:337::-;-1:-1:-1;;;;;11857:19:0;;11849:68;;;;-1:-1:-1;;;11849:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11936:21:0;;11928:68;;;;-1:-1:-1;;;11928:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12009:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;12061:32;;;;;12039:6;;12061:32;:::i;:::-;;;;;;;;11764:337;;;:::o;12109:1111::-;-1:-1:-1;;;;;12206:20:0;;12198:70;;;;-1:-1:-1;;;12198:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12287:23:0;;12279:71;;;;-1:-1:-1;;;12279:71:0;;;;;;;:::i;:::-;12378:1;12369:6;:10;12361:64;;;;-1:-1:-1;;;12361:64:0;;;;;;;:::i;:::-;12459:7;:5;:7::i;:::-;-1:-1:-1;;;;;12449:17:0;:6;-1:-1:-1;;;;;12449:17:0;;;:41;;;;;12483:7;:5;:7::i;:::-;-1:-1:-1;;;;;12470:20:0;:9;-1:-1:-1;;;;;12470:20:0;;;12449:41;12446:146;;;12523:12;;12513:6;:22;;12505:75;;;;-1:-1:-1;;;12505:75:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12620:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;12644:22:0;;;;;;:11;:22;;;;;;;;12643:23;12620:46;12616:597;;;12683:48;12705:6;12713:9;12724:6;12683:21;:48::i;:::-;12616:597;;;-1:-1:-1;;;;;12754:19:0;;;;;;:11;:19;;;;;;;;12753:20;:46;;;;-1:-1:-1;;;;;;12777:22:0;;;;;;:11;:22;;;;;;;;12753:46;12749:464;;;12816:46;12836:6;12844:9;12855:6;12816:19;:46::i;12749:464::-;-1:-1:-1;;;;;12885:19:0;;;;;;:11;:19;;;;;;;;12884:20;:47;;;;-1:-1:-1;;;;;;12909:22:0;;;;;;:11;:22;;;;;;;;12908:23;12884:47;12880:333;;;12948:44;12966:6;12974:9;12985:6;12948:17;:44::i;12880:333::-;-1:-1:-1;;;;;13014:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;13037:22:0;;;;;;:11;:22;;;;;;;;13014:45;13010:203;;;13076:48;13098:6;13106:9;13117:6;13076:21;:48::i;13010:203::-;13157:44;13175:6;13183:9;13194:6;13157:17;:44::i;:::-;12109:1111;;;:::o;16433:162::-;16474:7;16495:15;16512;16531:19;:17;:19::i;:::-;16494:56;;-1:-1:-1;16494:56:0;-1:-1:-1;16569:17:0;16494:56;;16569:17;:::i;:::-;16561:26;;;;16433:162;:::o;15867:225::-;15927:7;;;15973:13;15983:3;15973:7;:13;:::i;:::-;15972:19;;15990:1;15972:19;:::i;:::-;15956:36;-1:-1:-1;16003:23:0;16029:14;15956:36;16029:7;:14;:::i;:::-;16003:40;-1:-1:-1;16079:4:0;;-1:-1:-1;;15867:225:0;;;:::o;16100:325::-;16195:7;;;;16251:21;16261:11;16251:7;:21;:::i;:::-;16233:39;-1:-1:-1;16283:12:0;16298:18;16305:11;16298:4;:18;:::i;:::-;16283:33;-1:-1:-1;16327:23:0;16353:14;16283:33;16353:7;:14;:::i;:::-;16386:7;;;;-1:-1:-1;16412:4:0;;-1:-1:-1;16100:325:0;;-1:-1:-1;;;;;16100:325:0:o;14210:500::-;14313:15;14330:23;14355:12;14369:23;14394:12;14410:19;14421:7;14410:10;:19::i;:::-;-1:-1:-1;;;;;14458:15:0;;;;;;:7;:15;;;;;;14312:117;;-1:-1:-1;14312:117:0;;-1:-1:-1;14312:117:0;;-1:-1:-1;14312:117:0;-1:-1:-1;14312:117:0;-1:-1:-1;14458:25:0;;14476:7;;14458:25;:::i;:::-;-1:-1:-1;;;;;14440:15:0;;;;;;:7;:15;;;;;;;;:43;;;;14512:7;:15;;;;:25;;14530:7;;14512:25;:::i;:::-;-1:-1:-1;;;;;14494:15:0;;;;;;;:7;:15;;;;;;:43;;;;14569:18;;;;;;;:36;;14590:15;;14569:36;:::i;:::-;-1:-1:-1;;;;;14548:18:0;;;;;;:7;:18;;;;;:57;14619:23;14631:4;14637;14619:11;:23::i;:::-;14675:9;-1:-1:-1;;;;;14658:44:0;14667:6;-1:-1:-1;;;;;14658:44:0;;14686:15;14658:44;;;;;;:::i;:::-;;;;;;;;14210:500;;;;;;;;:::o;13682:520::-;13783:15;13800:23;13825:12;13839:23;13864:12;13880:19;13891:7;13880:10;:19::i;:::-;-1:-1:-1;;;;;13928:15:0;;;;;;:7;:15;;;;;;13782:117;;-1:-1:-1;13782:117:0;;-1:-1:-1;13782:117:0;;-1:-1:-1;13782:117:0;-1:-1:-1;13782:117:0;-1:-1:-1;13928:25:0;;13782:117;;13928:25;:::i;:::-;-1:-1:-1;;;;;13910:15:0;;;;;;;:7;:15;;;;;;;;:43;;;;13985:18;;;;;:7;:18;;;;;:36;;14006:15;;13985:36;:::i;:::-;-1:-1:-1;;;;;13964:18:0;;;;;;:7;:18;;;;;;;;:57;;;;14053:7;:18;;;;:36;;14074:15;;14053:36;:::i;13228:446::-;13327:15;13344:23;13369:12;13383:23;13408:12;13424:19;13435:7;13424:10;:19::i;:::-;-1:-1:-1;;;;;13472:15:0;;;;;;:7;:15;;;;;;13326:117;;-1:-1:-1;13326:117:0;;-1:-1:-1;13326:117:0;;-1:-1:-1;13326:117:0;-1:-1:-1;13326:117:0;-1:-1:-1;13472:25:0;;13326:117;;13472:25;:::i;14718:573::-;14821:15;14838:23;14863:12;14877:23;14902:12;14918:19;14929:7;14918:10;:19::i;:::-;-1:-1:-1;;;;;14966:15:0;;;;;;:7;:15;;;;;;14820:117;;-1:-1:-1;14820:117:0;;-1:-1:-1;14820:117:0;;-1:-1:-1;14820:117:0;-1:-1:-1;14820:117:0;-1:-1:-1;14966:25:0;;14984:7;;14966:25;:::i;:::-;-1:-1:-1;;;;;14948:15:0;;;;;;:7;:15;;;;;;;;:43;;;;15020:7;:15;;;;:25;;15038:7;;15020:25;:::i;16603:554::-;16700:7;;16653;;;;6928:28;16653:7;16760:283;16784:9;:16;16780:20;;16760:283;;;16850:7;16826;:21;16834:9;16844:1;16834:12;;;;;;-1:-1:-1;;;16834:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16834:12:0;16826:21;;;;;;;;;;;;;:31;;:66;;;16885:7;16861;:21;16869:9;16879:1;16869:12;;;;;;-1:-1:-1;;;16869:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16869:12:0;16861:21;;;;;;;;;;;;;:31;16826:66;16822:97;;;16902:7;;6928:28;16894:25;;;;;;;;;16822:97;16954:7;:21;16962:9;16972:1;16962:12;;;;;;-1:-1:-1;;;16962:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16962:12:0;16954:21;;;;;;;;;;;;;16944:31;;:7;:31;:::i;:::-;16934:41;;17010:7;:21;17018:9;17028:1;17018:12;;;;;;-1:-1:-1;;;17018:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17018:12:0;17010:21;;;;;;;;;;;;;17000:31;;:7;:31;:::i;:::-;16990:41;-1:-1:-1;16802:3:0;;;;:::i;:::-;;;;16760:283;;;;6928:28;17068:7;;:17;;;;:::i;:::-;17057:7;:29;17053:60;;;17096:7;;6928:28;17088:25;;;;;;;;17053:60;17132:7;;-1:-1:-1;17141:7:0;-1:-1:-1;16603:554:0;;;:::o;15299:141::-;15387:4;15377:7;;:14;;;;:::i;:::-;15367:7;:24;15415:10;;:17;;15428:4;;15415:17;:::i;:::-;15402:10;:30;-1:-1:-1;;15299:141:0:o;14:175:1:-;84:20;;-1:-1:-1;;;;;133:31:1;;123:42;;113:2;;179:1;176;169:12;194:198;;306:2;294:9;285:7;281:23;277:32;274:2;;;327:6;319;312:22;274:2;355:31;376:9;355:31;:::i;:::-;345:41;264:128;-1:-1:-1;;;264:128:1:o;397:274::-;;;526:2;514:9;505:7;501:23;497:32;494:2;;;547:6;539;532:22;494:2;575:31;596:9;575:31;:::i;:::-;565:41;;625:40;661:2;650:9;646:18;625:40;:::i;:::-;615:50;;484:187;;;;;:::o;676:342::-;;;;822:2;810:9;801:7;797:23;793:32;790:2;;;843:6;835;828:22;790:2;871:31;892:9;871:31;:::i;:::-;861:41;;921:40;957:2;946:9;942:18;921:40;:::i;:::-;911:50;;1008:2;997:9;993:18;980:32;970:42;;780:238;;;;;:::o;1023:266::-;;;1152:2;1140:9;1131:7;1127:23;1123:32;1120:2;;;1173:6;1165;1158:22;1120:2;1201:31;1222:9;1201:31;:::i;:::-;1191:41;1279:2;1264:18;;;;1251:32;;-1:-1:-1;;;1110:179:1:o;1294:190::-;;1406:2;1394:9;1385:7;1381:23;1377:32;1374:2;;;1427:6;1419;1412:22;1374:2;-1:-1:-1;1455:23:1;;1364:120;-1:-1:-1;1364:120:1:o;1489:361::-;;;1615:2;1603:9;1594:7;1590:23;1586:32;1583:2;;;1636:6;1628;1621:22;1583:2;1677:9;1664:23;1654:33;;1737:2;1726:9;1722:18;1709:32;1784:5;1777:13;1770:21;1763:5;1760:32;1750:2;;1811:6;1803;1796:22;1750:2;1839:5;1829:15;;;1573:277;;;;;:::o;1855:203::-;-1:-1:-1;;;;;2019:32:1;;;;2001:51;;1989:2;1974:18;;1956:102::o;2063:187::-;2228:14;;2221:22;2203:41;;2191:2;2176:18;;2158:92::o;2255:603::-;;2396:2;2425;2414:9;2407:21;2457:6;2451:13;2500:6;2495:2;2484:9;2480:18;2473:34;2525:4;2538:140;2552:6;2549:1;2546:13;2538:140;;;2647:14;;;2643:23;;2637:30;2613:17;;;2632:2;2609:26;2602:66;2567:10;;2538:140;;;2696:6;2693:1;2690:13;2687:2;;;2766:4;2761:2;2752:6;2741:9;2737:22;2733:31;2726:45;2687:2;-1:-1:-1;2842:2:1;2821:15;-1:-1:-1;;2817:29:1;2802:45;;;;2849:2;2798:54;;2376:482;-1:-1:-1;;;2376:482:1:o;2863:399::-;3065:2;3047:21;;;3104:2;3084:18;;;3077:30;3143:34;3138:2;3123:18;;3116:62;-1:-1:-1;;;3209:2:1;3194:18;;3187:33;3252:3;3237:19;;3037:225::o;3267:406::-;3469:2;3451:21;;;3508:2;3488:18;;;3481:30;3547:34;3542:2;3527:18;;3520:62;-1:-1:-1;;;3613:2:1;3598:18;;3591:40;3663:3;3648:19;;3441:232::o;3678:402::-;3880:2;3862:21;;;3919:2;3899:18;;;3892:30;3958:34;3953:2;3938:18;;3931:62;-1:-1:-1;;;4024:2:1;4009:18;;4002:36;4070:3;4055:19;;3852:228::o;4085:398::-;4287:2;4269:21;;;4326:2;4306:18;;;4299:30;4365:34;4360:2;4345:18;;4338:62;-1:-1:-1;;;4431:2:1;4416:18;;4409:32;4473:3;4458:19;;4259:224::o;4488:351::-;4690:2;4672:21;;;4729:2;4709:18;;;4702:30;4768:29;4763:2;4748:18;;4741:57;4830:2;4815:18;;4662:177::o;4844:355::-;5046:2;5028:21;;;5085:2;5065:18;;;5058:30;5124:33;5119:2;5104:18;;5097:61;5190:2;5175:18;;5018:181::o;5204:404::-;5406:2;5388:21;;;5445:2;5425:18;;;5418:30;5484:34;5479:2;5464:18;;5457:62;-1:-1:-1;;;5550:2:1;5535:18;;5528:38;5598:3;5583:19;;5378:230::o;5613:404::-;5815:2;5797:21;;;5854:2;5834:18;;;5827:30;5893:34;5888:2;5873:18;;5866:62;-1:-1:-1;;;5959:2:1;5944:18;;5937:38;6007:3;5992:19;;5787:230::o;6022:356::-;6224:2;6206:21;;;6243:18;;;6236:30;6302:34;6297:2;6282:18;;6275:62;6369:2;6354:18;;6196:182::o;6383:405::-;6585:2;6567:21;;;6624:2;6604:18;;;6597:30;6663:34;6658:2;6643:18;;6636:62;-1:-1:-1;;;6729:2:1;6714:18;;6707:39;6778:3;6763:19;;6557:231::o;6793:401::-;6995:2;6977:21;;;7034:2;7014:18;;;7007:30;7073:34;7068:2;7053:18;;7046:62;-1:-1:-1;;;7139:2:1;7124:18;;7117:35;7184:3;7169:19;;6967:227::o;7199:400::-;7401:2;7383:21;;;7440:2;7420:18;;;7413:30;7479:34;7474:2;7459:18;;7452:62;-1:-1:-1;;;7545:2:1;7530:18;;7523:34;7589:3;7574:19;;7373:226::o;7604:408::-;7806:2;7788:21;;;7845:2;7825:18;;;7818:30;7884:34;7879:2;7864:18;;7857:62;-1:-1:-1;;;7950:2:1;7935:18;;7928:42;8002:3;7987:19;;7778:234::o;8017:401::-;8219:2;8201:21;;;8258:2;8238:18;;;8231:30;8297:34;8292:2;8277:18;;8270:62;-1:-1:-1;;;8363:2:1;8348:18;;8341:35;8408:3;8393:19;;8191:227::o;8423:177::-;8569:25;;;8557:2;8542:18;;8524:76::o;8605:184::-;8777:4;8765:17;;;;8747:36;;8735:2;8720:18;;8702:87::o;8794:128::-;;8865:1;8861:6;8858:1;8855:13;8852:2;;;8871:18;;:::i;:::-;-1:-1:-1;8907:9:1;;8842:80::o;8927:217::-;;8993:1;8983:2;;-1:-1:-1;;;9018:31:1;;9072:4;9069:1;9062:15;9100:4;9025:1;9090:15;8983:2;-1:-1:-1;9129:9:1;;8973:171::o;9149:168::-;;9255:1;9251;9247:6;9243:14;9240:1;9237:21;9232:1;9225:9;9218:17;9214:45;9211:2;;;9262:18;;:::i;:::-;-1:-1:-1;9302:9:1;;9201:116::o;9322:125::-;;9390:1;9387;9384:8;9381:2;;;9395:18;;:::i;:::-;-1:-1:-1;9432:9:1;;9371:76::o;9452:380::-;9537:1;9527:12;;9584:1;9574:12;;;9595:2;;9649:4;9641:6;9637:17;9627:27;;9595:2;9702;9694:6;9691:14;9671:18;9668:38;9665:2;;;9748:10;9743:3;9739:20;9736:1;9729:31;9783:4;9780:1;9773:15;9811:4;9808:1;9801:15;9665:2;;9507:325;;;:::o;9837:135::-;;-1:-1:-1;;9897:17:1;;9894:2;;;9917:18;;:::i;:::-;-1:-1:-1;9964:1:1;9953:13;;9884:88::o;9977:127::-;10038:10;10033:3;10029:20;10026:1;10019:31;10069:4;10066:1;10059:15;10093:4;10090:1;10083:15
Swarm Source
ipfs://6efbf3270df3375fea37a235f8fbcbca050915970be55218af390a0e82fd0bdd
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.