Contract
0xcb10b02c63690d5FAf3c2b8ad8f94511d5e69B85
4
Contract Overview
Balance:
0 FTM
FTM Value:
$0.00
Txn Hash | Method |
Block
|
From
|
To
|
Value | [Txn Fee] | ||
---|---|---|---|---|---|---|---|---|
0xd192a4e7a1e6d0f04a983b4ed525dda3cb1a972d6e1904ac53dde0b749495db7 | Approve | 12332679 | 567 days 11 hrs ago | 0x386ba0d80dbfbe83ada5a9ada7c50d2aff0943f2 | IN | 0xcb10b02c63690d5faf3c2b8ad8f94511d5e69b85 | 0 FTM | 0.00420835 |
0xcf0cc1d9ba62dee2a8e709e8b2983411885467b99145fd66bf7a702bf76ead7a | Approve | 12332548 | 567 days 11 hrs ago | 0x386ba0d80dbfbe83ada5a9ada7c50d2aff0943f2 | IN | 0xcb10b02c63690d5faf3c2b8ad8f94511d5e69b85 | 0 FTM | 0.0054186 |
0x53004cda9b2da616d0b77d9455e201897496b80d94208cd37e76265927bbe758 | 0x60806040 | 6554631 | 630 days 11 hrs ago | 0x386ba0d80dbfbe83ada5a9ada7c50d2aff0943f2 | IN | Create: CoinToken | 0 FTM | 0.18910224 |
[ Download CSV Export ]
Latest 1 internal transaction
Parent Txn Hash | Block | From | To | Value | |||
---|---|---|---|---|---|---|---|
0x53004cda9b2da616d0b77d9455e201897496b80d94208cd37e76265927bbe758 | 6554631 | 630 days 11 hrs ago | 0x386ba0d80dbfbe83ada5a9ada7c50d2aff0943f2 | Contract Creation | 0 FTM |
[ Download CSV Export ]
Contract Name:
CoinToken
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at FtmScan.com on 2021-05-16 */ /** *Submitted for verification at BscScan.com on 2021-04-16 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.2; abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(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; } } /** * @dev Interface of the BEP20 standard as defined in the EIP. */ interface IBEP20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ 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; } } /** * @dev Collection of functions related to the address type */ 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); } } } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @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 CoinToken is Context, IBEP20, 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; mapping (address => bool) private _isCharity; address[] private _excluded; string private _NAME; string private _SYMBOL; uint256 private _DECIMALS; address public FeeAddress; uint256 private _MAX = ~uint256(0); uint256 private _DECIMALFACTOR; uint256 private _GRANULARITY = 100; uint256 private _tTotal; uint256 private _rTotal; uint256 private _tFeeTotal; uint256 private _tBurnTotal; uint256 private _tCharityTotal; uint256 public _TAX_FEE; uint256 public _BURN_FEE; uint256 public _CHARITY_FEE; // Track original fees to bypass fees for charity account uint256 private ORIG_TAX_FEE; uint256 private ORIG_BURN_FEE; uint256 private ORIG_CHARITY_FEE; constructor (string memory _name, string memory _symbol, uint256 _decimals, uint256 _supply, uint256 _txFee,uint256 _burnFee,uint256 _charityFee,address _FeeAddress,address tokenOwner) { _NAME = _name; _SYMBOL = _symbol; _DECIMALS = _decimals; _DECIMALFACTOR = 10 ** uint256(_DECIMALS); _tTotal =_supply * _DECIMALFACTOR; _rTotal = (_MAX - (_MAX % _tTotal)); _TAX_FEE = _txFee* 100; _BURN_FEE = _burnFee * 100; _CHARITY_FEE = _charityFee* 100; ORIG_TAX_FEE = _TAX_FEE; ORIG_BURN_FEE = _BURN_FEE; ORIG_CHARITY_FEE = _CHARITY_FEE; _isCharity[_FeeAddress] = true; FeeAddress = _FeeAddress; _owner = tokenOwner; _rOwned[tokenOwner] = _rTotal; emit Transfer(address(0),tokenOwner, _tTotal); } function name() public view returns (string memory) { return _NAME; } function symbol() public view returns (string memory) { return _SYMBOL; } function decimals() public view returns (uint256) { 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, "TOKEN20: 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, "TOKEN20: decreased allowance below zero")); return true; } function isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function isCharity(address account) public view returns (bool) { return _isCharity[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function totalBurn() public view returns (uint256) { return _tBurnTotal; } function totalCharity() public view returns (uint256) { return _tCharityTotal; } function deliver(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 setAsCharityAccount(address account) external onlyOwner() { require(!_isCharity[account], "Account is already charity account"); _isCharity[account] = true; FeeAddress = account; } function burn(uint256 _value) public{ _burn(msg.sender, _value); } function updateFee(uint256 _txFee,uint256 _burnFee,uint256 _charityFee) onlyOwner() public{ _TAX_FEE = _txFee* 100; _BURN_FEE = _burnFee * 100; _CHARITY_FEE = _charityFee* 100; ORIG_TAX_FEE = _TAX_FEE; ORIG_BURN_FEE = _BURN_FEE; ORIG_CHARITY_FEE = _CHARITY_FEE; } function _burn(address _who, uint256 _value) internal { require(_value <= _rOwned[_who]); _rOwned[_who] = _rOwned[_who].sub(_value); _tTotal = _tTotal.sub(_value); emit Transfer(_who, address(0), _value); } function mint(address account, uint256 amount) onlyOwner() public { _tTotal = _tTotal.add(amount); _rOwned[account] = _rOwned[account].add(amount); emit Transfer(address(0), account, amount); } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "TOKEN20: approve from the zero address"); require(spender != address(0), "TOKEN20: 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), "TOKEN20: transfer from the zero address"); require(recipient != address(0), "TOKEN20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); // Remove fees for transfers to and from charity account or to excluded account bool takeFee = true; if (_isCharity[sender] || _isCharity[recipient] || _isExcluded[recipient]) { takeFee = false; } if (!takeFee) removeAllFee(); 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); } if (!takeFee) restoreAllFee(); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tCharity) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); uint256 rCharity = tCharity.mul(currentRate); _standardTransferContent(sender, recipient, rAmount, rTransferAmount); _sendToCharity(tCharity, sender); _reflectFee(rFee, rBurn, rCharity, tFee, tBurn, tCharity); emit Transfer(sender, recipient, tTransferAmount); } function _standardTransferContent(address sender, address recipient, uint256 rAmount, uint256 rTransferAmount) private { _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tCharity) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); uint256 rCharity = tCharity.mul(currentRate); _excludedFromTransferContent(sender, recipient, tTransferAmount, rAmount, rTransferAmount); _sendToCharity(tCharity, sender); _reflectFee(rFee, rBurn, rCharity, tFee, tBurn, tCharity); emit Transfer(sender, recipient, tTransferAmount); } function _excludedFromTransferContent(address sender, address recipient, uint256 tTransferAmount, uint256 rAmount, uint256 rTransferAmount) private { _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tCharity) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); uint256 rCharity = tCharity.mul(currentRate); _excludedToTransferContent(sender, recipient, tAmount, rAmount, rTransferAmount); _sendToCharity(tCharity, sender); _reflectFee(rFee, rBurn, rCharity, tFee, tBurn, tCharity); emit Transfer(sender, recipient, tTransferAmount); } function _excludedToTransferContent(address sender, address recipient, uint256 tAmount, uint256 rAmount, uint256 rTransferAmount) private { _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn, uint256 tCharity) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); uint256 rCharity = tCharity.mul(currentRate); _bothTransferContent(sender, recipient, tAmount, rAmount, tTransferAmount, rTransferAmount); _sendToCharity(tCharity, sender); _reflectFee(rFee, rBurn, rCharity, tFee, tBurn, tCharity); emit Transfer(sender, recipient, tTransferAmount); } function _bothTransferContent(address sender, address recipient, uint256 tAmount, uint256 rAmount, uint256 tTransferAmount, uint256 rTransferAmount) private { _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); } function _reflectFee(uint256 rFee, uint256 rBurn, uint256 rCharity, uint256 tFee, uint256 tBurn, uint256 tCharity) private { _rTotal = _rTotal.sub(rFee).sub(rBurn).sub(rCharity); _tFeeTotal = _tFeeTotal.add(tFee); _tBurnTotal = _tBurnTotal.add(tBurn); _tCharityTotal = _tCharityTotal.add(tCharity); _tTotal = _tTotal.sub(tBurn); emit Transfer(address(this), address(0), tBurn); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tFee, uint256 tBurn, uint256 tCharity) = _getTBasics(tAmount, _TAX_FEE, _BURN_FEE, _CHARITY_FEE); uint256 tTransferAmount = getTTransferAmount(tAmount, tFee, tBurn, tCharity); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rFee) = _getRBasics(tAmount, tFee, currentRate); uint256 rTransferAmount = _getRTransferAmount(rAmount, rFee, tBurn, tCharity, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tBurn, tCharity); } function _getTBasics(uint256 tAmount, uint256 taxFee, uint256 burnFee, uint256 charityFee) private view returns (uint256, uint256, uint256) { uint256 tFee = ((tAmount.mul(taxFee)).div(_GRANULARITY)).div(100); uint256 tBurn = ((tAmount.mul(burnFee)).div(_GRANULARITY)).div(100); uint256 tCharity = ((tAmount.mul(charityFee)).div(_GRANULARITY)).div(100); return (tFee, tBurn, tCharity); } function getTTransferAmount(uint256 tAmount, uint256 tFee, uint256 tBurn, uint256 tCharity) private pure returns (uint256) { return tAmount.sub(tFee).sub(tBurn).sub(tCharity); } function _getRBasics(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); return (rAmount, rFee); } function _getRTransferAmount(uint256 rAmount, uint256 rFee, uint256 tBurn, uint256 tCharity, uint256 currentRate) private pure returns (uint256) { uint256 rBurn = tBurn.mul(currentRate); uint256 rCharity = tCharity.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rBurn).sub(rCharity); return rTransferAmount; } 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); } function _sendToCharity(uint256 tCharity, address sender) private { uint256 currentRate = _getRate(); uint256 rCharity = tCharity.mul(currentRate); _rOwned[FeeAddress] = _rOwned[FeeAddress].add(rCharity); _tOwned[FeeAddress] = _tOwned[FeeAddress].add(tCharity); emit Transfer(sender, FeeAddress, tCharity); } function removeAllFee() private { if(_TAX_FEE == 0 && _BURN_FEE == 0 && _CHARITY_FEE == 0) return; ORIG_TAX_FEE = _TAX_FEE; ORIG_BURN_FEE = _BURN_FEE; ORIG_CHARITY_FEE = _CHARITY_FEE; _TAX_FEE = 0; _BURN_FEE = 0; _CHARITY_FEE = 0; } function restoreAllFee() private { _TAX_FEE = ORIG_TAX_FEE; _BURN_FEE = ORIG_BURN_FEE; _CHARITY_FEE = ORIG_CHARITY_FEE; } function _getTaxFee() private view returns(uint256) { return _TAX_FEE; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_decimals","type":"uint256"},{"internalType":"uint256","name":"_supply","type":"uint256"},{"internalType":"uint256","name":"_txFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_charityFee","type":"uint256"},{"internalType":"address","name":"_FeeAddress","type":"address"},{"internalType":"address","name":"tokenOwner","type":"address"}],"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":"FeeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_BURN_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_CHARITY_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_TAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"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":"isCharity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setAsCharityAccount","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":"totalBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalCharity","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"},{"inputs":[{"internalType":"uint256","name":"_txFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"},{"internalType":"uint256","name":"_charityFee","type":"uint256"}],"name":"updateFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6080604052600019600b556064600d553480156200001c57600080fd5b506040516200284d3803806200284d8339810160408190526200003f916200030b565b8851620000549060079060208c019062000195565b5087516200006a9060089060208b019062000195565b5060098790556200007d87600a62000411565b600c8190556200008e9087620004dc565b600e819055600b54620000a2919062000555565b600b54620000b19190620004fe565b600f55620000c1856064620004dc565b601355620000d1846064620004dc565b601455620000e1836064620004dc565b60158190556013546016556014546017556018556001600160a01b038281166000818152600560209081526040808320805460ff19166001908117909155600a80546001600160a01b0319908116909617905583549587169590941685178355600f5485845293825280832093909355600e54925192835290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050505050505050620005a2565b828054620001a39062000518565b90600052602060002090601f016020900481019282620001c7576000855562000212565b82601f10620001e257805160ff191683800117855562000212565b8280016001018555821562000212579182015b8281111562000212578251825591602001919060010190620001f5565b506200022092915062000224565b5090565b5b8082111562000220576000815560010162000225565b80516001600160a01b03811681146200025357600080fd5b919050565b600082601f83011262000269578081fd5b81516001600160401b03808211156200028657620002866200058c565b604051601f8301601f19908116603f01168101908282118183101715620002b157620002b16200058c565b81604052838152602092508683858801011115620002cd578485fd5b8491505b83821015620002f05785820183015181830184015290820190620002d1565b838211156200030157848385830101525b9695505050505050565b60008060008060008060008060006101208a8c0312156200032a578485fd5b89516001600160401b038082111562000341578687fd5b6200034f8d838e0162000258565b9a5060208c015191508082111562000365578687fd5b50620003748c828d0162000258565b98505060408a0151965060608a0151955060808a0151945060a08a0151935060c08a01519250620003a860e08b016200023b565b9150620003b96101008b016200023b565b90509295985092959850929598565b600181815b8085111562000409578160001904821115620003ed57620003ed62000576565b80851615620003fb57918102915b93841c9390800290620003cd565b509250929050565b60006200041f838362000426565b9392505050565b6000826200043757506001620004d6565b816200044657506000620004d6565b81600181146200045f57600281146200046a576200048a565b6001915050620004d6565b60ff8411156200047e576200047e62000576565b50506001821b620004d6565b5060208310610133831016604e8410600b8410161715620004af575081810a620004d6565b620004bb8383620003c8565b8060001904821115620004d257620004d262000576565b0290505b92915050565b6000816000190483118215151615620004f957620004f962000576565b500290565b60008282101562000513576200051362000576565b500390565b600181811c908216806200052d57607f821691505b602082108114156200054f57634e487b7160e01b600052602260045260246000fd5b50919050565b6000826200057157634e487b7160e01b81526012600452602481fd5b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b61229b80620005b26000396000f3fe608060405234801561001057600080fd5b50600436106101fb5760003560e01c806377ef79931161011a578063b5862428116100ad578063e81ffbef1161007c578063e81ffbef14610425578063f2cc0c1814610451578063f2fde38b14610464578063f84354f114610477578063fc061a4f1461048a57600080fd5b8063b5862428146103af578063cba0e996146103b8578063d608b3b2146103e4578063dd62ed3e146103ec57600080fd5b8063a457c2d7116100e9578063a457c2d71461036d578063a9059cbb14610380578063ae9dd5e014610393578063b2bdfa7b1461039c57600080fd5b806377ef7993146103205780637b7e8bac146103295780638da5cb5b1461035457806395d89b411461036557600080fd5b80633bd5d173116101925780634549b039116101615780634549b039146102df578063457bdf6c146102f257806370a0823114610305578063715018a61461031857600080fd5b80633bd5d1731461029c5780633c9f861d146102b157806340c10f19146102b957806342966c68146102cc57600080fd5b806323b872dd116101ce57806323b872dd1461025b5780632d8381191461026e578063313ce56714610281578063395093511461028957600080fd5b806306fdde0314610200578063095ea7b31461021e57806313114a9d1461024157806318160ddd14610253575b600080fd5b61020861049d565b6040516102159190612092565b60405180910390f35b61023161022c366004611ff3565b61052f565b6040519015158152602001610215565b6010545b604051908152602001610215565b600e54610245565b610231610269366004611fb8565b610546565b61024561027c36600461201c565b6105af565b600954610245565b610231610297366004611ff3565b610638565b6102af6102aa36600461201c565b61066e565b005b601154610245565b6102af6102c7366004611ff3565b61075a565b6102af6102da36600461201c565b610802565b6102456102ed366004612034565b61080f565b6102af610300366004611f6c565b61089e565b610245610313366004611f6c565b610973565b6102af6109d2565b61024560145481565b600a5461033c906001600160a01b031681565b6040516001600160a01b039091168152602001610215565b6000546001600160a01b031661033c565b610208610a46565b61023161037b366004611ff3565b610a55565b61023161038e366004611ff3565b610aa4565b61024560155481565b60005461033c906001600160a01b031681565b61024560135481565b6102316103c6366004611f6c565b6001600160a01b031660009081526004602052604090205460ff1690565b601254610245565b6102456103fa366004611f86565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b610231610433366004611f6c565b6001600160a01b031660009081526005602052604090205460ff1690565b6102af61045f366004611f6c565b610ab1565b6102af610472366004611f6c565b610c04565b6102af610485366004611f6c565b610cee565b6102af610498366004612067565b610edd565b6060600780546104ac90612188565b80601f01602080910402602001604051908101604052809291908181526020018280546104d890612188565b80156105255780601f106104fa57610100808354040283529160200191610525565b820191906000526020600020905b81548152906001019060200180831161050857829003601f168201915b5050505050905090565b600061053c338484610f47565b5060015b92915050565b600061055384848461106f565b6105a584336105a0856040518060600160405280602a815260200161221c602a91396001600160a01b038a166000908152600360209081526040808320338452909152902054919061138c565b610f47565b5060019392505050565b6000600f5482111561061b5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084015b60405180910390fd5b60006106256113c6565b905061063183826113e9565b9392505050565b3360008181526003602090815260408083206001600160a01b0387168452909152812054909161053c9185906105a0908661142b565b3360008181526004602052604090205460ff16156106e35760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610612565b60006106ee8361148a565b5050506001600160a01b03861660009081526001602052604090205493945061071c9392508491505061150e565b6001600160a01b038316600090815260016020526040902055600f54610742908261150e565b600f55601054610752908461142b565b601055505050565b6000546001600160a01b031633146107845760405162461bcd60e51b8152600401610612906120e5565b600e54610791908261142b565b600e556001600160a01b0382166000908152600160205260409020546107b7908261142b565b6001600160a01b038316600081815260016020526040808220939093559151909190600080516020612246833981519152906107f69085815260200190565b60405180910390a35050565b61080c3382611550565b50565b6000600e548311156108635760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610612565b816108835760006108738461148a565b5094965061054095505050505050565b600061088e8461148a565b5093965061054095505050505050565b6000546001600160a01b031633146108c85760405162461bcd60e51b8152600401610612906120e5565b6001600160a01b03811660009081526005602052604090205460ff161561093c5760405162461bcd60e51b815260206004820152602260248201527f4163636f756e7420697320616c72656164792063686172697479206163636f756044820152611b9d60f21b6064820152608401610612565b6001600160a01b03166000818152600560205260409020805460ff19166001179055600a80546001600160a01b0319169091179055565b6001600160a01b03811660009081526004602052604081205460ff16156109b057506001600160a01b031660009081526002602052604090205490565b6001600160a01b038216600090815260016020526040902054610540906105af565b6000546001600160a01b031633146109fc5760405162461bcd60e51b8152600401610612906120e5565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6060600880546104ac90612188565b600061053c33846105a0856040518060600160405280602781526020016121f5602791393360009081526003602090815260408083206001600160a01b038d168452909152902054919061138c565b600061053c33848461106f565b6000546001600160a01b03163314610adb5760405162461bcd60e51b8152600401610612906120e5565b6001600160a01b03811660009081526004602052604090205460ff1615610b445760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610612565b6001600160a01b03811660009081526001602052604090205415610b9e576001600160a01b038116600090815260016020526040902054610b84906105af565b6001600160a01b0382166000908152600260205260409020555b6001600160a01b03166000818152600460205260408120805460ff191660019081179091556006805491820181559091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319169091179055565b6000546001600160a01b03163314610c2e5760405162461bcd60e51b8152600401610612906120e5565b6001600160a01b038116610c935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610612565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610d185760405162461bcd60e51b8152600401610612906120e5565b6001600160a01b03811660009081526004602052604090205460ff16610d805760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610612565b60005b600654811015610ed957816001600160a01b031660068281548110610db857634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b03161415610ec75760068054610de390600190612171565b81548110610e0157634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600680546001600160a01b039092169183908110610e3b57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600282526040808220829055600490925220805460ff191690556006805480610ea157634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80610ed1816121c3565b915050610d83565b5050565b6000546001600160a01b03163314610f075760405162461bcd60e51b8152600401610612906120e5565b610f12836064612152565b601355610f20826064612152565b601455610f2e816064612152565b6015819055601354601655601454601755601855505050565b6001600160a01b038316610fac5760405162461bcd60e51b815260206004820152602660248201527f544f4b454e32303a20617070726f76652066726f6d20746865207a65726f206160448201526564647265737360d01b6064820152608401610612565b6001600160a01b03821661100e5760405162461bcd60e51b8152602060048201526024808201527f544f4b454e32303a20617070726f766520746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610612565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166110d55760405162461bcd60e51b815260206004820152602760248201527f544f4b454e32303a207472616e736665722066726f6d20746865207a65726f206044820152666164647265737360c81b6064820152608401610612565b6001600160a01b0382166111395760405162461bcd60e51b815260206004820152602560248201527f544f4b454e32303a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608401610612565b6000811161119b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610612565b6001600160a01b03831660009081526005602052604090205460019060ff16806111dd57506001600160a01b03831660009081526005602052604090205460ff165b8061120057506001600160a01b03831660009081526004602052604090205460ff165b15611209575060005b80611216576112166115ed565b6001600160a01b03841660009081526004602052604090205460ff16801561125757506001600160a01b03831660009081526004602052604090205460ff16155b1561126c57611267848484611632565b61136a565b6001600160a01b03841660009081526004602052604090205460ff161580156112ad57506001600160a01b03831660009081526004602052604090205460ff165b156112bd576112678484846116f4565b6001600160a01b03841660009081526004602052604090205460ff161580156112ff57506001600160a01b03831660009081526004602052604090205460ff16155b1561130f57611267848484611754565b6001600160a01b03841660009081526004602052604090205460ff16801561134f57506001600160a01b03831660009081526004602052604090205460ff165b1561135f576112678484846117b3565b61136a848484611754565b8061138657611386601654601355601754601455601854601555565b50505050565b600081848411156113b05760405162461bcd60e51b81526004016106129190612092565b5060006113bd8486612171565b95945050505050565b60008060006113d3611814565b90925090506113e282826113e9565b9250505090565b600061063183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506119ce565b600080611438838561211a565b9050838110156106315760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610612565b6000806000806000806000806000806114ab8b6013546014546015546119fc565b92509250925060006114bf8c858585611a7b565b905060006114cb6113c6565b90506000806114db8f8885611a93565b9150915060006114ee8383898988611abd565b929e50919c509a5091985093965091945092505050919395979092949650565b600061063183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061138c565b6001600160a01b03821660009081526001602052604090205481111561157557600080fd5b6001600160a01b038216600090815260016020526040902054611598908261150e565b6001600160a01b038316600090815260016020526040902055600e546115be908261150e565b600e556040518181526000906001600160a01b03841690600080516020612246833981519152906020016107f6565b6013541580156115fd5750601454155b80156116095750601554155b1561161057565b6013805460165560148054601755601580546018556000928390559082905555565b600061163c6113c6565b905060008060008060008060006116528961148a565b965096509650965096509650965060006116758984611af990919063ffffffff16565b90506000611683838b611af9565b90506116928d8d8d8c8c611b78565b61169c838e611c1c565b6116aa878383888888611ceb565b8b6001600160a01b03168d6001600160a01b0316600080516020612246833981519152886040516116dd91815260200190565b60405180910390a350505050505050505050505050565b60006116fe6113c6565b905060008060008060008060006117148961148a565b965096509650965096509650965060006117378984611af990919063ffffffff16565b90506000611745838b611af9565b90506116928d8d888c8c611d79565b600061175e6113c6565b905060008060008060008060006117748961148a565b965096509650965096509650965060006117978984611af990919063ffffffff16565b905060006117a5838b611af9565b90506116928d8d8b8b611e01565b60006117bd6113c6565b905060008060008060008060006117d38961148a565b965096509650965096509650965060006117f68984611af990919063ffffffff16565b90506000611804838b611af9565b90506116928d8d8d8c8a8d611e75565b600f54600e546000918291825b60065481101561199e5782600160006006848154811061185157634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806118ca57508160026000600684815481106118a357634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156118e057600f54600e54945094505050509091565b611934600160006006848154811061190857634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054849061150e565b925061198a600260006006848154811061195e57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054839061150e565b915080611996816121c3565b915050611821565b50600e54600f546119ae916113e9565b8210156119c557600f54600e549350935050509091565b90939092509050565b600081836119ef5760405162461bcd60e51b81526004016106129190612092565b5060006113bd8486612132565b600080600080611a266064611a20600d54611a208b8d611af990919063ffffffff16565b906113e9565b90506000611a486064611a20600d54611a208b8e611af990919063ffffffff16565b90506000611a6a6064611a20600d54611a208b8f611af990919063ffffffff16565b929a91995091975095505050505050565b60006113bd82611a8d8581898961150e565b9061150e565b60008080611aa18685611af9565b90506000611aaf8686611af9565b919791965090945050505050565b600080611aca8584611af9565b90506000611ad88585611af9565b90506000611aec82611a8d85818d8d61150e565b9998505050505050505050565b600082611b0857506000610540565b6000611b148385612152565b905082611b218583612132565b146106315760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610612565b6001600160a01b038516600090815260026020526040902054611b9b908461150e565b6001600160a01b038616600090815260026020908152604080832093909355600190522054611bca908361150e565b6001600160a01b038087166000908152600160205260408082209390935590861681522054611bf9908261142b565b6001600160a01b0390941660009081526001602052604090209390935550505050565b6000611c266113c6565b90506000611c348483611af9565b600a546001600160a01b0316600090815260016020526040902054909150611c5c908261142b565b600a80546001600160a01b039081166000908152600160209081526040808320959095559254909116815260029091522054611c98908561142b565b600a80546001600160a01b0390811660009081526002602090815260409182902094909455915491518781529181169290861691600080516020612246833981519152910160405180910390a350505050565b611d0884611a8d87611a8d8a600f5461150e90919063ffffffff16565b600f55601054611d18908461142b565b601055601154611d28908361142b565b601155601254611d38908261142b565b601255600e54611d48908361150e565b600e5560405182815260009030906000805160206122468339815191529060200160405180910390a3505050505050565b6001600160a01b038516600090815260016020526040902054611d9c908361150e565b6001600160a01b03808716600090815260016020908152604080832094909455918716815260029091522054611dd2908461142b565b6001600160a01b038516600090815260026020908152604080832093909355600190522054611bf9908261142b565b6001600160a01b038416600090815260016020526040902054611e24908361150e565b6001600160a01b038086166000908152600160205260408082209390935590851681522054611e53908261142b565b6001600160a01b03909316600090815260016020526040902092909255505050565b6001600160a01b038616600090815260026020526040902054611e98908561150e565b6001600160a01b038716600090815260026020908152604080832093909355600190522054611ec7908461150e565b6001600160a01b03808816600090815260016020908152604080832094909455918816815260029091522054611efd908361142b565b6001600160a01b038616600090815260026020908152604080832093909355600190522054611f2c908261142b565b6001600160a01b039095166000908152600160205260409020949094555050505050565b80356001600160a01b0381168114611f6757600080fd5b919050565b600060208284031215611f7d578081fd5b61063182611f50565b60008060408385031215611f98578081fd5b611fa183611f50565b9150611faf60208401611f50565b90509250929050565b600080600060608486031215611fcc578081fd5b611fd584611f50565b9250611fe360208501611f50565b9150604084013590509250925092565b60008060408385031215612005578182fd5b61200e83611f50565b946020939093013593505050565b60006020828403121561202d578081fd5b5035919050565b60008060408385031215612046578182fd5b823591506020830135801515811461205c578182fd5b809150509250929050565b60008060006060848603121561207b578283fd5b505081359360208301359350604090920135919050565b6000602080835283518082850152825b818110156120be578581018301518582016040015282016120a2565b818111156120cf5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000821982111561212d5761212d6121de565b500190565b60008261214d57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561216c5761216c6121de565b500290565b600082821015612183576121836121de565b500390565b600181811c9082168061219c57607f821691505b602082108114156121bd57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156121d7576121d76121de565b5060010190565b634e487b7160e01b600052601160045260246000fdfe544f4b454e32303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f544f4b454e32303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220bf12e27ec6f4eb42be2fa5d16459454b839f084001358dd7031ccaab7ce57d6664736f6c6343000804003300000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000009e668befef9a941b93770cc08b7726ce89df789d000000000000000000000000386ba0d80dbfbe83ada5a9ada7c50d2aff0943f20000000000000000000000000000000000000000000000000000000000000015486f6d656c6573732046616e746f6d20546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000044854484600000000000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000900000000000000000000000000000000000000000000000000000000000f42400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020000000000000000000000009e668befef9a941b93770cc08b7726ce89df789d000000000000000000000000386ba0d80dbfbe83ada5a9ada7c50d2aff0943f20000000000000000000000000000000000000000000000000000000000000015486f6d656c6573732046616e746f6d20546f6b656e000000000000000000000000000000000000000000000000000000000000000000000000000000000000044854484600000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : _name (string): Homeless Fantom Token
Arg [1] : _symbol (string): HTHF
Arg [2] : _decimals (uint256): 9
Arg [3] : _supply (uint256): 1000000
Arg [4] : _txFee (uint256): 2
Arg [5] : _burnFee (uint256): 2
Arg [6] : _charityFee (uint256): 2
Arg [7] : _FeeAddress (address): 0x9e668befef9a941b93770cc08b7726ce89df789d
Arg [8] : tokenOwner (address): 0x386ba0d80dbfbe83ada5a9ada7c50d2aff0943f2
-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000120
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000009
Arg [3] : 00000000000000000000000000000000000000000000000000000000000f4240
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [7] : 0000000000000000000000009e668befef9a941b93770cc08b7726ce89df789d
Arg [8] : 000000000000000000000000386ba0d80dbfbe83ada5a9ada7c50d2aff0943f2
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000015
Arg [10] : 486f6d656c6573732046616e746f6d20546f6b656e0000000000000000000000
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [12] : 4854484600000000000000000000000000000000000000000000000000000000
Deployed ByteCode Sourcemap
16637:17262:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18561:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19475:161;;;;;;:::i;:::-;;:::i;:::-;;;2545:14:1;;2538:22;2520:41;;2508:2;2493:18;19475:161:0;2475:92:1;20710:87:0;20779:10;;20710:87;;;8831:25:1;;;8819:2;8804:18;20710:87:0;8786:76:1;18840:95:0;18920:7;;18840:95;;19644:315;;;;;;:::i;:::-;;:::i;21843:253::-;;;;;;:::i;:::-;;:::i;18747:85::-;18815:9;;18747:85;;19967:218;;;;;;:::i;:::-;;:::i;21011:378::-;;;;;;:::i;:::-;;:::i;:::-;;20809:88;20878:11;;20809:88;;23759:227;;;;;;:::i;:::-;;:::i;23150:71::-;;;;;;:::i;:::-;;:::i;21397:438::-;;;;;;:::i;:::-;;:::i;22930:215::-;;;;;;:::i;:::-;;:::i;18943:198::-;;;;;;:::i;:::-;;:::i;16083:148::-;;;:::i;17542:27::-;;;;;;17170:25;;;;;-1:-1:-1;;;;;17170:25:0;;;;;;-1:-1:-1;;;;;2336:32:1;;;2318:51;;2306:2;2291:18;17170:25:0;2273:102:1;15441:79:0;15479:7;15506:6;-1:-1:-1;;;;;15506:6:0;15441:79;;18652:87;;;:::i;20193:271::-;;;;;;:::i;:::-;;:::i;19149:167::-;;;;;;:::i;:::-;;:::i;17576:27::-;;;;;;15244:21;;;;;-1:-1:-1;;;;;15244:21:0;;;17508:27;;;;;;20472:110;;;;;;:::i;:::-;-1:-1:-1;;;;;20554:20:0;20530:4;20554:20;;;:11;:20;;;;;;;;;20472:110;20909:94;20981:14;;20909:94;;19324:143;;;;;;:::i;:::-;-1:-1:-1;;;;;19432:18:0;;;19405:7;19432:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19324:143;20594:108;;;;;;:::i;:::-;-1:-1:-1;;;;;20675:19:0;20651:4;20675:19;;;:10;:19;;;;;;;;;20594:108;22104:332;;;;;;:::i;:::-;;:::i;16386:244::-;;;;;;:::i;:::-;;:::i;22444:478::-;;;;;;:::i;:::-;;:::i;23227:296::-;;;;;;:::i;:::-;;:::i;18561:83::-;18598:13;18631:5;18624:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18561:83;:::o;19475:161::-;19550:4;19567:39;263:10;19590:7;19599:6;19567:8;:39::i;:::-;-1:-1:-1;19624:4:0;19475:161;;;;;:::o;19644:315::-;19742:4;19759:36;19769:6;19777:9;19788:6;19759:9;:36::i;:::-;19806:123;19815:6;263:10;19837:91;19875:6;19837:91;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19837:19:0;;;;;;:11;:19;;;;;;;;263:10;19837:33;;;;;;;;;;:37;:91::i;:::-;19806:8;:123::i;:::-;-1:-1:-1;19947:4:0;19644:315;;;;;:::o;21843:253::-;21909:7;21948;;21937;:18;;21929:73;;;;-1:-1:-1;;;21929:73:0;;4196:2:1;21929:73:0;;;4178:21:1;4235:2;4215:18;;;4208:30;4274:34;4254:18;;;4247:62;-1:-1:-1;;;4325:18:1;;;4318:40;4375:19;;21929:73:0;;;;;;;;;22013:19;22036:10;:8;:10::i;:::-;22013:33;-1:-1:-1;22064:24:0;:7;22013:33;22064:11;:24::i;:::-;22057:31;21843:253;-1:-1:-1;;;21843:253:0:o;19967:218::-;263:10;20055:4;20104:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20104:34:0;;;;;;;;;;20055:4;;20072:83;;20095:7;;20104:50;;20143:10;20104:38;:50::i;21011:378::-;263:10;21063:14;21112:19;;;:11;:19;;;;;;;;21111:20;21103:77;;;;-1:-1:-1;;;21103:77:0;;8474:2:1;21103:77:0;;;8456:21:1;8513:2;8493:18;;;8486:30;8552:34;8532:18;;;8525:62;-1:-1:-1;;;8603:18:1;;;8596:42;8655:19;;21103:77:0;8446:234:1;21103:77:0;21192:15;21217:19;21228:7;21217:10;:19::i;:::-;-1:-1:-1;;;;;;;;21265:15:0;;;;;;:7;:15;;;;;;21191:45;;-1:-1:-1;21265:28:0;;:15;-1:-1:-1;21191:45:0;;-1:-1:-1;;21265:19:0;:28::i;:::-;-1:-1:-1;;;;;21247:15:0;;;;;;:7;:15;;;;;:46;21314:7;;:20;;21326:7;21314:11;:20::i;:::-;21304:7;:30;21358:10;;:23;;21373:7;21358:14;:23::i;:::-;21345:10;:36;-1:-1:-1;;;21011:378:0:o;23759:227::-;15653:6;;-1:-1:-1;;;;;15653:6:0;263:10;15653:22;15645:67;;;;-1:-1:-1;;;15645:67:0;;;;;;;:::i;:::-;23848:7:::1;::::0;:19:::1;::::0;23860:6;23848:11:::1;:19::i;:::-;23838:7;:29:::0;-1:-1:-1;;;;;23897:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;:28:::1;::::0;23918:6;23897:20:::1;:28::i;:::-;-1:-1:-1::0;;;;;23878:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;:47;;;;23941:37;;23878:16;;;-1:-1:-1;;;;;;;;;;;23941:37:0;::::1;::::0;23971:6;8831:25:1;;8819:2;8804:18;;8786:76;23941:37:0::1;;;;;;;;23759:227:::0;;:::o;23150:71::-;23191:25;23197:10;23209:6;23191:5;:25::i;:::-;23150:71;:::o;21397:438::-;21487:7;21526;;21515;:18;;21507:62;;;;-1:-1:-1;;;21507:62:0;;6129:2:1;21507:62:0;;;6111:21:1;6168:2;6148:18;;;6141:30;6207:33;6187:18;;;6180:61;6258:18;;21507:62:0;6101:181:1;21507:62:0;21585:17;21580:248;;21620:15;21645:19;21656:7;21645:10;:19::i;:::-;-1:-1:-1;21619:45:0;;-1:-1:-1;21679:14:0;;-1:-1:-1;;;;;;21679:14:0;21580:248;21728:23;21760:19;21771:7;21760:10;:19::i;:::-;-1:-1:-1;21726:53:0;;-1:-1:-1;21794:22:0;;-1:-1:-1;;;;;;21794:22:0;22930:215;15653:6;;-1:-1:-1;;;;;15653:6:0;263:10;15653:22;15645:67;;;;-1:-1:-1;;;15645:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23017:19:0;::::1;;::::0;;;:10:::1;:19;::::0;;;;;::::1;;23016:20;23008:67;;;::::0;-1:-1:-1;;;23008:67:0;;5726:2:1;23008:67:0::1;::::0;::::1;5708:21:1::0;5765:2;5745:18;;;5738:30;5804:34;5784:18;;;5777:62;-1:-1:-1;;;5855:18:1;;;5848:32;5897:19;;23008:67:0::1;5698:224:1::0;23008:67:0::1;-1:-1:-1::0;;;;;23086:19:0::1;;::::0;;;:10:::1;:19;::::0;;;;:26;;-1:-1:-1;;23086:26:0::1;23108:4;23086:26;::::0;;23117:10:::1;:20:::0;;-1:-1:-1;;;;;;23117:20:0::1;::::0;;::::1;::::0;;22930:215::o;18943:198::-;-1:-1:-1;;;;;19033:20:0;;19009:7;19033:20;;;:11;:20;;;;;;;;19029:49;;;-1:-1:-1;;;;;;19062:16:0;;;;;:7;:16;;;;;;;18943:198::o;19029:49::-;-1:-1:-1;;;;;19116:16:0;;;;;;:7;:16;;;;;;19096:37;;:19;:37::i;16083:148::-;15653:6;;-1:-1:-1;;;;;15653:6:0;263:10;15653:22;15645:67;;;;-1:-1:-1;;;15645:67:0;;;;;;;:::i;:::-;16190:1:::1;16174:6:::0;;16153:40:::1;::::0;-1:-1:-1;;;;;16174:6:0;;::::1;::::0;16153:40:::1;::::0;16190:1;;16153:40:::1;16221:1;16204:19:::0;;-1:-1:-1;;;;;;16204:19:0::1;::::0;;16083:148::o;18652:87::-;18691:13;18724:7;18717:14;;;;;:::i;20193:271::-;20286:4;20303:131;263:10;20326:7;20335:98;20374:15;20335:98;;;;;;;;;;;;;;;;;263:10;20335:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;20335:34:0;;;;;;;;;;;;:38;:98::i;19149:167::-;19227:4;19244:42;263:10;19268:9;19279:6;19244:9;:42::i;22104:332::-;15653:6;;-1:-1:-1;;;;;15653:6:0;263:10;15653:22;15645:67;;;;-1:-1:-1;;;15645:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22186:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22185:21;22177:61;;;::::0;-1:-1:-1;;;22177:61:0;;5370:2:1;22177:61:0::1;::::0;::::1;5352:21:1::0;5409:2;5389:18;;;5382:30;5448:29;5428:18;;;5421:57;5495:18;;22177:61:0::1;5342:177:1::0;22177:61:0::1;-1:-1:-1::0;;;;;22252:16:0;::::1;22271:1;22252:16:::0;;;:7:::1;:16;::::0;;;;;:20;22249:108:::1;;-1:-1:-1::0;;;;;22328:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;22308:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;22289:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;22249:108:::1;-1:-1:-1::0;;;;;22367:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;22367:27:0::1;22390:4;22367:27:::0;;::::1;::::0;;;22405:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;22405:23:0::1;::::0;;::::1;::::0;;22104:332::o;16386:244::-;15653:6;;-1:-1:-1;;;;;15653:6:0;263:10;15653:22;15645:67;;;;-1:-1:-1;;;15645:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16475:22:0;::::1;16467:73;;;::::0;-1:-1:-1;;;16467:73:0;;4607:2:1;16467:73:0::1;::::0;::::1;4589:21:1::0;4646:2;4626:18;;;4619:30;4685:34;4665:18;;;4658:62;-1:-1:-1;;;4736:18:1;;;4729:36;4782:19;;16467:73:0::1;4579:228:1::0;16467:73:0::1;16577:6;::::0;;16556:38:::1;::::0;-1:-1:-1;;;;;16556:38:0;;::::1;::::0;16577:6;::::1;::::0;16556:38:::1;::::0;::::1;16605:6;:17:::0;;-1:-1:-1;;;;;;16605:17:0::1;-1:-1:-1::0;;;;;16605:17:0;;;::::1;::::0;;;::::1;::::0;;16386:244::o;22444:478::-;15653:6;;-1:-1:-1;;;;;15653:6:0;263:10;15653:22;15645:67;;;;-1:-1:-1;;;15645:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;22525:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;22517:60;;;::::0;-1:-1:-1;;;22517:60:0;;5370:2:1;22517:60:0::1;::::0;::::1;5352:21:1::0;5409:2;5389:18;;;5382:30;5448:29;5428:18;;;5421:57;5495:18;;22517:60:0::1;5342:177:1::0;22517:60:0::1;22593:9;22588:327;22612:9;:16:::0;22608:20;::::1;22588:327;;;22670:7;-1:-1:-1::0;;;;;22654:23:0::1;:9;22664:1;22654:12;;;;;;-1:-1:-1::0;;;22654:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;22654:12:0::1;:23;22650:254;;;22713:9;22723:16:::0;;:20:::1;::::0;22742:1:::1;::::0;22723:20:::1;:::i;:::-;22713:31;;;;;;-1:-1:-1::0;;;22713:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;22698:9:::1;:12:::0;;-1:-1:-1;;;;;22713:31:0;;::::1;::::0;22708:1;;22698:12;::::1;;;-1:-1:-1::0;;;22698:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;22698:46:0::1;-1:-1:-1::0;;;;;22698:46:0;;::::1;;::::0;;22763:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;22802:11:::1;:20:::0;;;;:28;;-1:-1:-1;;22802:28:0::1;::::0;;22849:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;22849:15:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;22849:15:0;;;;;-1:-1:-1;;;;;;22849:15:0::1;::::0;;;;;22588:327:::1;22444:478:::0;:::o;22650:254::-:1;22630:3:::0;::::1;::::0;::::1;:::i;:::-;;;;22588:327;;;;22444:478:::0;:::o;23227:296::-;15653:6;;-1:-1:-1;;;;;15653:6:0;263:10;15653:22;15645:67;;;;-1:-1:-1;;;15645:67:0;;;;;;;:::i;:::-;23339:11:::1;:6:::0;23347:3:::1;23339:11;:::i;:::-;23328:8;:22:::0;23374:14:::1;:8:::0;23385:3:::1;23374:14;:::i;:::-;23362:9;:26:::0;23408:16:::1;:11:::0;23421:3:::1;23408:16;:::i;:::-;23393:12;:31:::0;;;23444:8:::1;::::0;23429:12:::1;:23:::0;23473:9:::1;::::0;23457:13:::1;:25:::0;23487:16:::1;:31:::0;-1:-1:-1;;;23227:296:0:o;23998:341::-;-1:-1:-1;;;;;24091:19:0;;24083:70;;;;-1:-1:-1;;;24083:70:0;;8067:2:1;24083:70:0;;;8049:21:1;8106:2;8086:18;;;8079:30;8145:34;8125:18;;;8118:62;-1:-1:-1;;;8196:18:1;;;8189:36;8242:19;;24083:70:0;8039:228:1;24083:70:0;-1:-1:-1;;;;;24172:21:0;;24164:70;;;;-1:-1:-1;;;24164:70:0;;7662:2:1;24164:70:0;;;7644:21:1;7701:2;7681:18;;;7674:30;7740:34;7720:18;;;7713:62;-1:-1:-1;;;7791:18:1;;;7784:34;7835:19;;24164:70:0;7634:226:1;24164:70:0;-1:-1:-1;;;;;24247:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;24299:32;;8831:25:1;;;24299:32:0;;8804:18:1;24299:32:0;;;;;;;23998:341;;;:::o;24347:1286::-;-1:-1:-1;;;;;24444:20:0;;24436:72;;;;-1:-1:-1;;;24436:72:0;;3788:2:1;24436:72:0;;;3770:21:1;3827:2;3807:18;;;3800:30;3866:34;3846:18;;;3839:62;-1:-1:-1;;;3917:18:1;;;3910:37;3964:19;;24436:72:0;3760:229:1;24436:72:0;-1:-1:-1;;;;;24527:23:0;;24519:73;;;;-1:-1:-1;;;24519:73:0;;3382:2:1;24519:73:0;;;3364:21:1;3421:2;3401:18;;;3394:30;3460:34;3440:18;;;3433:62;-1:-1:-1;;;3511:18:1;;;3504:35;3556:19;;24519:73:0;3354:227:1;24519:73:0;24620:1;24611:6;:10;24603:64;;;;-1:-1:-1;;;24603:64:0;;7252:2:1;24603:64:0;;;7234:21:1;7291:2;7271:18;;;7264:30;7330:34;7310:18;;;7303:62;-1:-1:-1;;;7381:18:1;;;7374:39;7430:19;;24603:64:0;7224:231:1;24603:64:0;-1:-1:-1;;;;;24803:18:0;;24769:12;24803:18;;;:10;:18;;;;;;24784:4;;24803:18;;;:43;;-1:-1:-1;;;;;;24825:21:0;;;;;;:10;:21;;;;;;;;24803:43;:69;;;-1:-1:-1;;;;;;24850:22:0;;;;;;:11;:22;;;;;;;;24803:69;24799:117;;;-1:-1:-1;24899:5:0;24799:117;24933:7;24928:28;;24942:14;:12;:14::i;:::-;-1:-1:-1;;;;;24991:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;25015:22:0;;;;;;:11;:22;;;;;;;;25014:23;24991:46;24987:597;;;25054:48;25076:6;25084:9;25095:6;25054:21;:48::i;:::-;24987:597;;;-1:-1:-1;;;;;25125:19:0;;;;;;:11;:19;;;;;;;;25124:20;:46;;;;-1:-1:-1;;;;;;25148:22:0;;;;;;:11;:22;;;;;;;;25124:46;25120:464;;;25187:46;25207:6;25215:9;25226:6;25187:19;:46::i;25120:464::-;-1:-1:-1;;;;;25256:19:0;;;;;;:11;:19;;;;;;;;25255:20;:47;;;;-1:-1:-1;;;;;;25280:22:0;;;;;;:11;:22;;;;;;;;25279:23;25255:47;25251:333;;;25319:44;25337:6;25345:9;25356:6;25319:17;:44::i;25251:333::-;-1:-1:-1;;;;;25385:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;25408:22:0;;;;;;:11;:22;;;;;;;;25385:45;25381:203;;;25447:48;25469:6;25477:9;25488:6;25447:21;:48::i;25381:203::-;25528:44;25546:6;25554:9;25565:6;25528:17;:44::i;:::-;25601:7;25596:29;;25610:15;33696:12;;33685:8;:23;33731:13;;33719:9;:25;33770:16;;33755:12;:31;33641:153;25610:15;24347:1286;;;;:::o;4986:192::-;5072:7;5108:12;5100:6;;;;5092:29;;;;-1:-1:-1;;;5092:29:0;;;;;;;;:::i;:::-;-1:-1:-1;5132:9:0;5144:5;5148:1;5144;:5;:::i;:::-;5132:17;4986:192;-1:-1:-1;;;;;4986:192:0:o;32203:163::-;32244:7;32265:15;32282;32301:19;:17;:19::i;:::-;32264:56;;-1:-1:-1;32264:56:0;-1:-1:-1;32338:20:0;32264:56;;32338:11;:20::i;:::-;32331:27;;;;32203:163;:::o;6384:132::-;6442:7;6469:39;6473:1;6476;6469:39;;;;;;;;;;;;;;;;;:3;:39::i;4083:181::-;4141:7;;4173:5;4177:1;4173;:5;:::i;:::-;4161:17;;4202:1;4197;:6;;4189:46;;;;-1:-1:-1;;;4189:46:0;;5014:2:1;4189:46:0;;;4996:21:1;5053:2;5033:18;;;5026:30;5092:29;5072:18;;;5065:57;5139:18;;4189:46:0;4986:177:1;30254:652:0;30313:7;30322;30331;30340;30349;30358;30367;30388:12;30402:13;30417:16;30437:55;30449:7;30458:8;;30468:9;;30479:12;;30437:11;:55::i;:::-;30387:105;;;;;;30503:23;30529:50;30548:7;30557:4;30563:5;30570:8;30529:18;:50::i;:::-;30503:76;;30590:19;30613:10;:8;:10::i;:::-;30590:33;;30635:15;30652:12;30668:39;30680:7;30689:4;30695:11;30668;:39::i;:::-;30634:73;;;;30718:23;30744:64;30764:7;30773:4;30779:5;30786:8;30796:11;30744:19;:64::i;:::-;30827:7;;-1:-1:-1;30718:90:0;;-1:-1:-1;30853:4:0;-1:-1:-1;30859:15:0;;-1:-1:-1;30876:4:0;;-1:-1:-1;30882:5:0;;-1:-1:-1;30889:8:0;-1:-1:-1;;;30254:652:0;;;;;;;;;:::o;4547:136::-;4605:7;4632:43;4636:1;4639;4632:43;;;;;;;;;;;;;;;;;:3;:43::i;23531:220::-;-1:-1:-1;;;;;23608:13:0;;;;;;:7;:13;;;;;;23598:23;;;23590:32;;;;;;-1:-1:-1;;;;;23643:13:0;;;;;;:7;:13;;;;;;:25;;23661:6;23643:17;:25::i;:::-;-1:-1:-1;;;;;23627:13:0;;;;;;:7;:13;;;;;:41;23683:7;;:19;;23695:6;23683:11;:19::i;:::-;23673:7;:29;23712:34;;8831:25:1;;;23735:1:0;;-1:-1:-1;;;;;23712:34:0;;;-1:-1:-1;;;;;;;;;;;23712:34:0;8819:2:1;8804:18;23712:34:0;8786:76:1;33309:320:0;33355:8;;:13;:31;;;;-1:-1:-1;33372:9:0;;:14;33355:31;:52;;;;-1:-1:-1;33390:12:0;;:17;33355:52;33352:64;;;33309:320::o;33352:64::-;33451:8;;;33436:12;:23;33486:9;;;33470:13;:25;33525:12;;;33506:16;:31;-1:-1:-1;33558:12:0;;;;33581:13;;;;33605:16;33309:320::o;27653:671::-;27755:19;27778:10;:8;:10::i;:::-;27755:33;;27800:15;27817:23;27842:12;27856:23;27881:12;27895:13;27910:16;27930:19;27941:7;27930:10;:19::i;:::-;27799:150;;;;;;;;;;;;;;27960:13;27977:22;27987:11;27977:5;:9;;:22;;;;:::i;:::-;27960:39;-1:-1:-1;28010:16:0;28029:25;:8;28042:11;28029:12;:25::i;:::-;28010:44;;28065:80;28092:6;28100:9;28111:7;28120;28129:15;28065:26;:80::i;:::-;28156:32;28171:8;28181:6;28156:14;:32::i;:::-;28199:57;28211:4;28217:5;28224:8;28234:4;28240:5;28247:8;28199:11;:57::i;:::-;28289:9;-1:-1:-1;;;;;28272:44:0;28281:6;-1:-1:-1;;;;;28272:44:0;-1:-1:-1;;;;;;;;;;;28300:15:0;28272:44;;;;8831:25:1;;8819:2;8804:18;;8786:76;28272:44:0;;;;;;;;27653:671;;;;;;;;;;;;;:::o;26581:687::-;26681:19;26704:10;:8;:10::i;:::-;26681:33;;26726:15;26743:23;26768:12;26782:23;26807:12;26821:13;26836:16;26856:19;26867:7;26856:10;:19::i;:::-;26725:150;;;;;;;;;;;;;;26886:13;26903:22;26913:11;26903:5;:9;;:22;;;;:::i;:::-;26886:39;-1:-1:-1;26936:16:0;26955:25;:8;26968:11;26955:12;:25::i;:::-;26936:44;;26991:90;27020:6;27028:9;27039:15;27056:7;27065:15;26991:28;:90::i;25641:661::-;25739:19;25762:10;:8;:10::i;:::-;25739:33;;25784:15;25801:23;25826:12;25840:23;25865:12;25879:13;25894:16;25914:19;25925:7;25914:10;:19::i;:::-;25783:150;;;;;;;;;;;;;;25944:13;25961:22;25971:11;25961:5;:9;;:22;;;;:::i;:::-;25944:39;-1:-1:-1;25994:16:0;26013:25;:8;26026:11;26013:12;:25::i;:::-;25994:44;;26054:69;26079:6;26087:9;26098:7;26107:15;26054:24;:69::i;28677:688::-;28779:19;28802:10;:8;:10::i;:::-;28779:33;;28824:15;28841:23;28866:12;28880:23;28905:12;28919:13;28934:16;28954:19;28965:7;28954:10;:19::i;:::-;28823:150;;;;;;;;;;;;;;28984:13;29001:22;29011:11;29001:5;:9;;:22;;;;:::i;:::-;28984:39;-1:-1:-1;29034:16:0;29053:25;:8;29066:11;29053:12;:25::i;:::-;29034:44;;29093:91;29114:6;29122:9;29133:7;29142;29151:15;29168;29093:20;:91::i;32374:561::-;32471:7;;32507;;32424;;;;;32531:289;32555:9;:16;32551:20;;32531:289;;;32621:7;32597;:21;32605:9;32615:1;32605:12;;;;;;-1:-1:-1;;;32605:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32605:12:0;32597:21;;;;;;;;;;;;;:31;;:66;;;32656:7;32632;:21;32640:9;32650:1;32640:12;;;;;;-1:-1:-1;;;32640:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32640:12:0;32632:21;;;;;;;;;;;;;:31;32597:66;32593:97;;;32673:7;;32682;;32665:25;;;;;;;32374:561;;:::o;32593:97::-;32715:34;32727:7;:21;32735:9;32745:1;32735:12;;;;;;-1:-1:-1;;;32735:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32735:12:0;32727:21;;;;;;;;;;;;;32715:7;;:11;:34::i;:::-;32705:44;;32774:34;32786:7;:21;32794:9;32804:1;32794:12;;;;;;-1:-1:-1;;;32794:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32794:12:0;32786:21;;;;;;;;;;;;;32774:7;;:11;:34::i;:::-;32764:44;-1:-1:-1;32573:3:0;;;;:::i;:::-;;;;32531:289;;;-1:-1:-1;32856:7:0;;32844;;:20;;:11;:20::i;:::-;32834:7;:30;32830:61;;;32874:7;;32883;;32866:25;;;;;;32374:561;;:::o;32830:61::-;32910:7;;32919;;-1:-1:-1;32374:561:0;-1:-1:-1;32374:561:0:o;7012:278::-;7098:7;7133:12;7126:5;7118:28;;;;-1:-1:-1;;;7118:28:0;;;;;;;;:::i;:::-;-1:-1:-1;7157:9:0;7169:5;7173:1;7169;:5;:::i;30918:427::-;31031:7;31040;31049;31069:12;31084:50;31130:3;31085:39;31111:12;;31086:19;31098:6;31086:7;:11;;:19;;;;:::i;:::-;31085:25;;:39::i;31084:50::-;31069:65;;31145:13;31161:51;31208:3;31162:40;31189:12;;31163:20;31175:7;31163;:11;;:20;;;;:::i;31161:51::-;31145:67;;31223:16;31242:54;31292:3;31243:43;31273:12;;31244:23;31256:10;31244:7;:11;;:23;;;;:::i;31242:54::-;31315:4;;31321:5;;-1:-1:-1;31315:4:0;;-1:-1:-1;30918:427:0;-1:-1:-1;;;;;;30918:427:0:o;31357:191::-;31471:7;31498:42;31531:8;31498:28;31520:5;31498:28;:7;31510:4;31498:11;:17::i;:::-;:21;;:28::i;31560:254::-;31655:7;;;31702:24;:7;31714:11;31702;:24::i;:::-;31684:42;-1:-1:-1;31737:12:0;31752:21;:4;31761:11;31752:8;:21::i;:::-;31792:7;;;;-1:-1:-1;31560:254:0;;-1:-1:-1;;;;;31560:254:0:o;31826:369::-;31962:7;;31998:22;:5;32008:11;31998:9;:22::i;:::-;31982:38;-1:-1:-1;32031:16:0;32050:25;:8;32063:11;32050:12;:25::i;:::-;32031:44;-1:-1:-1;32086:23:0;32112:42;32031:44;32112:28;32134:5;32112:28;:7;32124:4;32112:11;:17::i;:42::-;32086:68;31826:369;-1:-1:-1;;;;;;;;;31826:369:0:o;5437:471::-;5495:7;5740:6;5736:47;;-1:-1:-1;5770:1:0;5763:8;;5736:47;5795:9;5807:5;5811:1;5807;:5;:::i;:::-;5795:17;-1:-1:-1;5840:1:0;5831:5;5835:1;5795:17;5831:5;:::i;:::-;:10;5823:56;;;;-1:-1:-1;;;5823:56:0;;6489:2:1;5823:56:0;;;6471:21:1;6528:2;6508:18;;;6501:30;6567:34;6547:18;;;6540:62;-1:-1:-1;;;6618:18:1;;;6611:31;6659:19;;5823:56:0;6461:223:1;28336:333:0;-1:-1:-1;;;;;28503:15:0;;;;;;:7;:15;;;;;;:28;;28523:7;28503:19;:28::i;:::-;-1:-1:-1;;;;;28485:15:0;;;;;;:7;:15;;;;;;;;:46;;;;28560:7;:15;;;;:28;;28580:7;28560:19;:28::i;:::-;-1:-1:-1;;;;;28542:15:0;;;;;;;:7;:15;;;;;;:46;;;;28620:18;;;;;;;:39;;28643:15;28620:22;:39::i;:::-;-1:-1:-1;;;;;28599:18:0;;;;;;;:7;:18;;;;;:60;;;;-1:-1:-1;;;;28336:333:0:o;32943:358::-;33020:19;33042:10;:8;:10::i;:::-;33020:32;-1:-1:-1;33063:16:0;33082:25;:8;33020:32;33082:12;:25::i;:::-;33148:10;;-1:-1:-1;;;;;33148:10:0;33140:19;;;;:7;:19;;;;;;33063:44;;-1:-1:-1;33140:33:0;;33063:44;33140:23;:33::i;:::-;33126:10;;;-1:-1:-1;;;;;33126:10:0;;;33118:19;;;;:7;:19;;;;;;;;:55;;;;33214:10;;;;;33206:19;;:7;:19;;;;;:33;;33230:8;33206:23;:33::i;:::-;33192:10;;;-1:-1:-1;;;;;33192:10:0;;;33184:19;;;;:7;:19;;;;;;;;;:55;;;;33272:10;;33255:38;;8831:25:1;;;33272:10:0;;;;33255:38;;;;-1:-1:-1;;;;;;;;;;;33255:38:0;8804:18:1;33255:38:0;;;;;;;32943:358;;;;:::o;29808:432::-;29952:42;29985:8;29952:28;29974:5;29952:17;29964:4;29952:7;;:11;;:17;;;;:::i;:42::-;29942:7;:52;30018:10;;:20;;30033:4;30018:14;:20::i;:::-;30005:10;:33;30063:11;;:22;;30079:5;30063:15;:22::i;:::-;30049:11;:36;30113:14;;:28;;30132:8;30113:18;:28::i;:::-;30096:14;:45;30162:7;;:18;;30174:5;30162:11;:18::i;:::-;30152:7;:28;30190:42;;8831:25:1;;;30222:1:0;;30207:4;;-1:-1:-1;;;;;;;;;;;30190:42:0;8819:2:1;8804:18;30190:42:0;;;;;;;29808:432;;;;;;:::o;27280:359::-;-1:-1:-1;;;;;27457:15:0;;;;;;:7;:15;;;;;;:28;;27477:7;27457:19;:28::i;:::-;-1:-1:-1;;;;;27439:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;27517:18;;;;;:7;:18;;;;;:39;;27540:15;27517:22;:39::i;:::-;-1:-1:-1;;;;;27496:18:0;;;;;;:7;:18;;;;;;;;:60;;;;27588:7;:18;;;;:39;;27611:15;27588:22;:39::i;26314:255::-;-1:-1:-1;;;;;26462:15:0;;;;;;:7;:15;;;;;;:28;;26482:7;26462:19;:28::i;:::-;-1:-1:-1;;;;;26444:15:0;;;;;;;:7;:15;;;;;;:46;;;;26522:18;;;;;;;:39;;26545:15;26522:22;:39::i;:::-;-1:-1:-1;;;;;26501:18:0;;;;;;;:7;:18;;;;;:60;;;;-1:-1:-1;;;26314:255:0:o;29377:423::-;-1:-1:-1;;;;;29563:15:0;;;;;;:7;:15;;;;;;:28;;29583:7;29563:19;:28::i;:::-;-1:-1:-1;;;;;29545:15:0;;;;;;:7;:15;;;;;;;;:46;;;;29620:7;:15;;;;:28;;29640:7;29620:19;:28::i;:::-;-1:-1:-1;;;;;29602:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;29680:18;;;;;:7;:18;;;;;:39;;29703:15;29680:22;:39::i;:::-;-1:-1:-1;;;;;29659:18:0;;;;;;:7;:18;;;;;;;;:60;;;;29751:7;:18;;;;:39;;29774:15;29751:22;:39::i;:::-;-1:-1:-1;;;;;29730:18:0;;;;;;;:7;:18;;;;;:60;;;;-1:-1:-1;;;;;29377:423:0:o;14:173:1:-;82:20;;-1:-1:-1;;;;;131:31:1;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:196::-;251:6;304:2;292:9;283:7;279:23;275:32;272:2;;;325:6;317;310:22;272:2;353:29;372:9;353:29;:::i;393:270::-;461:6;469;522:2;510:9;501:7;497:23;493:32;490:2;;;543:6;535;528:22;490:2;571:29;590:9;571:29;:::i;:::-;561:39;;619:38;653:2;642:9;638:18;619:38;:::i;:::-;609:48;;480:183;;;;;:::o;668:338::-;745:6;753;761;814:2;802:9;793:7;789:23;785:32;782:2;;;835:6;827;820:22;782:2;863:29;882:9;863:29;:::i;:::-;853:39;;911:38;945:2;934:9;930:18;911:38;:::i;:::-;901:48;;996:2;985:9;981:18;968:32;958:42;;772:234;;;;;:::o;1011:264::-;1079:6;1087;1140:2;1128:9;1119:7;1115:23;1111:32;1108:2;;;1161:6;1153;1146:22;1108:2;1189:29;1208:9;1189:29;:::i;:::-;1179:39;1265:2;1250:18;;;;1237:32;;-1:-1:-1;;;1098:177:1:o;1280:190::-;1339:6;1392:2;1380:9;1371:7;1367:23;1363:32;1360:2;;;1413:6;1405;1398:22;1360:2;-1:-1:-1;1441:23:1;;1350:120;-1:-1:-1;1350:120:1:o;1475:361::-;1540:6;1548;1601:2;1589:9;1580:7;1576:23;1572:32;1569:2;;;1622:6;1614;1607:22;1569:2;1663:9;1650:23;1640:33;;1723:2;1712:9;1708:18;1695:32;1770:5;1763:13;1756:21;1749:5;1746:32;1736:2;;1797:6;1789;1782:22;1736:2;1825:5;1815:15;;;1559:277;;;;;:::o;1841:326::-;1918:6;1926;1934;1987:2;1975:9;1966:7;1962:23;1958:32;1955:2;;;2008:6;2000;1993:22;1955:2;-1:-1:-1;;2036:23:1;;;2106:2;2091:18;;2078:32;;-1:-1:-1;2157:2:1;2142:18;;;2129:32;;1945:222;-1:-1:-1;1945:222:1:o;2572:603::-;2684:4;2713:2;2742;2731:9;2724:21;2774:6;2768:13;2817:6;2812:2;2801:9;2797:18;2790:34;2842:4;2855:140;2869:6;2866:1;2863:13;2855:140;;;2964:14;;;2960:23;;2954:30;2930:17;;;2949:2;2926:26;2919:66;2884:10;;2855:140;;;3013:6;3010:1;3007:13;3004:2;;;3083:4;3078:2;3069:6;3058:9;3054:22;3050:31;3043:45;3004:2;-1:-1:-1;3159:2:1;3138:15;-1:-1:-1;;3134:29:1;3119:45;;;;3166:2;3115:54;;2693:482;-1:-1:-1;;;2693:482:1:o;6689:356::-;6891:2;6873:21;;;6910:18;;;6903:30;6969:34;6964:2;6949:18;;6942:62;7036:2;7021:18;;6863:182::o;8867:128::-;8907:3;8938:1;8934:6;8931:1;8928:13;8925:2;;;8944:18;;:::i;:::-;-1:-1:-1;8980:9:1;;8915:80::o;9000:217::-;9040:1;9066;9056:2;;-1:-1:-1;;;9091:31:1;;9145:4;9142:1;9135:15;9173:4;9098:1;9163:15;9056:2;-1:-1:-1;9202:9:1;;9046:171::o;9222:168::-;9262:7;9328:1;9324;9320:6;9316:14;9313:1;9310:21;9305:1;9298:9;9291:17;9287:45;9284:2;;;9335:18;;:::i;:::-;-1:-1:-1;9375:9:1;;9274:116::o;9395:125::-;9435:4;9463:1;9460;9457:8;9454:2;;;9468:18;;:::i;:::-;-1:-1:-1;9505:9:1;;9444:76::o;9525:380::-;9604:1;9600:12;;;;9647;;;9668:2;;9722:4;9714:6;9710:17;9700:27;;9668:2;9775;9767:6;9764:14;9744:18;9741:38;9738:2;;;9821:10;9816:3;9812:20;9809:1;9802:31;9856:4;9853:1;9846:15;9884:4;9881:1;9874:15;9738:2;;9580:325;;;:::o;9910:135::-;9949:3;-1:-1:-1;;9970:17:1;;9967:2;;;9990:18;;:::i;:::-;-1:-1:-1;10037:1:1;10026:13;;9957:88::o;10050:127::-;10111:10;10106:3;10102:20;10099:1;10092:31;10142:4;10139:1;10132:15;10166:4;10163:1;10156:15
Swarm Source
ipfs://bf12e27ec6f4eb42be2fa5d16459454b839f084001358dd7031ccaab7ce57d66
Age | Block | Fee Address | BC Fee Address | Voting Power | Jailed | Incoming |
---|
Validator ID :
0 FTM
Amount Staked
0
Amount Delegated
0
Staking Total
0
Staking Start Epoch
0
Staking Start Time
0
Proof of Importance
0
Origination Score
0
Validation Score
0
Active
0
Online
0
Downtime
0 s
Address | Amount | claimed Rewards | Created On Epoch | Created On |
---|
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.