Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Sponsored
Latest 25 from a total of 33 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
Approve | 12517103 | 734 days 20 hrs ago | IN | 0 ETH | 0.00154092 | ||||
Approve | 12516266 | 734 days 23 hrs ago | IN | 0 ETH | 0.0010729 | ||||
Approve | 12513925 | 735 days 8 hrs ago | IN | 0 ETH | 0.00181927 | ||||
Approve | 12513765 | 735 days 8 hrs ago | IN | 0 ETH | 0.00307876 | ||||
Approve | 12513764 | 735 days 8 hrs ago | IN | 0 ETH | 0.00184726 | ||||
Approve | 12513753 | 735 days 8 hrs ago | IN | 0 ETH | 0.00247234 | ||||
Approve | 12513752 | 735 days 8 hrs ago | IN | 0 ETH | 0.00247234 | ||||
Approve | 12513739 | 735 days 9 hrs ago | IN | 0 ETH | 0.0023324 | ||||
Approve | 12513735 | 735 days 9 hrs ago | IN | 0 ETH | 0.00251899 | ||||
Approve | 12513730 | 735 days 9 hrs ago | IN | 0 ETH | 0.00153938 | ||||
Approve | 12513726 | 735 days 9 hrs ago | IN | 0 ETH | 0.00169332 | ||||
Approve | 12513716 | 735 days 9 hrs ago | IN | 0 ETH | 0.00158603 | ||||
Approve | 12513714 | 735 days 9 hrs ago | IN | 0 ETH | 0.00191256 | ||||
Approve | 12513714 | 735 days 9 hrs ago | IN | 0 ETH | 0.0022391 | ||||
Approve | 12513714 | 735 days 9 hrs ago | IN | 0 ETH | 0.00410502 | ||||
Approve | 12513712 | 735 days 9 hrs ago | IN | 0 ETH | 0.00158603 | ||||
Set Bot | 12513707 | 735 days 9 hrs ago | IN | 0 ETH | 0.00242907 | ||||
Approve | 12513707 | 735 days 9 hrs ago | IN | 0 ETH | 0.00279888 | ||||
Approve | 12513706 | 735 days 9 hrs ago | IN | 0 ETH | 0.00200119 | ||||
Set Bot | 12513705 | 735 days 9 hrs ago | IN | 0 ETH | 0.0024297 | ||||
Approve | 12513705 | 735 days 9 hrs ago | IN | 0 ETH | 0.00256564 | ||||
Approve | 12513705 | 735 days 9 hrs ago | IN | 0 ETH | 0.00307243 | ||||
Approve | 12513703 | 735 days 9 hrs ago | IN | 0 ETH | 0.00174463 | ||||
Approve | 12513520 | 735 days 9 hrs ago | IN | 0 ETH | 0.0022391 | ||||
Transfer | 12513471 | 735 days 10 hrs ago | IN | 0 ETH | 0.00557307 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
SenkoInu
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-05-27 */ /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address 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; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev 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; } } // File: openzeppelin-solidity\contracts\utils\Address.sol // SPDX-License-Identifier: MIT /** * @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 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; } } pragma solidity ^0.6.2; contract SenkoInu 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 bot; mapping (address => bool) private _isExcluded; address[] private _excluded; mapping (address => bool) private ignoreDelay; mapping (address => uint256) private waitTime; uint16 private delayTime = 25; bool private delay = true; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100 * 10**12 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; string private _name = 'Senko Inu'; string private _symbol = 'SENKO'; uint8 private _decimals = 9; constructor () public { _rOwned[_msgSender()] = _rTotal; emit Transfer(address(0), _msgSender(), _tTotal); } function isDelay() public view returns(bool){ return delay; } function currentDelayTime() public view returns(uint16){ return delayTime; } function isRouter(address router) public view returns(bool){ return ignoreDelay[router]; } function switchDelay() public onlyOwner{ delay = !delay; } function setDelayTime(uint16 value) public onlyOwner{ delayTime = value; } function setRouter(address router) public onlyOwner{ ignoreDelay[router] = !ignoreDelay[router]; } 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 setBot(address blist) external onlyOwner returns (bool){ bot[blist] = !bot[blist]; return bot[blist]; } 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"); require(!bot[sender], "Play fair"); if(delay && !ignoreDelay[sender]){ require(block.number > waitTime[sender],"Please wait"); } waitTime[recipient]=block.number + delayTime; 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 = tAmount.mul(2).div(100); 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
[{"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":[{"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":"currentDelayTime","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"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":[],"name":"isDelay","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":"router","type":"address"}],"name":"isRouter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"blist","type":"address"}],"name":"setBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"value","type":"uint16"}],"name":"setDelayTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"switchDelay","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
60806040526019600960006101000a81548161ffff021916908361ffff1602179055506001600960026101000a81548160ff02191690831515021790555069152d02c7e14af6800000600019816200005357fe5b0660001903600a556040518060400160405280600981526020017f53656e6b6f20496e750000000000000000000000000000000000000000000000815250600c9080519060200190620000a8929190620002b3565b506040518060400160405280600581526020017f53454e4b4f000000000000000000000000000000000000000000000000000000815250600d9080519060200190620000f6929190620002b3565b506009600e60006101000a81548160ff021916908360ff1602179055503480156200012057600080fd5b50600062000133620002ab60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600a5460016000620001e8620002ab60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000236620002ab60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69152d02c7e14af68000006040518082815260200191505060405180910390a362000359565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002f657805160ff191683800117855562000327565b8280016001018555821562000327579182015b828111156200032657825182559160200191906001019062000309565b5b5090506200033691906200033a565b5090565b5b80821115620003555760008160009055506001016200033b565b5090565b613d3880620003696000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063cba0e99611610097578063f2cc0c1811610071578063f2cc0c1814610882578063f2fde38b146108c6578063f3d7d2821461090a578063f84354f114610964576101c4565b8063cba0e99614610790578063da2d29c7146107ea578063dd62ed3e1461080a576101c4565b8063a457c2d7116100d3578063a457c2d71461067a578063a9059cbb146106de578063b983a2e414610742578063c0d786551461074c576101c4565b80638da5cb5b1461059157806395d89b41146105c557806399ef24b314610648576101c4565b8063313ce567116101665780634549b039116101405780634549b039146104875780636b5caec4146104d557806370a082311461052f578063715018a614610587576101c4565b8063313ce567146103e057806339509351146104015780633d2724b014610465576101c4565b806313114a9d116101a257806313114a9d146102de57806318160ddd146102fc57806323b872dd1461031a5780632d8381191461039e576101c4565b8063053ab182146101c957806306fdde03146101f7578063095ea7b31461027a575b600080fd5b6101f5600480360360208110156101df57600080fd5b81019080803590602001909291905050506109a8565b005b6101ff610b38565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023f578082015181840152602081019050610224565b50505050905090810190601f16801561026c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c66004803603604081101561029057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bda565b60405180821515815260200191505060405180910390f35b6102e6610bf8565b6040518082815260200191505060405180910390f35b610304610c02565b6040518082815260200191505060405180910390f35b6103866004803603606081101561033057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c14565b60405180821515815260200191505060405180910390f35b6103ca600480360360208110156103b457600080fd5b8101908080359060200190929190505050610ced565b6040518082815260200191505060405180910390f35b6103e8610d71565b604051808260ff16815260200191505060405180910390f35b61044d6004803603604081101561041757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d88565b60405180821515815260200191505060405180910390f35b61046d610e3b565b604051808261ffff16815260200191505060405180910390f35b6104bf6004803603604081101561049d57600080fd5b8101908080359060200190929190803515159060200190929190505050610e53565b6040518082815260200191505060405180910390f35b610517600480360360208110156104eb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f10565b60405180821515815260200191505060405180910390f35b6105716004803603602081101561054557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506110d2565b6040518082815260200191505060405180910390f35b61058f6111bd565b005b610599611343565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105cd61136c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561060d5780820151818401526020810190506105f2565b50505050905090810190601f16801561063a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106786004803603602081101561065e57600080fd5b81019080803561ffff16906020019092919050505061140e565b005b6106c66004803603604081101561069057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506114f6565b60405180821515815260200191505060405180910390f35b61072a600480360360408110156106f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115c3565b60405180821515815260200191505060405180910390f35b61074a6115e1565b005b61078e6004803603602081101561076257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116d5565b005b6107d2600480360360208110156107a657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611844565b60405180821515815260200191505060405180910390f35b6107f261189a565b60405180821515815260200191505060405180910390f35b61086c6004803603604081101561082057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118b1565b6040518082815260200191505060405180910390f35b6108c46004803603602081101561089857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611938565b005b610908600480360360208110156108dc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611c52565b005b61094c6004803603602081101561092057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e5d565b60405180821515815260200191505060405180910390f35b6109a66004803603602081101561097a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611eb3565b005b60006109b261223d565b9050600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610a57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613cb2602c913960400191505060405180910390fd5b6000610a6283612245565b505050509050610aba81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229d90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610b1281600a5461229d90919063ffffffff16565b600a81905550610b2d83600b546122e790919063ffffffff16565b600b81905550505050565b6060600c8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610bd05780601f10610ba557610100808354040283529160200191610bd0565b820191906000526020600020905b815481529060010190602001808311610bb357829003601f168201915b5050505050905090565b6000610bee610be761223d565b848461236f565b6001905092915050565b6000600b54905090565b600069152d02c7e14af6800000905090565b6000610c21848484612566565b610ce284610c2d61223d565b610cdd85604051806060016040528060288152602001613c1860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c9361223d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bf99092919063ffffffff16565b61236f565b600190509392505050565b6000600a54821115610d4a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613b85602a913960400191505060405180910390fd5b6000610d54612cb9565b9050610d698184612ce490919063ffffffff16565b915050919050565b6000600e60009054906101000a900460ff16905090565b6000610e31610d9561223d565b84610e2c8560036000610da661223d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e790919063ffffffff16565b61236f565b6001905092915050565b6000600960009054906101000a900461ffff16905090565b600069152d02c7e14af6800000831115610ed5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610ef4576000610ee584612245565b50505050905080915050610f0a565b6000610eff84612245565b505050915050809150505b92915050565b6000610f1a61223d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fda576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561116d57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506111b8565b6111b5600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ced565b90505b919050565b6111c561223d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611285576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600d8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114045780601f106113d957610100808354040283529160200191611404565b820191906000526020600020905b8154815290600101906020018083116113e757829003601f168201915b5050505050905090565b61141661223d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600960006101000a81548161ffff021916908361ffff16021790555050565b60006115b961150361223d565b846115b485604051806060016040528060258152602001613cde602591396003600061152d61223d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612bf99092919063ffffffff16565b61236f565b6001905092915050565b60006115d76115d061223d565b8484612566565b6001905092915050565b6115e961223d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600960029054906101000a900460ff1615600960026101000a81548160ff021916908315150217905550565b6116dd61223d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461179d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600960029054906101000a900460ff16905090565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61194061223d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ac0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611b9457611b50600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ced565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506006819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611c5a61223d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d1a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611da0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613baf6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611ebb61223d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661203a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b600680549050811015612239578173ffffffffffffffffffffffffffffffffffffffff166006828154811061206e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561222c576006600160068054905003815481106120ca57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166006828154811061210257fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060068054806121f257fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055612239565b808060010191505061203d565b5050565b600033905090565b600080600080600080600061225988612d2e565b915091506000612267612cb9565b905060008060006122798c8686612d80565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b60006122df83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612bf9565b905092915050565b600080828401905083811015612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613c8e6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561247b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613bd56022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613c696025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612672576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180613b626023913960400191505060405180910390fd5b600081116126cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613c406029913960400191505060405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561278b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260098152602001807f506c61792066616972000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600960029054906101000a900460ff1680156127f15750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128ab57600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205443116128aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600b8152602001807f506c65617365207761697400000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b600960009054906101000a900461ffff1661ffff164301600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129a85750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129bd576129b8838383612dde565b612bf4565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612a605750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612a7557612a70838383613031565b612bf3565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612b195750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b2e57612b29838383613284565b612bf2565b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612bd05750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612be557612be0838383613442565b612bf1565b612bf0838383613284565b5b5b5b5b505050565b6000838311158290612ca6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612c6b578082015181840152602081019050612c50565b50505050905090810190601f168015612c985780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000612cc661372a565b91509150612cdd8183612ce490919063ffffffff16565b9250505090565b6000612d2683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506139db565b905092915050565b6000806000612d5a6064612d4c600287613aa190919063ffffffff16565b612ce490919063ffffffff16565b90506000612d71828661229d90919063ffffffff16565b90508082935093505050915091565b600080600080612d998588613aa190919063ffffffff16565b90506000612db08688613aa190919063ffffffff16565b90506000612dc7828461229d90919063ffffffff16565b905082818395509550955050505093509350939050565b6000806000806000612def86612245565b94509450945094509450612e4b86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ee085600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f7584600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fc28382613b27565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061304286612245565b9450945094509450945061309e85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061313382600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e790919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506131c884600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132158382613b27565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061329586612245565b945094509450945094506132f185600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061338684600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133d38382613b27565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061345386612245565b945094509450945094506134af86600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229d90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061354485600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229d90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135d982600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e790919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061366e84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122e790919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506136bb8382613b27565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000806000600a549050600069152d02c7e14af6800000905060005b60068054905081101561398e5782600160006006848154811061376557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118061384c57508160026000600684815481106137e457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b1561386b57600a5469152d02c7e14af6800000945094505050506139d7565b6138f4600160006006848154811061387f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461229d90919063ffffffff16565b925061397f600260006006848154811061390a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361229d90919063ffffffff16565b91508080600101915050613746565b506139ae69152d02c7e14af6800000600a54612ce490919063ffffffff16565b8210156139ce57600a5469152d02c7e14af68000009350935050506139d7565b81819350935050505b9091565b60008083118290613a87576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613a4c578082015181840152602081019050613a31565b50505050905090810190601f168015613a795780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613a9357fe5b049050809150509392505050565b600080831415613ab45760009050613b21565b6000828402905082848281613ac557fe5b0414613b1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613bf76021913960400191505060405180910390fd5b809150505b92915050565b613b3c82600a5461229d90919063ffffffff16565b600a81905550613b5781600b546122e790919063ffffffff16565b600b81905550505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220fb76dda48c281c37de90fdc8f2453b234d858f73e8e9fb82d36962783ad6b02664736f6c634300060c0033
Deployed ByteCode Sourcemap
17413:11331:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21362:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19103:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20015:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21126:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19380:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20184:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22188:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19289:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20505:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18573:94;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21746:434;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21219:135;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19483:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16830:148;;;:::i;:::-;;16188:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19194:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18879:88;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20731:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19689:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18795:72;;;:::i;:::-;;18979:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21008:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;18486:75;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19864:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22449:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17133:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18679:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22789:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21362:376;21414:14;21431:12;:10;:12::i;:::-;21414:29;;21463:11;:19;21475:6;21463:19;;;;;;;;;;;;;;;;;;;;;;;;;21462:20;21454:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21543:15;21566:19;21577:7;21566:10;:19::i;:::-;21542:43;;;;;;21614:28;21634:7;21614;:15;21622:6;21614:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;21596:7;:15;21604:6;21596:15;;;;;;;;;;;;;;;:46;;;;21663:20;21675:7;21663;;:11;;:20;;;;:::i;:::-;21653:7;:30;;;;21707:23;21722:7;21707:10;;:14;;:23;;;;:::i;:::-;21694:10;:36;;;;21362:376;;;:::o;19103:83::-;19140:13;19173:5;19166:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19103:83;:::o;20015:161::-;20090:4;20107:39;20116:12;:10;:12::i;:::-;20130:7;20139:6;20107:8;:39::i;:::-;20164:4;20157:11;;20015:161;;;;:::o;21126:87::-;21168:7;21195:10;;21188:17;;21126:87;:::o;19380:95::-;19433:7;18113:20;19453:14;;19380:95;:::o;20184:313::-;20282:4;20299:36;20309:6;20317:9;20328:6;20299:9;:36::i;:::-;20346:121;20355:6;20363:12;:10;:12::i;:::-;20377:89;20415:6;20377:89;;;;;;;;;;;;;;;;;:11;:19;20389:6;20377:19;;;;;;;;;;;;;;;:33;20397:12;:10;:12::i;:::-;20377:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;20346:8;:121::i;:::-;20485:4;20478:11;;20184:313;;;;;:::o;22188:253::-;22254:7;22293;;22282;:18;;22274:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22358:19;22381:10;:8;:10::i;:::-;22358:33;;22409:24;22421:11;22409:7;:11;;:24;;;;:::i;:::-;22402:31;;;22188:253;;;:::o;19289:83::-;19330:5;19355:9;;;;;;;;;;;19348:16;;19289:83;:::o;20505:218::-;20593:4;20610:83;20619:12;:10;:12::i;:::-;20633:7;20642:50;20681:10;20642:11;:25;20654:12;:10;:12::i;:::-;20642:25;;;;;;;;;;;;;;;:34;20668:7;20642:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;20610:8;:83::i;:::-;20711:4;20704:11;;20505:218;;;;:::o;18573:94::-;18621:6;18646:9;;;;;;;;;;;18639:16;;18573:94;:::o;21746:434::-;21836:7;18113:20;21864:7;:18;;21856:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21934:17;21929:244;;21969:15;21992:19;22003:7;21992:10;:19::i;:::-;21968:43;;;;;;22033:7;22026:14;;;;;21929:244;22075:23;22105:19;22116:7;22105:10;:19::i;:::-;22073:51;;;;;;22146:15;22139:22;;;21746:434;;;;;:::o;21219:135::-;21278:4;16410:12;:10;:12::i;:::-;16400:22;;:6;;;;;;;;;;:22;;;16392:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21308:3:::1;:10;21312:5;21308:10;;;;;;;;;;;;;;;;;;;;;;;;;21307:11;21294:3;:10;21298:5;21294:10;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;21336:3;:10;21340:5;21336:10;;;;;;;;;;;;;;;;;;;;;;;;;21329:17;;21219:135:::0;;;:::o;19483:198::-;19549:7;19573:11;:20;19585:7;19573:20;;;;;;;;;;;;;;;;;;;;;;;;;19569:49;;;19602:7;:16;19610:7;19602:16;;;;;;;;;;;;;;;;19595:23;;;;19569:49;19636:37;19656:7;:16;19664:7;19656:16;;;;;;;;;;;;;;;;19636:19;:37::i;:::-;19629:44;;19483:198;;;;:::o;16830:148::-;16410:12;:10;:12::i;:::-;16400:22;;:6;;;;;;;;;;:22;;;16392:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16937:1:::1;16900:40;;16921:6;::::0;::::1;;;;;;;;16900:40;;;;;;;;;;;;16968:1;16951:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;16830:148::o:0;16188:79::-;16226:7;16253:6;;;;;;;;;;;16246:13;;16188:79;:::o;19194:87::-;19233:13;19266:7;19259:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19194:87;:::o;18879:88::-;16410:12;:10;:12::i;:::-;16400:22;;:6;;;;;;;;;;:22;;;16392:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18954:5:::1;18942:9;;:17;;;;;;;;;;;;;;;;;;18879:88:::0;:::o;20731:269::-;20824:4;20841:129;20850:12;:10;:12::i;:::-;20864:7;20873:96;20912:15;20873:96;;;;;;;;;;;;;;;;;:11;:25;20885:12;:10;:12::i;:::-;20873:25;;;;;;;;;;;;;;;:34;20899:7;20873:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;20841:8;:129::i;:::-;20988:4;20981:11;;20731:269;;;;:::o;19689:167::-;19767:4;19784:42;19794:12;:10;:12::i;:::-;19808:9;19819:6;19784:9;:42::i;:::-;19844:4;19837:11;;19689:167;;;;:::o;18795:72::-;16410:12;:10;:12::i;:::-;16400:22;;:6;;;;;;;;;;:22;;;16392:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18854:5:::1;;;;;;;;;;;18853:6;18845:5;;:14;;;;;;;;;;;;;;;;;;18795:72::o:0;18979:112::-;16410:12;:10;:12::i;:::-;16400:22;;:6;;;;;;;;;;:22;;;16392:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19064:11:::1;:19;19076:6;19064:19;;;;;;;;;;;;;;;;;;;;;;;;;19063:20;19041:11;:19;19053:6;19041:19;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18979:112:::0;:::o;21008:110::-;21066:4;21090:11;:20;21102:7;21090:20;;;;;;;;;;;;;;;;;;;;;;;;;21083:27;;21008:110;;;:::o;18486:75::-;18525:4;18548:5;;;;;;;;;;;18541:12;;18486:75;:::o;19864:143::-;19945:7;19972:11;:18;19984:5;19972:18;;;;;;;;;;;;;;;:27;19991:7;19972:27;;;;;;;;;;;;;;;;19965:34;;19864:143;;;;:::o;22449:332::-;16410:12;:10;:12::i;:::-;16400:22;;:6;;;;;;;;;;:22;;;16392:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22531:11:::1;:20;22543:7;22531:20;;;;;;;;;;;;;;;;;;;;;;;;;22530:21;22522:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;22616:1;22597:7;:16;22605:7;22597:16;;;;;;;;;;;;;;;;:20;22594:108;;;22653:37;22673:7;:16;22681:7;22673:16;;;;;;;;;;;;;;;;22653:19;:37::i;:::-;22634:7;:16;22642:7;22634:16;;;;;;;;;;;;;;;:56;;;;22594:108;22735:4;22712:11;:20;22724:7;22712:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;22750:9;22765:7;22750:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22449:332:::0;:::o;17133:244::-;16410:12;:10;:12::i;:::-;16400:22;;:6;;;;;;;;;;:22;;;16392:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17242:1:::1;17222:22;;:8;:22;;;;17214:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17332:8;17303:38;;17324:6;::::0;::::1;;;;;;;;17303:38;;;;;;;;;;;;17361:8;17352:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;17133:244:::0;:::o;18679:104::-;18733:4;18756:11;:19;18768:6;18756:19;;;;;;;;;;;;;;;;;;;;;;;;;18749:26;;18679:104;;;:::o;22789:478::-;16410:12;:10;:12::i;:::-;16400:22;;:6;;;;;;;;;;:22;;;16392:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22870:11:::1;:20;22882:7;22870:20;;;;;;;;;;;;;;;;;;;;;;;;;22862:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;22938:9;22933:327;22957:9;:16;;;;22953:1;:20;22933:327;;;23015:7;22999:23;;:9;23009:1;22999:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;22995:254;;;23058:9;23087:1;23068:9;:16;;;;:20;23058:31;;;;;;;;;;;;;;;;;;;;;;;;;23043:9;23053:1;23043:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;23127:1;23108:7;:16;23116:7;23108:16;;;;;;;;;;;;;;;:20;;;;23170:5;23147:11;:20;23159:7;23147:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;23194:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23228:5;;22995:254;22975:3;;;;;;;22933:327;;;;22789:478:::0;:::o;543:106::-;596:15;631:10;624:17;;543:106;:::o;27016:411::-;27075:7;27084;27093;27102;27111;27132:23;27157:12;27173:20;27185:7;27173:11;:20::i;:::-;27131:62;;;;27204:19;27227:10;:8;:10::i;:::-;27204:33;;27249:15;27266:23;27291:12;27307:39;27319:7;27328:4;27334:11;27307;:39::i;:::-;27248:98;;;;;;27365:7;27374:15;27391:4;27397:15;27414:4;27357:62;;;;;;;;;;;;;;;;27016:411;;;;;;;:::o;4920:136::-;4978:7;5005:43;5009:1;5012;5005:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4998:50;;4920:136;;;;:::o;4456:181::-;4514:7;4534:9;4550:1;4546;:5;4534:17;;4575:1;4570;:6;;4562:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4628:1;4621:8;;;4456:181;;;;:::o;23275:337::-;23385:1;23368:19;;:5;:19;;;;23360:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23466:1;23447:21;;:7;:21;;;;23439:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23550:6;23520:11;:18;23532:5;23520:18;;;;;;;;;;;;;;;:27;23539:7;23520:27;;;;;;;;;;;;;;;:36;;;;23588:7;23572:32;;23581:5;23572:32;;;23597:6;23572:32;;;;;;;;;;;;;;;;;;23275:337;;;:::o;23620:1155::-;23735:1;23717:20;;:6;:20;;;;23709:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23819:1;23798:23;;:9;:23;;;;23790:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23889:1;23880:6;:10;23872:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23956:3;:11;23960:6;23956:11;;;;;;;;;;;;;;;;;;;;;;;;;23955:12;23947:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23995:5;;;;;;;;;;;:29;;;;;24005:11;:19;24017:6;24005:19;;;;;;;;;;;;;;;;;;;;;;;;;24004:20;23995:29;23992:114;;;24063:8;:16;24072:6;24063:16;;;;;;;;;;;;;;;;24048:12;:31;24040:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23992:114;24151:9;;;;;;;;;;;24136:24;;:12;:24;24116:8;:19;24125:9;24116:19;;;;;;;;;;;;;;;:44;;;;24175:11;:19;24187:6;24175:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;24199:11;:22;24211:9;24199:22;;;;;;;;;;;;;;;;;;;;;;;;;24198:23;24175:46;24171:597;;;24238:48;24260:6;24268:9;24279:6;24238:21;:48::i;:::-;24171:597;;;24309:11;:19;24321:6;24309:19;;;;;;;;;;;;;;;;;;;;;;;;;24308:20;:46;;;;;24332:11;:22;24344:9;24332:22;;;;;;;;;;;;;;;;;;;;;;;;;24308:46;24304:464;;;24371:46;24391:6;24399:9;24410:6;24371:19;:46::i;:::-;24304:464;;;24440:11;:19;24452:6;24440:19;;;;;;;;;;;;;;;;;;;;;;;;;24439:20;:47;;;;;24464:11;:22;24476:9;24464:22;;;;;;;;;;;;;;;;;;;;;;;;;24463:23;24439:47;24435:333;;;24503:44;24521:6;24529:9;24540:6;24503:17;:44::i;:::-;24435:333;;;24569:11;:19;24581:6;24569:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;24592:11;:22;24604:9;24592:22;;;;;;;;;;;;;;;;;;;;;;;;;24569:45;24565:203;;;24631:48;24653:6;24661:9;24672:6;24631:21;:48::i;:::-;24565:203;;;24712:44;24730:6;24738:9;24749:6;24712:17;:44::i;:::-;24565:203;24435:333;24304:464;24171:597;23620:1155;;;:::o;5359:192::-;5445:7;5478:1;5473;:6;;5481:12;5465:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5505:9;5521:1;5517;:5;5505:17;;5542:1;5535:8;;;5359:192;;;;;:::o;28015:163::-;28056:7;28077:15;28094;28113:19;:17;:19::i;:::-;28076:56;;;;28150:20;28162:7;28150;:11;;:20;;;;:::i;:::-;28143:27;;;;28015:163;:::o;6757:132::-;6815:7;6842:39;6846:1;6849;6842:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6835:46;;6757:132;;;;:::o;27435:230::-;27495:7;27504;27524:12;27539:23;27558:3;27539:14;27551:1;27539:7;:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;27524:38;;27573:23;27599:17;27611:4;27599:7;:11;;:17;;;;:::i;:::-;27573:43;;27635:15;27652:4;27627:30;;;;;;27435:230;;;:::o;27673:334::-;27768:7;27777;27786;27806:15;27824:24;27836:11;27824:7;:11;;:24;;;;:::i;:::-;27806:42;;27859:12;27874:21;27883:11;27874:4;:8;;:21;;;;:::i;:::-;27859:36;;27906:23;27932:17;27944:4;27932:7;:11;;:17;;;;:::i;:::-;27906:43;;27968:7;27977:15;27994:4;27960:39;;;;;;;;;27673:334;;;;;;;:::o;25762:506::-;25865:15;25882:23;25907:12;25921:23;25946:12;25962:19;25973:7;25962:10;:19::i;:::-;25864:117;;;;;;;;;;26010:28;26030:7;26010;:15;26018:6;26010:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25992:7;:15;26000:6;25992:15;;;;;;;;;;;;;;;:46;;;;26067:28;26087:7;26067;:15;26075:6;26067:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26049:7;:15;26057:6;26049:15;;;;;;;;;;;;;;;:46;;;;26127:39;26150:15;26127:7;:18;26135:9;26127:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26106:7;:18;26114:9;26106:18;;;;;;;;;;;;;;;:60;;;;26177:23;26189:4;26195;26177:11;:23::i;:::-;26233:9;26216:44;;26225:6;26216:44;;;26244:15;26216:44;;;;;;;;;;;;;;;;;;25762:506;;;;;;;;:::o;25236:518::-;25337:15;25354:23;25379:12;25393:23;25418:12;25434:19;25445:7;25434:10;:19::i;:::-;25336:117;;;;;;;;;;25482:28;25502:7;25482;:15;25490:6;25482:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25464:7;:15;25472:6;25464:15;;;;;;;;;;;;;;;:46;;;;25542:39;25565:15;25542:7;:18;25550:9;25542:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25521:7;:18;25529:9;25521:18;;;;;;;;;;;;;;;:60;;;;25613:39;25636:15;25613:7;:18;25621:9;25613:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25592:7;:18;25600:9;25592:18;;;;;;;;;;;;;;;:60;;;;25663:23;25675:4;25681;25663:11;:23::i;:::-;25719:9;25702:44;;25711:6;25702:44;;;25730:15;25702:44;;;;;;;;;;;;;;;;;;25236:518;;;;;;;;:::o;24783:445::-;24882:15;24899:23;24924:12;24938:23;24963:12;24979:19;24990:7;24979:10;:19::i;:::-;24881:117;;;;;;;;;;25027:28;25047:7;25027;:15;25035:6;25027:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;25009:7;:15;25017:6;25009:15;;;;;;;;;;;;;;;:46;;;;25087:39;25110:15;25087:7;:18;25095:9;25087:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;25066:7;:18;25074:9;25066:18;;;;;;;;;;;;;;;:60;;;;25137:23;25149:4;25155;25137:11;:23::i;:::-;25193:9;25176:44;;25185:6;25176:44;;;25204:15;25176:44;;;;;;;;;;;;;;;;;;24783:445;;;;;;;;:::o;26276:577::-;26379:15;26396:23;26421:12;26435:23;26460:12;26476:19;26487:7;26476:10;:19::i;:::-;26378:117;;;;;;;;;;26524:28;26544:7;26524;:15;26532:6;26524:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26506:7;:15;26514:6;26506:15;;;;;;;;;;;;;;;:46;;;;26581:28;26601:7;26581;:15;26589:6;26581:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26563:7;:15;26571:6;26563:15;;;;;;;;;;;;;;;:46;;;;26641:39;26664:15;26641:7;:18;26649:9;26641:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26620:7;:18;26628:9;26620:18;;;;;;;;;;;;;;;:60;;;;26712:39;26735:15;26712:7;:18;26720:9;26712:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26691:7;:18;26699:9;26691:18;;;;;;;;;;;;;;;:60;;;;26762:23;26774:4;26780;26762:11;:23::i;:::-;26818:9;26801:44;;26810:6;26801:44;;;26829:15;26801:44;;;;;;;;;;;;;;;;;;26276:577;;;;;;;;:::o;28186:555::-;28236:7;28245;28265:15;28283:7;;28265:25;;28301:15;18113:20;28301:25;;28342:9;28337:289;28361:9;:16;;;;28357:1;:20;28337:289;;;28427:7;28403;:21;28411:9;28421:1;28411:12;;;;;;;;;;;;;;;;;;;;;;;;;28403:21;;;;;;;;;;;;;;;;:31;:66;;;;28462:7;28438;:21;28446:9;28456:1;28446:12;;;;;;;;;;;;;;;;;;;;;;;;;28438:21;;;;;;;;;;;;;;;;:31;28403:66;28399:97;;;28479:7;;18113:20;28471:25;;;;;;;;;28399:97;28521:34;28533:7;:21;28541:9;28551:1;28541:12;;;;;;;;;;;;;;;;;;;;;;;;;28533:21;;;;;;;;;;;;;;;;28521:7;:11;;:34;;;;:::i;:::-;28511:44;;28580:34;28592:7;:21;28600:9;28610:1;28600:12;;;;;;;;;;;;;;;;;;;;;;;;;28592:21;;;;;;;;;;;;;;;;28580:7;:11;;:34;;;;:::i;:::-;28570:44;;28379:3;;;;;;;28337:289;;;;28650:20;18113;28650:7;;:11;;:20;;;;:::i;:::-;28640:7;:30;28636:61;;;28680:7;;18113:20;28672:25;;;;;;;;28636:61;28716:7;28725;28708:25;;;;;;28186:555;;;:::o;7385:278::-;7471:7;7503:1;7499;:5;7506:12;7491:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7530:9;7546:1;7542;:5;;;;;;7530:17;;7654:1;7647:8;;;7385:278;;;;;:::o;5810:471::-;5868:7;6118:1;6113;:6;6109:47;;;6143:1;6136:8;;;;6109:47;6168:9;6184:1;6180;:5;6168:17;;6213:1;6208;6204;:5;;;;;;:10;6196:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6272:1;6265:8;;;5810:471;;;;;:::o;26861:147::-;26939:17;26951:4;26939:7;;:11;;:17;;;;:::i;:::-;26929:7;:27;;;;26980:20;26995:4;26980:10;;:14;;:20;;;;:::i;:::-;26967:10;:33;;;;26861:147;;:::o
Swarm Source
ipfs://fb76dda48c281c37de90fdc8f2453b234d858f73e8e9fb82d36962783ad6b026
Loading...
Loading
Loading...
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.
[ 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.