Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 65 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 15538642 | 1286 days ago | IN | 0 ETH | 0.00048817 | ||||
| Approve | 12541105 | 1758 days ago | IN | 0 ETH | 0.0009325 | ||||
| Approve | 12536105 | 1759 days ago | IN | 0 ETH | 0.00107237 | ||||
| Approve | 12534162 | 1759 days ago | IN | 0 ETH | 0.00158525 | ||||
| Approve | 12525052 | 1760 days ago | IN | 0 ETH | 0.00144537 | ||||
| Approve | 12524974 | 1760 days ago | IN | 0 ETH | 0.0013055 | ||||
| Approve | 12524973 | 1760 days ago | IN | 0 ETH | 0.0046625 | ||||
| Approve | 12524965 | 1760 days ago | IN | 0 ETH | 0.00109293 | ||||
| Approve | 12524960 | 1760 days ago | IN | 0 ETH | 0.0046625 | ||||
| Approve | 12524952 | 1760 days ago | IN | 0 ETH | 0.00139875 | ||||
| Approve | 12524941 | 1760 days ago | IN | 0 ETH | 0.005595 | ||||
| Approve | 12524938 | 1760 days ago | IN | 0 ETH | 0.00233125 | ||||
| Approve | 12524908 | 1760 days ago | IN | 0 ETH | 0.00135212 | ||||
| Approve | 12524893 | 1760 days ago | IN | 0 ETH | 0.00153862 | ||||
| Approve | 12524892 | 1760 days ago | IN | 0 ETH | 0.00177175 | ||||
| Approve | 12524892 | 1760 days ago | IN | 0 ETH | 0.0054085 | ||||
| Approve | 12524887 | 1760 days ago | IN | 0 ETH | 0.00139875 | ||||
| Approve | 12524886 | 1760 days ago | IN | 0 ETH | 0.00143605 | ||||
| Approve | 12524878 | 1760 days ago | IN | 0 ETH | 0.00163187 | ||||
| Approve | 12524874 | 1760 days ago | IN | 0 ETH | 0.00177175 | ||||
| Approve | 12524873 | 1760 days ago | IN | 0 ETH | 0.00174377 | ||||
| Approve | 12524871 | 1760 days ago | IN | 0 ETH | 0.0016785 | ||||
| Approve | 12524869 | 1760 days ago | IN | 0 ETH | 0.00184635 | ||||
| Approve | 12524866 | 1760 days ago | IN | 0 ETH | 0.00153862 | ||||
| Approve | 12524863 | 1760 days ago | IN | 0 ETH | 0.00169248 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SheriffInu
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2021-05-28
*/
/**
*Submitted for verification at Etherscan.io on 2021-05-22
*/
//Telegram: https://t.me/SheriffInu
//Website: https://www.sheriffinu.com/
//Twitter: https://twitter.com/Sheriffinu
//
//There’s a new Sheriff in town... And he goes by the name Inu.
//
/**
*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.6.12;
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes memory) {
this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
return msg.data;
}
}
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);
}
library SafeMath {
/**
* @dev Returns the addition of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `+` operator.
*
* Requirements:
*
* - Addition cannot overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, 'SafeMath: addition overflow');
return c;
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, 'SafeMath: subtraction overflow');
}
/**
* @dev Returns the subtraction of two unsigned integers, reverting with custom message on
* overflow (when the result is negative).
*
* Counterpart to Solidity's `-` operator.
*
* Requirements:
*
* - Subtraction cannot overflow.
*/
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
/**
* @dev Returns the multiplication of two unsigned integers, reverting on
* overflow.
*
* Counterpart to Solidity's `*` operator.
*
* Requirements:
*
* - Multiplication cannot overflow.
*/
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, 'SafeMath: multiplication overflow');
return c;
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, 'SafeMath: division by zero');
}
/**
* @dev Returns the integer division of two unsigned integers. Reverts with custom message on
* division by zero. The result is rounded towards zero.
*
* Counterpart to Solidity's `/` operator. Note: this function uses a
* `revert` opcode (which leaves remaining gas untouched) while Solidity
* uses an invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, 'SafeMath: modulo by zero');
}
/**
* @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
* Reverts with custom message when dividing by zero.
*
* Counterpart to Solidity's `%` operator. This function uses a `revert`
* opcode (which leaves remaining gas untouched) while Solidity uses an
* invalid opcode to revert (consuming all remaining gas).
*
* Requirements:
*
* - The divisor cannot be zero.
*/
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
library Address {
/**
* @dev Returns true if `account` is a contract.
*
* [IMPORTANT]
* ====
* It is unsafe to assume that an address for which this function returns
* false is an externally-owned account (EOA) and not a contract.
*
* Among others, `isContract` will return false for the following
* types of addresses:
*
* - an externally-owned account
* - a contract in construction
* - an address where a contract will be created
* - an address where a contract lived, but was destroyed
* ====
*/
function isContract(address account) internal view returns (bool) {
// According to EIP-1052, 0x0 is the value returned for not-yet created accounts
// and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
// for accounts without code, i.e. `keccak256('')`
bytes32 codehash;
bytes32 accountHash =
0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
// solhint-disable-next-line no-inline-assembly
assembly {
codehash := extcodehash(account)
}
return (codehash != accountHash && codehash != 0x0);
}
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
require(address(this).balance >= amount, 'Address: insufficient balance');
// solhint-disable-next-line avoid-low-level-calls, avoid-call-value
(bool success, ) = recipient.call{value: amount}('');
require(
success,
'Address: unable to send value, recipient may have reverted'
);
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain`call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason, it is bubbled up by this
* function (like regular Solidity function calls).
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*
* _Available since v3.1._
*/
function functionCall(address target, bytes memory data)
internal
returns (bytes memory)
{
return functionCall(target, data, 'Address: low-level call failed');
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
* `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCall(
address target,
bytes memory data,
string memory errorMessage
) internal returns (bytes memory) {
return _functionCallWithValue(target, data, 0, errorMessage);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value
) internal returns (bytes memory) {
return
functionCallWithValue(
target,
data,
value,
'Address: low-level call with value failed'
);
}
/**
* @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
* with `errorMessage` as a fallback revert reason when `target` reverts.
*
* _Available since v3.1._
*/
function functionCallWithValue(
address target,
bytes memory data,
uint256 value,
string memory errorMessage
) internal returns (bytes memory) {
require(
address(this).balance >= value,
'Address: insufficient balance for call'
);
return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(
address target,
bytes memory data,
uint256 weiValue,
string memory errorMessage
) private returns (bytes memory) {
require(isContract(target), 'Address: call to non-contract');
// solhint-disable-next-line avoid-low-level-calls
(bool success, bytes memory returndata) =
target.call{value: weiValue}(data);
if (success) {
return returndata;
} else {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
// solhint-disable-next-line no-inline-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert(errorMessage);
}
}
}
}
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() internal {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
/**
* @dev Returns the address of the current owner.
*/
function owner() public view 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 SheriffInu is Context, IERC20, Ownable {
using SafeMath for uint256;
using Address for address;
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 = 10000000 * 10**5 * 10**9;
uint256 private _rTotal = (MAX - (MAX % _tTotal));
uint256 private _tFeeTotal;
string private _name = 'Sheriff Inu';
string private _symbol = '$SHERIFF';
uint8 private _decimals = 9;
uint256 public _maxTxAmount = 3750000 * 10**5 * 10**9;
constructor() public {
_rOwned[_msgSender()] = _rTotal;
emit Transfer(address(0), _msgSender(), _tTotal);
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view 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);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
amount,
'ERC20: transfer amount exceeds allowance'
)
);
return true;
}
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].add(addedValue)
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].sub(
subtractedValue,
'ERC20: decreased allowance below zero'
)
);
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.mul(maxTxPercent).div(10**2);
}
function rescueFromContract() external onlyOwner {
address payable _owner = _msgSender();
_owner.transfer(address(this).balance);
}
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].sub(rAmount);
_rTotal = _rTotal.sub(rAmount);
_tFeeTotal = _tFeeTotal.add(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.div(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.'
);
require(!_isExcluded[sender], 'Account is excluded');
}
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].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(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].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(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].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_rOwned[recipient] = _rOwned[recipient].add(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].sub(tAmount);
_rOwned[sender] = _rOwned[sender].sub(rAmount);
_tOwned[recipient] = _tOwned[recipient].add(tTransferAmount);
_rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
_reflectFee(rFee, tFee);
emit Transfer(sender, recipient, tTransferAmount);
}
function _reflectFee(uint256 rFee, uint256 tFee) private {
_rTotal = _rTotal.sub(rFee);
_tFeeTotal = _tFeeTotal.add(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 = 0;
uint256 tTransferAmount = tAmount.sub(tFee);
return (tTransferAmount, tFee);
}
function _getRValues(
uint256 tAmount,
uint256 tFee,
uint256 currentRate
)
private
pure
returns (
uint256,
uint256,
uint256
)
{
uint256 rAmount = tAmount.mul(currentRate);
uint256 rFee = tFee.mul(currentRate);
uint256 rTransferAmount = rAmount.sub(rFee);
return (rAmount, rTransferAmount, rFee);
}
function _getRate() private view returns (uint256) {
(uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
return rSupply.div(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.sub(_rOwned[_excluded[i]]);
tSupply = tSupply.sub(_tOwned[_excluded[i]]);
}
if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
return (rSupply, tSupply);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"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":[],"name":"rescueFromContract","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
6080604052683635c9adc5dea00000600019816200001957fe5b06600019036006556040518060400160405280600b81526020017f5368657269666620496e75000000000000000000000000000000000000000000815250600890805190602001906200006e92919062000285565b506040518060400160405280600881526020017f245348455249464600000000000000000000000000000000000000000000000081525060099080519060200190620000bc92919062000285565b506009600a60006101000a81548160ff021916908360ff1602179055506814542ba12a337c0000600b55348015620000f357600080fd5b506000620001066200027d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460016000620001bb6200027d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002096200027d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040518082815260200191505060405180910390a36200032b565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002c857805160ff1916838001178555620002f9565b82800160010185558215620002f9579182015b82811115620002f8578251825591602001919060010190620002db565b5b5090506200030891906200030c565b5090565b5b80821115620003275760008160009055506001016200030d565b5090565b613793806200033b6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80637d1db4a5116100c3578063d543dbeb1161007c578063d543dbeb146106a0578063d6946eb2146106ce578063dd62ed3e146106d8578063f2cc0c1814610750578063f2fde38b14610794578063f84354f1146107d857610158565b80637d1db4a5146104a95780638da5cb5b146104c757806395d89b41146104fb578063a457c2d71461057e578063a9059cbb146105e2578063cba0e9961461064657610158565b80632d838119116101155780632d83811914610332578063313ce5671461037457806339509351146103955780634549b039146103f957806370a0823114610447578063715018a61461049f57610158565b8063053ab1821461015d57806306fdde031461018b578063095ea7b31461020e57806313114a9d1461027257806318160ddd1461029057806323b872dd146102ae575b600080fd5b6101896004803603602081101561017357600080fd5b810190808035906020019092919050505061081c565b005b6101936109ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d35780820151818401526020810190506101b8565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61025a6004803603604081101561022457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a4e565b60405180821515815260200191505060405180910390f35b61027a610a6c565b6040518082815260200191505060405180910390f35b610298610a76565b6040518082815260200191505060405180910390f35b61031a600480360360608110156102c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a87565b60405180821515815260200191505060405180910390f35b61035e6004803603602081101561034857600080fd5b8101908080359060200190929190505050610b60565b6040518082815260200191505060405180910390f35b61037c610be4565b604051808260ff16815260200191505060405180910390f35b6103e1600480360360408110156103ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bfb565b60405180821515815260200191505060405180910390f35b6104316004803603604081101561040f57600080fd5b8101908080359060200190929190803515159060200190929190505050610cae565b6040518082815260200191505060405180910390f35b6104896004803603602081101561045d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d6a565b6040518082815260200191505060405180910390f35b6104a7610e55565b005b6104b1610fdb565b6040518082815260200191505060405180910390f35b6104cf610fe1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61050361100a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610543578082015181840152602081019050610528565b50505050905090810190601f1680156105705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105ca6004803603604081101561059457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110ac565b60405180821515815260200191505060405180910390f35b61062e600480360360408110156105f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611179565b60405180821515815260200191505060405180910390f35b6106886004803603602081101561065c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611197565b60405180821515815260200191505060405180910390f35b6106cc600480360360208110156106b657600080fd5b81019080803590602001909291905050506111ed565b005b6106d66112ed565b005b61073a600480360360408110156106ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061140b565b6040518082815260200191505060405180910390f35b6107926004803603602081101561076657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611492565b005b6107d6600480360360208110156107aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117ac565b005b61081a600480360360208110156107ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119b7565b005b6000610826611d41565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061370d602c913960400191505060405180910390fd5b60006108d683611d49565b50505050905061092e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061098681600654611da190919063ffffffff16565b6006819055506109a183600754611deb90919063ffffffff16565b600781905550505050565b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a445780601f10610a1957610100808354040283529160200191610a44565b820191906000526020600020905b815481529060010190602001808311610a2757829003601f168201915b5050505050905090565b6000610a62610a5b611d41565b8484611e73565b6001905092915050565b6000600754905090565b6000683635c9adc5dea00000905090565b6000610a9484848461206a565b610b5584610aa0611d41565b610b508560405180606001604052806028815260200161367360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b06611d41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265a9092919063ffffffff16565b611e73565b600190509392505050565b6000600654821115610bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806135b8602a913960400191505060405180910390fd5b6000610bc761271a565b9050610bdc818461274590919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b6000610ca4610c08611d41565b84610c9f8560036000610c19611d41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b611e73565b6001905092915050565b6000683635c9adc5dea00000831115610d2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610d4e576000610d3f84611d49565b50505050905080915050610d64565b6000610d5984611d49565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e0557600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e50565b610e4d600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b60565b90505b919050565b610e5d611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110a25780601f10611077576101008083540402835291602001916110a2565b820191906000526020600020905b81548152906001019060200180831161108557829003601f168201915b5050505050905090565b600061116f6110b9611d41565b8461116a8560405180606001604052806025815260200161373960259139600360006110e3611d41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265a9092919063ffffffff16565b611e73565b6001905092915050565b600061118d611186611d41565b848461206a565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6111f5611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6112e460646112d683683635c9adc5dea0000061278f90919063ffffffff16565b61274590919063ffffffff16565b600b8190555050565b6112f5611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006113bf611d41565b90508073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611407573d6000803e3d6000fd5b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61149a611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156116ee576116aa600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b60565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117b4611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611874576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806135e26026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6119bf611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611d3d578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611b7257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d3057600560016005805490500381548110611bce57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611c0657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611cf657fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611d3d565b8080600101915050611b41565b5050565b600033905090565b6000806000806000806000611d5d88612815565b915091506000611d6b61271a565b90506000806000611d7d8c868661283d565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611de383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061265a565b905092915050565b600080828401905083811015611e69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ef9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806136e96024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806136086022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806136c46025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612176576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806135956023913960400191505060405180910390fd5b600081116121cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061369b6029913960400191505060405180910390fd5b6121d7610fe1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122455750612215610fe1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561236657600b548111156122a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061362a6028913960400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612365576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4163636f756e74206973206578636c756465640000000000000000000000000081525060200191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124095750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561241e5761241983838361289b565b612655565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124c15750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124d6576124d1838383612aee565b612654565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561257a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561258f5761258a838383612d41565b612653565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126315750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561264657612641838383612eff565b612652565b612651838383612d41565b5b5b5b5b505050565b6000838311158290612707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156126cc5780820151818401526020810190506126b1565b50505050905090810190601f1680156126f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006127276131e7565b9150915061273e818361274590919063ffffffff16565b9250505090565b600061278783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613494565b905092915050565b6000808314156127a2576000905061280f565b60008284029050828482816127b357fe5b041461280a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806136526021913960400191505060405180910390fd5b809150505b92915050565b60008060008061282e8286611da190919063ffffffff16565b90508082935093505050915091565b600080600080612856858861278f90919063ffffffff16565b9050600061286d868861278f90919063ffffffff16565b905060006128848284611da190919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006128ac86611d49565b9450945094509450945061290886600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061299d85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3284600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a7f838261355a565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612aff86611d49565b94509450945094509450612b5b85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bf082600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c8584600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cd2838261355a565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612d5286611d49565b94509450945094509450612dae85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e4384600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e90838261355a565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612f1086611d49565b94509450945094509450612f6c86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061300185600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061309682600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061312b84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613178838261355a565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600060065490506000683635c9adc5dea00000905060005b6005805490508110156134495782600160006005848154811061322157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061330857508160026000600584815481106132a057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561332657600654683635c9adc5dea0000094509450505050613490565b6133af600160006005848154811061333a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611da190919063ffffffff16565b925061343a60026000600584815481106133c557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611da190919063ffffffff16565b91508080600101915050613202565b50613468683635c9adc5dea0000060065461274590919063ffffffff16565b82101561348757600654683635c9adc5dea00000935093505050613490565b81819350935050505b9091565b60008083118290613540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156135055780820151818401526020810190506134ea565b50505050905090810190601f1680156135325780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161354c57fe5b049050809150509392505050565b61356f82600654611da190919063ffffffff16565b60068190555061358a81600754611deb90919063ffffffff16565b600781905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202aeb3260ce35299e8f3b1710c049ea7949062814da0f1bd3907d16971ef55b2d64736f6c634300060c0033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c80637d1db4a5116100c3578063d543dbeb1161007c578063d543dbeb146106a0578063d6946eb2146106ce578063dd62ed3e146106d8578063f2cc0c1814610750578063f2fde38b14610794578063f84354f1146107d857610158565b80637d1db4a5146104a95780638da5cb5b146104c757806395d89b41146104fb578063a457c2d71461057e578063a9059cbb146105e2578063cba0e9961461064657610158565b80632d838119116101155780632d83811914610332578063313ce5671461037457806339509351146103955780634549b039146103f957806370a0823114610447578063715018a61461049f57610158565b8063053ab1821461015d57806306fdde031461018b578063095ea7b31461020e57806313114a9d1461027257806318160ddd1461029057806323b872dd146102ae575b600080fd5b6101896004803603602081101561017357600080fd5b810190808035906020019092919050505061081c565b005b6101936109ac565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d35780820151818401526020810190506101b8565b50505050905090810190601f1680156102005780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61025a6004803603604081101561022457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a4e565b60405180821515815260200191505060405180910390f35b61027a610a6c565b6040518082815260200191505060405180910390f35b610298610a76565b6040518082815260200191505060405180910390f35b61031a600480360360608110156102c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a87565b60405180821515815260200191505060405180910390f35b61035e6004803603602081101561034857600080fd5b8101908080359060200190929190505050610b60565b6040518082815260200191505060405180910390f35b61037c610be4565b604051808260ff16815260200191505060405180910390f35b6103e1600480360360408110156103ab57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bfb565b60405180821515815260200191505060405180910390f35b6104316004803603604081101561040f57600080fd5b8101908080359060200190929190803515159060200190929190505050610cae565b6040518082815260200191505060405180910390f35b6104896004803603602081101561045d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d6a565b6040518082815260200191505060405180910390f35b6104a7610e55565b005b6104b1610fdb565b6040518082815260200191505060405180910390f35b6104cf610fe1565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61050361100a565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610543578082015181840152602081019050610528565b50505050905090810190601f1680156105705780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105ca6004803603604081101561059457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110ac565b60405180821515815260200191505060405180910390f35b61062e600480360360408110156105f857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611179565b60405180821515815260200191505060405180910390f35b6106886004803603602081101561065c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611197565b60405180821515815260200191505060405180910390f35b6106cc600480360360208110156106b657600080fd5b81019080803590602001909291905050506111ed565b005b6106d66112ed565b005b61073a600480360360408110156106ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061140b565b6040518082815260200191505060405180910390f35b6107926004803603602081101561076657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611492565b005b6107d6600480360360208110156107aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117ac565b005b61081a600480360360208110156107ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119b7565b005b6000610826611d41565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156108cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c81526020018061370d602c913960400191505060405180910390fd5b60006108d683611d49565b50505050905061092e81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061098681600654611da190919063ffffffff16565b6006819055506109a183600754611deb90919063ffffffff16565b600781905550505050565b606060088054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a445780601f10610a1957610100808354040283529160200191610a44565b820191906000526020600020905b815481529060010190602001808311610a2757829003601f168201915b5050505050905090565b6000610a62610a5b611d41565b8484611e73565b6001905092915050565b6000600754905090565b6000683635c9adc5dea00000905090565b6000610a9484848461206a565b610b5584610aa0611d41565b610b508560405180606001604052806028815260200161367360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b06611d41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265a9092919063ffffffff16565b611e73565b600190509392505050565b6000600654821115610bbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806135b8602a913960400191505060405180910390fd5b6000610bc761271a565b9050610bdc818461274590919063ffffffff16565b915050919050565b6000600a60009054906101000a900460ff16905090565b6000610ca4610c08611d41565b84610c9f8560036000610c19611d41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b611e73565b6001905092915050565b6000683635c9adc5dea00000831115610d2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610d4e576000610d3f84611d49565b50505050905080915050610d64565b6000610d5984611d49565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610e0557600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e50565b610e4d600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b60565b90505b919050565b610e5d611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110a25780601f10611077576101008083540402835291602001916110a2565b820191906000526020600020905b81548152906001019060200180831161108557829003601f168201915b5050505050905090565b600061116f6110b9611d41565b8461116a8560405180606001604052806025815260200161373960259139600360006110e3611d41565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461265a9092919063ffffffff16565b611e73565b6001905092915050565b600061118d611186611d41565b848461206a565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6111f5611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6112e460646112d683683635c9adc5dea0000061278f90919063ffffffff16565b61274590919063ffffffff16565b600b8190555050565b6112f5611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006113bf611d41565b90508073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611407573d6000803e3d6000fd5b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61149a611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156116ee576116aa600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b60565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6117b4611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611874576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806135e26026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6119bf611d41565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611b3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600580549050811015611d3d578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611b7257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611d3057600560016005805490500381548110611bce57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611c0657fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611cf657fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611d3d565b8080600101915050611b41565b5050565b600033905090565b6000806000806000806000611d5d88612815565b915091506000611d6b61271a565b90506000806000611d7d8c868661283d565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b6000611de383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061265a565b905092915050565b600080828401905083811015611e69576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ef9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806136e96024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f7f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806136086022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156120f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806136c46025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612176576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806135956023913960400191505060405180910390fd5b600081116121cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602981526020018061369b6029913960400191505060405180910390fd5b6121d7610fe1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122455750612215610fe1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561236657600b548111156122a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602881526020018061362a6028913960400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612365576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4163636f756e74206973206578636c756465640000000000000000000000000081525060200191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156124095750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561241e5761241983838361289b565b612655565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156124c15750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156124d6576124d1838383612aee565b612654565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561257a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561258f5761258a838383612d41565b612653565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126315750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561264657612641838383612eff565b612652565b612651838383612d41565b5b5b5b5b505050565b6000838311158290612707576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156126cc5780820151818401526020810190506126b1565b50505050905090810190601f1680156126f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006127276131e7565b9150915061273e818361274590919063ffffffff16565b9250505090565b600061278783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613494565b905092915050565b6000808314156127a2576000905061280f565b60008284029050828482816127b357fe5b041461280a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806136526021913960400191505060405180910390fd5b809150505b92915050565b60008060008061282e8286611da190919063ffffffff16565b90508082935093505050915091565b600080600080612856858861278f90919063ffffffff16565b9050600061286d868861278f90919063ffffffff16565b905060006128848284611da190919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006128ac86611d49565b9450945094509450945061290886600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061299d85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3284600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a7f838261355a565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612aff86611d49565b94509450945094509450612b5b85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bf082600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c8584600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cd2838261355a565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612d5286611d49565b94509450945094509450612dae85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e4384600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e90838261355a565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000806000612f1086611d49565b94509450945094509450612f6c86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061300185600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611da190919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061309682600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061312b84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611deb90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613178838261355a565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600060065490506000683635c9adc5dea00000905060005b6005805490508110156134495782600160006005848154811061322157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061330857508160026000600584815481106132a057fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561332657600654683635c9adc5dea0000094509450505050613490565b6133af600160006005848154811061333a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205484611da190919063ffffffff16565b925061343a60026000600584815481106133c557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611da190919063ffffffff16565b91508080600101915050613202565b50613468683635c9adc5dea0000060065461274590919063ffffffff16565b82101561348757600654683635c9adc5dea00000935093505050613490565b81819350935050505b9091565b60008083118290613540576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156135055780820151818401526020810190506134ea565b50505050905090810190601f1680156135325780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161354c57fe5b049050809150509392505050565b61356f82600654611da190919063ffffffff16565b60068190555061358a81600754611deb90919063ffffffff16565b600781905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212202aeb3260ce35299e8f3b1710c049ea7949062814da0f1bd3907d16971ef55b2d64736f6c634300060c0033
Deployed Bytecode Sourcemap
15307:10756:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18702:375;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16175:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17064:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18327:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16428:89;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17239:374;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19508:239;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16345:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17619:254;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19083:419;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16523:188;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14787:138;;;:::i;:::-;;15989:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14185:73;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16258:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17879:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16717:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18217:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18414:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18552:144;;;:::i;:::-;;16898:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19753:305;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15070:230;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20064:412;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18702:375;18750:14;18767:12;:10;:12::i;:::-;18750:29;;18803:11;:19;18815:6;18803:19;;;;;;;;;;;;;;;;;;;;;;;;;18802:20;18786:98;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18892:15;18919:19;18930:7;18919:10;:19::i;:::-;18891:47;;;;;;18963:28;18983:7;18963;:15;18971:6;18963:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;18945:7;:15;18953:6;18945:15;;;;;;;;;;;;;;;:46;;;;19008:20;19020:7;19008;;:11;;:20;;;;:::i;:::-;18998:7;:30;;;;19048:23;19063:7;19048:10;;:14;;:23;;;;:::i;:::-;19035:10;:36;;;;18702:375;;;:::o;16175:77::-;16212:13;16241:5;16234:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16175:77;:::o;17064:169::-;17154:4;17170:39;17179:12;:10;:12::i;:::-;17193:7;17202:6;17170:8;:39::i;:::-;17223:4;17216:11;;17064:169;;;;:::o;18327:81::-;18369:7;18392:10;;18385:17;;18327:81;:::o;16428:89::-;16481:7;15758:24;16497:14;;16428:89;:::o;17239:374::-;17357:4;17370:36;17380:6;17388:9;17399:6;17370:9;:36::i;:::-;17413:176;17430:6;17445:12;:10;:12::i;:::-;17466:116;17514:6;17466:116;;;;;;;;;;;;;;;;;:11;:19;17478:6;17466:19;;;;;;;;;;;;;;;:33;17486:12;:10;:12::i;:::-;17466:33;;;;;;;;;;;;;;;;:37;;:116;;;;;:::i;:::-;17413:8;:176::i;:::-;17603:4;17596:11;;17239:374;;;;;:::o;19508:239::-;19575:7;19610;;19599;:18;;19591:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19671:19;19693:10;:8;:10::i;:::-;19671:32;;19717:24;19729:11;19717:7;:11;;:24;;;;:::i;:::-;19710:31;;;19508:239;;;:::o;16345:77::-;16386:5;16407:9;;;;;;;;;;;16400:16;;16345:77;:::o;17619:254::-;17722:4;17738:111;17755:12;:10;:12::i;:::-;17776:7;17792:50;17831:10;17792:11;:25;17804:12;:10;:12::i;:::-;17792:25;;;;;;;;;;;;;;;:34;17818:7;17792:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;17738:8;:111::i;:::-;17863:4;17856:11;;17619:254;;;;:::o;19083:419::-;19189:7;15758:24;19216:7;:18;;19208:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19282:17;19277:220;;19311:15;19338:19;19349:7;19338:10;:19::i;:::-;19310:47;;;;;;19373:7;19366:14;;;;;19277:220;19406:23;19439:19;19450:7;19439:10;:19::i;:::-;19403:55;;;;;;19474:15;19467:22;;;19083:419;;;;;:::o;16523:188::-;16589:7;16609:11;:20;16621:7;16609:20;;;;;;;;;;;;;;;;;;;;;;;;;16605:49;;;16638:7;:16;16646:7;16638:16;;;;;;;;;;;;;;;;16631:23;;;;16605:49;16668:37;16688:7;:16;16696:7;16688:16;;;;;;;;;;;;;;;;16668:19;:37::i;:::-;16661:44;;16523:188;;;;:::o;14787:138::-;14389:12;:10;:12::i;:::-;14379:22;;:6;;;;;;;;;;:22;;;14371:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14890:1:::1;14853:40;;14874:6;::::0;::::1;;;;;;;;14853:40;;;;;;;;;;;;14917:1;14900:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;14787:138::o:0;15989:53::-;;;;:::o;14185:73::-;14223:7;14246:6;;;;;;;;;;;14239:13;;14185:73;:::o;16258:81::-;16297:13;16326:7;16319:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16258:81;:::o;17879:332::-;17987:4;18003:184;18020:12;:10;:12::i;:::-;18041:7;18057:123;18106:15;18057:123;;;;;;;;;;;;;;;;;:11;:25;18069:12;:10;:12::i;:::-;18057:25;;;;;;;;;;;;;;;:34;18083:7;18057:34;;;;;;;;;;;;;;;;:38;;:123;;;;;:::i;:::-;18003:8;:184::i;:::-;18201:4;18194:11;;17879:332;;;;:::o;16717:175::-;16810:4;16826:42;16836:12;:10;:12::i;:::-;16850:9;16861:6;16826:9;:42::i;:::-;16882:4;16875:11;;16717:175;;;;:::o;18217:104::-;18275:4;18295:11;:20;18307:7;18295:20;;;;;;;;;;;;;;;;;;;;;;;;;18288:27;;18217:104;;;:::o;18414:132::-;14389:12;:10;:12::i;:::-;14379:22;;:6;;;;;;;;;;:22;;;14371:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18504:36:::1;18534:5;18504:25;18516:12;15758:24;18504:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;18489:12;:51;;;;18414:132:::0;:::o;18552:144::-;14389:12;:10;:12::i;:::-;14379:22;;:6;;;;;;;;;;:22;;;14371:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18608:22:::1;18633:12;:10;:12::i;:::-;18608:37;;18652:6;:15;;:38;18668:21;18652:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;14445:1;18552:144::o:0;16898:160::-;16999:7;17025:11;:18;17037:5;17025:18;;;;;;;;;;;;;;;:27;17044:7;17025:27;;;;;;;;;;;;;;;;17018:34;;16898:160;;;;:::o;19753:305::-;14389:12;:10;:12::i;:::-;14379:22;;:6;;;;;;;;;;:22;;;14371:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19831:11:::1;:20;19843:7;19831:20;;;;;;;;;;;;;;;;;;;;;;;;;19830:21;19822:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;19913:1;19894:7;:16;19902:7;19894:16;;;;;;;;;;;;;;;;:20;19890:99;;;19944:37;19964:7;:16;19972:7;19964:16;;;;;;;;;;;;;;;;19944:19;:37::i;:::-;19925:7;:16;19933:7;19925:16;;;;;;;;;;;;;;;:56;;;;19890:99;20018:4;19995:11;:20;20007:7;19995:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;20029:9;20044:7;20029:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19753:305:::0;:::o;15070:230::-;14389:12;:10;:12::i;:::-;14379:22;;:6;;;;;;;;;;:22;;;14371:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15175:1:::1;15155:22;;:8;:22;;;;15147:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15261:8;15232:38;;15253:6;::::0;::::1;;;;;;;;15232:38;;;;;;;;;;;;15286:8;15277:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;15070:230:::0;:::o;20064:412::-;14389:12;:10;:12::i;:::-;14379:22;;:6;;;;;;;;;;:22;;;14371:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20141:11:::1;:20;20153:7;20141:20;;;;;;;;;;;;;;;;;;;;;;;;;20133:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;20205:9;20200:271;20224:9;:16;;;;20220:1;:20;20200:271;;;20276:7;20260:23;;:9;20270:1;20260:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;20256:208;;;20311:9;20340:1;20321:9;:16;;;;:20;20311:31;;;;;;;;;;;;;;;;;;;;;;;;;20296:9;20306:1;20296:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;20372:1;20353:7;:16;20361:7;20353:16;;;;;;;;;;;;;;;:20;;;;20407:5;20384:11;:20;20396:7;20384:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;20423:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20449:5;;20256:208;20242:3;;;;;;;20200:271;;;;20064:412:::0;:::o;388:100::-;441:15;472:10;465:17;;388:100;:::o;24308:459::-;24390:7;24406;24422;24438;24454;24480:23;24505:12;24521:20;24533:7;24521:11;:20::i;:::-;24479:62;;;;24548:19;24570:10;:8;:10::i;:::-;24548:32;;24588:15;24605:23;24630:12;24653:39;24665:7;24674:4;24680:11;24653;:39::i;:::-;24587:105;;;;;;24707:7;24716:15;24733:4;24739:15;24756:4;24699:62;;;;;;;;;;;;;;;;24308:459;;;;;;;:::o;3945:130::-;4003:7;4026:43;4030:1;4033;4026:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4019:50;;3945:130;;;;:::o;3517:167::-;3575:7;3591:9;3607:1;3603;:5;3591:17;;3628:1;3623;:6;;3615:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3677:1;3670:8;;;3517:167;;;;:::o;20482:339::-;20608:1;20591:19;;:5;:19;;;;20583:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20685:1;20666:21;;:7;:21;;;;20658:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20765:6;20735:11;:18;20747:5;20735:18;;;;;;;;;;;;;;;:27;20754:7;20735:27;;;;;;;;;;;;;;;:36;;;;20799:7;20783:32;;20792:5;20783:32;;;20808:6;20783:32;;;;;;;;;;;;;;;;;;20482:339;;;:::o;20827:1118::-;20958:1;20940:20;;:6;:20;;;;20932:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21038:1;21017:23;;:9;:23;;;;21009:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21104:1;21095:6;:10;21087:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21172:7;:5;:7::i;:::-;21162:17;;:6;:17;;;;:41;;;;;21196:7;:5;:7::i;:::-;21183:20;;:9;:20;;;;21162:41;21158:227;;;21242:12;;21232:6;:22;;21214:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21334:11;:19;21346:6;21334:19;;;;;;;;;;;;;;;;;;;;;;;;;21333:20;21325:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21158:227;21397:11;:19;21409:6;21397:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;21421:11;:22;21433:9;21421:22;;;;;;;;;;;;;;;;;;;;;;;;;21420:23;21397:46;21393:547;;;21454:48;21476:6;21484:9;21495:6;21454:21;:48::i;:::-;21393:547;;;21521:11;:19;21533:6;21521:19;;;;;;;;;;;;;;;;;;;;;;;;;21520:20;:46;;;;;21544:11;:22;21556:9;21544:22;;;;;;;;;;;;;;;;;;;;;;;;;21520:46;21516:424;;;21577:46;21597:6;21605:9;21616:6;21577:19;:46::i;:::-;21516:424;;;21642:11;:19;21654:6;21642:19;;;;;;;;;;;;;;;;;;;;;;;;;21641:20;:47;;;;;21666:11;:22;21678:9;21666:22;;;;;;;;;;;;;;;;;;;;;;;;;21665:23;21641:47;21637:303;;;21699:44;21717:6;21725:9;21736:6;21699:17;:44::i;:::-;21637:303;;;21761:11;:19;21773:6;21761:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;21784:11;:22;21796:9;21784:22;;;;;;;;;;;;;;;;;;;;;;;;;21761:45;21757:183;;;21817:48;21839:6;21847:9;21858:6;21817:21;:48::i;:::-;21757:183;;;21888:44;21906:6;21914:9;21925:6;21888:17;:44::i;:::-;21757:183;21637:303;21516:424;21393:547;20827:1118;;;:::o;4356:198::-;4462:7;4491:1;4486;:6;;4494:12;4478:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4514:9;4530:1;4526;:5;4514:17;;4547:1;4540:8;;;4356:198;;;;;:::o;25379:154::-;25421:7;25438:15;25455;25474:19;:17;:19::i;:::-;25437:56;;;;25507:20;25519:7;25507;:11;;:20;;;;:::i;:::-;25500:27;;;;25379:154;:::o;5672:126::-;5730:7;5753:39;5757:1;5760;5753:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5746:46;;5672:126;;;;:::o;4791:431::-;4849:7;5083:1;5078;:6;5074:37;;;5102:1;5095:8;;;;5074:37;5119:9;5135:1;5131;:5;5119:17;;5160:1;5155;5151;:5;;;;;;:10;5143:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5215:1;5208:8;;;4791:431;;;;;:::o;24773:212::-;24848:7;24857;24876:12;24899:23;24925:17;24937:4;24925:7;:11;;:17;;;;:::i;:::-;24899:43;;24957:15;24974:4;24949:30;;;;;;24773:212;;;:::o;24991:382::-;25129:7;25145;25161;25186:15;25204:24;25216:11;25204:7;:11;;:24;;;;:::i;:::-;25186:42;;25235:12;25250:21;25259:11;25250:4;:8;;:21;;;;:::i;:::-;25235:36;;25278:23;25304:17;25316:4;25304:7;:11;;:17;;;;:::i;:::-;25278:43;;25336:7;25345:15;25362:4;25328:39;;;;;;;;;24991:382;;;;;;;:::o;23002:542::-;23129:15;23153:23;23185:12;23206:23;23238:12;23260:19;23271:7;23260:10;:19::i;:::-;23120:159;;;;;;;;;;23304:28;23324:7;23304;:15;23312:6;23304:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23286:7;:15;23294:6;23286:15;;;;;;;;;;;;;;;:46;;;;23357:28;23377:7;23357;:15;23365:6;23357:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23339:7;:15;23347:6;23339:15;;;;;;;;;;;;;;;:46;;;;23413:39;23436:15;23413:7;:18;23421:9;23413:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23392:7;:18;23400:9;23392:18;;;;;;;;;;;;;;;:60;;;;23459:23;23471:4;23477;23459:11;:23::i;:::-;23511:9;23494:44;;23503:6;23494:44;;;23522:15;23494:44;;;;;;;;;;;;;;;;;;23002:542;;;;;;;;:::o;22442:554::-;22567:15;22591:23;22623:12;22644:23;22676:12;22698:19;22709:7;22698:10;:19::i;:::-;22558:159;;;;;;;;;;22742:28;22762:7;22742;:15;22750:6;22742:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22724:7;:15;22732:6;22724:15;;;;;;;;;;;;;;;:46;;;;22798:39;22821:15;22798:7;:18;22806:9;22798:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22777:7;:18;22785:9;22777:18;;;;;;;;;;;;;;;:60;;;;22865:39;22888:15;22865:7;:18;22873:9;22865:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22844:7;:18;22852:9;22844:18;;;;;;;;;;;;;;;:60;;;;22911:23;22923:4;22929;22911:11;:23::i;:::-;22963:9;22946:44;;22955:6;22946:44;;;22974:15;22946:44;;;;;;;;;;;;;;;;;;22442:554;;;;;;;;:::o;21951:485::-;22074:15;22098:23;22130:12;22151:23;22183:12;22205:19;22216:7;22205:10;:19::i;:::-;22065:159;;;;;;;;;;22249:28;22269:7;22249;:15;22257:6;22249:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22231:7;:15;22239:6;22231:15;;;;;;;;;;;;;;;:46;;;;22305:39;22328:15;22305:7;:18;22313:9;22305:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;22284:7;:18;22292:9;22284:18;;;;;;;;;;;;;;;:60;;;;22351:23;22363:4;22369;22351:11;:23::i;:::-;22403:9;22386:44;;22395:6;22386:44;;;22414:15;22386:44;;;;;;;;;;;;;;;;;;21951:485;;;;;;;;:::o;23550:609::-;23677:15;23701:23;23733:12;23754:23;23786:12;23808:19;23819:7;23808:10;:19::i;:::-;23668:159;;;;;;;;;;23852:28;23872:7;23852;:15;23860:6;23852:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23834:7;:15;23842:6;23834:15;;;;;;;;;;;;;;;:46;;;;23905:28;23925:7;23905;:15;23913:6;23905:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;23887:7;:15;23895:6;23887:15;;;;;;;;;;;;;;;:46;;;;23961:39;23984:15;23961:7;:18;23969:9;23961:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;23940:7;:18;23948:9;23940:18;;;;;;;;;;;;;;;:60;;;;24028:39;24051:15;24028:7;:18;24036:9;24028:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;24007:7;:18;24015:9;24007:18;;;;;;;;;;;;;;;:60;;;;24074:23;24086:4;24092;24074:11;:23::i;:::-;24126:9;24109:44;;24118:6;24109:44;;;24137:15;24109:44;;;;;;;;;;;;;;;;;;23550:609;;;;;;;;:::o;25539:521::-;25590:7;25599;25615:15;25633:7;;25615:25;;25647:15;15758:24;25647:25;;25684:9;25679:276;25703:9;:16;;;;25699:1;:20;25679:276;;;25763:7;25739;:21;25747:9;25757:1;25747:12;;;;;;;;;;;;;;;;;;;;;;;;;25739:21;;;;;;;;;;;;;;;;:31;:66;;;;25798:7;25774;:21;25782:9;25792:1;25782:12;;;;;;;;;;;;;;;;;;;;;;;;;25774:21;;;;;;;;;;;;;;;;:31;25739:66;25735:106;;;25824:7;;15758:24;25816:25;;;;;;;;;25735:106;25860:34;25872:7;:21;25880:9;25890:1;25880:12;;;;;;;;;;;;;;;;;;;;;;;;;25872:21;;;;;;;;;;;;;;;;25860:7;:11;;:34;;;;:::i;:::-;25850:44;;25913:34;25925:7;:21;25933:9;25943:1;25933:12;;;;;;;;;;;;;;;;;;;;;;;;;25925:21;;;;;;;;;;;;;;;;25913:7;:11;;:34;;;;:::i;:::-;25903:44;;25721:3;;;;;;;25679:276;;;;25975:20;15758:24;25975:7;;:11;;:20;;;;:::i;:::-;25965:7;:30;25961:61;;;26005:7;;15758:24;25997:25;;;;;;;;25961:61;26037:7;26046;26029:25;;;;;;25539:521;;;:::o;6268:280::-;6374:7;6402:1;6398;:5;6405:12;6390:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6425:9;6441:1;6437;:5;;;;;;6425:17;;6541:1;6534:8;;;6268:280;;;;;:::o;24165:137::-;24239:17;24251:4;24239:7;;:11;;:17;;;;:::i;:::-;24229:7;:27;;;;24276:20;24291:4;24276:10;;:14;;:20;;;;:::i;:::-;24263:10;:33;;;;24165:137;;:::o
Swarm Source
ipfs://2aeb3260ce35299e8f3b1710c049ea7949062814da0f1bd3907d16971ef55b2d
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.