Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
6,100,000,000 GFMI
Holders
88
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
TokenCutter
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-05-06 */ // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; // TG: https://t.me/GoFundMeInu // Twitter: https://twitter.com/gofundmeinu // Website https://gofundmeinu.io /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/utils/Context.sol // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } // File: @openzeppelin/contracts/utils/math/SafeMath.sol // OpenZeppelin Contracts v4.4.1 (utils/math/SafeMath.sol) pragma solidity ^0.8.0; // CAUTION // This version of SafeMath should only be used with Solidity 0.8 or later, // because it relies on the compiler's built in overflow checks. /** * @dev Wrappers over Solidity's arithmetic operations. * * NOTE: `SafeMath` is generally not needed starting with Solidity 0.8, since the compiler * now has built in overflow checking. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // 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 (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @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) { return a + b; } /** * @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 a - b; } /** * @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) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting 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 a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting 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) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * 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) { unchecked { require(b > 0, errorMessage); return a % b; } } } // File: @openzeppelin/contracts/access/Ownable.sol // OpenZeppelin Contracts v4.4.1 (access/Ownable.sol) pragma solidity ^0.8.0; /** * @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. */ abstract 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() { _transferOwnership(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual 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 { _transferOwnership(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"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } // File: contracts/ProofNonReflectionFactory.sol pragma solidity ^0.8.0; interface IBURNER { function burnEmUp() external payable; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); } interface ITeamFinanceLocker { function lockTokens(address _tokenAddress, address _withdrawalAddress, uint256 _amount, uint256 _unlockTime) external payable returns (uint256 _id); } interface ITokenCutter { function swapTradingStatus() external; function setLaunchedAt() external; function cancelToken() external; } library Fees { struct allFees { uint256 mainFee; uint256 mainFeeOnSell; uint256 lpFee; uint256 lpFeeOnSell; uint256 devFee; uint256 devFeeOnSell; } } contract TokenCutter is Context, IERC20, IERC20Metadata { using SafeMath for uint256; mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; address payable public hldBurnerAddress; address public hldAdmin; bool public restrictWhales = true; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public isDividendExempt; uint256 public launchedAt; uint256 public hldFee = 2; uint256 public mainFee; uint256 public lpFee; uint256 public devFee; uint256 public mainFeeOnSell; uint256 public lpFeeOnSell; uint256 public devFeeOnSell; uint256 public totalFee; uint256 public totalFeeIfSelling; IUniswapV2Router02 public router; address public pair; address public factory; address public tokenOwner; address payable public devWallet; address payable public mainWallet; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public tradingStatus = true; mapping (address => bool) public bots; uint256 public _maxTxAmount; uint256 public _walletMax; uint256 public swapThreshold; constructor (string memory tokenName, string memory tokenSymbol, uint256 initialSupply, address owner, address dev, address main, address routerAddress, address initialHldAdmin, address initialHldBurner, Fees.allFees memory fees) { _name = tokenName; _symbol = tokenSymbol; _totalSupply = initialSupply; //Tx & Wallet Limits _maxTxAmount = initialSupply * 2 / 200; _walletMax = initialSupply * 3 / 100; swapThreshold = initialSupply * 5 / 4000; router = IUniswapV2Router02(routerAddress); pair = IUniswapV2Factory(router.factory()).createPair(router.WETH(), address(this)); _allowances[address(this)][address(router)] = type(uint256).max; factory = msg.sender; isFeeExempt[address(this)] = true; isFeeExempt[factory] = true; isFeeExempt[owner] = true; isTxLimitExempt[owner] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[factory] = true; isTxLimitExempt[DEAD] = true; isTxLimitExempt[ZERO] = true; //Fees lpFee = fees.lpFee; lpFeeOnSell = fees.lpFeeOnSell; devFee = fees.devFee; devFeeOnSell = fees.devFeeOnSell; mainFee = fees.mainFee; mainFeeOnSell = fees.mainFeeOnSell; totalFee = devFee.add(lpFee).add(mainFee).add(hldFee); totalFeeIfSelling = devFeeOnSell.add(lpFeeOnSell).add(mainFeeOnSell).add(hldFee); require(totalFee <= 12, "Too high fee"); require(totalFeeIfSelling <= 17, "Too high sell fee"); tokenOwner = owner; devWallet = payable(dev); mainWallet = payable(main); hldBurnerAddress = payable(initialHldBurner); hldAdmin = initialHldAdmin; //Initial supply uint256 forLP = initialSupply * 95 / 100; //95% uint256 forOwner = initialSupply - forLP; //5% _balances[msg.sender] += forLP; _balances[owner] += forOwner; emit Transfer(address(0), msg.sender, forLP); emit Transfer(address(0), owner, forOwner); } modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } modifier onlyHldAdmin() { require(hldAdmin == _msgSender(), "Ownable: caller is not the hldAdmin"); _; } modifier onlyOwner() { require(tokenOwner == _msgSender(), "Ownable: caller is not the owner"); _; } modifier onlyFactory() { require(factory == _msgSender(), "Ownable: caller is not the factory"); _; } //hldAdmin functions function updateHldAdmin(address newAdmin) external virtual onlyHldAdmin { hldAdmin = newAdmin; } function updateHldBurnerAddress(address newhldBurnerAddress) external onlyHldAdmin { hldBurnerAddress = payable(newhldBurnerAddress); } function setBots(address[] memory bots_) external onlyHldAdmin { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } //Factory functions function swapTradingStatus() external onlyFactory { tradingStatus = !tradingStatus; } function setLaunchedAt() external onlyFactory { require(launchedAt == 0, "already launched"); launchedAt = block.timestamp; } function cancelToken() external onlyFactory { isFeeExempt[address(router)] = true; isTxLimitExempt[address(router)] = true; isTxLimitExempt[tokenOwner] = true; tradingStatus = true; } //Owner functions function changeFees(uint256 initialMainFee, uint256 initialMainFeeOnSell, uint256 initialLpFee, uint256 initialLpFeeOnSell, uint256 initialDevFee, uint256 initialDevFeeOnSell) external onlyOwner { mainFee = initialMainFee; lpFee = initialLpFee; devFee = initialDevFee; mainFeeOnSell = initialMainFeeOnSell; lpFeeOnSell = initialLpFeeOnSell; devFeeOnSell = initialDevFeeOnSell; totalFee = devFee.add(lpFee).add(hldFee).add(mainFee); totalFeeIfSelling = devFeeOnSell.add(lpFeeOnSell).add(hldFee).add(mainFeeOnSell); require(totalFee <= 12, "Too high fee"); require(totalFeeIfSelling <= 17, "Too high fee"); } function changeTxLimit(uint256 newLimit) external onlyOwner { require(launchedAt != 0, "!launched"); require(block.timestamp >= launchedAt + 24 hours, "too soon"); _maxTxAmount = newLimit; } function changeWalletLimit(uint256 newLimit) external onlyOwner { require(launchedAt != 0, "!launched"); require(block.timestamp >= launchedAt + 24 hours, "too soon"); _walletMax = newLimit; } function changeRestrictWhales(bool newValue) external onlyOwner { require(launchedAt != 0, "!launched"); require(block.timestamp >= launchedAt + 24 hours, "too soon"); restrictWhales = newValue; } function changeIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function changeIsTxLimitExempt(address holder, bool exempt) external onlyOwner { require(launchedAt != 0, "!launched"); require(block.timestamp >= launchedAt + 24 hours, "too soon"); isTxLimitExempt[holder] = exempt; } function reduceHldFee() external onlyOwner { require(hldFee == 2, "!already reduced"); require(launchedAt != 0, "!launched"); require(block.timestamp >= launchedAt + 72 hours, "too soon"); hldFee = 1; totalFee = devFee.add(lpFee).add(hldFee).add(mainFee); totalFeeIfSelling = devFeeOnSell.add(lpFeeOnSell).add(hldFee).add(mainFeeOnSell); } function setDevWallet(address payable newDevWallet) external onlyOwner { devWallet = payable(newDevWallet); } function setMainWallet(address payable newMainWallet) external onlyOwner { mainWallet = newMainWallet; } function setOwnerWallet(address payable newOwnerWallet) external onlyOwner { tokenOwner = newOwnerWallet; } function changeSwapBackSettings(bool enableSwapBack, uint256 newSwapBackLimit) external onlyOwner { swapAndLiquifyEnabled = enableSwapBack; swapThreshold = newSwapBackLimit; } function delBot(address notbot) external onlyOwner { bots[notbot] = false; } function getCirculatingSupply() external view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO)); } /** * @dev Returns the name of the token. */ function name() external view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() external view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() external view virtual override returns (uint8) { return 9; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() external view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) external virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) external virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) external virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) external virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, _allowances[owner][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) external virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = _allowances[owner][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) { require(tradingStatus, "Trading Closed"); require(!bots[sender] && !bots[recipient]); if(inSwapAndLiquify){ return _basicTransfer(sender, recipient, amount); } require(amount <= _maxTxAmount || isTxLimitExempt[sender], "Max TX Amount"); if(!isTxLimitExempt[recipient] && restrictWhales) { require(_balances[recipient].add(amount) <= _walletMax, "Max Wallet Amount"); } if(msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold){ swapBack(); } _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); if(sender == pair && block.timestamp < launchedAt + 1 minutes) { // 4-5 blocks revert("Trading Closed"); } emit Transfer(sender, recipient, finalAmount); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { 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); } /** * @dev Spend `amount` form the allowance of `owner` toward `spender`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee; uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function swapBack() internal lockTheSwap { uint256 tokensToLiquify = _balances[address(this)]; uint256 amountToLiquify; uint256 devBalance; uint256 hldBalance; uint256 amountEthLiquidity; // Use sell ratios if buy tax too low if (totalFee <= 2) { amountToLiquify = tokensToLiquify.mul(lpFeeOnSell).div(totalFeeIfSelling).div(2); } else { amountToLiquify = tokensToLiquify.mul(lpFee).div(totalFee).div(2); } uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance; // Use sell ratios if buy tax too low if (totalFee <= 2) { devBalance = amountETH.mul(devFeeOnSell).div(totalFeeIfSelling); hldBalance = amountETH.mul(hldFee).div(totalFeeIfSelling); amountEthLiquidity = amountETH.mul(lpFeeOnSell).div(totalFeeIfSelling).div(2); } else { devBalance = amountETH.mul(devFee).div(totalFee); hldBalance = amountETH.mul(hldFee).div(totalFee); amountEthLiquidity = amountETH.mul(lpFee).div(totalFee).div(2); } uint256 amountEthMain = amountETH.sub(devBalance).sub(hldBalance).sub(amountEthLiquidity); if(amountETH > 0){ IBURNER(hldBurnerAddress).burnEmUp{value: hldBalance}(); devWallet.transfer(devBalance); mainWallet.transfer(amountEthMain); } if(amountToLiquify > 0){ router.addLiquidityETH{value: amountEthLiquidity}( address(this), amountToLiquify, 0, 0, 0x000000000000000000000000000000000000dEaD, block.timestamp ); } } receive() external payable { } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"tokenName","type":"string"},{"internalType":"string","name":"tokenSymbol","type":"string"},{"internalType":"uint256","name":"initialSupply","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"dev","type":"address"},{"internalType":"address","name":"main","type":"address"},{"internalType":"address","name":"routerAddress","type":"address"},{"internalType":"address","name":"initialHldAdmin","type":"address"},{"internalType":"address","name":"initialHldBurner","type":"address"},{"components":[{"internalType":"uint256","name":"mainFee","type":"uint256"},{"internalType":"uint256","name":"mainFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"lpFee","type":"uint256"},{"internalType":"uint256","name":"lpFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"devFeeOnSell","type":"uint256"}],"internalType":"struct Fees.allFees","name":"fees","type":"tuple"}],"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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMax","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":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"initialMainFee","type":"uint256"},{"internalType":"uint256","name":"initialMainFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"initialLpFee","type":"uint256"},{"internalType":"uint256","name":"initialLpFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"initialDevFee","type":"uint256"},{"internalType":"uint256","name":"initialDevFeeOnSell","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"changeIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"changeRestrictWhales","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"enableSwapBack","type":"bool"},{"internalType":"uint256","name":"newSwapBackLimit","type":"uint256"}],"name":"changeSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hldAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hldBurnerAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hldFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mainWallet","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceHldFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"restrictWhales","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newDevWallet","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setLaunchedAt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMainWallet","type":"address"}],"name":"setMainWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwnerWallet","type":"address"}],"name":"setOwnerWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFeeIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"updateHldAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newhldBurnerAddress","type":"address"}],"name":"updateHldBurnerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526006805460ff60a01b1916600160a01b1790556002600b556019805461010160a81b61ffff60a81b199091161790553480156200004057600080fd5b50604051620031d4380380620031d4833981016040819052620000639162000824565b8951620000789060039060208d019062000631565b5088516200008e9060049060208c019062000631565b50600288815560c890620000a4908a906200098e565b620000b091906200096b565b601b556064620000c28960036200098e565b620000ce91906200096b565b601c55610fa0620000e18960056200098e565b620000ed91906200096b565b601d55601480546001600160a01b0319166001600160a01b0386169081179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200014557600080fd5b505afa1580156200015a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000180919062000806565b6001600160a01b031663c9c65396601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001dd57600080fd5b505afa158015620001f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000218919062000806565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200026057600080fd5b505af115801562000275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029b919062000806565b601580546001600160a01b039283166001600160a01b03199182161782553060008181526001602081815260408084206014548916855282528084206000199055601680549096163317865593835260078152838320805460ff19908116841790915585548816845284842080548216841790558e88168452848420805482168417905560088252848420805482168417905595548716835283832080548716831790559354909516815281812080548516861790557f046fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd09334299805485168617905580527f5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7805490931690931790915590820151600d81905560608301516010556080830151600e81905560a08401516011558351600c81905584840151600f55600b5462000410949093620003fc938492909190620015aa6200061c821b17901c565b6200061c60201b620015aa1790919060201c565b60128190555062000442600b54620003fc600f54620003fc6010546011546200061c60201b620015aa1790919060201c565b601355601254600c10156200048d5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b60448201526064015b60405180910390fd5b60116013541115620004d65760405162461bcd60e51b8152602060048201526011602482015270546f6f20686967682073656c6c2066656560781b604482015260640162000484565b601780546001600160a01b03199081166001600160a01b038a81169190911790925560188054821689841617905560198054821688841617905560058054821685841617905560068054909116918516919091179055600060646200053d8a605f6200098e565b6200054991906200096b565b9050600062000559828b620009b0565b336000908152602081905260408120805492935084929091906200057f90849062000950565b90915550506001600160a01b03891660009081526020819052604081208054839290620005ae90849062000950565b90915550506040518281523390600090600080516020620031b48339815191529060200160405180910390a36040518181526001600160a01b038a1690600090600080516020620031b48339815191529060200160405180910390a350505050505050505050505062000a33565b60006200062a828462000950565b9392505050565b8280546200063f90620009ca565b90600052602060002090601f016020900481019282620006635760008555620006ae565b82601f106200067e57805160ff1916838001178555620006ae565b82800160010185558215620006ae579182015b82811115620006ae57825182559160200191906001019062000691565b50620006bc929150620006c0565b5090565b5b80821115620006bc5760008155600101620006c1565b80516001600160a01b0381168114620006ef57600080fd5b919050565b600082601f8301126200070657600080fd5b81516001600160401b0381111562000722576200072262000a1d565b602062000738601f8301601f191682016200091d565b82815285828487010111156200074d57600080fd5b60005b838110156200076d57858101830151828201840152820162000750565b838111156200077f5760008385840101525b5095945050505050565b600060c082840312156200079c57600080fd5b60405160c081016001600160401b0381118282101715620007c157620007c162000a1d565b8060405250809150825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a08201525092915050565b6000602082840312156200081957600080fd5b6200062a82620006d7565b6000806000806000806000806000806101e08b8d0312156200084557600080fd5b8a516001600160401b03808211156200085d57600080fd5b6200086b8e838f01620006f4565b9b5060208d01519150808211156200088257600080fd5b50620008918d828e01620006f4565b99505060408b01519750620008a960608c01620006d7565b9650620008b960808c01620006d7565b9550620008c960a08c01620006d7565b9450620008d960c08c01620006d7565b9350620008e960e08c01620006d7565b9250620008fa6101008c01620006d7565b91506200090c8c6101208d0162000789565b90509295989b9194979a5092959850565b604051601f8201601f191681016001600160401b038111828210171562000948576200094862000a1d565b604052919050565b6000821982111562000966576200096662000a07565b500190565b6000826200098957634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615620009ab57620009ab62000a07565b500290565b600082821015620009c557620009c562000a07565b500390565b600181811c90821680620009df57607f821691505b6020821081141562000a0157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6127718062000a436000396000f3fe6080604052600436106103855760003560e01c80638b42507f116101d1578063c45a015511610102578063dd62ed3e116100a0578063f7c722051161006f578063f7c7220514610a47578063f887ea4014610a67578063fabe628314610a87578063fbd7575314610aa757600080fd5b8063dd62ed3e146109ab578063e5d85108146109f1578063e66b1d1e14610a07578063ede1588f14610a2757600080fd5b8063d0a5eb4e116100dc578063d0a5eb4e14610935578063d1db380914610955578063d4fb9a011461096a578063d920334e1461098b57600080fd5b8063c45a0155146108df578063ca987b0e146108ff578063cb29813c1461091557600080fd5b8063a457c2d71161016f578063b515566a11610149578063b515566a14610859578063bb542ef014610879578063bf56b37114610899578063bfd79284146108af57600080fd5b8063a457c2d7146107f9578063a8aa1b3114610819578063a9059cbb1461083957600080fd5b806395d89b41116101ab57806395d89b411461078e578063985b9db0146107a3578063a3a2e89e146107b9578063a3e67610146107d957600080fd5b80638b42507f146107285780638ea5220f146107585780639502c4261461077857600080fd5b80633dab5269116102b65780636827e764116102545780637c0ff205116102235780637c0ff205146106c65780637d1db4a5146106dc5780637db1342c146106f2578063807c2d9c1461071257600080fd5b80636827e76414610644578063704ce43e1461065a57806370a0823114610670578063774b5847146106a657600080fd5b806343d49dda1161029057806343d49dda146105cd57806344de2e4c146105ed5780634a74bb021461060e578063546a88111461062f57600080fd5b80633dab52691461054d5780633f4218e01461056d5780634355855a1461059d57600080fd5b806323b62b7511610323578063273123b7116102fd578063273123b7146104dc5780632b112e49146104fc578063313ce56714610511578063395093511461052d57600080fd5b806323b62b751461046f57806323b872dd146104a757806327193bc4146104c757600080fd5b80630963da6c1161035f5780630963da6c1461040c57806318160ddd146104225780631df4ccfc146104375780631f53ac021461044d57600080fd5b80630445b6671461039157806306fdde03146103ba578063095ea7b3146103dc57600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a7601d5481565b6040519081526020015b60405180910390f35b3480156103c657600080fd5b506103cf610abc565b6040516103b19190612456565b3480156103e857600080fd5b506103fc6103f736600461229d565b610b4e565b60405190151581526020016103b1565b34801561041857600080fd5b506103a7600c5481565b34801561042e57600080fd5b506002546103a7565b34801561044357600080fd5b506103a760125481565b34801561045957600080fd5b5061046d6104683660046121b4565b610b66565b005b34801561047b57600080fd5b5060195461048f906001600160a01b031681565b6040516001600160a01b0390911681526020016103b1565b3480156104b357600080fd5b506103fc6104c2366004612227565b610bbb565b3480156104d357600080fd5b5061046d610be2565b3480156104e857600080fd5b5061046d6104f73660046121b4565b610c55565b34801561050857600080fd5b506103a7610ca0565b34801561051d57600080fd5b50604051600981526020016103b1565b34801561053957600080fd5b506103fc61054836600461229d565b610d0d565b34801561055957600080fd5b5061046d6105683660046123b0565b610d4c565b34801561057957600080fd5b506103fc6105883660046121b4565b60076020526000908152604090205460ff1681565b3480156105a957600080fd5b506103fc6105b83660046121b4565b60096020526000908152604090205460ff1681565b3480156105d957600080fd5b5061046d6105e83660046121b4565b610d98565b3480156105f957600080fd5b506006546103fc90600160a01b900460ff1681565b34801561061a57600080fd5b506019546103fc90600160a81b900460ff1681565b34801561063b57600080fd5b5061046d610de4565b34801561065057600080fd5b506103a7600e5481565b34801561066657600080fd5b506103a7600d5481565b34801561067c57600080fd5b506103a761068b3660046121b4565b6001600160a01b031660009081526020819052604090205490565b3480156106b257600080fd5b5060055461048f906001600160a01b031681565b3480156106d257600080fd5b506103a760105481565b3480156106e857600080fd5b506103a7601b5481565b3480156106fe57600080fd5b5061046d61070d3660046123cc565b610e7c565b34801561071e57600080fd5b506103a7601c5481565b34801561073457600080fd5b506103fc6107433660046121b4565b60086020526000908152604090205460ff1681565b34801561076457600080fd5b5060185461048f906001600160a01b031681565b34801561078457600080fd5b506103a760115481565b34801561079a57600080fd5b506103cf610ef9565b3480156107af57600080fd5b506103a7600f5481565b3480156107c557600080fd5b5061046d6107d4366004612268565b610f08565b3480156107e557600080fd5b5060175461048f906001600160a01b031681565b34801561080557600080fd5b506103fc61081436600461229d565b610f5d565b34801561082557600080fd5b5060155461048f906001600160a01b031681565b34801561084557600080fd5b506103fc61085436600461229d565b610ffa565b34801561086557600080fd5b5061046d6108743660046122c9565b611008565b34801561088557600080fd5b5061046d6108943660046121b4565b61109e565b3480156108a557600080fd5b506103a7600a5481565b3480156108bb57600080fd5b506103fc6108ca3660046121b4565b601a6020526000908152604090205460ff1681565b3480156108eb57600080fd5b5060165461048f906001600160a01b031681565b34801561090b57600080fd5b506103a760135481565b34801561092157600080fd5b5061046d610930366004612413565b6110ea565b34801561094157600080fd5b5061046d6109503660046121b4565b611205565b34801561096157600080fd5b5061046d611251565b34801561097657600080fd5b506019546103fc90600160b01b900460ff1681565b34801561099757600080fd5b5061046d6109a63660046123cc565b61135d565b3480156109b757600080fd5b506103a76109c63660046121ee565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156109fd57600080fd5b506103a7600b5481565b348015610a1357600080fd5b5061046d610a22366004612395565b6113da565b348015610a3357600080fd5b5060065461048f906001600160a01b031681565b348015610a5357600080fd5b5061046d610a623660046121b4565b611470565b348015610a7357600080fd5b5060145461048f906001600160a01b031681565b348015610a9357600080fd5b5061046d610aa2366004612268565b6114bc565b348015610ab357600080fd5b5061046d61155f565b606060038054610acb9061268b565b80601f0160208091040260200160405190810160405280929190818152602001828054610af79061268b565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050905090565b600033610b5c8185856115b6565b5060019392505050565b6017546001600160a01b03163314610b995760405162461bcd60e51b8152600401610b9090612533565b60405180910390fd5b601880546001600160a01b0319166001600160a01b0392909216919091179055565b600033610bc98582856116da565b610bd485858561176c565b5060019150505b9392505050565b6016546001600160a01b03163314610c0c5760405162461bcd60e51b8152600401610b9090612568565b600a5415610c4f5760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e481b185d5b98da195960821b6044820152606401610b90565b42600a55565b6017546001600160a01b03163314610c7f5760405162461bcd60e51b8152600401610b9090612533565b6001600160a01b03166000908152601a60205260409020805460ff19169055565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354600254610d089291610d029190611b3e565b90611b3e565b905090565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190610b5c9082908690610d4790879061261b565b6115b6565b6017546001600160a01b03163314610d765760405162461bcd60e51b8152600401610b9090612533565b60198054921515600160a81b0260ff60a81b1990931692909217909155601d55565b6006546001600160a01b03163314610dc25760405162461bcd60e51b8152600401610b90906124f0565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6016546001600160a01b03163314610e0e5760405162461bcd60e51b8152600401610b9090612568565b601480546001600160a01b039081166000908152600760209081526040808320805460ff19908116600190811790925595548516845260089092528083208054861683179055601754909316825291902080549092161790556019805460ff60b01b1916600160b01b179055565b6017546001600160a01b03163314610ea65760405162461bcd60e51b8152600401610b9090612533565b600a54610ec55760405162461bcd60e51b8152600401610b90906124cd565b600a54610ed5906201518061261b565b421015610ef45760405162461bcd60e51b8152600401610b90906124ab565b601c55565b606060048054610acb9061268b565b6017546001600160a01b03163314610f325760405162461bcd60e51b8152600401610b9090612533565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610fe25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b90565b610fef82868684036115b6565b506001949350505050565b600033610fef81858561176c565b6006546001600160a01b031633146110325760405162461bcd60e51b8152600401610b90906124f0565b60005b815181101561109a576001601a6000848481518110611056576110566126f7565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611092816126c6565b915050611035565b5050565b6017546001600160a01b031633146110c85760405162461bcd60e51b8152600401610b9090612533565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b031633146111145760405162461bcd60e51b8152600401610b9090612533565b600c869055600d849055600e829055600f85905560108390556011819055600b5461114d908790611147908186896115aa565b906115aa565b601281905550611176600f54611147600b546111476010546011546115aa90919063ffffffff16565b601355601254600c10156111bb5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b6044820152606401610b90565b601160135411156111fd5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b6044820152606401610b90565b505050505050565b6017546001600160a01b0316331461122f5760405162461bcd60e51b8152600401610b9090612533565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b0316331461127b5760405162461bcd60e51b8152600401610b9090612533565b600b546002146112c05760405162461bcd60e51b815260206004820152601060248201526f08585b1c9958591e481c99591d58d95960821b6044820152606401610b90565b600a546112df5760405162461bcd60e51b8152600401610b90906124cd565b600a546112ef906203f48061261b565b42101561130e5760405162461bcd60e51b8152600401610b90906124ab565b6001600b819055600c54600d54600e5461132f9361114792909183916115aa565b601281905550611358600f54611147600b546111476010546011546115aa90919063ffffffff16565b601355565b6017546001600160a01b031633146113875760405162461bcd60e51b8152600401610b9090612533565b600a546113a65760405162461bcd60e51b8152600401610b90906124cd565b600a546113b6906201518061261b565b4210156113d55760405162461bcd60e51b8152600401610b90906124ab565b601b55565b6017546001600160a01b031633146114045760405162461bcd60e51b8152600401610b9090612533565b600a546114235760405162461bcd60e51b8152600401610b90906124cd565b600a54611433906201518061261b565b4210156114525760405162461bcd60e51b8152600401610b90906124ab565b60068054911515600160a01b0260ff60a01b19909216919091179055565b6006546001600160a01b0316331461149a5760405162461bcd60e51b8152600401610b90906124f0565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b031633146114e65760405162461bcd60e51b8152600401610b9090612533565b600a546115055760405162461bcd60e51b8152600401610b90906124cd565b600a54611515906201518061261b565b4210156115345760405162461bcd60e51b8152600401610b90906124ab565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6016546001600160a01b031633146115895760405162461bcd60e51b8152600401610b9090612568565b6019805460ff60b01b198116600160b01b9182900460ff1615909102179055565b6000610bdb828461261b565b6001600160a01b0383166116185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b90565b6001600160a01b0382166116795760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b90565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461176657818110156117595760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b90565b61176684848484036115b6565b50505050565b601954600090600160b01b900460ff166117b95760405162461bcd60e51b815260206004820152600e60248201526d151c98591a5b99c810db1bdcd95960921b6044820152606401610b90565b6001600160a01b0384166000908152601a602052604090205460ff161580156117fb57506001600160a01b0383166000908152601a602052604090205460ff16155b61180457600080fd5b601954600160a01b900460ff161561182857611821848484611b4a565b9050610bdb565b601b548211158061185157506001600160a01b03841660009081526008602052604090205460ff165b61188d5760405162461bcd60e51b815260206004820152600d60248201526c13585e08151608105b5bdd5b9d609a1b6044820152606401610b90565b6001600160a01b03831660009081526008602052604090205460ff161580156118bf5750600654600160a01b900460ff165b1561192c57601c546001600160a01b0384166000908152602081905260409020546118ea90846115aa565b111561192c5760405162461bcd60e51b815260206004820152601160248201527013585e0815d85b1b195d08105b5bdd5b9d607a1b6044820152606401610b90565b6015546001600160a01b031633148015906119515750601954600160a01b900460ff16155b80156119665750601954600160a81b900460ff165b80156119835750601d543060009081526020819052604090205410155b1561199057611990611c27565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081529081905291909120546119e1918490612095565b6001600160a01b03851660009081526020818152604080832093909355600790529081205460ff16158015611a2f57506001600160a01b03841660009081526007602052604090205460ff16155b611a395782611a44565b611a448585856120c1565b6001600160a01b038516600090815260208190526040902054909150611a6a90826115aa565b6001600160a01b038086166000908152602081905260409020919091556015548682169116148015611aa85750600a54611aa590603c61261b565b42105b15611ae65760405162461bcd60e51b815260206004820152600e60248201526d151c98591a5b99c810db1bdcd95960921b6044820152606401610b90565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b2b91815260200190565b60405180910390a3506001949350505050565b6000610bdb8284612674565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081529081905291822054611b9a918490612095565b6001600160a01b038086166000908152602081905260408082209390935590851681522054611bc990836115aa565b6001600160a01b038481166000818152602081815260409182902094909455518581529092918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b17905530600090815260208190526040812054601254909190819081908190600210611c8a57611c836002611c7d601354611c7d6010548a61217c90919063ffffffff16565b90612188565b9350611cad565b611caa6002611c7d601254611c7d600d548a61217c90919063ffffffff16565b93505b6000611cb98686611b3e565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611cf357611cf36126f7565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611d4757600080fd5b505afa158015611d5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7f91906121d1565b81600181518110611d9257611d926126f7565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac94790611dd89085906000908690309042906004016125aa565b600060405180830381600087803b158015611df257600080fd5b505af1158015611e06573d6000803e3d6000fd5b505050506000479050600260125411611e7a57611e34601354611c7d6011548461217c90919063ffffffff16565b9550611e51601354611c7d600b548461217c90919063ffffffff16565b9450611e736002611c7d601354611c7d6010548661217c90919063ffffffff16565b9350611ed7565b611e95601254611c7d600e548461217c90919063ffffffff16565b9550611eb2601254611c7d600b548461217c90919063ffffffff16565b9450611ed46002611c7d601254611c7d600d548661217c90919063ffffffff16565b93505b6000611ee985610d028881868c611b3e565b90508115611fd157600560009054906101000a90046001600160a01b03166001600160a01b0316630c50f89d876040518263ffffffff1660e01b81526004016000604051808303818588803b158015611f4157600080fd5b505af1158015611f55573d6000803e3d6000fd5b50506018546040516001600160a01b0390911693508a156108fc0292508a91506000818181858888f19350505050158015611f94573d6000803e3d6000fd5b506019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611fcf573d6000803e3d6000fd5b505b871561207d5760145460405163f305d71960e01b8152306004820152602481018a9052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990879060c4016060604051808303818588803b15801561204057600080fd5b505af1158015612054573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061207991906123e5565b5050505b50506019805460ff60a01b1916905550505050505050565b600081848411156120b95760405162461bcd60e51b8152600401610b909190612456565b505050900390565b60155460009081906001600160a01b038581169116146120e3576012546120e7565b6013545b905060006120fa6064611c7d868561217c565b3060009081526020819052604090205490915061211790826115aa565b3060008181526020818152604091829020939093555183815290916001600160a01b038916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36121728482611b3e565b9695505050505050565b6000610bdb8284612655565b6000610bdb8284612633565b803561219f81612723565b919050565b8035801515811461219f57600080fd5b6000602082840312156121c657600080fd5b8135610bdb81612723565b6000602082840312156121e357600080fd5b8151610bdb81612723565b6000806040838503121561220157600080fd5b823561220c81612723565b9150602083013561221c81612723565b809150509250929050565b60008060006060848603121561223c57600080fd5b833561224781612723565b9250602084013561225781612723565b929592945050506040919091013590565b6000806040838503121561227b57600080fd5b823561228681612723565b9150612294602084016121a4565b90509250929050565b600080604083850312156122b057600080fd5b82356122bb81612723565b946020939093013593505050565b600060208083850312156122dc57600080fd5b823567ffffffffffffffff808211156122f457600080fd5b818501915085601f83011261230857600080fd5b81358181111561231a5761231a61270d565b8060051b604051601f19603f8301168101818110858211171561233f5761233f61270d565b604052828152858101935084860182860187018a101561235e57600080fd5b600095505b838610156123885761237481612194565b855260019590950194938601938601612363565b5098975050505050505050565b6000602082840312156123a757600080fd5b610bdb826121a4565b600080604083850312156123c357600080fd5b6122bb836121a4565b6000602082840312156123de57600080fd5b5035919050565b6000806000606084860312156123fa57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561242c57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b8181101561248357858101830151858201604001528201612467565b81811115612495576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600890820152673a37b79039b7b7b760c11b604082015260600190565b602080825260099082015268085b185d5b98da195960ba1b604082015260600190565b60208082526023908201527f4f776e61626c653a2063616c6c6572206973206e6f742074686520686c64416460408201526236b4b760e91b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f4f776e61626c653a2063616c6c6572206973206e6f742074686520666163746f604082015261727960f01b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125fa5784516001600160a01b0316835293830193918301916001016125d5565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561262e5761262e6126e1565b500190565b60008261265057634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561266f5761266f6126e1565b500290565b600082821015612686576126866126e1565b500390565b600181811c9082168061269f57607f821691505b602082108114156126c057634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156126da576126da6126e1565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461273857600080fd5b5056fea264697066735822122066bde435a58658fde273e258146139b21fe9591d7f8c1a1c260299e6685b510b64736f6c63430008070033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000054a78dae49e20000000000000000000000000000f6850e065f4eae42781bd64f693bc78b7a1d1228000000000000000000000000810fa3add2b37d49f5077018790a0b423cf63c4f000000000000000000000000061722c6d571c27ccc4db593b34c10793fd6a2c40000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000001e0d1a8a98bab743d6e2c1f5573e74e97ba701dc000000000000000000000000f9859ab850a8cc66ff33001798baca257b64bcf5000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b474f46554e444d45494e55000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000447464d4900000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106103855760003560e01c80638b42507f116101d1578063c45a015511610102578063dd62ed3e116100a0578063f7c722051161006f578063f7c7220514610a47578063f887ea4014610a67578063fabe628314610a87578063fbd7575314610aa757600080fd5b8063dd62ed3e146109ab578063e5d85108146109f1578063e66b1d1e14610a07578063ede1588f14610a2757600080fd5b8063d0a5eb4e116100dc578063d0a5eb4e14610935578063d1db380914610955578063d4fb9a011461096a578063d920334e1461098b57600080fd5b8063c45a0155146108df578063ca987b0e146108ff578063cb29813c1461091557600080fd5b8063a457c2d71161016f578063b515566a11610149578063b515566a14610859578063bb542ef014610879578063bf56b37114610899578063bfd79284146108af57600080fd5b8063a457c2d7146107f9578063a8aa1b3114610819578063a9059cbb1461083957600080fd5b806395d89b41116101ab57806395d89b411461078e578063985b9db0146107a3578063a3a2e89e146107b9578063a3e67610146107d957600080fd5b80638b42507f146107285780638ea5220f146107585780639502c4261461077857600080fd5b80633dab5269116102b65780636827e764116102545780637c0ff205116102235780637c0ff205146106c65780637d1db4a5146106dc5780637db1342c146106f2578063807c2d9c1461071257600080fd5b80636827e76414610644578063704ce43e1461065a57806370a0823114610670578063774b5847146106a657600080fd5b806343d49dda1161029057806343d49dda146105cd57806344de2e4c146105ed5780634a74bb021461060e578063546a88111461062f57600080fd5b80633dab52691461054d5780633f4218e01461056d5780634355855a1461059d57600080fd5b806323b62b7511610323578063273123b7116102fd578063273123b7146104dc5780632b112e49146104fc578063313ce56714610511578063395093511461052d57600080fd5b806323b62b751461046f57806323b872dd146104a757806327193bc4146104c757600080fd5b80630963da6c1161035f5780630963da6c1461040c57806318160ddd146104225780631df4ccfc146104375780631f53ac021461044d57600080fd5b80630445b6671461039157806306fdde03146103ba578063095ea7b3146103dc57600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a7601d5481565b6040519081526020015b60405180910390f35b3480156103c657600080fd5b506103cf610abc565b6040516103b19190612456565b3480156103e857600080fd5b506103fc6103f736600461229d565b610b4e565b60405190151581526020016103b1565b34801561041857600080fd5b506103a7600c5481565b34801561042e57600080fd5b506002546103a7565b34801561044357600080fd5b506103a760125481565b34801561045957600080fd5b5061046d6104683660046121b4565b610b66565b005b34801561047b57600080fd5b5060195461048f906001600160a01b031681565b6040516001600160a01b0390911681526020016103b1565b3480156104b357600080fd5b506103fc6104c2366004612227565b610bbb565b3480156104d357600080fd5b5061046d610be2565b3480156104e857600080fd5b5061046d6104f73660046121b4565b610c55565b34801561050857600080fd5b506103a7610ca0565b34801561051d57600080fd5b50604051600981526020016103b1565b34801561053957600080fd5b506103fc61054836600461229d565b610d0d565b34801561055957600080fd5b5061046d6105683660046123b0565b610d4c565b34801561057957600080fd5b506103fc6105883660046121b4565b60076020526000908152604090205460ff1681565b3480156105a957600080fd5b506103fc6105b83660046121b4565b60096020526000908152604090205460ff1681565b3480156105d957600080fd5b5061046d6105e83660046121b4565b610d98565b3480156105f957600080fd5b506006546103fc90600160a01b900460ff1681565b34801561061a57600080fd5b506019546103fc90600160a81b900460ff1681565b34801561063b57600080fd5b5061046d610de4565b34801561065057600080fd5b506103a7600e5481565b34801561066657600080fd5b506103a7600d5481565b34801561067c57600080fd5b506103a761068b3660046121b4565b6001600160a01b031660009081526020819052604090205490565b3480156106b257600080fd5b5060055461048f906001600160a01b031681565b3480156106d257600080fd5b506103a760105481565b3480156106e857600080fd5b506103a7601b5481565b3480156106fe57600080fd5b5061046d61070d3660046123cc565b610e7c565b34801561071e57600080fd5b506103a7601c5481565b34801561073457600080fd5b506103fc6107433660046121b4565b60086020526000908152604090205460ff1681565b34801561076457600080fd5b5060185461048f906001600160a01b031681565b34801561078457600080fd5b506103a760115481565b34801561079a57600080fd5b506103cf610ef9565b3480156107af57600080fd5b506103a7600f5481565b3480156107c557600080fd5b5061046d6107d4366004612268565b610f08565b3480156107e557600080fd5b5060175461048f906001600160a01b031681565b34801561080557600080fd5b506103fc61081436600461229d565b610f5d565b34801561082557600080fd5b5060155461048f906001600160a01b031681565b34801561084557600080fd5b506103fc61085436600461229d565b610ffa565b34801561086557600080fd5b5061046d6108743660046122c9565b611008565b34801561088557600080fd5b5061046d6108943660046121b4565b61109e565b3480156108a557600080fd5b506103a7600a5481565b3480156108bb57600080fd5b506103fc6108ca3660046121b4565b601a6020526000908152604090205460ff1681565b3480156108eb57600080fd5b5060165461048f906001600160a01b031681565b34801561090b57600080fd5b506103a760135481565b34801561092157600080fd5b5061046d610930366004612413565b6110ea565b34801561094157600080fd5b5061046d6109503660046121b4565b611205565b34801561096157600080fd5b5061046d611251565b34801561097657600080fd5b506019546103fc90600160b01b900460ff1681565b34801561099757600080fd5b5061046d6109a63660046123cc565b61135d565b3480156109b757600080fd5b506103a76109c63660046121ee565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156109fd57600080fd5b506103a7600b5481565b348015610a1357600080fd5b5061046d610a22366004612395565b6113da565b348015610a3357600080fd5b5060065461048f906001600160a01b031681565b348015610a5357600080fd5b5061046d610a623660046121b4565b611470565b348015610a7357600080fd5b5060145461048f906001600160a01b031681565b348015610a9357600080fd5b5061046d610aa2366004612268565b6114bc565b348015610ab357600080fd5b5061046d61155f565b606060038054610acb9061268b565b80601f0160208091040260200160405190810160405280929190818152602001828054610af79061268b565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050905090565b600033610b5c8185856115b6565b5060019392505050565b6017546001600160a01b03163314610b995760405162461bcd60e51b8152600401610b9090612533565b60405180910390fd5b601880546001600160a01b0319166001600160a01b0392909216919091179055565b600033610bc98582856116da565b610bd485858561176c565b5060019150505b9392505050565b6016546001600160a01b03163314610c0c5760405162461bcd60e51b8152600401610b9090612568565b600a5415610c4f5760405162461bcd60e51b815260206004820152601060248201526f185b1c9958591e481b185d5b98da195960821b6044820152606401610b90565b42600a55565b6017546001600160a01b03163314610c7f5760405162461bcd60e51b8152600401610b9090612533565b6001600160a01b03166000908152601a60205260409020805460ff19169055565b600060208190527fad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb55461dead82527f44ad89ba62b98ff34f51403ac22759b55759460c0bb5521eb4b6ee3cff49cf8354600254610d089291610d029190611b3e565b90611b3e565b905090565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190610b5c9082908690610d4790879061261b565b6115b6565b6017546001600160a01b03163314610d765760405162461bcd60e51b8152600401610b9090612533565b60198054921515600160a81b0260ff60a81b1990931692909217909155601d55565b6006546001600160a01b03163314610dc25760405162461bcd60e51b8152600401610b90906124f0565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6016546001600160a01b03163314610e0e5760405162461bcd60e51b8152600401610b9090612568565b601480546001600160a01b039081166000908152600760209081526040808320805460ff19908116600190811790925595548516845260089092528083208054861683179055601754909316825291902080549092161790556019805460ff60b01b1916600160b01b179055565b6017546001600160a01b03163314610ea65760405162461bcd60e51b8152600401610b9090612533565b600a54610ec55760405162461bcd60e51b8152600401610b90906124cd565b600a54610ed5906201518061261b565b421015610ef45760405162461bcd60e51b8152600401610b90906124ab565b601c55565b606060048054610acb9061268b565b6017546001600160a01b03163314610f325760405162461bcd60e51b8152600401610b9090612533565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610fe25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610b90565b610fef82868684036115b6565b506001949350505050565b600033610fef81858561176c565b6006546001600160a01b031633146110325760405162461bcd60e51b8152600401610b90906124f0565b60005b815181101561109a576001601a6000848481518110611056576110566126f7565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580611092816126c6565b915050611035565b5050565b6017546001600160a01b031633146110c85760405162461bcd60e51b8152600401610b9090612533565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b031633146111145760405162461bcd60e51b8152600401610b9090612533565b600c869055600d849055600e829055600f85905560108390556011819055600b5461114d908790611147908186896115aa565b906115aa565b601281905550611176600f54611147600b546111476010546011546115aa90919063ffffffff16565b601355601254600c10156111bb5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b6044820152606401610b90565b601160135411156111fd5760405162461bcd60e51b815260206004820152600c60248201526b546f6f20686967682066656560a01b6044820152606401610b90565b505050505050565b6017546001600160a01b0316331461122f5760405162461bcd60e51b8152600401610b9090612533565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b0316331461127b5760405162461bcd60e51b8152600401610b9090612533565b600b546002146112c05760405162461bcd60e51b815260206004820152601060248201526f08585b1c9958591e481c99591d58d95960821b6044820152606401610b90565b600a546112df5760405162461bcd60e51b8152600401610b90906124cd565b600a546112ef906203f48061261b565b42101561130e5760405162461bcd60e51b8152600401610b90906124ab565b6001600b819055600c54600d54600e5461132f9361114792909183916115aa565b601281905550611358600f54611147600b546111476010546011546115aa90919063ffffffff16565b601355565b6017546001600160a01b031633146113875760405162461bcd60e51b8152600401610b9090612533565b600a546113a65760405162461bcd60e51b8152600401610b90906124cd565b600a546113b6906201518061261b565b4210156113d55760405162461bcd60e51b8152600401610b90906124ab565b601b55565b6017546001600160a01b031633146114045760405162461bcd60e51b8152600401610b9090612533565b600a546114235760405162461bcd60e51b8152600401610b90906124cd565b600a54611433906201518061261b565b4210156114525760405162461bcd60e51b8152600401610b90906124ab565b60068054911515600160a01b0260ff60a01b19909216919091179055565b6006546001600160a01b0316331461149a5760405162461bcd60e51b8152600401610b90906124f0565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6017546001600160a01b031633146114e65760405162461bcd60e51b8152600401610b9090612533565b600a546115055760405162461bcd60e51b8152600401610b90906124cd565b600a54611515906201518061261b565b4210156115345760405162461bcd60e51b8152600401610b90906124ab565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6016546001600160a01b031633146115895760405162461bcd60e51b8152600401610b9090612568565b6019805460ff60b01b198116600160b01b9182900460ff1615909102179055565b6000610bdb828461261b565b6001600160a01b0383166116185760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b90565b6001600160a01b0382166116795760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b90565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461176657818110156117595760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610b90565b61176684848484036115b6565b50505050565b601954600090600160b01b900460ff166117b95760405162461bcd60e51b815260206004820152600e60248201526d151c98591a5b99c810db1bdcd95960921b6044820152606401610b90565b6001600160a01b0384166000908152601a602052604090205460ff161580156117fb57506001600160a01b0383166000908152601a602052604090205460ff16155b61180457600080fd5b601954600160a01b900460ff161561182857611821848484611b4a565b9050610bdb565b601b548211158061185157506001600160a01b03841660009081526008602052604090205460ff165b61188d5760405162461bcd60e51b815260206004820152600d60248201526c13585e08151608105b5bdd5b9d609a1b6044820152606401610b90565b6001600160a01b03831660009081526008602052604090205460ff161580156118bf5750600654600160a01b900460ff165b1561192c57601c546001600160a01b0384166000908152602081905260409020546118ea90846115aa565b111561192c5760405162461bcd60e51b815260206004820152601160248201527013585e0815d85b1b195d08105b5bdd5b9d607a1b6044820152606401610b90565b6015546001600160a01b031633148015906119515750601954600160a01b900460ff16155b80156119665750601954600160a81b900460ff165b80156119835750601d543060009081526020819052604090205410155b1561199057611990611c27565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081529081905291909120546119e1918490612095565b6001600160a01b03851660009081526020818152604080832093909355600790529081205460ff16158015611a2f57506001600160a01b03841660009081526007602052604090205460ff16155b611a395782611a44565b611a448585856120c1565b6001600160a01b038516600090815260208190526040902054909150611a6a90826115aa565b6001600160a01b038086166000908152602081905260409020919091556015548682169116148015611aa85750600a54611aa590603c61261b565b42105b15611ae65760405162461bcd60e51b815260206004820152600e60248201526d151c98591a5b99c810db1bdcd95960921b6044820152606401610b90565b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b2b91815260200190565b60405180910390a3506001949350505050565b6000610bdb8284612674565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081529081905291822054611b9a918490612095565b6001600160a01b038086166000908152602081905260408082209390935590851681522054611bc990836115aa565b6001600160a01b038481166000818152602081815260409182902094909455518581529092918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b17905530600090815260208190526040812054601254909190819081908190600210611c8a57611c836002611c7d601354611c7d6010548a61217c90919063ffffffff16565b90612188565b9350611cad565b611caa6002611c7d601254611c7d600d548a61217c90919063ffffffff16565b93505b6000611cb98686611b3e565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611cf357611cf36126f7565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611d4757600080fd5b505afa158015611d5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d7f91906121d1565b81600181518110611d9257611d926126f7565b6001600160a01b03928316602091820292909201015260145460405163791ac94760e01b815291169063791ac94790611dd89085906000908690309042906004016125aa565b600060405180830381600087803b158015611df257600080fd5b505af1158015611e06573d6000803e3d6000fd5b505050506000479050600260125411611e7a57611e34601354611c7d6011548461217c90919063ffffffff16565b9550611e51601354611c7d600b548461217c90919063ffffffff16565b9450611e736002611c7d601354611c7d6010548661217c90919063ffffffff16565b9350611ed7565b611e95601254611c7d600e548461217c90919063ffffffff16565b9550611eb2601254611c7d600b548461217c90919063ffffffff16565b9450611ed46002611c7d601254611c7d600d548661217c90919063ffffffff16565b93505b6000611ee985610d028881868c611b3e565b90508115611fd157600560009054906101000a90046001600160a01b03166001600160a01b0316630c50f89d876040518263ffffffff1660e01b81526004016000604051808303818588803b158015611f4157600080fd5b505af1158015611f55573d6000803e3d6000fd5b50506018546040516001600160a01b0390911693508a156108fc0292508a91506000818181858888f19350505050158015611f94573d6000803e3d6000fd5b506019546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611fcf573d6000803e3d6000fd5b505b871561207d5760145460405163f305d71960e01b8152306004820152602481018a9052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990879060c4016060604051808303818588803b15801561204057600080fd5b505af1158015612054573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061207991906123e5565b5050505b50506019805460ff60a01b1916905550505050505050565b600081848411156120b95760405162461bcd60e51b8152600401610b909190612456565b505050900390565b60155460009081906001600160a01b038581169116146120e3576012546120e7565b6013545b905060006120fa6064611c7d868561217c565b3060009081526020819052604090205490915061211790826115aa565b3060008181526020818152604091829020939093555183815290916001600160a01b038916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36121728482611b3e565b9695505050505050565b6000610bdb8284612655565b6000610bdb8284612633565b803561219f81612723565b919050565b8035801515811461219f57600080fd5b6000602082840312156121c657600080fd5b8135610bdb81612723565b6000602082840312156121e357600080fd5b8151610bdb81612723565b6000806040838503121561220157600080fd5b823561220c81612723565b9150602083013561221c81612723565b809150509250929050565b60008060006060848603121561223c57600080fd5b833561224781612723565b9250602084013561225781612723565b929592945050506040919091013590565b6000806040838503121561227b57600080fd5b823561228681612723565b9150612294602084016121a4565b90509250929050565b600080604083850312156122b057600080fd5b82356122bb81612723565b946020939093013593505050565b600060208083850312156122dc57600080fd5b823567ffffffffffffffff808211156122f457600080fd5b818501915085601f83011261230857600080fd5b81358181111561231a5761231a61270d565b8060051b604051601f19603f8301168101818110858211171561233f5761233f61270d565b604052828152858101935084860182860187018a101561235e57600080fd5b600095505b838610156123885761237481612194565b855260019590950194938601938601612363565b5098975050505050505050565b6000602082840312156123a757600080fd5b610bdb826121a4565b600080604083850312156123c357600080fd5b6122bb836121a4565b6000602082840312156123de57600080fd5b5035919050565b6000806000606084860312156123fa57600080fd5b8351925060208401519150604084015190509250925092565b60008060008060008060c0878903121561242c57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b600060208083528351808285015260005b8181101561248357858101830151858201604001528201612467565b81811115612495576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252600890820152673a37b79039b7b7b760c11b604082015260600190565b602080825260099082015268085b185d5b98da195960ba1b604082015260600190565b60208082526023908201527f4f776e61626c653a2063616c6c6572206973206e6f742074686520686c64416460408201526236b4b760e91b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526022908201527f4f776e61626c653a2063616c6c6572206973206e6f742074686520666163746f604082015261727960f01b606082015260800190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156125fa5784516001600160a01b0316835293830193918301916001016125d5565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561262e5761262e6126e1565b500190565b60008261265057634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561266f5761266f6126e1565b500290565b600082821015612686576126866126e1565b500390565b600181811c9082168061269f57607f821691505b602082108114156126c057634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156126da576126da6126e1565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461273857600080fd5b5056fea264697066735822122066bde435a58658fde273e258146139b21fe9591d7f8c1a1c260299e6685b510b64736f6c63430008070033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000054a78dae49e20000000000000000000000000000f6850e065f4eae42781bd64f693bc78b7a1d1228000000000000000000000000810fa3add2b37d49f5077018790a0b423cf63c4f000000000000000000000000061722c6d571c27ccc4db593b34c10793fd6a2c40000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000001e0d1a8a98bab743d6e2c1f5573e74e97ba701dc000000000000000000000000f9859ab850a8cc66ff33001798baca257b64bcf5000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000b474f46554e444d45494e55000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000447464d4900000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : tokenName (string): GOFUNDMEINU
Arg [1] : tokenSymbol (string): GFMI
Arg [2] : initialSupply (uint256): 6100000000000000000
Arg [3] : owner (address): 0xF6850e065f4eaE42781bd64f693bc78B7a1D1228
Arg [4] : dev (address): 0x810fA3adD2b37D49F5077018790a0B423cF63c4F
Arg [5] : main (address): 0x061722C6d571c27cCC4dB593b34C10793Fd6A2C4
Arg [6] : routerAddress (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [7] : initialHldAdmin (address): 0x1E0d1a8a98BaB743d6e2c1f5573e74E97bA701Dc
Arg [8] : initialHldBurner (address): 0xf9859aB850A8cC66Ff33001798BaCa257b64bCf5
Arg [9] : fees (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]
-----Encoded View---------------
19 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000000000000000000001e0
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000220
Arg [2] : 00000000000000000000000000000000000000000000000054a78dae49e20000
Arg [3] : 000000000000000000000000f6850e065f4eae42781bd64f693bc78b7a1d1228
Arg [4] : 000000000000000000000000810fa3add2b37d49f5077018790a0b423cf63c4f
Arg [5] : 000000000000000000000000061722c6d571c27ccc4db593b34c10793fd6a2c4
Arg [6] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [7] : 0000000000000000000000001e0d1a8a98bab743d6e2c1f5573e74e97ba701dc
Arg [8] : 000000000000000000000000f9859ab850a8cc66ff33001798baca257b64bcf5
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000003
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [15] : 000000000000000000000000000000000000000000000000000000000000000b
Arg [16] : 474f46554e444d45494e55000000000000000000000000000000000000000000
Arg [17] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [18] : 47464d4900000000000000000000000000000000000000000000000000000000
Deployed Bytecode Sourcemap
16180:19776:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17697:28;;;;;;;;;;;;;;;;;;;12872:25:1;;;12860:2;12845:18;17697:28:0;;;;;;;;24769:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;27129:203::-;;;;;;;;;;-1:-1:-1;27129:203:0;;;;;:::i;:::-;;:::i;:::-;;;6388:14:1;;6381:22;6363:41;;6351:2;6336:18;27129:203:0;6223:187:1;16997:22:0;;;;;;;;;;;;;;;;25894:110;;;;;;;;;;-1:-1:-1;25984:12:0;;25894:110;;17191:23;;;;;;;;;;;;;;;;23850:123;;;;;;;;;;-1:-1:-1;23850:123:0;;;;;:::i;:::-;;:::i;:::-;;17427:33;;;;;;;;;;-1:-1:-1;17427:33:0;;;;-1:-1:-1;;;;;17427:33:0;;;;;;-1:-1:-1;;;;;5343:32:1;;;5325:51;;5313:2;5298:18;17427:33:0;5179:203:1;27922:297:0;;;;;;;;;;-1:-1:-1;27922:297:0;;;;;:::i;:::-;;:::i;21108:148::-;;;;;;;;;;;;;:::i;24444:90::-;;;;;;;;;;-1:-1:-1;24444:90:0;;;;;:::i;:::-;;:::i;24549:144::-;;;;;;;;;;;;;:::i;25735:94::-;;;;;;;;;;-1:-1:-1;25735:94:0;;25820:1;14035:36:1;;14023:2;14008:18;25735:94:0;13893:184:1;28628:242:0;;;;;;;;;;-1:-1:-1;28628:242:0;;;;;:::i;:::-;;:::i;24237:199::-;;;;;;;;;;-1:-1:-1;24237:199:0;;;;;:::i;:::-;;:::i;16767:44::-;;;;;;;;;;-1:-1:-1;16767:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;16873:49;;;;;;;;;;-1:-1:-1;16873:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;20498:115;;;;;;;;;;-1:-1:-1;20498:115:0;;;;;:::i;:::-;;:::i;16725:33::-;;;;;;;;;;-1:-1:-1;16725:33:0;;;;-1:-1:-1;;;16725:33:0;;;;;;17497:40;;;;;;;;;;-1:-1:-1;17497:40:0;;;;-1:-1:-1;;;17497:40:0;;;;;;21275:224;;;;;;;;;;;;;:::i;17053:21::-;;;;;;;;;;;;;;;;17026:20;;;;;;;;;;;;;;;;26067:127;;;;;;;;;;-1:-1:-1;26067:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;26168:18:0;26141:7;26168:18;;;;;;;;;;;;26067:127;16647:39;;;;;;;;;;-1:-1:-1;16647:39:0;;;;-1:-1:-1;;;;;16647:39:0;;;17118:26;;;;;;;;;;;;;;;;17631:27;;;;;;;;;;;;;;;;22500:233;;;;;;;;;;-1:-1:-1;22500:233:0;;;;;:::i;:::-;;:::i;17665:25::-;;;;;;;;;;;;;;;;16818:48;;;;;;;;;;-1:-1:-1;16818:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17388:32;;;;;;;;;;-1:-1:-1;17388:32:0;;;;-1:-1:-1;;;;;17388:32:0;;;17151:27;;;;;;;;;;;;;;;;24990:106;;;;;;;;;;;;;:::i;17083:28::-;;;;;;;;;;;;;;;;23005:122;;;;;;;;;;-1:-1:-1;23005:122:0;;;;;:::i;:::-;;:::i;17356:25::-;;;;;;;;;;-1:-1:-1;17356:25:0;;;;-1:-1:-1;;;;;17356:25:0;;;29373:440;;;;;;;;;;-1:-1:-1;29373:440:0;;;;;:::i;:::-;;:::i;17301:19::-;;;;;;;;;;-1:-1:-1;17301:19:0;;;;-1:-1:-1;;;;;17301:19:0;;;26400:195;;;;;;;;;;-1:-1:-1;26400:195:0;;;;;:::i;:::-;;:::i;20791:169::-;;;;;;;;;;-1:-1:-1;20791:169:0;;;;;:::i;:::-;;:::i;24108:121::-;;;;;;;;;;-1:-1:-1;24108:121:0;;;;;:::i;:::-;;:::i;16931:25::-;;;;;;;;;;;;;;;;17585:37;;;;;;;;;;-1:-1:-1;17585:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17327:22;;;;;;;;;;-1:-1:-1;17327:22:0;;;;-1:-1:-1;;;;;17327:22:0;;;17221:32;;;;;;;;;;;;;;;;21539:718;;;;;;;;;;-1:-1:-1;21539:718:0;;;;;:::i;:::-;;:::i;23982:118::-;;;;;;;;;;-1:-1:-1;23982:118:0;;;;;:::i;:::-;;:::i;23411:425::-;;;;;;;;;;;;;:::i;17544:32::-;;;;;;;;;;-1:-1:-1;17544:32:0;;;;-1:-1:-1;;;17544:32:0;;;;;;22270:222;;;;;;;;;;-1:-1:-1;22270:222:0;;;;;:::i;:::-;;:::i;26658:151::-;;;;;;;;;;-1:-1:-1;26658:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;26774:18:0;;;26747:7;26774:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;26658:151;16963:25;;;;;;;;;;;;;;;;22741:252;;;;;;;;;;-1:-1:-1;22741:252:0;;;;;:::i;:::-;;:::i;16693:23::-;;;;;;;;;;-1:-1:-1;16693:23:0;;;;-1:-1:-1;;;;;16693:23:0;;;20621:154;;;;;;;;;;-1:-1:-1;20621:154:0;;;;;:::i;:::-;;:::i;17262:32::-;;;;;;;;;;-1:-1:-1;17262:32:0;;;;-1:-1:-1;;;;;17262:32:0;;;23135:266;;;;;;;;;;-1:-1:-1;23135:266:0;;;;;:::i;:::-;;:::i;21001:99::-;;;;;;;;;;;;;:::i;24769:102::-;24825:13;24858:5;24851:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24769:102;:::o;27129:203::-;27214:4;4536:10;27270:32;4536:10;27286:7;27295:6;27270:8;:32::i;:::-;-1:-1:-1;27320:4:0;;27129:203;-1:-1:-1;;;27129:203:0:o;23850:123::-;20249:10;;-1:-1:-1;;;;;20249:10:0;4536;20249:26;20241:71;;;;-1:-1:-1;;;20241:71:0;;;;;;;:::i;:::-;;;;;;;;;23932:9:::1;:33:::0;;-1:-1:-1;;;;;;23932:33:0::1;-1:-1:-1::0;;;;;23932:33:0;;;::::1;::::0;;;::::1;::::0;;23850:123::o;27922:297::-;28055:4;4536:10;28113:38;28129:4;4536:10;28144:6;28113:15;:38::i;:::-;28162:27;28172:4;28178:2;28182:6;28162:9;:27::i;:::-;;28207:4;28200:11;;;27922:297;;;;;;:::o;21108:148::-;20382:7;;-1:-1:-1;;;;;20382:7:0;4536:10;20382:23;20374:70;;;;-1:-1:-1;;;20374:70:0;;;;;;;:::i;:::-;21173:10:::1;::::0;:15;21165:44:::1;;;::::0;-1:-1:-1;;;21165:44:0;;10683:2:1;21165:44:0::1;::::0;::::1;10665:21:1::0;10722:2;10702:18;;;10695:30;-1:-1:-1;;;10741:18:1;;;10734:46;10797:18;;21165:44:0::1;10481:340:1::0;21165:44:0::1;21233:15;21220:10;:28:::0;21108:148::o;24444:90::-;20249:10;;-1:-1:-1;;;;;20249:10:0;4536;20249:26;20241:71;;;;-1:-1:-1;;;20241:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24506:12:0::1;24521:5;24506:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;24506:20:0::1;::::0;;24444:90::o;24549:144::-;24604:7;26168:18;;;;;;16525:42;26168:18;;;;24631:12;;:54;;26168:18;24631:33;;:12;:16;:33::i;:::-;:37;;:54::i;:::-;24624:61;;24549:144;:::o;28628:242::-;4536:10;28718:4;28799:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;28799:27:0;;;;;;;;;;28718:4;;4536:10;28774:66;;4536:10;;28799:27;;:40;;28829:10;;28799:40;:::i;:::-;28774:8;:66::i;24237:199::-;20249:10;;-1:-1:-1;;;;;20249:10:0;4536;20249:26;20241:71;;;;-1:-1:-1;;;20241:71:0;;;;;;;:::i;:::-;24346:21:::1;:39:::0;;;::::1;;-1:-1:-1::0;;;24346:39:0::1;-1:-1:-1::0;;;;24346:39:0;;::::1;::::0;;;::::1;::::0;;;24396:13:::1;:32:::0;24237:199::o;20498:115::-;20117:8;;-1:-1:-1;;;;;20117:8:0;4536:10;20117:24;20109:72;;;;-1:-1:-1;;;20109:72:0;;;;;;;:::i;:::-;20586:8:::1;:19:::0;;-1:-1:-1;;;;;;20586:19:0::1;-1:-1:-1::0;;;;;20586:19:0;;;::::1;::::0;;;::::1;::::0;;20498:115::o;21275:224::-;20382:7;;-1:-1:-1;;;;;20382:7:0;4536:10;20382:23;20374:70;;;;-1:-1:-1;;;20374:70:0;;;;;;;:::i;:::-;21350:6:::1;::::0;;-1:-1:-1;;;;;21350:6:0;;::::1;21330:28;::::0;;;:11:::1;:28;::::0;;;;;;;:35;;-1:-1:-1;;21330:35:0;;::::1;21361:4;21330:35:::0;;::::1;::::0;;;21400:6;;;::::1;21376:32:::0;;:15:::1;:32:::0;;;;;;:39;;;::::1;::::0;::::1;::::0;;21442:10:::1;::::0;;;::::1;21426:27:::0;;;;;:34;;;;::::1;;::::0;;21471:13:::1;:20:::0;;-1:-1:-1;;;;21471:20:0::1;-1:-1:-1::0;;;21471:20:0::1;::::0;;21275:224::o;22500:233::-;20249:10;;-1:-1:-1;;;;;20249:10:0;4536;20249:26;20241:71;;;;-1:-1:-1;;;20241:71:0;;;;;;;:::i;:::-;22583:10:::1;::::0;22575:37:::1;;;;-1:-1:-1::0;;;22575:37:0::1;;;;;;;:::i;:::-;22650:10;::::0;:21:::1;::::0;22663:8:::1;22650:21;:::i;:::-;22631:15;:40;;22623:61;;;;-1:-1:-1::0;;;22623:61:0::1;;;;;;;:::i;:::-;22703:10;:22:::0;22500:233::o;24990:106::-;25048:13;25081:7;25074:14;;;;;:::i;23005:122::-;20249:10;;-1:-1:-1;;;;;20249:10:0;4536;20249:26;20241:71;;;;-1:-1:-1;;;20241:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23091:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;23091:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23005:122::o;29373:440::-;4536:10;29468:4;29551:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;29551:27:0;;;;;;;;;;29468:4;;4536:10;29597:35;;;;29589:85;;;;-1:-1:-1;;;29589:85:0;;12522:2:1;29589:85:0;;;12504:21:1;12561:2;12541:18;;;12534:30;12600:34;12580:18;;;12573:62;-1:-1:-1;;;12651:18:1;;;12644:35;12696:19;;29589:85:0;12320:401:1;29589:85:0;29710:60;29719:5;29726:7;29754:15;29735:16;:34;29710:8;:60::i;:::-;-1:-1:-1;29801:4:0;;29373:440;-1:-1:-1;;;;29373:440:0:o;26400:195::-;26481:4;4536:10;26537:28;4536:10;26554:2;26558:6;26537:9;:28::i;20791:169::-;20117:8;;-1:-1:-1;;;;;20117:8:0;4536:10;20117:24;20109:72;;;;-1:-1:-1;;;20109:72:0;;;;;;;:::i;:::-;20870:6:::1;20865:88;20886:5;:12;20882:1;:16;20865:88;;;20937:4;20920;:14;20925:5;20931:1;20925:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;20920:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;20920:14:0;:21;;-1:-1:-1;;20920:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;20900:3;::::1;::::0;::::1;:::i;:::-;;;;20865:88;;;;20791:169:::0;:::o;24108:121::-;20249:10;;-1:-1:-1;;;;;20249:10:0;4536;20249:26;20241:71;;;;-1:-1:-1;;;20241:71:0;;;;;;;:::i;:::-;24194:10:::1;:27:::0;;-1:-1:-1;;;;;;24194:27:0::1;-1:-1:-1::0;;;;;24194:27:0;;;::::1;::::0;;;::::1;::::0;;24108:121::o;21539:718::-;20249:10;;-1:-1:-1;;;;;20249:10:0;4536;20249:26;20241:71;;;;-1:-1:-1;;;20241:71:0;;;;;;;:::i;:::-;21756:7:::1;:24:::0;;;21791:5:::1;:20:::0;;;21822:6:::1;:22:::0;;;21857:13:::1;:36:::0;;;21904:11:::1;:32:::0;;;21947:12:::1;:34:::0;;;22027:6:::1;::::0;22005:42:::1;::::0;21766:14;;22005:29:::1;::::0;;21831:13;21799:12;22005:10:::1;:17::i;:::-;:21:::0;::::1;:29::i;:42::-;21994:8;:53;;;;22078:60;22124:13;;22078:41;22112:6;;22078:29;22095:11;;22078:12;;:16;;:29;;;;:::i;:60::-;22058:17;:80:::0;22159:8:::1;::::0;22171:2:::1;-1:-1:-1::0;22159:14:0::1;22151:39;;;::::0;-1:-1:-1;;;22151:39:0;;11028:2:1;22151:39:0::1;::::0;::::1;11010:21:1::0;11067:2;11047:18;;;11040:30;-1:-1:-1;;;11086:18:1;;;11079:42;11138:18;;22151:39:0::1;10826:336:1::0;22151:39:0::1;22230:2;22209:17;;:23;;22201:48;;;::::0;-1:-1:-1;;;22201:48:0;;11028:2:1;22201:48:0::1;::::0;::::1;11010:21:1::0;11067:2;11047:18;;;11040:30;-1:-1:-1;;;11086:18:1;;;11079:42;11138:18;;22201:48:0::1;10826:336:1::0;22201:48:0::1;21539:718:::0;;;;;;:::o;23982:118::-;20249:10;;-1:-1:-1;;;;;20249:10:0;4536;20249:26;20241:71;;;;-1:-1:-1;;;20241:71:0;;;;;;;:::i;:::-;24066:10:::1;:26:::0;;-1:-1:-1;;;;;;24066:26:0::1;-1:-1:-1::0;;;;;24066:26:0;;;::::1;::::0;;;::::1;::::0;;23982:118::o;23411:425::-;20249:10;;-1:-1:-1;;;;;20249:10:0;4536;20249:26;20241:71;;;;-1:-1:-1;;;20241:71:0;;;;;;;:::i;:::-;23473:6:::1;;23483:1;23473:11;23465:40;;;::::0;-1:-1:-1;;;23465:40:0;;11369:2:1;23465:40:0::1;::::0;::::1;11351:21:1::0;11408:2;11388:18;;;11381:30;-1:-1:-1;;;11427:18:1;;;11420:46;11483:18;;23465:40:0::1;11167:340:1::0;23465:40:0::1;23540:10;::::0;23532:37:::1;;;;-1:-1:-1::0;;;23532:37:0::1;;;;;;;:::i;:::-;23615:10;::::0;:21:::1;::::0;23628:8:::1;23615:21;:::i;:::-;23596:15;:40;;23588:61;;;;-1:-1:-1::0;;;23588:61:0::1;;;;;;;:::i;:::-;23671:1;23662:6;:10:::0;;;23728:7:::1;::::0;23705:5:::1;::::0;23694:6:::1;::::0;:42:::1;::::0;:29:::1;::::0;23671:1;;23694:29;;:10:::1;:17::i;:42::-;23683:8;:53;;;;23767:60;23813:13;;23767:41;23801:6;;23767:29;23784:11;;23767:12;;:16;;:29;;;;:::i;:60::-;23747:17;:80:::0;23411:425::o;22270:222::-;20249:10;;-1:-1:-1;;;;;20249:10:0;4536;20249:26;20241:71;;;;-1:-1:-1;;;20241:71:0;;;;;;;:::i;:::-;22349:10:::1;::::0;22341:37:::1;;;;-1:-1:-1::0;;;22341:37:0::1;;;;;;;:::i;:::-;22416:10;::::0;:21:::1;::::0;22429:8:::1;22416:21;:::i;:::-;22397:15;:40;;22389:61;;;;-1:-1:-1::0;;;22389:61:0::1;;;;;;;:::i;:::-;22461:12;:23:::0;22270:222::o;22741:252::-;20249:10;;-1:-1:-1;;;;;20249:10:0;4536;20249:26;20241:71;;;;-1:-1:-1;;;20241:71:0;;;;;;;:::i;:::-;22824:10:::1;::::0;22816:37:::1;;;;-1:-1:-1::0;;;22816:37:0::1;;;;;;;:::i;:::-;22899:10;::::0;:21:::1;::::0;22912:8:::1;22899:21;:::i;:::-;22880:15;:40;;22872:61;;;;-1:-1:-1::0;;;22872:61:0::1;;;;;;;:::i;:::-;22960:14;:25:::0;;;::::1;;-1:-1:-1::0;;;22960:25:0::1;-1:-1:-1::0;;;;22960:25:0;;::::1;::::0;;;::::1;::::0;;22741:252::o;20621:154::-;20117:8;;-1:-1:-1;;;;;20117:8:0;4536:10;20117:24;20109:72;;;;-1:-1:-1;;;20109:72:0;;;;;;;:::i;:::-;20720:16:::1;:47:::0;;-1:-1:-1;;;;;;20720:47:0::1;-1:-1:-1::0;;;;;20720:47:0;;;::::1;::::0;;;::::1;::::0;;20621:154::o;23135:266::-;20249:10;;-1:-1:-1;;;;;20249:10:0;4536;20249:26;20241:71;;;;-1:-1:-1;;;20241:71:0;;;;;;;:::i;:::-;23233:10:::1;::::0;23225:37:::1;;;;-1:-1:-1::0;;;23225:37:0::1;;;;;;;:::i;:::-;23308:10;::::0;:21:::1;::::0;23321:8:::1;23308:21;:::i;:::-;23289:15;:40;;23281:61;;;;-1:-1:-1::0;;;23281:61:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;23361:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;23361:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;23135:266::o;21001:99::-;20382:7;;-1:-1:-1;;;;;20382:7:0;4536:10;20382:23;20374:70;;;;-1:-1:-1;;;20374:70:0;;;;;;;:::i;:::-;21079:13:::1;::::0;;-1:-1:-1;;;;21062:30:0;::::1;-1:-1:-1::0;;;21079:13:0;;;::::1;;;21078:14;21062:30:::0;;::::1;;::::0;;21001:99::o;7532:98::-;7590:7;7617:5;7621:1;7617;:5;:::i;32104:380::-;-1:-1:-1;;;;;32240:19:0;;32232:68;;;;-1:-1:-1;;;32232:68:0;;11714:2:1;32232:68:0;;;11696:21:1;11753:2;11733:18;;;11726:30;11792:34;11772:18;;;11765:62;-1:-1:-1;;;11843:18:1;;;11836:34;11887:19;;32232:68:0;11512:400:1;32232:68:0;-1:-1:-1;;;;;32319:21:0;;32311:68;;;;-1:-1:-1;;;32311:68:0;;7796:2:1;32311:68:0;;;7778:21:1;7835:2;7815:18;;;7808:30;7874:34;7854:18;;;7847:62;-1:-1:-1;;;7925:18:1;;;7918:32;7967:19;;32311:68:0;7594:398:1;32311:68:0;-1:-1:-1;;;;;32392:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;32444:32;;12872:25:1;;;32444:32:0;;12845:18:1;32444:32:0;;;;;;;32104:380;;;:::o;32771:453::-;-1:-1:-1;;;;;26774:18:0;;;32906:24;26774:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;32973:37:0;;32969:248;;33055:6;33035:16;:26;;33027:68;;;;-1:-1:-1;;;33027:68:0;;8199:2:1;33027:68:0;;;8181:21:1;8238:2;8218:18;;;8211:30;8277:31;8257:18;;;8250:59;8326:18;;33027:68:0;7997:353:1;33027:68:0;33139:51;33148:5;33155:7;33183:6;33164:16;:25;33139:8;:51::i;:::-;32895:329;32771:453;;;:::o;29821:1216::-;29944:13;;29909:4;;-1:-1:-1;;;29944:13:0;;;;29936:40;;;;-1:-1:-1;;;29936:40:0;;7453:2:1;29936:40:0;;;7435:21:1;7492:2;7472:18;;;7465:30;-1:-1:-1;;;7511:18:1;;;7504:44;7565:18;;29936:40:0;7251:338:1;29936:40:0;-1:-1:-1;;;;;29996:12:0;;;;;;:4;:12;;;;;;;;29995:13;:33;;;;-1:-1:-1;;;;;;30013:15:0;;;;;;:4;:15;;;;;;;;30012:16;29995:33;29987:42;;;;;;30045:16;;-1:-1:-1;;;30045:16:0;;;;30042:73;;;30071:41;30086:6;30094:9;30105:6;30071:14;:41::i;:::-;30064:48;;;;30042:73;30145:12;;30135:6;:22;;:49;;;-1:-1:-1;;;;;;30161:23:0;;;;;;:15;:23;;;;;;;;30135:49;30127:75;;;;-1:-1:-1;;;30127:75:0;;8893:2:1;30127:75:0;;;8875:21:1;8932:2;8912:18;;;8905:30;-1:-1:-1;;;8951:18:1;;;8944:43;9004:18;;30127:75:0;8691:337:1;30127:75:0;-1:-1:-1;;;;;30219:26:0;;;;;;:15;:26;;;;;;;;30218:27;:45;;;;-1:-1:-1;30249:14:0;;-1:-1:-1;;;30249:14:0;;;;30218:45;30215:162;;;30333:10;;-1:-1:-1;;;;;30297:20:0;;:9;:20;;;;;;;;;;;:32;;30322:6;30297:24;:32::i;:::-;:46;;30289:76;;;;-1:-1:-1;;;30289:76:0;;9976:2:1;30289:76:0;;;9958:21:1;10015:2;9995:18;;;9988:30;-1:-1:-1;;;10034:18:1;;;10027:47;10091:18;;30289:76:0;9774:341:1;30289:76:0;30406:4;;-1:-1:-1;;;;;30406:4:0;30392:10;:18;;;;:39;;-1:-1:-1;30415:16:0;;-1:-1:-1;;;30415:16:0;;;;30414:17;30392:39;:64;;;;-1:-1:-1;30435:21:0;;-1:-1:-1;;;30435:21:0;;;;30392:64;:109;;;;-1:-1:-1;30488:13:0;;30478:4;30460:9;:24;;;;;;;;;;;:41;;30392:109;30389:128;;;30504:10;:8;:10::i;:::-;30549:53;;;;;;;;;;;-1:-1:-1;;;30549:53:0;;;;;;;;-1:-1:-1;;;;;30549:17:0;;-1:-1:-1;30549:17:0;;;;;;;;;;;;:53;;30571:6;;30549:21;:53::i;:::-;-1:-1:-1;;;;;30529:17:0;;:9;:17;;;;;;;;;;;:73;;;;30646:11;:19;;;;;;;;30645:20;:47;;;;-1:-1:-1;;;;;;30670:22:0;;;;;;:11;:22;;;;;;;;30669:23;30645:47;:93;;30732:6;30645:93;;;30695:34;30703:6;30711:9;30722:6;30695:7;:34::i;:::-;-1:-1:-1;;;;;30772:20:0;;:9;:20;;;;;;;;;;;30623:115;;-1:-1:-1;30772:37:0;;30623:115;30772:24;:37::i;:::-;-1:-1:-1;;;;;30749:20:0;;;:9;:20;;;;;;;;;;:60;;;;30835:4;;30825:14;;;30835:4;;30825:14;:58;;;;-1:-1:-1;30861:10:0;;:22;;30874:9;30861:22;:::i;:::-;30843:15;:40;30825:58;30822:128;;;30914:24;;-1:-1:-1;;;30914:24:0;;7453:2:1;30914:24:0;;;7435:21:1;7492:2;7472:18;;;7465:30;-1:-1:-1;;;7511:18:1;;;7504:44;7565:18;;30914:24:0;7251:338:1;30822:128:0;30984:9;-1:-1:-1;;;;;30967:40:0;30976:6;-1:-1:-1;;;;;30967:40:0;;30995:11;30967:40;;;;12872:25:1;;12860:2;12845:18;;12726:177;30967:40:0;;;;;;;;-1:-1:-1;31025:4:0;;29821:1216;-1:-1:-1;;;;29821:1216:0:o;7913:98::-;7971:7;7998:5;8002:1;7998;:5;:::i;31049:330::-;31179:53;;;;;;;;;;;-1:-1:-1;;;31179:53:0;;;;;;;;-1:-1:-1;;;;;31179:17:0;;31142:4;31179:17;;;;;;;;;;;:53;;31201:6;;31179:21;:53::i;:::-;-1:-1:-1;;;;;31159:17:0;;;:9;:17;;;;;;;;;;;:73;;;;31266:20;;;;;;;:32;;31291:6;31266:24;:32::i;:::-;-1:-1:-1;;;;;31243:20:0;;;:9;:20;;;;;;;;;;;;:55;;;;31314:35;12872:25:1;;;31243:20:0;;31314:35;;;;;;12845:18:1;31314:35:0;;;;;;;-1:-1:-1;31367:4:0;31049:330;;;;;:::o;33679:2234::-;19988:16;:23;;-1:-1:-1;;;;19988:23:0;-1:-1:-1;;;19988:23:0;;;33785:4:::1;19988:23:::0;33767:24;;;::::1;::::0;;;;;;;33994:8:::1;::::0;33767:24;;19988:23;;;;;;;34006:1:::1;-1:-1:-1::0;33990:241:0::1;;34042:62;34102:1;34042:55;34079:17;;34042:32;34062:11;;34042:15;:19;;:32;;;;:::i;:::-;:36:::0;::::1;:55::i;:62::-;34024:80;;33990:241;;;34155:47;34200:1;34155:40;34186:8;;34155:26;34175:5;;34155:15;:19;;:26;;;;:::i;:47::-;34137:65;;33990:241;34243:20;34266:36;:15:::0;34286;34266:19:::1;:36::i;:::-;34339:16;::::0;;34353:1:::1;34339:16:::0;;;;;::::1;::::0;;34243:59;;-1:-1:-1;34315:21:0::1;::::0;34339:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;34339:16:0::1;34315:40;;34384:4;34366;34371:1;34366:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;34366:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;34410:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;34410:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;34366:7;;34410:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;34400:4;34405:1;34400:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;34400:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;34436:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;34436:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;34508:12;;34436:6:::1;::::0;34551:4;;34578::::1;::::0;34598:15:::1;::::0;34436:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;34637:17;34657:21;34637:41;;34756:1;34744:8;;:13;34740:508;;34787:50;34819:17;;34787:27;34801:12;;34787:9;:13;;:27;;;;:::i;:50::-;34774:63;;34865:44;34891:17;;34865:21;34879:6;;34865:9;:13;;:21;;;;:::i;:44::-;34852:57;;34945:56;34999:1;34945:49;34976:17;;34945:26;34959:11;;34945:9;:13;;:26;;;;:::i;:56::-;34924:77;;34740:508;;;35049:35;35075:8;;35049:21;35063:6;;35049:9;:13;;:21;;;;:::i;:35::-;35036:48;;35112:35;35138:8;;35112:21;35126:6;;35112:9;:13;;:21;;;;:::i;:35::-;35099:48;;35183:41;35222:1;35183:34;35208:8;;35183:20;35197:5;;35183:9;:13;;:20;;;;:::i;:41::-;35162:62;;34740:508;35260:21;35284:65;35330:18:::0;35284:41:::1;35314:10:::0;35284:41;:9;35298:10;35284:13:::1;:25::i;:65::-;35260:89:::0;-1:-1:-1;35365:13:0;;35362:205:::1;;35402:16;;;;;;;;;-1:-1:-1::0;;;;;35402:16:0::1;-1:-1:-1::0;;;;;35394:34:0::1;;35436:10;35394:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;35476:9:0::1;::::0;:30:::1;::::0;-1:-1:-1;;;;;35476:9:0;;::::1;::::0;-1:-1:-1;35476:30:0;::::1;;;::::0;-1:-1:-1;35495:10:0;;-1:-1:-1;35476:9:0::1;:30:::0;:9;:30;35495:10;35476:9;:30;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;35521:10:0::1;::::0;:34:::1;::::0;-1:-1:-1;;;;;35521:10:0;;::::1;::::0;:34;::::1;;;::::0;35541:13;;35521:10:::1;:34:::0;:10;:34;35541:13;35521:10;:34;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;35362:205;35582:19:::0;;35579:315:::1;;35617:6;::::0;:265:::1;::::0;-1:-1:-1;;;35617:265:0;;35693:4:::1;35617:265;::::0;::::1;5952:34:1::0;6002:18;;;5995:34;;;35617:6:0::1;6045:18:1::0;;;6038:34;;;6088:18;;;6081:34;35791:42:0::1;6131:19:1::0;;;6124:44;35852:15:0::1;6184:19:1::0;;;6177:35;-1:-1:-1;;;;;35617:6:0;;::::1;::::0;:22:::1;::::0;35647:18;;5886:19:1;;35617:265:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;35579:315;-1:-1:-1::0;;20034:16:0;:24;;-1:-1:-1;;;;20034:24:0;;;-1:-1:-1;;;;;;;33679:2234:0:o;9811:240::-;9931:7;9992:12;9984:6;;;;9976:29;;;;-1:-1:-1;;;9976:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;10027:5:0;;;9811:240::o;33232:439::-;33372:4;;33318:7;;;;-1:-1:-1;;;;;33372:17:0;;;:4;;:17;:48;;33412:8;;33372:48;;;33392:17;;33372:48;33348:72;-1:-1:-1;33431:17:0;33451:34;33481:3;33451:25;:6;33348:72;33451:10;:25::i;:34::-;33543:4;33525:9;:24;;;;;;;;;;;33431:54;;-1:-1:-1;33525:39:0;;33431:54;33525:28;:39::i;:::-;33516:4;33498:9;:24;;;;;;;;;;;;:66;;;;33580:42;12872:25:1;;;33516:4:0;;-1:-1:-1;;;;;33580:42:0;;;;;12845:18:1;33580:42:0;;;;;;;33642:21;:6;33653:9;33642:10;:21::i;:::-;33635:28;33232:439;-1:-1:-1;;;;;;33232:439:0:o;8270:98::-;8328:7;8355:5;8359:1;8355;:5;:::i;8669:98::-;8727:7;8754:5;8758:1;8754;:5;:::i;14:134:1:-;82:20;;111:31;82:20;111:31;:::i;:::-;14:134;;;:::o;153:160::-;218:20;;274:13;;267:21;257:32;;247:60;;303:1;300;293:12;318:247;377:6;430:2;418:9;409:7;405:23;401:32;398:52;;;446:1;443;436:12;398:52;485:9;472:23;504:31;529:5;504:31;:::i;570:251::-;640:6;693:2;681:9;672:7;668:23;664:32;661:52;;;709:1;706;699:12;661:52;741:9;735:16;760:31;785:5;760:31;:::i;1086:388::-;1154:6;1162;1215:2;1203:9;1194:7;1190:23;1186:32;1183:52;;;1231:1;1228;1221:12;1183:52;1270:9;1257:23;1289:31;1314:5;1289:31;:::i;:::-;1339:5;-1:-1:-1;1396:2:1;1381:18;;1368:32;1409:33;1368:32;1409:33;:::i;:::-;1461:7;1451:17;;;1086:388;;;;;:::o;1479:456::-;1556:6;1564;1572;1625:2;1613:9;1604:7;1600:23;1596:32;1593:52;;;1641:1;1638;1631:12;1593:52;1680:9;1667:23;1699:31;1724:5;1699:31;:::i;:::-;1749:5;-1:-1:-1;1806:2:1;1791:18;;1778:32;1819:33;1778:32;1819:33;:::i;:::-;1479:456;;1871:7;;-1:-1:-1;;;1925:2:1;1910:18;;;;1897:32;;1479:456::o;1940:315::-;2005:6;2013;2066:2;2054:9;2045:7;2041:23;2037:32;2034:52;;;2082:1;2079;2072:12;2034:52;2121:9;2108:23;2140:31;2165:5;2140:31;:::i;:::-;2190:5;-1:-1:-1;2214:35:1;2245:2;2230:18;;2214:35;:::i;:::-;2204:45;;1940:315;;;;;:::o;2260:::-;2328:6;2336;2389:2;2377:9;2368:7;2364:23;2360:32;2357:52;;;2405:1;2402;2395:12;2357:52;2444:9;2431:23;2463:31;2488:5;2463:31;:::i;:::-;2513:5;2565:2;2550:18;;;;2537:32;;-1:-1:-1;;;2260:315:1:o;2580:1132::-;2664:6;2695:2;2738;2726:9;2717:7;2713:23;2709:32;2706:52;;;2754:1;2751;2744:12;2706:52;2794:9;2781:23;2823:18;2864:2;2856:6;2853:14;2850:34;;;2880:1;2877;2870:12;2850:34;2918:6;2907:9;2903:22;2893:32;;2963:7;2956:4;2952:2;2948:13;2944:27;2934:55;;2985:1;2982;2975:12;2934:55;3021:2;3008:16;3043:2;3039;3036:10;3033:36;;;3049:18;;:::i;:::-;3095:2;3092:1;3088:10;3127:2;3121:9;3190:2;3186:7;3181:2;3177;3173:11;3169:25;3161:6;3157:38;3245:6;3233:10;3230:22;3225:2;3213:10;3210:18;3207:46;3204:72;;;3256:18;;:::i;:::-;3292:2;3285:22;3342:18;;;3376:15;;;;-1:-1:-1;3411:11:1;;;3441;;;3437:20;;3434:33;-1:-1:-1;3431:53:1;;;3480:1;3477;3470:12;3431:53;3502:1;3493:10;;3512:169;3526:2;3523:1;3520:9;3512:169;;;3583:23;3602:3;3583:23;:::i;:::-;3571:36;;3544:1;3537:9;;;;;3627:12;;;;3659;;3512:169;;;-1:-1:-1;3700:6:1;2580:1132;-1:-1:-1;;;;;;;;2580:1132:1:o;3717:180::-;3773:6;3826:2;3814:9;3805:7;3801:23;3797:32;3794:52;;;3842:1;3839;3832:12;3794:52;3865:26;3881:9;3865:26;:::i;3902:248::-;3967:6;3975;4028:2;4016:9;4007:7;4003:23;3999:32;3996:52;;;4044:1;4041;4034:12;3996:52;4067:26;4083:9;4067:26;:::i;4155:180::-;4214:6;4267:2;4255:9;4246:7;4242:23;4238:32;4235:52;;;4283:1;4280;4273:12;4235:52;-1:-1:-1;4306:23:1;;4155:180;-1:-1:-1;4155:180:1:o;4340:306::-;4428:6;4436;4444;4497:2;4485:9;4476:7;4472:23;4468:32;4465:52;;;4513:1;4510;4503:12;4465:52;4542:9;4536:16;4526:26;;4592:2;4581:9;4577:18;4571:25;4561:35;;4636:2;4625:9;4621:18;4615:25;4605:35;;4340:306;;;;;:::o;4651:523::-;4755:6;4763;4771;4779;4787;4795;4848:3;4836:9;4827:7;4823:23;4819:33;4816:53;;;4865:1;4862;4855:12;4816:53;-1:-1:-1;;4888:23:1;;;4958:2;4943:18;;4930:32;;-1:-1:-1;5009:2:1;4994:18;;4981:32;;5060:2;5045:18;;5032:32;;-1:-1:-1;5111:3:1;5096:19;;5083:33;;-1:-1:-1;5163:3:1;5148:19;5135:33;;-1:-1:-1;4651:523:1;-1:-1:-1;4651:523:1:o;6649:597::-;6761:4;6790:2;6819;6808:9;6801:21;6851:6;6845:13;6894:6;6889:2;6878:9;6874:18;6867:34;6919:1;6929:140;6943:6;6940:1;6937:13;6929:140;;;7038:14;;;7034:23;;7028:30;7004:17;;;7023:2;7000:26;6993:66;6958:10;;6929:140;;;7087:6;7084:1;7081:13;7078:91;;;7157:1;7152:2;7143:6;7132:9;7128:22;7124:31;7117:42;7078:91;-1:-1:-1;7230:2:1;7209:15;-1:-1:-1;;7205:29:1;7190:45;;;;7237:2;7186:54;;6649:597;-1:-1:-1;;;6649:597:1:o;8355:331::-;8557:2;8539:21;;;8596:1;8576:18;;;8569:29;-1:-1:-1;;;8629:2:1;8614:18;;8607:38;8677:2;8662:18;;8355:331::o;9033:332::-;9235:2;9217:21;;;9274:1;9254:18;;;9247:29;-1:-1:-1;;;9307:2:1;9292:18;;9285:39;9356:2;9341:18;;9033:332::o;9370:399::-;9572:2;9554:21;;;9611:2;9591:18;;;9584:30;9650:34;9645:2;9630:18;;9623:62;-1:-1:-1;;;9716:2:1;9701:18;;9694:33;9759:3;9744:19;;9370:399::o;10120:356::-;10322:2;10304:21;;;10341:18;;;10334:30;10400:34;10395:2;10380:18;;10373:62;10467:2;10452:18;;10120:356::o;11917:398::-;12119:2;12101:21;;;12158:2;12138:18;;;12131:30;12197:34;12192:2;12177:18;;12170:62;-1:-1:-1;;;12263:2:1;12248:18;;12241:32;12305:3;12290:19;;11917:398::o;12908:980::-;13170:4;13218:3;13207:9;13203:19;13249:6;13238:9;13231:25;13275:2;13313:6;13308:2;13297:9;13293:18;13286:34;13356:3;13351:2;13340:9;13336:18;13329:31;13380:6;13415;13409:13;13446:6;13438;13431:22;13484:3;13473:9;13469:19;13462:26;;13523:2;13515:6;13511:15;13497:29;;13544:1;13554:195;13568:6;13565:1;13562:13;13554:195;;;13633:13;;-1:-1:-1;;;;;13629:39:1;13617:52;;13724:15;;;;13689:12;;;;13665:1;13583:9;13554:195;;;-1:-1:-1;;;;;;;13805:32:1;;;;13800:2;13785:18;;13778:60;-1:-1:-1;;;13869:3:1;13854:19;13847:35;13766:3;12908:980;-1:-1:-1;;;12908:980:1:o;14082:128::-;14122:3;14153:1;14149:6;14146:1;14143:13;14140:39;;;14159:18;;:::i;:::-;-1:-1:-1;14195:9:1;;14082:128::o;14215:217::-;14255:1;14281;14271:132;;14325:10;14320:3;14316:20;14313:1;14306:31;14360:4;14357:1;14350:15;14388:4;14385:1;14378:15;14271:132;-1:-1:-1;14417:9:1;;14215:217::o;14437:168::-;14477:7;14543:1;14539;14535:6;14531:14;14528:1;14525:21;14520:1;14513:9;14506:17;14502:45;14499:71;;;14550:18;;:::i;:::-;-1:-1:-1;14590:9:1;;14437:168::o;14610:125::-;14650:4;14678:1;14675;14672:8;14669:34;;;14683:18;;:::i;:::-;-1:-1:-1;14720:9:1;;14610:125::o;14740:380::-;14819:1;14815:12;;;;14862;;;14883:61;;14937:4;14929:6;14925:17;14915:27;;14883:61;14990:2;14982:6;14979:14;14959:18;14956:38;14953:161;;;15036:10;15031:3;15027:20;15024:1;15017:31;15071:4;15068:1;15061:15;15099:4;15096:1;15089:15;14953:161;;14740:380;;;:::o;15125:135::-;15164:3;-1:-1:-1;;15185:17:1;;15182:43;;;15205:18;;:::i;:::-;-1:-1:-1;15252:1:1;15241:13;;15125:135::o;15265:127::-;15326:10;15321:3;15317:20;15314:1;15307:31;15357:4;15354:1;15347:15;15381:4;15378:1;15371:15;15397:127;15458:10;15453:3;15449:20;15446:1;15439:31;15489:4;15486:1;15479:15;15513:4;15510:1;15503:15;15529:127;15590:10;15585:3;15581:20;15578:1;15571:31;15621:4;15618:1;15611:15;15645:4;15642:1;15635:15;15661:131;-1:-1:-1;;;;;15736:31:1;;15726:42;;15716:70;;15782:1;15779;15772:12;15716:70;15661:131;:::o
Swarm Source
ipfs://66bde435a58658fde273e258146139b21fe9591d7f8c1a1c260299e6685b510b
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.