More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 134 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 17064362 | 583 days ago | IN | 0 ETH | 0.00060774 | ||||
Approve | 16695157 | 635 days ago | IN | 0 ETH | 0.00068991 | ||||
Approve | 15483938 | 805 days ago | IN | 0 ETH | 0.00032299 | ||||
Approve | 15443916 | 812 days ago | IN | 0 ETH | 0.00083864 | ||||
Approve | 15443517 | 812 days ago | IN | 0 ETH | 0.00155172 | ||||
Approve | 15443133 | 812 days ago | IN | 0 ETH | 0.00063908 | ||||
Approve | 15442419 | 812 days ago | IN | 0 ETH | 0.00058936 | ||||
Transfer | 15442410 | 812 days ago | IN | 0 ETH | 0.00084414 | ||||
Approve | 15442395 | 812 days ago | IN | 0 ETH | 0.00075375 | ||||
Approve | 15442212 | 812 days ago | IN | 0 ETH | 0.00173845 | ||||
Approve | 15442204 | 812 days ago | IN | 0 ETH | 0.0024695 | ||||
Approve | 15442191 | 812 days ago | IN | 0 ETH | 0.00226061 | ||||
Approve | 15442183 | 812 days ago | IN | 0 ETH | 0.00137092 | ||||
Approve | 15437129 | 813 days ago | IN | 0 ETH | 0.00053645 | ||||
Approve | 15437045 | 813 days ago | IN | 0 ETH | 0.00048382 | ||||
Approve | 15437040 | 813 days ago | IN | 0 ETH | 0.00061322 | ||||
Approve | 15424000 | 815 days ago | IN | 0 ETH | 0.00035069 | ||||
Approve | 15411001 | 817 days ago | IN | 0 ETH | 0.00057729 | ||||
Set Taxes | 15406584 | 818 days ago | IN | 0 ETH | 0.00086353 | ||||
Approve | 15404245 | 818 days ago | IN | 0 ETH | 0.00055915 | ||||
Set Taxes | 15398742 | 819 days ago | IN | 0 ETH | 0.00196007 | ||||
Approve | 15386931 | 821 days ago | IN | 0 ETH | 0.00020977 | ||||
Approve | 15386691 | 821 days ago | IN | 0 ETH | 0.00029261 | ||||
Approve | 15386641 | 821 days ago | IN | 0 ETH | 0.00063648 | ||||
Approve | 15386393 | 821 days ago | IN | 0 ETH | 0.00036031 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
15483950 | 805 days ago | 0.00018721 ETH | ||||
15483950 | 805 days ago | 0.00018721 ETH | ||||
15483950 | 805 days ago | 0.0000936 ETH | ||||
15483950 | 805 days ago | 0.00046803 ETH | ||||
15444501 | 812 days ago | 0.00048445 ETH | ||||
15444501 | 812 days ago | 0.00048445 ETH | ||||
15444501 | 812 days ago | 0.00024222 ETH | ||||
15444501 | 812 days ago | 0.00121113 ETH | ||||
15443920 | 812 days ago | 0.0001125 ETH | ||||
15443920 | 812 days ago | 0.0001125 ETH | ||||
15443920 | 812 days ago | 0.00005625 ETH | ||||
15443920 | 812 days ago | 0.00028126 ETH | ||||
15443529 | 812 days ago | 0.00128313 ETH | ||||
15443529 | 812 days ago | 0.00128313 ETH | ||||
15443529 | 812 days ago | 0.00064156 ETH | ||||
15443529 | 812 days ago | 0.00320783 ETH | ||||
15443125 | 812 days ago | 0.00039601 ETH | ||||
15443125 | 812 days ago | 0.00039601 ETH | ||||
15443125 | 812 days ago | 0.000198 ETH | ||||
15443125 | 812 days ago | 0.00099002 ETH | ||||
15443119 | 812 days ago | 0.00039601 ETH | ||||
15443119 | 812 days ago | 0.00039601 ETH | ||||
15443119 | 812 days ago | 0.000198 ETH | ||||
15443119 | 812 days ago | 0.00099002 ETH | ||||
15442185 | 812 days ago | 0.0009861 ETH |
Loading...
Loading
Contract Name:
BearAssassin
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-08-12 */ // SPDX-License-Identifier: Unlicensed //https://t.me/Bear_Assassin_Official pragma solidity ^0.6.12; interface IERC20 { function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } function _callOptionalReturn(IERC20 token, bytes memory data) private { bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } /** * @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; } } 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 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; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract BearAssassin is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address payable; using SafeERC20 for IERC20; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public _isExcludedFromFee; mapping (address => bool) private _isSniper; mapping (address => uint256) private _lastTX; address payable public marketing; address payable public dev; uint256 private _tTotal = 1 * 10**9 * 10**9; uint256 public _cooldownPeriod = 20; string private _name = "Bear Assassin"; string private _symbol = "BASS"; uint8 private _decimals = 9; uint256 public _marketingFeeBuy = 20; uint256 public _marketingFeeSell = 20; uint256 public _liquidityFeeBuy = 10; uint256 public _liquidityFeeSell = 20; uint256 public _devFeeBuy = 20; uint256 public _devFeeSell = 20; uint256 public _reflectionsFeeBuy = 30; uint256 public _reflectionsFeeSell = 60; uint256 constant public _initialBurn = 100 * 10**6 * 10**9; uint256 private _liquidityFees; uint256 private _reflectionsFees; uint256 private _marketingFees; uint256 private launchTime; IUniswapV2Router02 public immutable uniswapV2Router; address public uniswapV2Pair; address public immutable USDC; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; uint256 public _maxWalletHolding = 20 * 10**6 * 10**9; uint256 public _maxBuyAmount = 20 * 10**6 * 10**9; uint256 public _maxSellAmount = 5 * 10**6 * 10**9; uint256 private numTokensSellToAddToLiquidity = 3 * 10**4 * 10**9; modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor (address payable _marketingWallet, address payable _devWallet, address payable _USDC, address[] memory _w) public { marketing = _marketingWallet; dev = _devWallet; USDC = _USDC; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_marketingWallet] = true; _isExcludedFromFee[_devWallet] = true; for (uint i = 0; i < _w.length; i++) { _isExcludedFromFee[_w[i]] = true; } emit Transfer(address(0), _msgSender(), _tTotal); _tTotal = _tTotal.sub(_initialBurn); _balances[_msgSender()] = _tTotal; emit Transfer(_msgSender(), address(0), _initialBurn); } 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) { return _balances[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 manualSwapAndLiquify() public onlyOwner() { uint256 contractTokenBalance = balanceOf(address(this)); swapAndLiquify(contractTokenBalance); } function excludeFromFee(address account) public onlyOwner() { _isExcludedFromFee[account] = true; } function includeInFee(address account) public onlyOwner() { _isExcludedFromFee[account] = false; } function setTaxes(uint256[] memory _taxTypes, uint256[] memory _taxSizes) external onlyOwner() { require(_taxTypes.length == _taxSizes.length, "Incorrect input"); for (uint i = 0; i < _taxTypes.length; i++) { uint256 _taxType = _taxTypes[i]; uint256 _taxSize = _taxSizes[i]; if (_taxType == 1) { _marketingFeeBuy = _taxSize; } else if (_taxType == 2) { _marketingFeeSell = _taxSize; } else if (_taxType == 3) { _devFeeBuy = _taxSize; } else if (_taxType == 4) { _devFeeSell = _taxSize; } else if (_taxType == 5) { _liquidityFeeBuy = _taxSize; } else if (_taxType == 6) { _liquidityFeeSell = _taxSize; } else if (_taxType == 7) { _reflectionsFeeBuy = _taxSize; } else if (_taxType == 8) { _reflectionsFeeSell = _taxSize; } else if (_taxType == 9) { _liquidityFees = _taxSize; } else if (_taxType == 10) { _reflectionsFees = _taxSize; } else if (_taxType == 11) { _marketingFees = _taxSize; } } uint totalSellFee = _marketingFeeSell + _devFeeSell + _liquidityFeeSell + _reflectionsFeeSell; uint totalBuyFee = _marketingFeeBuy + _devFeeBuy + _liquidityFeeBuy + _reflectionsFeeBuy; require(totalSellFee <= 250); require(totalBuyFee <= 100); } function setSwapAndLiquifyEnabled(bool _enabled, uint256 _numTokensMin) public onlyOwner() { swapAndLiquifyEnabled = _enabled; numTokensSellToAddToLiquidity = _numTokensMin; } function enableTrading() public onlyOwner() { require(launchTime == 0, "Already enabled"); launchTime = block.timestamp; } receive() external payable {} 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 from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= numTokensSellToAddToLiquidity; if ( overMinTokenBalance && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ) { swapAndLiquify(contractTokenBalance); } //indicates if fee should be deducted from transfer bool takeFee = true; //depending on type of transfer (buy, sell, or p2p tokens transfer) different taxes & fees are applied bool isTransferBuy = from == uniswapV2Pair; bool isTransferSell = to == uniswapV2Pair; //if any account belongs to _isExcludedFromFee account then remove the fee if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){ takeFee = false; } else { require(launchTime > 0, "Trading not enabled yet"); if (!isTransferBuy && !isTransferSell) { require((_lastTX[from] + _cooldownPeriod) <= block.timestamp, "Cooldown"); takeFee = false; } else if (isTransferSell) { require((_lastTX[from] + _cooldownPeriod) <= block.timestamp, "Cooldown"); _lastTX[from] = block.timestamp; } else if (isTransferBuy) { require((_lastTX[to] + _cooldownPeriod) <= block.timestamp, "Cooldown"); _lastTX[to] = block.timestamp; } if (isTransferBuy) require(amount <= _maxBuyAmount, "Max buy limit exceeded"); if (isTransferSell && (block.timestamp < (launchTime + 48 hours))) require(amount <= _maxSellAmount, "Max sell limit exceeded"); } _transferStandard(from,to,amount,takeFee,isTransferBuy,isTransferSell); if (!_isExcludedFromFee[to] && (to != uniswapV2Pair)) require(balanceOf(to) < _maxWalletHolding, "Max Wallet holding limit exceeded"); } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { uint256 liquidityPart = 0; if (_liquidityFees < contractTokenBalance) liquidityPart = _liquidityFees; uint256 distributionPart = contractTokenBalance.sub(liquidityPart).sub(_reflectionsFees); uint256 liquidityHalfPart = liquidityPart.div(2); uint256 liquidityHalfTokenPart = liquidityPart.sub(liquidityHalfPart); uint256 totalETHSwap = liquidityHalfPart.add(distributionPart); swapTokensForEth(totalETHSwap); uint256 newBalance = address(this).balance; uint256 marketingBalance = _marketingFees.mul(newBalance).div(totalETHSwap); uint256 liquidityBalance = liquidityHalfPart.mul(newBalance).div(totalETHSwap); if (liquidityHalfTokenPart > 0 && liquidityBalance > 0) addLiquidity(liquidityHalfTokenPart, liquidityBalance); if (marketingBalance > 0 && marketingBalance < address(this).balance) marketing.call{ value: marketingBalance }(""); if (address(this).balance > 0) dev.call{ value: address(this).balance }(""); uint256 remBalance = balanceOf(address(this)); if (remBalance > 0) { swapTokensForUSDC(remBalance); } _marketingFees = 0; _liquidityFees = 0; _reflectionsFees = 0; } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, 0, marketing, block.timestamp ); } function setBlockedWallet(address _account, bool _blocked ) public onlyOwner() { _isSniper[_account] = _blocked; } function withdrawTokens(address _token, uint256 _amount) public onlyOwner() { IERC20(_token).safeTransfer(msg.sender, _amount); } function swapTokensForUSDC(uint256 tokenAmount) private { address[] memory path = new address[](3); path[0] = address(this); path[1] = uniswapV2Router.WETH(); path[2] = USDC; _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); uint256 usdcBalance = IERC20(USDC).balanceOf(address(this)); IERC20(USDC).safeTransfer(marketing, usdcBalance); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function _transferStandard(address sender, address recipient, uint256 tAmount, bool takeFee, bool isTransferBuy, bool isTransferSell) private { uint256 tTransferAmount = tAmount; if (takeFee) { uint256 totalTax; uint256 liquidityTax; uint256 marketingTax; uint256 reflectionsTax; if (isTransferBuy) { marketingTax = tAmount.mul(_marketingFeeBuy).div(1000); reflectionsTax = tAmount.mul(_reflectionsFeeBuy).div(1000); liquidityTax = tAmount.mul(_liquidityFeeBuy).div(1000); totalTax = marketingTax + reflectionsTax + liquidityTax + (tAmount.mul(_devFeeBuy).div(1000)); } if (isTransferSell) { require(!_isSniper[sender], "SNIPER!"); marketingTax = tAmount.mul(_marketingFeeSell).div(1000); reflectionsTax = tAmount.mul(_reflectionsFeeSell).div(1000); liquidityTax = tAmount.mul(_liquidityFeeSell).div(1000); totalTax = marketingTax + reflectionsTax + liquidityTax + (tAmount.mul(_devFeeSell).div(1000)); } tTransferAmount = tTransferAmount.sub(totalTax); _marketingFees = _marketingFees.add(marketingTax); _liquidityFees = _liquidityFees.add(liquidityTax); _reflectionsFees = _reflectionsFees.add(reflectionsTax); } else if (!isTransferBuy && !isTransferSell) { require(!_isSniper[sender], "SNIPER!"); } _balances[sender] = _balances[sender].sub(tAmount); _balances[recipient] = _balances[recipient].add(tTransferAmount); _balances[address(this)] = _balances[address(this)].add(tAmount.sub(tTransferAmount)); emit Transfer(sender, recipient, tTransferAmount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"_marketingWallet","type":"address"},{"internalType":"address payable","name":"_devWallet","type":"address"},{"internalType":"address payable","name":"_USDC","type":"address"},{"internalType":"address[]","name":"_w","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"USDC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_cooldownPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_devFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initialBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxSellAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletHolding","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reflectionsFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reflectionsFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketing","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"},{"internalType":"bool","name":"_blocked","type":"bool"}],"name":"setBlockedWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_numTokensMin","type":"uint256"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_taxTypes","type":"uint256[]"},{"internalType":"uint256[]","name":"_taxSizes","type":"uint256[]"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"withdrawTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c0604052670de0b6b3a764000060085560146009556040518060400160405280600d81526020017f4265617220417373617373696e00000000000000000000000000000000000000815250600a90805190602001906200006292919062000aa8565b506040518060400160405280600481526020017f4241535300000000000000000000000000000000000000000000000000000000815250600b9080519060200190620000b092919062000aa8565b506009600c60006101000a81548160ff021916908360ff1602179055506014600d556014600e55600a600f55601460105560146011556014601255601e601355603c6014556001601960156101000a81548160ff02191690831515021790555066470de4df820000601a5566470de4df820000601b556611c37937e08000601c55651b48eb57e000601d553480156200014857600080fd5b50604051620052bf380380620052bf833981810160405260808110156200016e57600080fd5b8101908080519060200190929190805190602001909291908051906020019092919080516040519392919084640100000000821115620001ad57600080fd5b83820191506020820185811115620001c457600080fd5b8251866020820283011164010000000082111715620001e257600080fd5b8083526020830192505050908051906020019060200280838360005b838110156200021b578082015181840152602081019050620001fe565b5050505090500160405250505060006200023a6200096160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35083600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b815250506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620003f157600080fd5b505afa15801562000406573d6000803e3d6000fd5b505050506040513d60208110156200041d57600080fd5b810190808051906020019092919050505073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200049157600080fd5b505afa158015620004a6573d6000803e3d6000fd5b505050506040513d6020811015620004bd57600080fd5b81019080805190602001909291905050506040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff16815260200192505050602060405180830381600087803b1580156200053857600080fd5b505af11580156200054d573d6000803e3d6000fd5b505050506040513d60208110156200056457600080fd5b8101908080519060200190929190505050601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b81525050600160036000620006026200096960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060005b8251811015620007e2576001600360008584815181106200077b57fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806001019150506200075e565b50620007f36200096160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040518082815260200191505060405180910390a36200087e67016345785d8a00006008546200099260201b620022ee1790919060201c565b600881905550600854600160006200089b6200096160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff16620009016200096160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040518082815260200191505060405180910390a3505050505062000b4e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000620009dc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250620009e460201b60201c565b905092915050565b600083831115829062000a95576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101562000a5957808201518184015260208101905062000a3c565b50505050905090810190601f16801562000a875780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000aeb57805160ff191683800117855562000b1c565b8280016001018555821562000b1c579182015b8281111562000b1b57825182559160200191906001019062000afe565b5b50905062000b2b919062000b2f565b5090565b5b8082111562000b4a57600081600090555060010162000b30565b5090565b60805160601c60a05160601c61471062000baf600039806117eb5280613f6c528061410452806141ef5250806110b752806139e45280613ad05280613af75280613c885280613caf5280613e845280613fd85280613fff52506147106000f3fe6080604052600436106102555760003560e01c8063715018a6116101395780639e3a9409116100b6578063dd62ed3e1161007a578063dd62ed3e14610d18578063e21702a614610d9d578063e920978f14610dfa578063ea2f0b3714610e25578063f2fde38b14610e76578063f499133514610ec75761025c565b80639e3a940914610bb5578063a457c2d714610be0578063a9059cbb14610c51578063d7d31f5f14610cc2578063d894bef614610ced5761025c565b80638a8c523c116100fd5780638a8c523c146109335780638da5cb5b1461094a57806391cca3db1461098b57806395d89b41146109cc5780639c8d35e114610a5c5761025c565b8063715018a614610832578063733b864f14610849578063768dc710146108605780637cca52fe146108c757806389a30271146108f25761025c565b806339509351116101d2578063565836e711610196578063565836e7146106da5780635e53456014610705578063619426d31461073057806368e7f0c61461075b5780636f60efbc1461078657806370a08231146107cd5761025c565b8063395093511461057f578063429f1add146105f0578063437823ec1461061b57806349bd5a5e1461066c5780634a74bb02146106ad5761025c565b80631694505e116102195780631694505e1461041357806318160ddd1461045457806323b872dd1461047f5780632d3e474a14610510578063313ce567146105515761025c565b80630492f0551461026157806306b091f91461028c57806306fdde03146102e7578063095ea7b314610377578063137bb992146103e85761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b50610276610ef2565b6040518082815260200191505060405180910390f35b34801561029857600080fd5b506102e5600480360360408110156102af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ef8565b005b3480156102f357600080fd5b506102fc610fef565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033c578082015181840152602081019050610321565b50505050905090810190601f1680156103695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561038357600080fd5b506103d06004803603604081101561039a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611091565b60405180821515815260200191505060405180910390f35b3480156103f457600080fd5b506103fd6110af565b6040518082815260200191505060405180910390f35b34801561041f57600080fd5b506104286110b5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561046057600080fd5b506104696110d9565b6040518082815260200191505060405180910390f35b34801561048b57600080fd5b506104f8600480360360608110156104a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110e3565b60405180821515815260200191505060405180910390f35b34801561051c57600080fd5b506105256111bc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055d57600080fd5b506105666111e2565b604051808260ff16815260200191505060405180910390f35b34801561058b57600080fd5b506105d8600480360360408110156105a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111f9565b60405180821515815260200191505060405180910390f35b3480156105fc57600080fd5b506106056112ac565b6040518082815260200191505060405180910390f35b34801561062757600080fd5b5061066a6004803603602081101561063e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112b2565b005b34801561067857600080fd5b506106816113d5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b957600080fd5b506106c26113fb565b60405180821515815260200191505060405180910390f35b3480156106e657600080fd5b506106ef61140e565b6040518082815260200191505060405180910390f35b34801561071157600080fd5b5061071a611414565b6040518082815260200191505060405180910390f35b34801561073c57600080fd5b5061074561141a565b6040518082815260200191505060405180910390f35b34801561076757600080fd5b50610770611420565b6040518082815260200191505060405180910390f35b34801561079257600080fd5b506107cb600480360360408110156107a957600080fd5b8101908080351515906020019092919080359060200190929190505050611426565b005b3480156107d957600080fd5b5061081c600480360360208110156107f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611513565b6040518082815260200191505060405180910390f35b34801561083e57600080fd5b5061084761155c565b005b34801561085557600080fd5b5061085e6116e2565b005b34801561086c57600080fd5b506108af6004803603602081101561088357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c3565b60405180821515815260200191505060405180910390f35b3480156108d357600080fd5b506108dc6117e3565b6040518082815260200191505060405180910390f35b3480156108fe57600080fd5b506109076117e9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093f57600080fd5b5061094861180d565b005b34801561095657600080fd5b5061095f611956565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561099757600080fd5b506109a061197f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109d857600080fd5b506109e16119a5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a21578082015181840152602081019050610a06565b50505050905090810190601f168015610a4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a6857600080fd5b50610bb360048036036040811015610a7f57600080fd5b8101908080359060200190640100000000811115610a9c57600080fd5b820183602082011115610aae57600080fd5b80359060200191846020830284011164010000000083111715610ad057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610b3057600080fd5b820183602082011115610b4257600080fd5b80359060200191846020830284011164010000000083111715610b6457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611a47565b005b348015610bc157600080fd5b50610bca611d07565b6040518082815260200191505060405180910390f35b348015610bec57600080fd5b50610c3960048036036040811015610c0357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d0d565b60405180821515815260200191505060405180910390f35b348015610c5d57600080fd5b50610caa60048036036040811015610c7457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dda565b60405180821515815260200191505060405180910390f35b348015610cce57600080fd5b50610cd7611df8565b6040518082815260200191505060405180910390f35b348015610cf957600080fd5b50610d02611dfe565b6040518082815260200191505060405180910390f35b348015610d2457600080fd5b50610d8760048036036040811015610d3b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e0a565b6040518082815260200191505060405180910390f35b348015610da957600080fd5b50610df860048036036040811015610dc057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611e91565b005b348015610e0657600080fd5b50610e0f611fb4565b6040518082815260200191505060405180910390f35b348015610e3157600080fd5b50610e7460048036036020811015610e4857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fba565b005b348015610e8257600080fd5b50610ec560048036036020811015610e9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120dd565b005b348015610ed357600080fd5b50610edc6122e8565b6040518082815260200191505060405180910390f35b601b5481565b610f00612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610feb33828473ffffffffffffffffffffffffffffffffffffffff166123409092919063ffffffff16565b5050565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110875780601f1061105c57610100808354040283529160200191611087565b820191906000526020600020905b81548152906001019060200180831161106a57829003601f168201915b5050505050905090565b60006110a561109e612338565b84846123e2565b6001905092915050565b60145481565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600854905090565b60006110f08484846125d9565b6111b1846110fc612338565b6111ac856040518060600160405280602881526020016145d160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611162612338565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5b9092919063ffffffff16565b6123e2565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c60009054906101000a900460ff16905090565b60006112a2611206612338565b8461129d8560026000611217612338565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f1b90919063ffffffff16565b6123e2565b6001905092915050565b600d5481565b6112ba612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960159054906101000a900460ff1681565b60105481565b60135481565b60125481565b60115481565b61142e612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b81601960156101000a81548160ff02191690831515021790555080601d819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611564612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611624576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6116ea612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006117b530611513565b90506117c081612fa3565b50565b60036020528060005260406000206000915054906101000a900460ff1681565b601c5481565b7f000000000000000000000000000000000000000000000000000000000000000081565b611815612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006018541461194d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f416c726561647920656e61626c6564000000000000000000000000000000000081525060200191505060405180910390fd5b42601881905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a3d5780601f10611a1257610100808354040283529160200191611a3d565b820191906000526020600020905b815481529060010190602001808311611a2057829003601f168201915b5050505050905090565b611a4f612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8051825114611b86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e636f727265637420696e707574000000000000000000000000000000000081525060200191505060405180910390fd5b60005b8251811015611cbe576000838281518110611ba057fe5b602002602001015190506000838381518110611bb857fe5b602002602001015190506001821415611bd75780600d81905550611caf565b6002821415611bec5780600e81905550611cae565b6003821415611c015780601181905550611cad565b6004821415611c165780601281905550611cac565b6005821415611c2b5780600f81905550611cab565b6006821415611c405780601081905550611caa565b6007821415611c555780601381905550611ca9565b6008821415611c6a5780601481905550611ca8565b6009821415611c7f5780601581905550611ca7565b600a821415611c945780601681905550611ca6565b600b821415611ca557806017819055505b5b5b5b5b5b5b5b5b5b5b50508080600101915050611b89565b506000601454601054601254600e5401010190506000601354600f54601154600d54010101905060fa821115611cf357600080fd5b6064811115611d0157600080fd5b50505050565b600f5481565b6000611dd0611d1a612338565b84611dcb856040518060600160405280602581526020016146956025913960026000611d44612338565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5b9092919063ffffffff16565b6123e2565b6001905092915050565b6000611dee611de7612338565b84846125d9565b6001905092915050565b600e5481565b67016345785d8a000081565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e99612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60095481565b611fc2612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612082576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6120e5612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561222b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806145686026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b600061233083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e5b565b905092915050565b600033905090565b6123dd8363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613251565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612468576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806146476024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061458e6022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561265f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806146226025913960400191505060405180910390fd5b600081116126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806145f96029913960400191505060405180910390fd5b60006126c330611513565b90506000601d5482101590508080156126e95750601960149054906101000a900460ff16155b80156127435750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561275b5750601960159054906101000a900460ff165b1561276a5761276982612fa3565b5b6000600190506000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161490506000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16149050600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128bb5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128c95760009250612d33565b600060185411612941576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f54726164696e67206e6f7420656e61626c65642079657400000000000000000081525060200191505060405180910390fd5b8115801561294d575080155b15612a145742600954600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115612a0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f436f6f6c646f776e00000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60009250612c22565b8015612b1c5742600954600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115612ad3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f436f6f6c646f776e00000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b42600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c21565b8115612c205742600954600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115612bdb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f436f6f6c646f776e00000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b42600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b8115612ca157601b54861115612ca0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d617820627579206c696d69742065786365656465640000000000000000000081525060200191505060405180910390fd5b5b808015612cb457506202a3006018540142105b15612d3257601c54861115612d31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4d61782073656c6c206c696d697420657863656564656400000000000000000081525060200191505060405180910390fd5b5b5b612d41888888868686613340565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612de95750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15612e5157601a54612dfa88611513565b10612e50576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806146ba6021913960400191505060405180910390fd5b5b5050505050505050565b6000838311158290612f08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ecd578082015181840152602081019050612eb2565b50505050905090810190601f168015612efa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015612f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6001601960146101000a81548160ff0219169083151502179055506000816015541015612fd05760155490505b6000612ff9601654612feb84866122ee90919063ffffffff16565b6122ee90919063ffffffff16565b9050600061301160028461390490919063ffffffff16565b9050600061302882856122ee90919063ffffffff16565b9050600061303f8484612f1b90919063ffffffff16565b905061304a8161394e565b600047905060006130788361306a84601754613bfc90919063ffffffff16565b61390490919063ffffffff16565b905060006130a1846130938589613bfc90919063ffffffff16565b61390490919063ffffffff16565b90506000851180156130b35750600081115b156130c3576130c28582613c82565b5b6000821180156130d257504782105b1561316057600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405180600001905060006040518083038185875af1925050503d8060008114613157576040519150601f19603f3d011682016040523d82523d6000602084013e61315c565b606091505b5050505b60004711156131f257600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405180600001905060006040518083038185875af1925050503d80600081146131e9576040519150601f19603f3d011682016040523d82523d6000602084013e6131ee565b606091505b5050505b60006131fd30611513565b905060008111156132125761321181613dee565b5b6000601781905550600060158190555060006016819055505050505050505050506000601960146101000a81548160ff02191690831515021790555050565b60606132b3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166142389092919063ffffffff16565b905060008151111561333b578080602001905160208110156132d457600080fd5b810190808051906020019092919050505061333a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061466b602a913960400191505060405180910390fd5b5b505050565b600084905083156135f257600080600080861561340a576133806103e8613372600d548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b91506133ab6103e861339d6013548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b90506133d66103e86133c8600f548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b92506134016103e86133f36011548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b83828401010193505b851561358357600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156134d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f534e49504552210000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6134f96103e86134eb600e548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b91506135246103e86135166014548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b905061354f6103e86135416010548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b925061357a6103e861356c6012548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b83828401010193505b61359684866122ee90919063ffffffff16565b94506135ad82601754612f1b90919063ffffffff16565b6017819055506135c883601554612f1b90919063ffffffff16565b6015819055506135e381601654612f1b90919063ffffffff16565b601681905550505050506136c5565b821580156135fe575081155b156136c457600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156136c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f534e49504552210000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5b61371785600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ee90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137ac81600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f1b90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061385361380582876122ee90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f1b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505050505050565b600061394683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614250565b905092915050565b6060600267ffffffffffffffff8111801561396857600080fd5b506040519080825280602002602001820160405280156139975781602001602082028036833780820191505090505b50905030816000815181106139a857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613a4857600080fd5b505afa158015613a5c573d6000803e3d6000fd5b505050506040513d6020811015613a7257600080fd5b810190808051906020019092919050505081600181518110613a9057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613af5307f0000000000000000000000000000000000000000000000000000000000000000846123e2565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015613bb7578082015181840152602081019050613b9c565b505050509050019650505050505050600060405180830381600087803b158015613be057600080fd5b505af1158015613bf4573d6000803e3d6000fd5b505050505050565b600080831415613c0f5760009050613c7c565b6000828402905082848281613c2057fe5b0414613c77576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806145b06021913960400191505060405180910390fd5b809150505b92915050565b613cad307f0000000000000000000000000000000000000000000000000000000000000000846123e2565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015613d9757600080fd5b505af1158015613dab573d6000803e3d6000fd5b50505050506040513d6060811015613dc257600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050505050565b6060600367ffffffffffffffff81118015613e0857600080fd5b50604051908082528060200260200182016040528015613e375781602001602082028036833780820191505090505b5090503081600081518110613e4857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613ee857600080fd5b505afa158015613efc573d6000803e3d6000fd5b505050506040513d6020811015613f1257600080fd5b810190808051906020019092919050505081600181518110613f3057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600281518110613f9857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613ffd307f0000000000000000000000000000000000000000000000000000000000000000846123e2565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16635c11d7958360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156140bf5780820151818401526020810190506140a4565b505050509050019650505050505050600060405180830381600087803b1580156140e857600080fd5b505af11580156140fc573d6000803e3d6000fd5b5050505060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561418957600080fd5b505afa15801561419d573d6000803e3d6000fd5b505050506040513d60208110156141b357600080fd5b81019080805190602001909291905050509050614233600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16827f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166123409092919063ffffffff16565b505050565b60606142478484600085614316565b90509392505050565b600080831182906142fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156142c15780820151818401526020810190506142a6565b50505050905090810190601f1680156142ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161430857fe5b049050809150509392505050565b60606143218561451c565b614393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106143e357805182526020820191506020810190506020830392506143c0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614445576040519150601f19603f3d011682016040523d82523d6000602084013e61444a565b606091505b5091509150811561445f578092505050614514565b6000815111156144725780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156144d95780820151818401526020810190506144be565b50505050905090810190601f1680156145065780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561455e57506000801b8214155b9250505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4d61782057616c6c657420686f6c64696e67206c696d6974206578636565646564a2646970667358221220a3c73b5826db4542d2c0893da36157bde8f47b717c21c17f75dc98d045719af964736f6c634300060c0033000000000000000000000000fa81f0f7aa41a860c9b4bb19dc849f2546b376b000000000000000000000000068aa7b81069dadec26d41cbbff7a1d8439a80bbf000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000bf9ae816c21b1a84ac2eebe55b31eb0587b624030000000000000000000000009e88605d2160dfb020cd2feaaa06cff835517690000000000000000000000000fdf745a134980808eb4d5d0387f841c84e771e85000000000000000000000000b7b4fed22e69c53fb23b4c75ce87f8ce22f468dc00000000000000000000000068d86fa58a538ff20573475eb01fb35fcf11cd4f000000000000000000000000aa3b63fd9a4ea7814ae84002146f8a613a4758e500000000000000000000000098a182e2a26ef94a8a37b3aee2e9c69ef0de312e0000000000000000000000006b6f9776f4286bd2d13d25ee140131596be141db000000000000000000000000c6c23a7f9c94da220558e7db16af6207d38d5391000000000000000000000000359887e935ab22f4547afffdc08644e58beafc9f00000000000000000000000008be562e76eb06e2cc0c77261b4fe4e8f6ca51bb000000000000000000000000970aeec90d93ed9fc3ea081b2bf079a2db325cec000000000000000000000000c9ff8001f29026bb2311ac949ecbdc58cdb66335000000000000000000000000791743bb58196ff2b1feb6d74e7a991f97c8ea1c0000000000000000000000000c7e6bac8e67646aa8e537bab27f8671c6a18801
Deployed Bytecode
0x6080604052600436106102555760003560e01c8063715018a6116101395780639e3a9409116100b6578063dd62ed3e1161007a578063dd62ed3e14610d18578063e21702a614610d9d578063e920978f14610dfa578063ea2f0b3714610e25578063f2fde38b14610e76578063f499133514610ec75761025c565b80639e3a940914610bb5578063a457c2d714610be0578063a9059cbb14610c51578063d7d31f5f14610cc2578063d894bef614610ced5761025c565b80638a8c523c116100fd5780638a8c523c146109335780638da5cb5b1461094a57806391cca3db1461098b57806395d89b41146109cc5780639c8d35e114610a5c5761025c565b8063715018a614610832578063733b864f14610849578063768dc710146108605780637cca52fe146108c757806389a30271146108f25761025c565b806339509351116101d2578063565836e711610196578063565836e7146106da5780635e53456014610705578063619426d31461073057806368e7f0c61461075b5780636f60efbc1461078657806370a08231146107cd5761025c565b8063395093511461057f578063429f1add146105f0578063437823ec1461061b57806349bd5a5e1461066c5780634a74bb02146106ad5761025c565b80631694505e116102195780631694505e1461041357806318160ddd1461045457806323b872dd1461047f5780632d3e474a14610510578063313ce567146105515761025c565b80630492f0551461026157806306b091f91461028c57806306fdde03146102e7578063095ea7b314610377578063137bb992146103e85761025c565b3661025c57005b600080fd5b34801561026d57600080fd5b50610276610ef2565b6040518082815260200191505060405180910390f35b34801561029857600080fd5b506102e5600480360360408110156102af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610ef8565b005b3480156102f357600080fd5b506102fc610fef565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561033c578082015181840152602081019050610321565b50505050905090810190601f1680156103695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561038357600080fd5b506103d06004803603604081101561039a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611091565b60405180821515815260200191505060405180910390f35b3480156103f457600080fd5b506103fd6110af565b6040518082815260200191505060405180910390f35b34801561041f57600080fd5b506104286110b5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561046057600080fd5b506104696110d9565b6040518082815260200191505060405180910390f35b34801561048b57600080fd5b506104f8600480360360608110156104a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110e3565b60405180821515815260200191505060405180910390f35b34801561051c57600080fd5b506105256111bc565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561055d57600080fd5b506105666111e2565b604051808260ff16815260200191505060405180910390f35b34801561058b57600080fd5b506105d8600480360360408110156105a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506111f9565b60405180821515815260200191505060405180910390f35b3480156105fc57600080fd5b506106056112ac565b6040518082815260200191505060405180910390f35b34801561062757600080fd5b5061066a6004803603602081101561063e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112b2565b005b34801561067857600080fd5b506106816113d5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106b957600080fd5b506106c26113fb565b60405180821515815260200191505060405180910390f35b3480156106e657600080fd5b506106ef61140e565b6040518082815260200191505060405180910390f35b34801561071157600080fd5b5061071a611414565b6040518082815260200191505060405180910390f35b34801561073c57600080fd5b5061074561141a565b6040518082815260200191505060405180910390f35b34801561076757600080fd5b50610770611420565b6040518082815260200191505060405180910390f35b34801561079257600080fd5b506107cb600480360360408110156107a957600080fd5b8101908080351515906020019092919080359060200190929190505050611426565b005b3480156107d957600080fd5b5061081c600480360360208110156107f057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611513565b6040518082815260200191505060405180910390f35b34801561083e57600080fd5b5061084761155c565b005b34801561085557600080fd5b5061085e6116e2565b005b34801561086c57600080fd5b506108af6004803603602081101561088357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117c3565b60405180821515815260200191505060405180910390f35b3480156108d357600080fd5b506108dc6117e3565b6040518082815260200191505060405180910390f35b3480156108fe57600080fd5b506109076117e9565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093f57600080fd5b5061094861180d565b005b34801561095657600080fd5b5061095f611956565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561099757600080fd5b506109a061197f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156109d857600080fd5b506109e16119a5565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a21578082015181840152602081019050610a06565b50505050905090810190601f168015610a4e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610a6857600080fd5b50610bb360048036036040811015610a7f57600080fd5b8101908080359060200190640100000000811115610a9c57600080fd5b820183602082011115610aae57600080fd5b80359060200191846020830284011164010000000083111715610ad057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f82011690508083019250505050505050919291929080359060200190640100000000811115610b3057600080fd5b820183602082011115610b4257600080fd5b80359060200191846020830284011164010000000083111715610b6457600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f820116905080830192505050505050509192919290505050611a47565b005b348015610bc157600080fd5b50610bca611d07565b6040518082815260200191505060405180910390f35b348015610bec57600080fd5b50610c3960048036036040811015610c0357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611d0d565b60405180821515815260200191505060405180910390f35b348015610c5d57600080fd5b50610caa60048036036040811015610c7457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dda565b60405180821515815260200191505060405180910390f35b348015610cce57600080fd5b50610cd7611df8565b6040518082815260200191505060405180910390f35b348015610cf957600080fd5b50610d02611dfe565b6040518082815260200191505060405180910390f35b348015610d2457600080fd5b50610d8760048036036040811015610d3b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e0a565b6040518082815260200191505060405180910390f35b348015610da957600080fd5b50610df860048036036040811015610dc057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050611e91565b005b348015610e0657600080fd5b50610e0f611fb4565b6040518082815260200191505060405180910390f35b348015610e3157600080fd5b50610e7460048036036020811015610e4857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611fba565b005b348015610e8257600080fd5b50610ec560048036036020811015610e9957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120dd565b005b348015610ed357600080fd5b50610edc6122e8565b6040518082815260200191505060405180910390f35b601b5481565b610f00612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fc0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610feb33828473ffffffffffffffffffffffffffffffffffffffff166123409092919063ffffffff16565b5050565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156110875780601f1061105c57610100808354040283529160200191611087565b820191906000526020600020905b81548152906001019060200180831161106a57829003601f168201915b5050505050905090565b60006110a561109e612338565b84846123e2565b6001905092915050565b60145481565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600854905090565b60006110f08484846125d9565b6111b1846110fc612338565b6111ac856040518060600160405280602881526020016145d160289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611162612338565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5b9092919063ffffffff16565b6123e2565b600190509392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600c60009054906101000a900460ff16905090565b60006112a2611206612338565b8461129d8560026000611217612338565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f1b90919063ffffffff16565b6123e2565b6001905092915050565b600d5481565b6112ba612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601960159054906101000a900460ff1681565b60105481565b60135481565b60125481565b60115481565b61142e612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b81601960156101000a81548160ff02191690831515021790555080601d819055505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611564612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611624576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6116ea612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006117b530611513565b90506117c081612fa3565b50565b60036020528060005260406000206000915054906101000a900460ff1681565b601c5481565b7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b611815612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60006018541461194d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f416c726561647920656e61626c6564000000000000000000000000000000000081525060200191505060405180910390fd5b42601881905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a3d5780601f10611a1257610100808354040283529160200191611a3d565b820191906000526020600020905b815481529060010190602001808311611a2057829003601f168201915b5050505050905090565b611a4f612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b0f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8051825114611b86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600f8152602001807f496e636f727265637420696e707574000000000000000000000000000000000081525060200191505060405180910390fd5b60005b8251811015611cbe576000838281518110611ba057fe5b602002602001015190506000838381518110611bb857fe5b602002602001015190506001821415611bd75780600d81905550611caf565b6002821415611bec5780600e81905550611cae565b6003821415611c015780601181905550611cad565b6004821415611c165780601281905550611cac565b6005821415611c2b5780600f81905550611cab565b6006821415611c405780601081905550611caa565b6007821415611c555780601381905550611ca9565b6008821415611c6a5780601481905550611ca8565b6009821415611c7f5780601581905550611ca7565b600a821415611c945780601681905550611ca6565b600b821415611ca557806017819055505b5b5b5b5b5b5b5b5b5b5b50508080600101915050611b89565b506000601454601054601254600e5401010190506000601354600f54601154600d54010101905060fa821115611cf357600080fd5b6064811115611d0157600080fd5b50505050565b600f5481565b6000611dd0611d1a612338565b84611dcb856040518060600160405280602581526020016146956025913960026000611d44612338565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5b9092919063ffffffff16565b6123e2565b6001905092915050565b6000611dee611de7612338565b84846125d9565b6001905092915050565b600e5481565b67016345785d8a000081565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611e99612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f59576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60095481565b611fc2612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612082576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6120e5612338565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146121a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561222b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806145686026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b600061233083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612e5b565b905092915050565b600033905090565b6123dd8363a9059cbb60e01b8484604051602401808373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050613251565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612468576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806146476024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156124ee576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061458e6022913960400191505060405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561265f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806146226025913960400191505060405180910390fd5b600081116126b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806145f96029913960400191505060405180910390fd5b60006126c330611513565b90506000601d5482101590508080156126e95750601960149054906101000a900460ff16155b80156127435750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561275b5750601960159054906101000a900460ff165b1561276a5761276982612fa3565b5b6000600190506000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161490506000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16149050600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128bb5750600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156128c95760009250612d33565b600060185411612941576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f54726164696e67206e6f7420656e61626c65642079657400000000000000000081525060200191505060405180910390fd5b8115801561294d575080155b15612a145742600954600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115612a0b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f436f6f6c646f776e00000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60009250612c22565b8015612b1c5742600954600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115612ad3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f436f6f6c646f776e00000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b42600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c21565b8115612c205742600954600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054011115612bdb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260088152602001807f436f6f6c646f776e00000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b42600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b8115612ca157601b54861115612ca0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4d617820627579206c696d69742065786365656465640000000000000000000081525060200191505060405180910390fd5b5b808015612cb457506202a3006018540142105b15612d3257601c54861115612d31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f4d61782073656c6c206c696d697420657863656564656400000000000000000081525060200191505060405180910390fd5b5b5b612d41888888868686613340565b600360008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612de95750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15612e5157601a54612dfa88611513565b10612e50576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806146ba6021913960400191505060405180910390fd5b5b5050505050505050565b6000838311158290612f08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612ecd578082015181840152602081019050612eb2565b50505050905090810190601f168015612efa5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015612f99576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6001601960146101000a81548160ff0219169083151502179055506000816015541015612fd05760155490505b6000612ff9601654612feb84866122ee90919063ffffffff16565b6122ee90919063ffffffff16565b9050600061301160028461390490919063ffffffff16565b9050600061302882856122ee90919063ffffffff16565b9050600061303f8484612f1b90919063ffffffff16565b905061304a8161394e565b600047905060006130788361306a84601754613bfc90919063ffffffff16565b61390490919063ffffffff16565b905060006130a1846130938589613bfc90919063ffffffff16565b61390490919063ffffffff16565b90506000851180156130b35750600081115b156130c3576130c28582613c82565b5b6000821180156130d257504782105b1561316057600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405180600001905060006040518083038185875af1925050503d8060008114613157576040519150601f19603f3d011682016040523d82523d6000602084013e61315c565b606091505b5050505b60004711156131f257600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff164760405180600001905060006040518083038185875af1925050503d80600081146131e9576040519150601f19603f3d011682016040523d82523d6000602084013e6131ee565b606091505b5050505b60006131fd30611513565b905060008111156132125761321181613dee565b5b6000601781905550600060158190555060006016819055505050505050505050506000601960146101000a81548160ff02191690831515021790555050565b60606132b3826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166142389092919063ffffffff16565b905060008151111561333b578080602001905160208110156132d457600080fd5b810190808051906020019092919050505061333a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061466b602a913960400191505060405180910390fd5b5b505050565b600084905083156135f257600080600080861561340a576133806103e8613372600d548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b91506133ab6103e861339d6013548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b90506133d66103e86133c8600f548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b92506134016103e86133f36011548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b83828401010193505b851561358357600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156134d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f534e49504552210000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6134f96103e86134eb600e548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b91506135246103e86135166014548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b905061354f6103e86135416010548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b925061357a6103e861356c6012548c613bfc90919063ffffffff16565b61390490919063ffffffff16565b83828401010193505b61359684866122ee90919063ffffffff16565b94506135ad82601754612f1b90919063ffffffff16565b6017819055506135c883601554612f1b90919063ffffffff16565b6015819055506135e381601654612f1b90919063ffffffff16565b601681905550505050506136c5565b821580156135fe575081155b156136c457600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156136c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f534e49504552210000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b5b5b61371785600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ee90919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506137ac81600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f1b90919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061385361380582876122ee90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f1b90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350505050505050565b600061394683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614250565b905092915050565b6060600267ffffffffffffffff8111801561396857600080fd5b506040519080825280602002602001820160405280156139975781602001602082028036833780820191505090505b50905030816000815181106139a857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613a4857600080fd5b505afa158015613a5c573d6000803e3d6000fd5b505050506040513d6020811015613a7257600080fd5b810190808051906020019092919050505081600181518110613a9057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613af5307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846123e2565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b83811015613bb7578082015181840152602081019050613b9c565b505050509050019650505050505050600060405180830381600087803b158015613be057600080fd5b505af1158015613bf4573d6000803e3d6000fd5b505050505050565b600080831415613c0f5760009050613c7c565b6000828402905082848281613c2057fe5b0414613c77576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806145b06021913960400191505060405180910390fd5b809150505b92915050565b613cad307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846123e2565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401808773ffffffffffffffffffffffffffffffffffffffff1681526020018681526020018581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200196505050505050506060604051808303818588803b158015613d9757600080fd5b505af1158015613dab573d6000803e3d6000fd5b50505050506040513d6060811015613dc257600080fd5b810190808051906020019092919080519060200190929190805190602001909291905050505050505050565b6060600367ffffffffffffffff81118015613e0857600080fd5b50604051908082528060200260200182016040528015613e375781602001602082028036833780820191505090505b5090503081600081518110613e4857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015613ee857600080fd5b505afa158015613efc573d6000803e3d6000fd5b505050506040513d6020811015613f1257600080fd5b810190808051906020019092919050505081600181518110613f3057fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881600281518110613f9857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050613ffd307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846123e2565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16635c11d7958360008430426040518663ffffffff1660e01b815260040180868152602001858152602001806020018473ffffffffffffffffffffffffffffffffffffffff168152602001838152602001828103825285818151815260200191508051906020019060200280838360005b838110156140bf5780820151818401526020810190506140a4565b505050509050019650505050505050600060405180830381600087803b1580156140e857600080fd5b505af11580156140fc573d6000803e3d6000fd5b5050505060007f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561418957600080fd5b505afa15801561419d573d6000803e3d6000fd5b505050506040513d60208110156141b357600080fd5b81019080805190602001909291905050509050614233600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16827f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4873ffffffffffffffffffffffffffffffffffffffff166123409092919063ffffffff16565b505050565b60606142478484600085614316565b90509392505050565b600080831182906142fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156142c15780820151818401526020810190506142a6565b50505050905090810190601f1680156142ee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600083858161430857fe5b049050809150509392505050565b60606143218561451c565b614393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106143e357805182526020820191506020810190506020830392506143c0565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614445576040519150601f19603f3d011682016040523d82523d6000602084013e61444a565b606091505b5091509150811561445f578092505050614514565b6000815111156144725780518082602001fd5b836040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156144d95780820151818401526020810190506144be565b50505050905090810190601f1680156145065780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b949350505050565b60008060007fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47060001b9050833f915080821415801561455e57506000801b8214155b9250505091905056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4d61782057616c6c657420686f6c64696e67206c696d6974206578636565646564a2646970667358221220a3c73b5826db4542d2c0893da36157bde8f47b717c21c17f75dc98d045719af964736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000fa81f0f7aa41a860c9b4bb19dc849f2546b376b000000000000000000000000068aa7b81069dadec26d41cbbff7a1d8439a80bbf000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000f000000000000000000000000bf9ae816c21b1a84ac2eebe55b31eb0587b624030000000000000000000000009e88605d2160dfb020cd2feaaa06cff835517690000000000000000000000000fdf745a134980808eb4d5d0387f841c84e771e85000000000000000000000000b7b4fed22e69c53fb23b4c75ce87f8ce22f468dc00000000000000000000000068d86fa58a538ff20573475eb01fb35fcf11cd4f000000000000000000000000aa3b63fd9a4ea7814ae84002146f8a613a4758e500000000000000000000000098a182e2a26ef94a8a37b3aee2e9c69ef0de312e0000000000000000000000006b6f9776f4286bd2d13d25ee140131596be141db000000000000000000000000c6c23a7f9c94da220558e7db16af6207d38d5391000000000000000000000000359887e935ab22f4547afffdc08644e58beafc9f00000000000000000000000008be562e76eb06e2cc0c77261b4fe4e8f6ca51bb000000000000000000000000970aeec90d93ed9fc3ea081b2bf079a2db325cec000000000000000000000000c9ff8001f29026bb2311ac949ecbdc58cdb66335000000000000000000000000791743bb58196ff2b1feb6d74e7a991f97c8ea1c0000000000000000000000000c7e6bac8e67646aa8e537bab27f8671c6a18801
-----Decoded View---------------
Arg [0] : _marketingWallet (address): 0xfa81f0f7Aa41A860c9B4bB19Dc849F2546b376B0
Arg [1] : _devWallet (address): 0x68aA7b81069dAdEc26D41cbbFf7a1d8439a80Bbf
Arg [2] : _USDC (address): 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
Arg [3] : _w (address[]): 0xBf9Ae816c21B1a84ac2eeBe55B31eB0587B62403,0x9E88605D2160dfB020cD2FEAAA06cff835517690,0xfDf745a134980808EB4D5d0387f841c84e771E85,0xB7B4FeD22E69c53fb23B4C75CE87F8ce22F468DC,0x68D86Fa58A538Ff20573475eb01fb35fCf11cd4F,0xAA3B63FD9a4ea7814Ae84002146F8a613A4758E5,0x98a182e2A26EF94a8A37B3aEe2E9C69ef0DE312e,0x6b6f9776F4286bd2D13d25Ee140131596bE141Db,0xc6C23a7f9c94Da220558E7db16af6207d38d5391,0x359887e935Ab22f4547Afffdc08644E58bEAFc9f,0x08bE562E76Eb06E2cc0c77261B4fE4e8f6cA51bb,0x970AEEC90D93Ed9fc3eA081b2Bf079A2DB325CeC,0xC9Ff8001F29026BB2311AC949EcBDC58cdB66335,0x791743bb58196FF2B1fEb6D74E7a991f97c8eA1C,0x0C7e6BAC8e67646AA8e537BAB27F8671C6A18801
-----Encoded View---------------
20 Constructor Arguments found :
Arg [0] : 000000000000000000000000fa81f0f7aa41a860c9b4bb19dc849f2546b376b0
Arg [1] : 00000000000000000000000068aa7b81069dadec26d41cbbff7a1d8439a80bbf
Arg [2] : 000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000f
Arg [5] : 000000000000000000000000bf9ae816c21b1a84ac2eebe55b31eb0587b62403
Arg [6] : 0000000000000000000000009e88605d2160dfb020cd2feaaa06cff835517690
Arg [7] : 000000000000000000000000fdf745a134980808eb4d5d0387f841c84e771e85
Arg [8] : 000000000000000000000000b7b4fed22e69c53fb23b4c75ce87f8ce22f468dc
Arg [9] : 00000000000000000000000068d86fa58a538ff20573475eb01fb35fcf11cd4f
Arg [10] : 000000000000000000000000aa3b63fd9a4ea7814ae84002146f8a613a4758e5
Arg [11] : 00000000000000000000000098a182e2a26ef94a8a37b3aee2e9c69ef0de312e
Arg [12] : 0000000000000000000000006b6f9776f4286bd2d13d25ee140131596be141db
Arg [13] : 000000000000000000000000c6c23a7f9c94da220558e7db16af6207d38d5391
Arg [14] : 000000000000000000000000359887e935ab22f4547afffdc08644e58beafc9f
Arg [15] : 00000000000000000000000008be562e76eb06e2cc0c77261b4fe4e8f6ca51bb
Arg [16] : 000000000000000000000000970aeec90d93ed9fc3ea081b2bf079a2db325cec
Arg [17] : 000000000000000000000000c9ff8001f29026bb2311ac949ecbdc58cdb66335
Arg [18] : 000000000000000000000000791743bb58196ff2b1feb6d74e7a991f97c8ea1c
Arg [19] : 0000000000000000000000000c7e6bac8e67646aa8e537bab27f8671c6a18801
Deployed Bytecode Sourcemap
18642:14852:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20219:49;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30289:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21522:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22355:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19686:39;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19951:51;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21799:95;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22524:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19099:32;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21708:83;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22845:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19386:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23528:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20009:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20110:40;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19518:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19641:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19601:31;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19564:30;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;25310:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21902:119;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17100:148;;;;;;;;;;;;;:::i;:::-;;23348:172;;;;;;;;;;;;;:::i;:::-;;18938:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;20275:49;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20044:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;25516:145;;;;;;;;;;;;;:::i;:::-;;16457:79;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19138:26;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;21613:87;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23769:1533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19475:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23071:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22029:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;19429:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19734:58;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22204:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;30153:128;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19223:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;23649:112;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17403:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20159:53;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;20219:49;;;;:::o;30289:143::-;16679:12;:10;:12::i;:::-;16669:22;;:6;;;;;;;;;;:22;;;16661:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30376:48:::1;30404:10;30416:7;30383:6;30376:27;;;;:48;;;;;:::i;:::-;30289:143:::0;;:::o;21522:83::-;21559:13;21592:5;21585:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21522:83;:::o;22355:161::-;22430:4;22447:39;22456:12;:10;:12::i;:::-;22470:7;22479:6;22447:8;:39::i;:::-;22504:4;22497:11;;22355:161;;;;:::o;19686:39::-;;;;:::o;19951:51::-;;;:::o;21799:95::-;21852:7;21879;;21872:14;;21799:95;:::o;22524:313::-;22622:4;22639:36;22649:6;22657:9;22668:6;22639:9;:36::i;:::-;22686:121;22695:6;22703:12;:10;:12::i;:::-;22717:89;22755:6;22717:89;;;;;;;;;;;;;;;;;:11;:19;22729:6;22717:19;;;;;;;;;;;;;;;:33;22737:12;:10;:12::i;:::-;22717:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;22686:8;:121::i;:::-;22825:4;22818:11;;22524:313;;;;;:::o;19099:32::-;;;;;;;;;;;;;:::o;21708:83::-;21749:5;21774:9;;;;;;;;;;;21767:16;;21708:83;:::o;22845:218::-;22933:4;22950:83;22959:12;:10;:12::i;:::-;22973:7;22982:50;23021:10;22982:11;:25;22994:12;:10;:12::i;:::-;22982:25;;;;;;;;;;;;;;;:34;23008:7;22982:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;22950:8;:83::i;:::-;23051:4;23044:11;;22845:218;;;;:::o;19386:36::-;;;;:::o;23528:113::-;16679:12;:10;:12::i;:::-;16669:22;;:6;;;;;;;;;;:22;;;16661:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23629:4:::1;23599:18;:27;23618:7;23599:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;23528:113:::0;:::o;20009:28::-;;;;;;;;;;;;;:::o;20110:40::-;;;;;;;;;;;;;:::o;19518:37::-;;;;:::o;19641:38::-;;;;:::o;19601:31::-;;;;:::o;19564:30::-;;;;:::o;25310:198::-;16679:12;:10;:12::i;:::-;16669:22;;:6;;;;;;;;;;:22;;;16661:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25436:8:::1;25412:21;;:32;;;;;;;;;;;;;;;;;;25487:13;25455:29;:45;;;;25310:198:::0;;:::o;21902:119::-;21968:7;21995:9;:18;22005:7;21995:18;;;;;;;;;;;;;;;;21988:25;;21902:119;;;:::o;17100:148::-;16679:12;:10;:12::i;:::-;16669:22;;:6;;;;;;;;;;:22;;;16661:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17207:1:::1;17170:40;;17191:6;::::0;::::1;;;;;;;;17170:40;;;;;;;;;;;;17238:1;17221:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;17100:148::o:0;23348:172::-;16679:12;:10;:12::i;:::-;16669:22;;:6;;;;;;;;;;:22;;;16661:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23410:28:::1;23441:24;23459:4;23441:9;:24::i;:::-;23410:55;;23476:36;23491:20;23476:14;:36::i;:::-;16739:1;23348:172::o:0;18938:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;20275:49::-;;;;:::o;20044:29::-;;;:::o;25516:145::-;16679:12;:10;:12::i;:::-;16669:22;;:6;;;;;;;;;;:22;;;16661:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25593:1:::1;25579:10;;:15;25571:43;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;25638:15;25625:10;:28;;;;25516:145::o:0;16457:79::-;16495:7;16522:6;;;;;;;;;;;16515:13;;16457:79;:::o;19138:26::-;;;;;;;;;;;;;:::o;21613:87::-;21652:13;21685:7;21678:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21613:87;:::o;23769:1533::-;16679:12;:10;:12::i;:::-;16669:22;;:6;;;;;;;;;;:22;;;16661:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23901:9:::1;:16;23881:9;:16;:36;23873:64;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;23951:6;23946:1077;23967:9;:16;23963:1;:20;23946:1077;;;24003:16;24022:9;24032:1;24022:12;;;;;;;;;;;;;;24003:31;;24045:16;24064:9;24074:1;24064:12;;;;;;;;;;;;;;24045:31;;24105:1;24093:8;:13;24089:925;;;24140:8;24121:16;:27;;;;24089:925;;;24191:1;24179:8;:13;24175:839;;;24227:8;24207:17;:28;;;;24175:839;;;24278:1;24266:8;:13;24262:752;;;24307:8;24294:10;:21;;;;24262:752;;;24358:1;24346:8;:13;24342:672;;;24388:8;24374:11;:22;;;;24342:672;;;24439:1;24427:8;:13;24423:591;;;24474:8;24455:16;:27;;;;24423:591;;;24525:1;24513:8;:13;24509:505;;;24561:8;24541:17;:28;;;;24509:505;;;24612:1;24600:8;:13;24596:418;;;24649:8;24628:18;:29;;;;24596:418;;;24700:1;24688:8;:13;24684:330;;;24738:8;24716:19;:30;;;;24684:330;;;24789:1;24777:8;:13;24773:241;;;24822:8;24805:14;:25;;;;24773:241;;;24873:2;24861:8;:14;24857:157;;;24909:8;24890:16;:27;;;;24857:157;;;24960:2;24948:8;:14;24944:70;;;24994:8;24977:14;:25;;;;24944:70;24857:157;24773:241;24684:330;24596:418;24509:505;24423:591;24342:672;24262:752;24175:839;24089:925;23946:1077;;23985:3;;;;;;;23946:1077;;;;25031:17;25105:19;;25085:17;;25071:11;;25051:17;;:31;:51;:73;25031:93;;25133:16;25203:18;;25184:16;;25171:10;;25152:16;;:29;:48;:69;25133:88;;25254:3;25238:12;:19;;25230:28;;;::::0;::::1;;25290:3;25275:11;:18;;25267:27;;;::::0;::::1;;16739:1;;23769:1533:::0;;:::o;19475:36::-;;;;:::o;23071:269::-;23164:4;23181:129;23190:12;:10;:12::i;:::-;23204:7;23213:96;23252:15;23213:96;;;;;;;;;;;;;;;;;:11;:25;23225:12;:10;:12::i;:::-;23213:25;;;;;;;;;;;;;;;:34;23239:7;23213:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;23181:8;:129::i;:::-;23328:4;23321:11;;23071:269;;;;:::o;22029:167::-;22107:4;22124:42;22134:12;:10;:12::i;:::-;22148:9;22159:6;22124:9;:42::i;:::-;22184:4;22177:11;;22029:167;;;;:::o;19429:37::-;;;;:::o;19734:58::-;19773:19;19734:58;:::o;22204:143::-;22285:7;22312:11;:18;22324:5;22312:18;;;;;;;;;;;;;;;:27;22331:7;22312:27;;;;;;;;;;;;;;;;22305:34;;22204:143;;;;:::o;30153:128::-;16679:12;:10;:12::i;:::-;16669:22;;:6;;;;;;;;;;:22;;;16661:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30265:8:::1;30243:9;:19;30253:8;30243:19;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;30153:128:::0;;:::o;19223:35::-;;;;:::o;23649:112::-;16679:12;:10;:12::i;:::-;16669:22;;:6;;;;;;;;;;:22;;;16661:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23748:5:::1;23718:18;:27;23737:7;23718:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;23649:112:::0;:::o;17403:244::-;16679:12;:10;:12::i;:::-;16669:22;;:6;;;;;;;;;;:22;;;16661:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17512:1:::1;17492:22;;:8;:22;;;;17484:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17602:8;17573:38;;17594:6;::::0;::::1;;;;;;;;17573:38;;;;;;;;;;;;17631:8;17622:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;17403:244:::0;:::o;20159:53::-;;;;:::o;4905:136::-;4963:7;4990:43;4994:1;4997;4990:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4983:50;;4905:136;;;;:::o;8934:106::-;8987:15;9022:10;9015:17;;8934:106;:::o;2770:177::-;2853:86;2873:5;2903:23;;;2928:2;2932:5;2880:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2853:19;:86::i;:::-;2770:177;;;:::o;25706:337::-;25816:1;25799:19;;:5;:19;;;;25791:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25897:1;25878:21;;:7;:21;;;;25870:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25981:6;25951:11;:18;25963:5;25951:18;;;;;;;;;;;;;;;:27;25970:7;25951:27;;;;;;;;;;;;;;;:36;;;;26019:7;26003:32;;26012:5;26003:32;;;26028:6;26003:32;;;;;;;;;;;;;;;;;;25706:337;;;:::o;26051:2257::-;26189:1;26173:18;;:4;:18;;;;26165:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26261:1;26252:6;:10;26244:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26319:28;26350:24;26368:4;26350:9;:24::i;:::-;26319:55;;26387:24;26438:29;;26414:20;:53;;26387:80;;26496:19;:53;;;;;26533:16;;;;;;;;;;;26532:17;26496:53;:91;;;;;26574:13;;;;;;;;;;;26566:21;;:4;:21;;;;26496:91;:129;;;;;26604:21;;;;;;;;;;;26496:129;26478:222;;;26652:36;26667:20;26652:14;:36::i;:::-;26478:222;26773:12;26788:4;26773:19;;26917:18;26946:13;;;;;;;;;;;26938:21;;:4;:21;;;26917:42;;26970:19;26998:13;;;;;;;;;;;26992:19;;:2;:19;;;26970:41;;27111:18;:24;27130:4;27111:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;27139:18;:22;27158:2;27139:22;;;;;;;;;;;;;;;;;;;;;;;;;27111:50;27108:964;;;27187:5;27177:15;;27108:964;;;27253:1;27240:10;;:14;27232:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27300:13;27299:14;:33;;;;;27318:14;27317:15;27299:33;27295:536;;;27394:15;27374;;27358:7;:13;27366:4;27358:13;;;;;;;;;;;;;;;;:31;27357:52;;27349:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27447:5;27437:15;;27295:536;;;27487:14;27483:348;;;27563:15;27543;;27527:7;:13;27535:4;27527:13;;;;;;;;;;;;;;;;:31;27526:52;;27518:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27622:15;27606:7;:13;27614:4;27606:13;;;;;;;;;;;;;;;:31;;;;27483:348;;;27672:13;27668:163;;;27745:15;27725;;27711:7;:11;27719:2;27711:11;;;;;;;;;;;;;;;;:29;27710:50;;27702:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27802:15;27788:7;:11;27796:2;27788:11;;;;;;;;;;;;;;;:29;;;;27668:163;27483:348;27295:536;27847:13;27843:77;;;27880:13;;27870:6;:23;;27862:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27843:77;27937:14;:61;;;;;27988:8;27975:10;;:21;27956:15;:41;27937:61;27933:127;;;28018:14;;28008:6;:24;;28000:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27933:127;27108:964;28084:70;28102:4;28107:2;28110:6;28117:7;28125:13;28139:14;28084:17;:70::i;:::-;28172:18;:22;28191:2;28172:22;;;;;;;;;;;;;;;;;;;;;;;;;28171:23;:48;;;;;28205:13;;;;;;;;;;;28199:19;;:2;:19;;;;28171:48;28167:133;;;28245:17;;28229:13;28239:2;28229:9;:13::i;:::-;:33;28221:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28167:133;26051:2257;;;;;;;;:::o;5344:192::-;5430:7;5463:1;5458;:6;;5466:12;5450:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5490:9;5506:1;5502;:5;5490:17;;5527:1;5520:8;;;5344:192;;;;;:::o;4441:181::-;4499:7;4519:9;4535:1;4531;:5;4519:17;;4560:1;4555;:6;;4547:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4613:1;4606:8;;;4441:181;;;;:::o;28316:1360::-;20456:4;20437:16;;:23;;;;;;;;;;;;;;;;;;28401:21:::1;28458:20;28441:14;;:37;28437:73;;;28496:14;;28480:30;;28437:73;28523:24;28550:61;28594:16;;28550:39;28575:13;28550:20;:24;;:39;;;;:::i;:::-;:43;;:61;;;;:::i;:::-;28523:88;;28622:25;28650:20;28668:1;28650:13;:17;;:20;;;;:::i;:::-;28622:48;;28681:30;28714:36;28732:17;28714:13;:17;;:36;;;;:::i;:::-;28681:69;;28763:20;28786:39;28808:16;28786:17;:21;;:39;;;;:::i;:::-;28763:62;;28838:30;28855:12;28838:16;:30::i;:::-;28881:18;28902:21;28881:42;;28934:24;28961:48;28996:12;28961:30;28980:10;28961:14;;:18;;:30;;;;:::i;:::-;:34;;:48;;;;:::i;:::-;28934:75;;29020:24;29047:51;29085:12;29047:33;29069:10;29047:17;:21;;:33;;;;:::i;:::-;:37;;:51;;;;:::i;:::-;29020:78;;29140:1;29115:22;:26;:50;;;;;29164:1;29145:16;:20;29115:50;29111:110;;;29167:54;29180:22;29204:16;29167:12;:54::i;:::-;29111:110;29257:1;29238:16;:20;:64;;;;;29281:21;29262:16;:40;29238:64;29234:115;;;29304:9;;;;;;;;;;;:14;;29327:16;29304:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29234:115;29388:1;29364:21;:25;29360:75;;;29391:3;;;;;;;;;;;:8;;29408:21;29391:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29360:75;29448:18;29469:24;29487:4;29469:9;:24::i;:::-;29448:45;;29521:1;29508:10;:14;29504:74;;;29537:29;29555:10;29537:17;:29::i;:::-;29504:74;29607:1;29590:14;:18;;;;29636:1;29619:14;:18;;;;29667:1;29648:16;:20;;;;20471:1;;;;;;;;;20502:5:::0;20483:16;;:24;;;;;;;;;;;;;;;;;;28316:1360;:::o;3168:420::-;3251:23;3277:69;3305:4;3277:69;;;;;;;;;;;;;;;;;3285:5;3277:27;;;;:69;;;;;:::i;:::-;3251:95;;3381:1;3361:10;:17;:21;3357:224;;;3503:10;3492:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3484:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3357:224;3168:420;;;:::o;31679:1810::-;31832:23;31858:7;31832:33;;31880:7;31876:1310;;;31902:16;31931:20;31964;31997:22;32036:13;32032:352;;;32081:39;32115:4;32081:29;32093:16;;32081:7;:11;;:29;;;;:::i;:::-;:33;;:39;;;;:::i;:::-;32066:54;;32152:41;32188:4;32152:31;32164:18;;32152:7;:11;;:31;;;;:::i;:::-;:35;;:41;;;;:::i;:::-;32135:58;;32223:39;32257:4;32223:29;32235:16;;32223:7;:11;;:29;;;;:::i;:::-;:33;;:39;;;;:::i;:::-;32208:54;;32336:33;32364:4;32336:23;32348:10;;32336:7;:11;;:23;;;;:::i;:::-;:27;;:33;;;;:::i;:::-;32320:12;32303:14;32288:12;:29;:44;:82;32277:93;;32032:352;32400:14;32396:410;;;32440:9;:17;32450:6;32440:17;;;;;;;;;;;;;;;;;;;;;;;;;32439:18;32431:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32499:40;32534:4;32499:30;32511:17;;32499:7;:11;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;32484:55;;32571:42;32608:4;32571:32;32583:19;;32571:7;:11;;:32;;;;:::i;:::-;:36;;:42;;;;:::i;:::-;32554:59;;32643:40;32678:4;32643:30;32655:17;;32643:7;:11;;:30;;;;:::i;:::-;:34;;:40;;;;:::i;:::-;32628:55;;32757:34;32786:4;32757:24;32769:11;;32757:7;:11;;:24;;;;:::i;:::-;:28;;:34;;;;:::i;:::-;32741:12;32724:14;32709:12;:29;:44;:83;32698:94;;32396:410;32836:29;32856:8;32836:15;:19;;:29;;;;:::i;:::-;32818:47;;32895:32;32914:12;32895:14;;:18;;:32;;;;:::i;:::-;32878:14;:49;;;;32957:32;32976:12;32957:14;;:18;;:32;;;;:::i;:::-;32940:14;:49;;;;33021:36;33042:14;33021:16;;:20;;:36;;;;:::i;:::-;33002:16;:55;;;;31876:1310;;;;;;;33089:13;33088:14;:33;;;;;33107:14;33106:15;33088:33;33084:102;;;33145:9;:17;33155:6;33145:17;;;;;;;;;;;;;;;;;;;;;;;;;33144:18;33136:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33084:102;31876:1310;33218:30;33240:7;33218:9;:17;33228:6;33218:17;;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;33198:9;:17;33208:6;33198:17;;;;;;;;;;;;;;;:50;;;;33282:41;33307:15;33282:9;:20;33292:9;33282:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;33259:9;:20;33269:9;33259:20;;;;;;;;;;;;;;;:64;;;;33361:58;33390:28;33402:15;33390:7;:11;;:28;;;;:::i;:::-;33361:9;:24;33379:4;33361:24;;;;;;;;;;;;;;;;:28;;:58;;;;:::i;:::-;33334:9;:24;33352:4;33334:24;;;;;;;;;;;;;;;:85;;;;33454:9;33437:44;;33446:6;33437:44;;;33465:15;33437:44;;;;;;;;;;;;;;;;;;31679:1810;;;;;;;:::o;6742:132::-;6800:7;6827:39;6831:1;6834;6827:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;6820:46;;6742:132;;;;:::o;31110:561::-;31236:21;31274:1;31260:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31236:40;;31305:4;31287;31292:1;31287:7;;;;;;;;;;;;;:23;;;;;;;;;;;31331:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31321:4;31326:1;31321:7;;;;;;;;;;;;;:32;;;;;;;;;;;31366:62;31383:4;31398:15;31416:11;31366:8;:62::i;:::-;31467:15;:66;;;31548:11;31574:1;31590:4;31617;31637:15;31467:196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31110:561;;:::o;5795:471::-;5853:7;6103:1;6098;:6;6094:47;;;6128:1;6121:8;;;;6094:47;6153:9;6169:1;6165;:5;6153:17;;6198:1;6193;6189;:5;;;;;;:10;6181:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6257:1;6250:8;;;5795:471;;;;;:::o;29684:461::-;29832:62;29849:4;29864:15;29882:11;29832:8;:62::i;:::-;29937:15;:31;;;29976:9;30009:4;30029:11;30055:1;30071;30087:9;;;;;;;;;;;30111:15;29937:200;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29684:461;;:::o;30440:662::-;30507:21;30545:1;30531:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30507:40;;30576:4;30558;30563:1;30558:7;;;;;;;;;;;;;:23;;;;;;;;;;;30602:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30592:4;30597:1;30592:7;;;;;;;;;;;;;:32;;;;;;;;;;;30645:4;30635;30640:1;30635:7;;;;;;;;;;;;;:14;;;;;;;;;;;30662:62;30679:4;30694:15;30712:11;30662:8;:62::i;:::-;30763:15;:69;;;30847:11;30873:1;30889:4;30916;30936:15;30763:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30975:19;31004:4;30997:22;;;31028:4;30997:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30975:59;;31045:49;31071:9;;;;;;;;;;;31082:11;31052:4;31045:25;;;;:49;;;;;:::i;:::-;30440:662;;;:::o;13086:196::-;13189:12;13221:53;13244:6;13252:4;13258:1;13261:12;13221:22;:53::i;:::-;13214:60;;13086:196;;;;;:::o;7370:278::-;7456:7;7488:1;7484;:5;7491:12;7476:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7515:9;7531:1;7527;:5;;;;;;7515:17;;7639:1;7632:8;;;7370:278;;;;;:::o;14463:979::-;14593:12;14626:18;14637:6;14626:10;:18::i;:::-;14618:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14752:12;14766:23;14793:6;:11;;14813:8;14824:4;14793:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14751:78;;;;14844:7;14840:595;;;14875:10;14868:17;;;;;;14840:595;15009:1;14989:10;:17;:21;14985:439;;;15252:10;15246:17;15313:15;15300:10;15296:2;15292:19;15285:44;15200:148;15395:12;15388:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14463:979;;;;;;;:::o;9971:619::-;10031:4;10293:16;10320:19;10342:66;10320:88;;;;10511:7;10499:20;10487:32;;10551:11;10539:8;:23;;:42;;;;;10578:3;10566:15;;:8;:15;;10539:42;10531:51;;;;9971:619;;;:::o
Swarm Source
ipfs://a3c73b5826db4542d2c0893da36157bde8f47b717c21c17f75dc98d045719af9
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.