ERC-20
Overview
Max Total Supply
95,086,987.54701438 Minate
Holders
26
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 8 Decimals)
Balance
977,385.88304734 MinateValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Minate
Compiler Version
v0.6.2+commit.bacdbe57
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-02-06 */ /* 88 88 88 88 88 "" 88 88 "" ,d "" 88 88 88 88 88 88 88 88 88,dPYba,,adPYba, 88 8b,dPPYba, ,adPPYYba, MM88MMM 88 88 88 88 88 88 88P' "88" "8a 88 88P' `"8a "" `Y8 88 88 88 88 88 88 88 88 88 88 88 88 88 ,adPPPPP88 88 88 88 88 88 "8a, ,a88 88 88 88 88 88 88 88, ,88 88, 88 88 88 88 `"YbbdP'Y8 88 88 88 88 88 88 `"8bbdP"Y8 "Y888 88 /\ ___ / \ ___ / \ __ / \ __ / / \ / \ _ / <()> \ _ / \ / \_/ \_/ \_/________\_/ \_/ \_/ __________________/__I___I___\________________ /_I___I___I__\ /I___I___I___I_\ /___I___I___I___I\ /__I___I___I___I___\ /_I___I___I___I___I__\ /I___I___I___I___I___I_\ /___I___I___I___I___I___I\ /__I___I___I___I___I___I___\ /_I___I___I___I___I___I___I__\ */ // $Minate // TG: https://t.me/illuminati_token pragma solidity ^0.6.0; 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; } } /** * @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; } } contract Minate is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcluded; address[] private _excluded; string private constant _NAME = 'Minate'; string private constant _SYMBOL = 'Minate'; uint8 private constant _DECIMALS = 8; uint256 private constant _MAX = ~uint256(0); uint256 private constant _DECIMALFACTOR = 10 ** uint256(_DECIMALS); uint256 private constant _GRANULARITY = 100; uint256 private _tTotal = 100000000 * _DECIMALFACTOR; uint256 private _rTotal = (_MAX - (_MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _tBurnTotal; uint256 private constant _TAX_FEE = 550; uint256 private constant _BURN_FEE = 250; uint256 private constant _MAX_TX_SIZE = 1000000 * _DECIMALFACTOR; //LOCK: bool public tradingEnabled = false; event TradingEnabled(bool enabled); uint256 public liquidityAddedAt; constructor () public { _rOwned[_msgSender()] = _rTotal; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public view returns (string memory) { return _NAME; } function symbol() public view returns (string memory) { return _SYMBOL; } function decimals() public view returns (uint8) { return _DECIMALS; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { if (_isExcluded[account]) return _tOwned[account]; return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } function isExcluded(address account) public view returns (bool) { return _isExcluded[account]; } function totalFees() public view returns (uint256) { return _tFeeTotal; } function totalBurn() public view returns (uint256) { return _tBurnTotal; } 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(account != 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, 'We can not exclude Uniswap router.'); 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"); //@dev Limit the transfer to 2000000 tokens for first 10 minutes require(now > liquidityAddedAt + 10 minutes || amount <= 2000000e9, "You cannot transfer more than 2000000 tokens."); if(sender != owner() && recipient != owner()) require(amount <= _MAX_TX_SIZE, "Transfer amount exceeds the maxTxAmount."); if (_isExcluded[sender] && !_isExcluded[recipient]) { _transferFromExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && _isExcluded[recipient]) { _transferToExcluded(sender, recipient, amount); } else if (!_isExcluded[sender] && !_isExcluded[recipient]) { _transferStandard(sender, recipient, amount); } else if (_isExcluded[sender] && _isExcluded[recipient]) { _transferBothExcluded(sender, recipient, amount); } else { _transferStandard(sender, recipient, amount); } } function _transferStandard(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _transferToExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _rOwned[sender] = _rOwned[sender].sub(rAmount); _tOwned[recipient] = _tOwned[recipient].add(tTransferAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _transferFromExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _tOwned[sender] = _tOwned[sender].sub(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _reflectFee(rFee, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _transferBothExcluded(address sender, address recipient, uint256 tAmount) private { uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getValues(tAmount); uint256 rBurn = tBurn.mul(currentRate); _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, rBurn, tFee, tBurn); emit Transfer(sender, recipient, tTransferAmount); } function _reflectFee(uint256 rFee, uint256 rBurn, uint256 tFee, uint256 tBurn) private { _rTotal = _rTotal.sub(rFee).sub(rBurn); _tFeeTotal = _tFeeTotal.add(tFee); _tBurnTotal = _tBurnTotal.add(tBurn); _tTotal = _tTotal.sub(tBurn); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tBurn) = _getTValues(tAmount, _TAX_FEE, _BURN_FEE); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tBurn, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tBurn); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 burnFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = ((tAmount.mul(taxFee)).div(_GRANULARITY)).div(100); uint256 tBurn = ((tAmount.mul(burnFee)).div(_GRANULARITY)).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tBurn); return (tTransferAmount, tFee, tBurn); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tBurn, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rBurn = tBurn.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rBurn); 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); } function _getTaxFee() private view returns(uint256) { return _TAX_FEE; } function _getMaxTxAmount() private view returns(uint256) { return _MAX_TX_SIZE; } function enableTrading() external onlyOwner() { tradingEnabled = true; TradingEnabled(true); liquidityAddedAt = now; } }
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":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"TradingEnabled","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":"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":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","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":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAddedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":"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":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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
6080604052600860ff16600a0a6305f5e10002600655600654600019816200002357fe5b06600019036007556000600a60006101000a81548160ff0219169083151502179055503480156200005357600080fd5b50600062000066620001d660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600754600160006200011b620001d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000169620001d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a3620001de565b600033905090565b61388080620001ee6000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80634ada218b116100de578063a457c2d711610097578063dd62ed3e11610071578063dd62ed3e1461072a578063f2cc0c18146107a2578063f2fde38b146107e6578063f84354f11461082a57610173565b8063a457c2d714610602578063a9059cbb14610668578063cba0e996146106ce57610173565b80634ada218b146104a757806370a08231146104c9578063715018a6146105215780638a8c523c1461052b5780638da5cb5b1461053557806395d89b411461057f57610173565b80632d838119116101305780632d83811914610341578063313ce5671461038357806339509351146103a75780633bd5d1731461040d5780633c9f861d1461043b5780634549b0391461045957610173565b806304b645271461017857806306fdde0314610196578063095ea7b31461021957806313114a9d1461027f57806318160ddd1461029d57806323b872dd146102bb575b600080fd5b61018061086e565b6040518082815260200191505060405180910390f35b61019e610874565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101de5780820151818401526020810190506101c3565b50505050905090810190601f16801561020b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102656004803603604081101561022f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108b1565b604051808215151515815260200191505060405180910390f35b6102876108cf565b6040518082815260200191505060405180910390f35b6102a56108d9565b6040518082815260200191505060405180910390f35b610327600480360360608110156102d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108e3565b604051808215151515815260200191505060405180910390f35b61036d6004803603602081101561035757600080fd5b81019080803590602001909291905050506109bc565b6040518082815260200191505060405180910390f35b61038b610a40565b604051808260ff1660ff16815260200191505060405180910390f35b6103f3600480360360408110156103bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a49565b604051808215151515815260200191505060405180910390f35b6104396004803603602081101561042357600080fd5b8101908080359060200190929190505050610afc565b005b610443610c8d565b6040518082815260200191505060405180910390f35b6104916004803603604081101561046f57600080fd5b8101908080359060200190929190803515159060200190929190505050610c97565b6040518082815260200191505060405180910390f35b6104af610d4e565b604051808215151515815260200191505060405180910390f35b61050b600480360360208110156104df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d61565b6040518082815260200191505060405180910390f35b610529610e4c565b005b610533610fd4565b005b61053d6110fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610587611126565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105c75780820151818401526020810190506105ac565b50505050905090810190601f1680156105f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61064e6004803603604081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611163565b604051808215151515815260200191505060405180910390f35b6106b46004803603604081101561067e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611230565b604051808215151515815260200191505060405180910390f35b610710600480360360208110156106e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061124e565b604051808215151515815260200191505060405180910390f35b61078c6004803603604081101561074057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a4565b6040518082815260200191505060405180910390f35b6107e4600480360360208110156107b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061132b565b005b610828600480360360208110156107fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116df565b005b61086c6004803603602081101561084057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ec565b005b600b5481565b60606040518060400160405280600681526020017f4d696e6174650000000000000000000000000000000000000000000000000000815250905090565b60006108c56108be611c7a565b8484611c82565b6001905092915050565b6000600854905090565b6000600654905090565b60006108f0848484611e79565b6109b1846108fc611c7a565b6109ac8560405180606001604052806028815260200161373e60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610962611c7a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124239092919063ffffffff16565b611c82565b600190509392505050565b6000600754821115610a19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613656602a913960400191505060405180910390fd5b6000610a236124e3565b9050610a38818461250e90919063ffffffff16565b915050919050565b60006008905090565b6000610af2610a56611c7a565b84610aed8560036000610a67611c7a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b611c82565b6001905092915050565b6000610b06611c7a565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610bab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806137fa602c913960400191505060405180910390fd5b6000610bb6836125e0565b50505050509050610c0f81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c678160075461264790919063ffffffff16565b600781905550610c828360085461255890919063ffffffff16565b600881905550505050565b6000600954905090565b6000600654831115610d11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610d31576000610d21846125e0565b5050505050905080915050610d48565b6000610d3c846125e0565b50505050915050809150505b92915050565b600a60009054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610dfc57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e47565b610e44600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109bc565b90505b919050565b610e54611c7a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fdc611c7a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055507fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a6001604051808215151515815260200191505060405180910390a142600b81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4d696e6174650000000000000000000000000000000000000000000000000000815250905090565b6000611226611170611c7a565b8461122185604051806060016040528060258152602001613826602591396003600061119a611c7a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124239092919063ffffffff16565b611c82565b6001905092915050565b600061124461123d611c7a565b8484611e79565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611333611c7a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561148d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806137d86022913960400191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561154d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611621576115dd600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109bc565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116e7611c7a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561182e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806136806026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118f4611c7a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60008090505b600580549050811015611c76578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611aab57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c6957600560016005805490500381548110611b0757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611b3f57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611c2f57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611c76565b8080600101915050611a7a565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806137b46024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806136a66022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611eff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061378f6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806136336023913960400191505060405180910390fd5b60008111611fde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806137666029913960400191505060405180910390fd5b610258600b5401421180611ff9575066071afd498d00008111155b61204e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806136c8602d913960400191505060405180910390fd5b6120566110fd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120c457506120946110fd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561212f57600860ff16600a0a620f42400281111561212e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806136f56028913960400191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121d25750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e7576121e2838383612691565b61241e565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561228a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561229f5761229a83838361290f565b61241d565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123435750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561235857612353838383612b8d565b61241c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123fa5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561240f5761240a838383612d76565b61241b565b61241a838383612b8d565b5b5b5b5b505050565b60008383111582906124d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561249557808201518184015260208101905061247a565b50505050905090810190601f1680156124c25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006124f0613089565b91509150612507818361250e90919063ffffffff16565b9250505090565b600061255083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061331d565b905092915050565b6000808284019050838110156125d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060008060008060008060006125fc8a61022660fa6133e3565b925092509250600061260c6124e3565b9050600080600061261f8e87878761349f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061268983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612423565b905092915050565b600061269b6124e3565b90506000806000806000806126af886125e0565b95509550955095509550955060006126d0888361352890919063ffffffff16565b905061272489600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127b987600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061284e86600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061289d858285856135ae565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b60006129196124e3565b905060008060008060008061292d886125e0565b955095509550955095509550600061294e888361352890919063ffffffff16565b90506129a287600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3784600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612acc86600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b1b858285856135ae565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612b976124e3565b9050600080600080600080612bab886125e0565b9550955095509550955095506000612bcc888361352890919063ffffffff16565b9050612c2087600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cb586600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d04858285856135ae565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612d806124e3565b9050600080600080600080612d94886125e0565b9550955095509550955095506000612db5888361352890919063ffffffff16565b9050612e0989600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9e87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3384600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fc886600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613017858285856135ae565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600080600060075490506000600654905060008090505b6005805490508110156132e0578260016000600584815481106130bf57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806131a6575081600260006005848154811061313e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156131bd5760075460065494509450505050613319565b61324660016000600584815481106131d157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461264790919063ffffffff16565b92506132d1600260006005848154811061325c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361264790919063ffffffff16565b915080806001019150506130a0565b506132f860065460075461250e90919063ffffffff16565b82101561331057600754600654935093505050613319565b81819350935050505b9091565b600080831182906133c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561338e578082015181840152602081019050613373565b50505050905090810190601f1680156133bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816133d557fe5b049050809150509392505050565b600080600080613422606461341460646134068a8c61352890919063ffffffff16565b61250e90919063ffffffff16565b61250e90919063ffffffff16565b9050600061345f606461345160646134438a8d61352890919063ffffffff16565b61250e90919063ffffffff16565b61250e90919063ffffffff16565b905060006134888261347a858c61264790919063ffffffff16565b61264790919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806134b8858961352890919063ffffffff16565b905060006134cf868961352890919063ffffffff16565b905060006134e6878961352890919063ffffffff16565b9050600061350f82613501858761264790919063ffffffff16565b61264790919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561353b57600090506135a8565b600082840290508284828161354c57fe5b04146135a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061371d6021913960400191505060405180910390fd5b809150505b92915050565b6135d5836135c78660075461264790919063ffffffff16565b61264790919063ffffffff16565b6007819055506135f08260085461255890919063ffffffff16565b60088190555061360b8160095461255890919063ffffffff16565b6009819055506136268160065461264790919063ffffffff16565b6006819055505050505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373596f752063616e6e6f74207472616e73666572206d6f7265207468616e203230303030303020746f6b656e732e5472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201a028c412a838ed3ee1ea04749250d15a5a796e43b02b4e7b6cb6b34d027202f64736f6c63430006020033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101735760003560e01c80634ada218b116100de578063a457c2d711610097578063dd62ed3e11610071578063dd62ed3e1461072a578063f2cc0c18146107a2578063f2fde38b146107e6578063f84354f11461082a57610173565b8063a457c2d714610602578063a9059cbb14610668578063cba0e996146106ce57610173565b80634ada218b146104a757806370a08231146104c9578063715018a6146105215780638a8c523c1461052b5780638da5cb5b1461053557806395d89b411461057f57610173565b80632d838119116101305780632d83811914610341578063313ce5671461038357806339509351146103a75780633bd5d1731461040d5780633c9f861d1461043b5780634549b0391461045957610173565b806304b645271461017857806306fdde0314610196578063095ea7b31461021957806313114a9d1461027f57806318160ddd1461029d57806323b872dd146102bb575b600080fd5b61018061086e565b6040518082815260200191505060405180910390f35b61019e610874565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101de5780820151818401526020810190506101c3565b50505050905090810190601f16801561020b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102656004803603604081101561022f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108b1565b604051808215151515815260200191505060405180910390f35b6102876108cf565b6040518082815260200191505060405180910390f35b6102a56108d9565b6040518082815260200191505060405180910390f35b610327600480360360608110156102d157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108e3565b604051808215151515815260200191505060405180910390f35b61036d6004803603602081101561035757600080fd5b81019080803590602001909291905050506109bc565b6040518082815260200191505060405180910390f35b61038b610a40565b604051808260ff1660ff16815260200191505060405180910390f35b6103f3600480360360408110156103bd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a49565b604051808215151515815260200191505060405180910390f35b6104396004803603602081101561042357600080fd5b8101908080359060200190929190505050610afc565b005b610443610c8d565b6040518082815260200191505060405180910390f35b6104916004803603604081101561046f57600080fd5b8101908080359060200190929190803515159060200190929190505050610c97565b6040518082815260200191505060405180910390f35b6104af610d4e565b604051808215151515815260200191505060405180910390f35b61050b600480360360208110156104df57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d61565b6040518082815260200191505060405180910390f35b610529610e4c565b005b610533610fd4565b005b61053d6110fd565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610587611126565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105c75780820151818401526020810190506105ac565b50505050905090810190601f1680156105f45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61064e6004803603604081101561061857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611163565b604051808215151515815260200191505060405180910390f35b6106b46004803603604081101561067e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611230565b604051808215151515815260200191505060405180910390f35b610710600480360360208110156106e457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061124e565b604051808215151515815260200191505060405180910390f35b61078c6004803603604081101561074057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112a4565b6040518082815260200191505060405180910390f35b6107e4600480360360208110156107b857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061132b565b005b610828600480360360208110156107fc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116df565b005b61086c6004803603602081101561084057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118ec565b005b600b5481565b60606040518060400160405280600681526020017f4d696e6174650000000000000000000000000000000000000000000000000000815250905090565b60006108c56108be611c7a565b8484611c82565b6001905092915050565b6000600854905090565b6000600654905090565b60006108f0848484611e79565b6109b1846108fc611c7a565b6109ac8560405180606001604052806028815260200161373e60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610962611c7a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124239092919063ffffffff16565b611c82565b600190509392505050565b6000600754821115610a19576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613656602a913960400191505060405180910390fd5b6000610a236124e3565b9050610a38818461250e90919063ffffffff16565b915050919050565b60006008905090565b6000610af2610a56611c7a565b84610aed8560036000610a67611c7a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b611c82565b6001905092915050565b6000610b06611c7a565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610bab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806137fa602c913960400191505060405180910390fd5b6000610bb6836125e0565b50505050509050610c0f81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c678160075461264790919063ffffffff16565b600781905550610c828360085461255890919063ffffffff16565b600881905550505050565b6000600954905090565b6000600654831115610d11576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f416d6f756e74206d757374206265206c657373207468616e20737570706c790081525060200191505060405180910390fd5b81610d31576000610d21846125e0565b5050505050905080915050610d48565b6000610d3c846125e0565b50505050915050809150505b92915050565b600a60009054906101000a900460ff1681565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610dfc57600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050610e47565b610e44600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109bc565b90505b919050565b610e54611c7a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610fdc611c7a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055507fbeda7dca7bc1b3e80b871f4818129ec73b771581f803d553aeb3484098e5f65a6001604051808215151515815260200191505060405180910390a142600b81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4d696e6174650000000000000000000000000000000000000000000000000000815250905090565b6000611226611170611c7a565b8461122185604051806060016040528060258152602001613826602591396003600061119a611c7a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124239092919063ffffffff16565b611c82565b6001905092915050565b600061124461123d611c7a565b8484611e79565b6001905092915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611333611c7a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561148d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806137d86022913960400191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561154d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611621576115dd600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546109bc565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6116e7611c7a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117a8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561182e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806136806026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118f4611c7a565b73ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611a74576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60008090505b600580549050811015611c76578173ffffffffffffffffffffffffffffffffffffffff1660058281548110611aab57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611c6957600560016005805490500381548110611b0757fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660058281548110611b3f57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005805480611c2f57fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690559055611c76565b8080600101915050611a7a565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806137b46024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d8e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806136a66022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611eff576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602581526020018061378f6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806136336023913960400191505060405180910390fd5b60008111611fde576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806137666029913960400191505060405180910390fd5b610258600b5401421180611ff9575066071afd498d00008111155b61204e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001806136c8602d913960400191505060405180910390fd5b6120566110fd565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156120c457506120946110fd565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561212f57600860ff16600a0a620f42400281111561212e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260288152602001806136f56028913960400191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121d25750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156121e7576121e2838383612691565b61241e565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561228a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561229f5761229a83838361290f565b61241d565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123435750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561235857612353838383612b8d565b61241c565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156123fa5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561240f5761240a838383612d76565b61241b565b61241a838383612b8d565b5b5b5b5b505050565b60008383111582906124d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561249557808201518184015260208101905061247a565b50505050905090810190601f1680156124c25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b60008060006124f0613089565b91509150612507818361250e90919063ffffffff16565b9250505090565b600061255083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061331d565b905092915050565b6000808284019050838110156125d6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b60008060008060008060008060006125fc8a61022660fa6133e3565b925092509250600061260c6124e3565b9050600080600061261f8e87878761349f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061268983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612423565b905092915050565b600061269b6124e3565b90506000806000806000806126af886125e0565b95509550955095509550955060006126d0888361352890919063ffffffff16565b905061272489600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127b987600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061284e86600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061289d858285856135ae565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b60006129196124e3565b905060008060008060008061292d886125e0565b955095509550955095509550600061294e888361352890919063ffffffff16565b90506129a287600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612a3784600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612acc86600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612b1b858285856135ae565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612b976124e3565b9050600080600080600080612bab886125e0565b9550955095509550955095506000612bcc888361352890919063ffffffff16565b9050612c2087600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cb586600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d04858285856135ae565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b6000612d806124e3565b9050600080600080600080612d94886125e0565b9550955095509550955095506000612db5888361352890919063ffffffff16565b9050612e0989600260008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e9e87600160008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264790919063ffffffff16565b600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612f3384600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fc886600160008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461255890919063ffffffff16565b600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613017858285856135ae565b8973ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a35050505050505050505050565b600080600060075490506000600654905060008090505b6005805490508110156132e0578260016000600584815481106130bf57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411806131a6575081600260006005848154811061313e57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b156131bd5760075460065494509450505050613319565b61324660016000600584815481106131d157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461264790919063ffffffff16565b92506132d1600260006005848154811061325c57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361264790919063ffffffff16565b915080806001019150506130a0565b506132f860065460075461250e90919063ffffffff16565b82101561331057600754600654935093505050613319565b81819350935050505b9091565b600080831182906133c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561338e578082015181840152602081019050613373565b50505050905090810190601f1680156133bb5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816133d557fe5b049050809150509392505050565b600080600080613422606461341460646134068a8c61352890919063ffffffff16565b61250e90919063ffffffff16565b61250e90919063ffffffff16565b9050600061345f606461345160646134438a8d61352890919063ffffffff16565b61250e90919063ffffffff16565b61250e90919063ffffffff16565b905060006134888261347a858c61264790919063ffffffff16565b61264790919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806134b8858961352890919063ffffffff16565b905060006134cf868961352890919063ffffffff16565b905060006134e6878961352890919063ffffffff16565b9050600061350f82613501858761264790919063ffffffff16565b61264790919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561353b57600090506135a8565b600082840290508284828161354c57fe5b04146135a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061371d6021913960400191505060405180910390fd5b809150505b92915050565b6135d5836135c78660075461264790919063ffffffff16565b61264790919063ffffffff16565b6007819055506135f08260085461255890919063ffffffff16565b60088190555061360b8160095461255890919063ffffffff16565b6009819055506136268160065461264790919063ffffffff16565b6006819055505050505056fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373596f752063616e6e6f74207472616e73666572206d6f7265207468616e203230303030303020746f6b656e732e5472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737357652063616e206e6f74206578636c75646520556e697377617020726f757465722e4578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201a028c412a838ed3ee1ea04749250d15a5a796e43b02b4e7b6cb6b34d027202f64736f6c63430006020033
Deployed Bytecode Sourcemap
18453:12549:0:-:0;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18453:12549:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19638:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19819:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;19819:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20731:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20731:161:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21842:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20096:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20900:313;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20900:313:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22866:253;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22866:253:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20005:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21221:218;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21221:218:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;22037:377;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22037:377:0;;;;;;;;;;;;;;;;;:::i;:::-;;21941:88;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22422:436;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;22422:436:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19556:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20199:198;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20199:198:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17899:148;;;:::i;:::-;;30841:150;;;:::i;:::-;;17257:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19910:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;19910:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21447:269;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21447:269:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20405:167;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20405:167:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;21724:110;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;21724:110:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;20580:143;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;20580:143:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23127:443;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23127:443:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;18202:244;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18202:244:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;23578:478;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;23578:478:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;19638:31;;;;:::o;19819:83::-;19856:13;19889:5;;;;;;;;;;;;;;;;;19882:12;;19819:83;:::o;20731:161::-;20806:4;20823:39;20832:12;:10;:12::i;:::-;20846:7;20855:6;20823:8;:39::i;:::-;20880:4;20873:11;;20731:161;;;;:::o;21842:87::-;21884:7;21911:10;;21904:17;;21842:87;:::o;20096:95::-;20149:7;20176;;20169:14;;20096:95;:::o;20900:313::-;20998:4;21015:36;21025:6;21033:9;21044:6;21015:9;:36::i;:::-;21062:121;21071:6;21079:12;:10;:12::i;:::-;21093:89;21131:6;21093:89;;;;;;;;;;;;;;;;;:11;:19;21105:6;21093:19;;;;;;;;;;;;;;;:33;21113:12;:10;:12::i;:::-;21093:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;21062:8;:121::i;:::-;21201:4;21194:11;;20900:313;;;;;:::o;22866:253::-;22932:7;22971;;22960;:18;;22952:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23036:19;23059:10;:8;:10::i;:::-;23036:33;;23087:24;23099:11;23087:7;:11;;:24;;;;:::i;:::-;23080:31;;;22866:253;;;:::o;20005:83::-;20046:5;18978:1;20064:16;;20005:83;:::o;21221:218::-;21309:4;21326:83;21335:12;:10;:12::i;:::-;21349:7;21358:50;21397:10;21358:11;:25;21370:12;:10;:12::i;:::-;21358:25;;;;;;;;;;;;;;;:34;21384:7;21358:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;21326:8;:83::i;:::-;21427:4;21420:11;;21221:218;;;;:::o;22037:377::-;22089:14;22106:12;:10;:12::i;:::-;22089:29;;22138:11;:19;22150:6;22138:19;;;;;;;;;;;;;;;;;;;;;;;;;22137:20;22129:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22218:15;22242:19;22253:7;22242:10;:19::i;:::-;22217:44;;;;;;;22290:28;22310:7;22290;:15;22298:6;22290:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;22272:7;:15;22280:6;22272:15;;;;;;;;;;;;;;;:46;;;;22339:20;22351:7;22339;;:11;;:20;;;;:::i;:::-;22329:7;:30;;;;22383:23;22398:7;22383:10;;:14;;:23;;;;:::i;:::-;22370:10;:36;;;;22037:377;;;:::o;21941:88::-;21983:7;22010:11;;22003:18;;21941:88;:::o;22422:436::-;22512:7;22551;;22540;:18;;22532:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22610:17;22605:246;;22645:15;22669:19;22680:7;22669:10;:19::i;:::-;22644:44;;;;;;;22710:7;22703:14;;;;;22605:246;22752:23;22783:19;22794:7;22783:10;:19::i;:::-;22750:52;;;;;;;22824:15;22817:22;;;22422:436;;;;;:::o;19556:34::-;;;;;;;;;;;;;:::o;20199:198::-;20265:7;20289:11;:20;20301:7;20289:20;;;;;;;;;;;;;;;;;;;;;;;;;20285:49;;;20318:7;:16;20326:7;20318:16;;;;;;;;;;;;;;;;20311:23;;;;20285:49;20352:37;20372:7;:16;20380:7;20372:16;;;;;;;;;;;;;;;;20352:19;:37::i;:::-;20345:44;;20199:198;;;;:::o;17899:148::-;17479:12;:10;:12::i;:::-;17469:22;;:6;;;;;;;;;;;:22;;;17461:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18006:1:::1;17969:40;;17990:6;::::0;::::1;;;;;;;;;17969:40;;;;;;;;;;;;18037:1;18020:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;17899:148::o:0;30841:150::-;17479:12;:10;:12::i;:::-;17469:22;;:6;;;;;;;;;;;:22;;;17461:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30915:4:::1;30898:14;;:21;;;;;;;;;;;;;;;;;;30930:20;30945:4;30930:20;;;;;;;;;;;;;;;;;;;;;;30980:3;30961:16;:22;;;;30841:150::o:0;17257:79::-;17295:7;17322:6;;;;;;;;;;;17315:13;;17257:79;:::o;19910:87::-;19949:13;19982:7;;;;;;;;;;;;;;;;;19975:14;;19910:87;:::o;21447:269::-;21540:4;21557:129;21566:12;:10;:12::i;:::-;21580:7;21589:96;21628:15;21589:96;;;;;;;;;;;;;;;;;:11;:25;21601:12;:10;:12::i;:::-;21589:25;;;;;;;;;;;;;;;:34;21615:7;21589:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;21557:8;:129::i;:::-;21704:4;21697:11;;21447:269;;;;:::o;20405:167::-;20483:4;20500:42;20510:12;:10;:12::i;:::-;20524:9;20535:6;20500:9;:42::i;:::-;20560:4;20553:11;;20405:167;;;;:::o;21724:110::-;21782:4;21806:11;:20;21818:7;21806:20;;;;;;;;;;;;;;;;;;;;;;;;;21799:27;;21724:110;;;:::o;20580:143::-;20661:7;20688:11;:18;20700:5;20688:18;;;;;;;;;;;;;;;:27;20707:7;20688:27;;;;;;;;;;;;;;;;20681:34;;20580:143;;;;:::o;23127:443::-;17479:12;:10;:12::i;:::-;17469:22;;:6;;;;;;;;;;;:22;;;17461:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23219:42:::1;23208:53;;:7;:53;;;;23200:100;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23320:11;:20;23332:7;23320:20;;;;;;;;;;;;;;;;;;;;;;;;;23319:21;23311:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;23405:1;23386:7;:16;23394:7;23386:16;;;;;;;;;;;;;;;;:20;23383:108;;;23442:37;23462:7;:16;23470:7;23462:16;;;;;;;;;;;;;;;;23442:19;:37::i;:::-;23423:7;:16;23431:7;23423:16;;;;;;;;;;;;;;;:56;;;;23383:108;23524:4;23501:11;:20;23513:7;23501:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;23539:9;23554:7;23539:23;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;23539:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23127:443:::0;:::o;18202:244::-;17479:12;:10;:12::i;:::-;17469:22;;:6;;;;;;;;;;;:22;;;17461:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18311:1:::1;18291:22;;:8;:22;;;;18283:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18401:8;18372:38;;18393:6;::::0;::::1;;;;;;;;;18372:38;;;;;;;;;;;;18430:8;18421:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;18202:244:::0;:::o;23578:478::-;17479:12;:10;:12::i;:::-;17469:22;;:6;;;;;;;;;;;:22;;;17461:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23659:11:::1;:20;23671:7;23659:20;;;;;;;;;;;;;;;;;;;;;;;;;23651:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;23727:9;23739:1:::0;23727:13:::1;;23722:327;23746:9;:16;;;;23742:1;:20;23722:327;;;23804:7;23788:23;;:9;23798:1;23788:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;23784:254;;;23847:9;23876:1;23857:9;:16;;;;:20;23847:31;;;;;;;;;;;;;;;;;;;;;;;;;23832:9;23842:1;23832:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;23916:1;23897:7;:16;23905:7;23897:16;;;;;;;;;;;;;;;:20;;;;23959:5;23936:11;:20;23948:7;23936:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;23983:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24017:5;;23784:254;23764:3;;;;;;;23722:327;;;;23578:478:::0;:::o;1723:106::-;1776:15;1811:10;1804:17;;1723:106;:::o;24064:337::-;24174:1;24157:19;;:5;:19;;;;24149:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24255:1;24236:21;;:7;:21;;;;24228:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24339:6;24309:11;:18;24321:5;24309:18;;;;;;;;;;;;;;;:27;24328:7;24309:27;;;;;;;;;;;;;;;:36;;;;24377:7;24361:32;;24370:5;24361:32;;;24386:6;24361:32;;;;;;;;;;;;;;;;;;24064:337;;;:::o;24409:1300::-;24524:1;24506:20;;:6;:20;;;;24498:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24608:1;24587:23;;:9;:23;;;;24579:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24678:1;24669:6;:10;24661:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24853:10;24834:16;;:29;24828:3;:35;:59;;;;24878:9;24868:6;:19;;24828:59;24820:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24963:7;:5;:7::i;:::-;24953:17;;:6;:17;;;;:41;;;;;24987:7;:5;:7::i;:::-;24974:20;;:9;:20;;;;24953:41;24950:134;;;18978:1;19089:18;;19083:2;:24;19506:7;:24;25017:6;:22;;25009:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24950:134;25109:11;:19;25121:6;25109:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;25133:11;:22;25145:9;25133:22;;;;;;;;;;;;;;;;;;;;;;;;;25132:23;25109:46;25105:597;;;25172:48;25194:6;25202:9;25213:6;25172:21;:48::i;:::-;25105:597;;;25243:11;:19;25255:6;25243:19;;;;;;;;;;;;;;;;;;;;;;;;;25242:20;:46;;;;;25266:11;:22;25278:9;25266:22;;;;;;;;;;;;;;;;;;;;;;;;;25242:46;25238:464;;;25305:46;25325:6;25333:9;25344:6;25305:19;:46::i;:::-;25238:464;;;25374:11;:19;25386:6;25374:19;;;;;;;;;;;;;;;;;;;;;;;;;25373:20;:47;;;;;25398:11;:22;25410:9;25398:22;;;;;;;;;;;;;;;;;;;;;;;;;25397:23;25373:47;25369:333;;;25437:44;25455:6;25463:9;25474:6;25437:17;:44::i;:::-;25369:333;;;25503:11;:19;25515:6;25503:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;25526:11;:22;25538:9;25526:22;;;;;;;;;;;;;;;;;;;;;;;;;25503:45;25499:203;;;25565:48;25587:6;25595:9;25606:6;25565:21;:48::i;:::-;25499:203;;;25646:44;25664:6;25672:9;25683:6;25646:17;:44::i;:::-;25499:203;25369:333;25238:464;25105:597;24409:1300;;;:::o;6533:192::-;6619:7;6652:1;6647;:6;;6655:12;6639:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;6639:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6679:9;6695:1;6691;:5;6679:17;;6716:1;6709:8;;;6533:192;;;;;:::o;29896:163::-;29937:7;29958:15;29975;29994:19;:17;:19::i;:::-;29957:56;;;;30031:20;30043:7;30031;:11;;:20;;;;:::i;:::-;30024:27;;;;29896:163;:::o;7931:132::-;7989:7;8016:39;8020:1;8023;8016:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;8009:46;;7931:132;;;;:::o;5630:181::-;5688:7;5708:9;5724:1;5720;:5;5708:17;;5749:1;5744;:6;;5736:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5802:1;5795:8;;;5630:181;;;;:::o;28598:470::-;28657:7;28666;28675;28684;28693;28702;28723:23;28748:12;28762:13;28779:41;28791:7;19406:3;19456;28779:11;:41::i;:::-;28722:98;;;;;;28831:19;28854:10;:8;:10::i;:::-;28831:33;;28876:15;28893:23;28918:12;28934:46;28946:7;28955:4;28961:5;28968:11;28934;:46::i;:::-;28875:105;;;;;;28999:7;29008:15;29025:4;29031:15;29048:4;29054:5;28991:69;;;;;;;;;;;;;;;;;;;28598:470;;;;;;;:::o;6094:136::-;6152:7;6179:43;6183:1;6186;6179:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;6172:50;;6094:136;;;;:::o;26960:632::-;27062:19;27085:10;:8;:10::i;:::-;27062:33;;27107:15;27124:23;27149:12;27163:23;27188:12;27202:13;27219:19;27230:7;27219:10;:19::i;:::-;27106:132;;;;;;;;;;;;27249:13;27266:22;27276:11;27266:5;:9;;:22;;;;:::i;:::-;27249:39;;27317:28;27337:7;27317;:15;27325:6;27317:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;27299:7;:15;27307:6;27299:15;;;;;;;;;;;;;;;:46;;;;27374:28;27394:7;27374;:15;27382:6;27374:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;27356:7;:15;27364:6;27356:15;;;;;;;;;;;;;;;:46;;;;27434:39;27457:15;27434:7;:18;27442:9;27434:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;27413:7;:18;27421:9;27413:18;;;;;;;;;;;;;;;:60;;;;27487:37;27499:4;27505:5;27512:4;27518:5;27487:11;:37::i;:::-;27557:9;27540:44;;27549:6;27540:44;;;27568:15;27540:44;;;;;;;;;;;;;;;;;;26960:632;;;;;;;;;;;:::o;26300:652::-;26400:19;26423:10;:8;:10::i;:::-;26400:33;;26445:15;26462:23;26487:12;26501:23;26526:12;26540:13;26557:19;26568:7;26557:10;:19::i;:::-;26444:132;;;;;;;;;;;;26587:13;26604:22;26614:11;26604:5;:9;;:22;;;;:::i;:::-;26587:39;;26655:28;26675:7;26655;:15;26663:6;26655:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26637:7;:15;26645:6;26637:15;;;;;;;;;;;;;;;:46;;;;26715:39;26738:15;26715:7;:18;26723:9;26715:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26694:7;:18;26702:9;26694:18;;;;;;;;;;;;;;;:60;;;;26786:39;26809:15;26786:7;:18;26794:9;26786:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26765:7;:18;26773:9;26765:18;;;;;;;;;;;;;;;:60;;;;26847:37;26859:4;26865:5;26872:4;26878:5;26847:11;:37::i;:::-;26917:9;26900:44;;26909:6;26900:44;;;26928:15;26900:44;;;;;;;;;;;;;;;;;;26300:652;;;;;;;;;;;:::o;25717:575::-;25815:19;25838:10;:8;:10::i;:::-;25815:33;;25860:15;25877:23;25902:12;25916:23;25941:12;25955:13;25972:19;25983:7;25972:10;:19::i;:::-;25859:132;;;;;;;;;;;;26002:13;26019:22;26029:11;26019:5;:9;;:22;;;;:::i;:::-;26002:39;;26070:28;26090:7;26070;:15;26078:6;26070:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;26052:7;:15;26060:6;26052:15;;;;;;;;;;;;;;;:46;;;;26130:39;26153:15;26130:7;:18;26138:9;26130:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;26109:7;:18;26117:9;26109:18;;;;;;;;;;;;;;;:60;;;;26187:37;26199:4;26205:5;26212:4;26218:5;26187:11;:37::i;:::-;26257:9;26240:44;;26249:6;26240:44;;;26268:15;26240:44;;;;;;;;;;;;;;;;;;25717:575;;;;;;;;;;;:::o;27600:708::-;27702:19;27725:10;:8;:10::i;:::-;27702:33;;27747:15;27764:23;27789:12;27803:23;27828:12;27842:13;27859:19;27870:7;27859:10;:19::i;:::-;27746:132;;;;;;;;;;;;27889:13;27906:22;27916:11;27906:5;:9;;:22;;;;:::i;:::-;27889:39;;27957:28;27977:7;27957;:15;27965:6;27957:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;27939:7;:15;27947:6;27939:15;;;;;;;;;;;;;;;:46;;;;28014:28;28034:7;28014;:15;28022:6;28014:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;27996:7;:15;28004:6;27996:15;;;;;;;;;;;;;;;:46;;;;28074:39;28097:15;28074:7;:18;28082:9;28074:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;28053:7;:18;28061:9;28053:18;;;;;;;;;;;;;;;:60;;;;28145:39;28168:15;28145:7;:18;28153:9;28145:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;28124:7;:18;28132:9;28124:18;;;;;;;;;;;;;;;:60;;;;28203:37;28215:4;28221:5;28228:4;28234:5;28203:11;:37::i;:::-;28273:9;28256:44;;28265:6;28256:44;;;28284:15;28256:44;;;;;;;;;;;;;;;;;;27600:708;;;;;;;;;;;:::o;30067:561::-;30117:7;30126;30146:15;30164:7;;30146:25;;30182:15;30200:7;;30182:25;;30229:9;30241:1;30229:13;;30224:289;30248:9;:16;;;;30244:1;:20;30224:289;;;30314:7;30290;:21;30298:9;30308:1;30298:12;;;;;;;;;;;;;;;;;;;;;;;;;30290:21;;;;;;;;;;;;;;;;:31;:66;;;;30349:7;30325;:21;30333:9;30343:1;30333:12;;;;;;;;;;;;;;;;;;;;;;;;;30325:21;;;;;;;;;;;;;;;;:31;30290:66;30286:97;;;30366:7;;30375;;30358:25;;;;;;;;;30286:97;30408:34;30420:7;:21;30428:9;30438:1;30428:12;;;;;;;;;;;;;;;;;;;;;;;;;30420:21;;;;;;;;;;;;;;;;30408:7;:11;;:34;;;;:::i;:::-;30398:44;;30467:34;30479:7;:21;30487:9;30497:1;30487:12;;;;;;;;;;;;;;;;;;;;;;;;;30479:21;;;;;;;;;;;;;;;;30467:7;:11;;:34;;;;:::i;:::-;30457:44;;30266:3;;;;;;;30224:289;;;;30537:20;30549:7;;30537;;:11;;:20;;;;:::i;:::-;30527:7;:30;30523:61;;;30567:7;;30576;;30559:25;;;;;;;;30523:61;30603:7;30612;30595:25;;;;;;30067:561;;;:::o;8559:278::-;8645:7;8677:1;8673;:5;8680:12;8665:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;8665:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8704:9;8720:1;8716;:5;;;;;;8704:17;;8828:1;8821:8;;;8559:278;;;;;:::o;29076:395::-;29169:7;29178;29187;29207:12;29222:50;29268:3;29223:39;19154:3;29224:19;29236:6;29224:7;:11;;:19;;;;:::i;:::-;29223:25;;:39;;;;:::i;:::-;29222:45;;:50;;;;:::i;:::-;29207:65;;29283:13;29299:51;29346:3;29300:40;19154:3;29301:20;29313:7;29301;:11;;:20;;;;:::i;:::-;29300:26;;:40;;;;:::i;:::-;29299:46;;:51;;;;:::i;:::-;29283:67;;29361:23;29387:28;29409:5;29387:17;29399:4;29387:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;29361:54;;29434:15;29451:4;29457:5;29426:37;;;;;;;;;29076:395;;;;;;;:::o;29479:409::-;29589:7;29598;29607;29627:15;29645:24;29657:11;29645:7;:11;;:24;;;;:::i;:::-;29627:42;;29680:12;29695:21;29704:11;29695:4;:8;;:21;;;;:::i;:::-;29680:36;;29727:13;29743:22;29753:11;29743:5;:9;;:22;;;;:::i;:::-;29727:38;;29776:23;29802:28;29824:5;29802:17;29814:4;29802:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;29776:54;;29849:7;29858:15;29875:4;29841:39;;;;;;;;;;29479:409;;;;;;;;:::o;6984:471::-;7042:7;7292:1;7287;:6;7283:47;;;7317:1;7310:8;;;;7283:47;7342:9;7358:1;7354;:5;7342:17;;7387:1;7382;7378;:5;;;;;;:10;7370:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7446:1;7439:8;;;6984:471;;;;;:::o;28316:274::-;28424:28;28446:5;28424:17;28436:4;28424:7;;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;28414:7;:38;;;;28476:20;28491:4;28476:10;;:14;;:20;;;;:::i;:::-;28463:10;:33;;;;28521:22;28537:5;28521:11;;:15;;:22;;;;:::i;:::-;28507:11;:36;;;;28564:18;28576:5;28564:7;;:11;;:18;;;;:::i;:::-;28554:7;:28;;;;28316:274;;;;:::o
Swarm Source
ipfs://1a028c412a838ed3ee1ea04749250d15a5a796e43b02b4e7b6cb6b34d027202f
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.