Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 127 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 15300250 | 907 days ago | IN | 0 ETH | 0.00232214 | ||||
Approve | 14655977 | 1011 days ago | IN | 0 ETH | 0.00154085 | ||||
Approve | 14653123 | 1011 days ago | IN | 0 ETH | 0.00167645 | ||||
Approve | 14567891 | 1025 days ago | IN | 0 ETH | 0.00302028 | ||||
Transfer | 14558177 | 1026 days ago | IN | 0 ETH | 0.00252012 | ||||
Transfer | 14558171 | 1026 days ago | IN | 0 ETH | 0.00177302 | ||||
Transfer | 14558133 | 1026 days ago | IN | 0 ETH | 0.0029951 | ||||
Transfer | 14558124 | 1026 days ago | IN | 0 ETH | 0.00293984 | ||||
Transfer | 14558102 | 1026 days ago | IN | 0 ETH | 0.00969705 | ||||
Approve | 14557024 | 1027 days ago | IN | 0 ETH | 0.00084689 | ||||
Approve | 14551392 | 1027 days ago | IN | 0 ETH | 0.00158169 | ||||
Approve | 14550380 | 1028 days ago | IN | 0 ETH | 0.00158748 | ||||
Approve | 14549452 | 1028 days ago | IN | 0 ETH | 0.00089885 | ||||
Approve | 14549452 | 1028 days ago | IN | 0 ETH | 0.00154805 | ||||
Approve | 14548338 | 1028 days ago | IN | 0 ETH | 0.00208463 | ||||
Approve | 14547818 | 1028 days ago | IN | 0 ETH | 0.00318532 | ||||
Approve | 14547811 | 1028 days ago | IN | 0 ETH | 0.00260559 | ||||
Approve | 14547801 | 1028 days ago | IN | 0 ETH | 0.00284049 | ||||
Approve | 14547372 | 1028 days ago | IN | 0 ETH | 0.00282953 | ||||
Approve | 14547262 | 1028 days ago | IN | 0 ETH | 0.00356849 | ||||
Approve | 14547162 | 1028 days ago | IN | 0 ETH | 0.00335464 | ||||
Approve | 14547134 | 1028 days ago | IN | 0 ETH | 0.00194815 | ||||
Approve | 14547116 | 1028 days ago | IN | 0 ETH | 0.0025026 | ||||
Approve | 14547106 | 1028 days ago | IN | 0 ETH | 0.00262597 | ||||
Approve | 14547101 | 1028 days ago | IN | 0 ETH | 0.00246288 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
15300250 | 907 days ago | 0.0012931 ETH | ||||
15300250 | 907 days ago | 0.0012931 ETH | ||||
15300250 | 907 days ago | 0.00048029 ETH | ||||
15300250 | 907 days ago | 0.00306651 ETH | ||||
14653147 | 1011 days ago | 0.00143644 ETH | ||||
14653147 | 1011 days ago | 0.00143644 ETH | ||||
14653147 | 1011 days ago | 0.00053353 ETH | ||||
14653147 | 1011 days ago | 0.00340642 ETH | ||||
14567893 | 1025 days ago | 0.00013927 ETH | ||||
14567893 | 1025 days ago | 0.00013927 ETH | ||||
14567893 | 1025 days ago | 0.00005173 ETH | ||||
14567893 | 1025 days ago | 0.00033028 ETH | ||||
14558102 | 1026 days ago | 0.00290262 ETH | ||||
14558102 | 1026 days ago | 0.00290262 ETH | ||||
14558102 | 1026 days ago | 0.00107811 ETH | ||||
14558102 | 1026 days ago | 0.00688337 ETH | ||||
14557046 | 1027 days ago | 0.00057888 ETH | ||||
14557046 | 1027 days ago | 0.00057888 ETH | ||||
14557046 | 1027 days ago | 0.00021501 ETH | ||||
14557046 | 1027 days ago | 0.00137279 ETH | ||||
14553363 | 1027 days ago | 0.002926 ETH | ||||
14553363 | 1027 days ago | 0.002926 ETH | ||||
14553363 | 1027 days ago | 0.0010868 ETH | ||||
14553363 | 1027 days ago | 0.00693881 ETH | ||||
14551398 | 1027 days ago | 0.00130252 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
SminemToken
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-02 */ // File: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts (last updated v4.5.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, 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/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/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/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: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router01.sol pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } // File: @uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol pragma solidity >=0.6.2; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( 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 swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } // File: @uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } // File: token/SminemToken.sol // SPDX-License-Identifier: MIT pragma solidity ^0.8.12; contract SminemToken is IERC20, Ownable { using SafeMath for *; string private constant _name = unicode"Sminem DAO Launchpad"; string private constant _symbol = unicode"SMNM"; uint8 private constant _decimals = 18; uint256 private constant _totalSupply = 10**12 * 1e18; uint256 private _marketingFee = 35000000000 * 1e18; uint256 private _sminemFee = 13000000000 * 1e18; uint256 private _devFee = 35000000000 * 1e18; uint256 private _totalFeePercent = _getTotalFeePercent(); uint256 private _maxAmountInTx = _totalSupply; address private _marketingAddress; address private _sminemAddress; address private _devAddress; uint256 private _previousMarketingFee; uint256 private _previousSminemFee; uint256 private _previousDevFee; uint256 private _maxOwnedTokensPercent = 2; uint256 private _maxTokensInWalletPercent = 5; uint256 private _floor = 0; mapping(address => bool) private _botList; mapping(address => uint256) private _balanceOf; mapping (address => mapping(address => uint256)) private _allowance; mapping (address => bool) private _isExcludedFromFee; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private isOpen = false; bool private inSwap = false; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor(address payable devAddress, address payable marketingAddress, address payable sminemAddress) { _balanceOf[_msgSender()] = _totalSupply; _marketingAddress = marketingAddress; _sminemAddress = sminemAddress; _devAddress = devAddress; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_msgSender()] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromFee[_sminemAddress] = true; _isExcludedFromFee[_devAddress] = true; emit Transfer(address(0), _msgSender(), _totalSupply); } function open() external onlyOwner { require(!isOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _totalSupply); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance} (address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); isOpen = true; } receive() external payable {} function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure returns (uint256) { return _totalSupply; } function transfer(address recipient, uint amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function approve(address spender, uint amount) public override returns (bool) { require(_msgSender() != address(0)); require(spender != address(0)); _allowance[_msgSender()][spender] = amount; emit Approval(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint amount) public override returns (bool) { require(_msgSender() != address(0)); require(sender != address(0)); _transfer(sender, recipient, amount); _allowance[sender][_msgSender()] = _allowance[sender][_msgSender()].sub(amount); return true; } function balanceOf(address account) public view returns (uint256) { return _balanceOf[account]; } function allowance(address owner, address spender) public view returns (uint256) { return _allowance[owner][spender]; } function _transfer(address sender, address recipient, uint amount) private { require(sender != address(0), "[sminem]: transfer from the zero address"); require(recipient != address(0), "[sminem]: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if(sender != owner() && recipient != owner()) { if(!_isExcludedFromFee[recipient] && !_isExcludedFromFee[sender] ) { require(amount <= _maxAmountInTx, "Transfer amount exceeds the maxTxAmount."); } require(!_botList[sender] && !_botList[recipient], "Bot detected"); if(sender == uniswapV2Pair && recipient != address(uniswapV2Router) && !_isExcludedFromFee[recipient]) { require(isOpen, "[sminem]: Trading not started yet."); uint walletBalance = balanceOf(address(recipient)); require(amount.add(walletBalance) <= _totalSupply.mul(_maxOwnedTokensPercent).div(100)); } uint256 contractTokenBalance = balanceOf(address(this)); if(!inSwap && sender != uniswapV2Pair && isOpen) { if(contractTokenBalance > 0) { if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(_maxTokensInWalletPercent).div(100)) { contractTokenBalance = balanceOf(uniswapV2Pair).mul(_maxTokensInWalletPercent).div(100); } swapTokensForEth(contractTokenBalance); } uint256 contractETHBalance = address(this).balance; if(contractETHBalance > _floor) { sendETHToFee(address(this).balance.sub(_floor)); } } } bool takeFee = true; if(_isExcludedFromFee[sender] || _isExcludedFromFee[recipient]) takeFee = false; if(!takeFee) removeAllFee(); _transferRegular(sender, recipient, amount); if(!takeFee) restoreAllFee(); } function _transferRegular(address sender, address recipient, uint256 amount) private { _balanceOf[sender] = _balanceOf[sender].sub(amount); uint256 fee = getFee(amount); _balanceOf[recipient] = _balanceOf[recipient].add(amount).sub(fee); _balanceOf[address(this)] = _balanceOf[address(this)].add(fee); emit Transfer(sender, recipient, amount); } function getFee(uint256 amount) private view returns(uint256) { uint256 fee = amount.mul(_totalFeePercent).div(_totalSupply); return fee; } function _getTotalFeePercent() private view returns(uint256) { return _sminemFee.add(_marketingFee).add(_devFee); } function splitFee(uint256 sum) private view returns(uint256, uint256, uint256) { uint split1 = sum.mul(_sminemFee).div(_totalFeePercent); uint split2 = sum.mul(_marketingFee).div(_totalFeePercent); uint split3 = sum.mul(_devFee).div(_totalFeePercent); return (split1, split2, split3); } function _approve(address owner, address spender, uint amount) private { require(owner != address(0), "[sminem]: approve from the zero address"); require(spender != address(0), "[sminem]: approve to the zero address"); _allowance[owner][spender] = amount; emit Approval(owner, spender, amount); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { (uint256 split1, uint256 split2, uint256 split3) = splitFee(amount); bool success = false; (success, ) = _sminemAddress.call{value: split1}(""); require(success); (success, ) = _marketingAddress.call{value: split2}(""); require(success); (success, ) = _devAddress.call{value: split3}(""); require(success); } function excludeFromFee(address account) external onlyOwner { _isExcludedFromFee[account] = true; } function includeToFee (address payable account) external onlyOwner { _isExcludedFromFee[account] = false; } function setMarketingWallet (address payable marketingWalletAddress) external onlyOwner { _isExcludedFromFee[_marketingAddress] = false; _marketingAddress = marketingWalletAddress; _isExcludedFromFee[marketingWalletAddress] = true; } function setSminemWallet (address payable sminemWalletAddress) external onlyOwner { _isExcludedFromFee[_sminemAddress] = false; _sminemAddress = sminemWalletAddress; _isExcludedFromFee[sminemWalletAddress] = true; } function setDevWallet (address payable devWalletAddress) external onlyOwner { _isExcludedFromFee[_devAddress] = false; _devAddress = devWalletAddress; _isExcludedFromFee[devWalletAddress] = true; } function setMarketingFee(uint256 fee) external onlyOwner { _marketingFee = fee; _totalFeePercent = _getTotalFeePercent(); } function setSminemFee(uint256 fee) external onlyOwner { _sminemFee = fee; _totalFeePercent = _getTotalFeePercent(); } function setDevFee(uint256 fee) external onlyOwner { _devFee = fee; _totalFeePercent = _getTotalFeePercent(); } function restoreAllFee() private { _marketingFee = _previousMarketingFee; _devFee = _previousDevFee; _sminemFee = _previousSminemFee; _totalFeePercent = _getTotalFeePercent(); } function removeAllFee() private { _previousMarketingFee = _marketingFee; _previousDevFee = _devFee; _previousSminemFee = _sminemFee; _marketingFee = 0; _devFee = 0; _sminemFee = 0; _totalFeePercent = _getTotalFeePercent(); } function setBots(address[] memory bots) public onlyOwner { for (uint i = 0; i < bots.length; i++) { if (bots[i] != uniswapV2Pair && bots[i] != address(uniswapV2Router)) { _botList[bots[i]] = true; } } } function manualswap(uint256 amount) external onlyOwner { require(amount <= balanceOf(address(this))); swapTokensForEth(amount); } function manualsend() external onlyOwner { uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function setMaxTxPercent(uint256 val) external onlyOwner { _maxAmountInTx = val; } function setMaxOwnedPercent(uint256 per) external onlyOwner { _maxOwnedTokensPercent = per; } function setTokensInWalletPercent(uint256 per) external onlyOwner { _maxTokensInWalletPercent = per; } function setFloor(uint256 floor) external onlyOwner { _floor = floor; } function unbot(address notbot) public onlyOwner { _botList[notbot] = false; } function isBot(address party) public view returns (bool) { return _botList[party]; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address payable","name":"devAddress","type":"address"},{"internalType":"address payable","name":"marketingAddress","type":"address"},{"internalType":"address payable","name":"sminemAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"party","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"open","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setDevFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"devWalletAddress","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"floor","type":"uint256"}],"name":"setFloor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setMarketingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketingWalletAddress","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"per","type":"uint256"}],"name":"setMaxOwnedPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"val","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setSminemFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"sminemWalletAddress","type":"address"}],"name":"setSminemWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"per","type":"uint256"}],"name":"setTokensInWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unbot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526b71175249d9818853b80000006001556b2a0159141d968317c80000006002556b71175249d9818853b800000060035562000044620004cc60201b60201c565b6004556c0c9f2c9cd04674edea400000006005556002600c556005600d556000600e5560006014806101000a81548160ff0219169083151502179055506000601460156101000a81548160ff021916908315150217905550348015620000a957600080fd5b5060405162004b4c38038062004b4c8339818101604052810190620000cf91906200065a565b620000ef620000e36200050c60201b60201c565b6200051460201b60201c565b6c0c9f2c9cd04674edea4000000060106000620001116200050c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000620002806200050c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160126000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200044f6200050c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6c0c9f2c9cd04674edea40000000604051620004bb9190620006d1565b60405180910390a35050506200077a565b600062000507600354620004f3600154600254620005d860201b620020891790919060201c565b620005d860201b620020891790919060201c565b905090565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008183620005e891906200071d565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200062282620005f5565b9050919050565b620006348162000615565b81146200064057600080fd5b50565b600081519050620006548162000629565b92915050565b600080600060608486031215620006765762000675620005f0565b5b6000620006868682870162000643565b9350506020620006998682870162000643565b9250506040620006ac8682870162000643565b9150509250925092565b6000819050919050565b620006cb81620006b6565b82525050565b6000602082019050620006e86000830184620006c0565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200072a82620006b6565b91506200073783620006b6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200076f576200076e620006ee565b5b828201905092915050565b6143c2806200078a6000396000f3fe6080604052600436106101d15760003560e01c8063881dce60116100f7578063cf0848f711610095578063f2fde38b11610064578063f2fde38b14610665578063f7d071811461068e578063fa9ad57f146106b7578063fcfff16f146106e0576101d8565b8063cf0848f7146105ad578063d543dbeb146105d6578063dd62ed3e146105ff578063dff4474e1461063c576101d8565b806395d89b41116100d157806395d89b41146104f3578063a9059cbb1461051e578063aa0531751461055b578063b515566a14610584576101d8565b8063881dce60146104765780638da5cb5b1461049f5780638efbc0d8146104ca576101d8565b80633bbac5791161016f578063628554fa1161013e578063628554fa146103e25780636fc3eaec1461040b57806370a0823114610422578063715018a61461045f576101d8565b80633bbac5791461032a578063437823ec146103675780635d098b3814610390578063625e764c146103b9576101d8565b80631c75b6b2116101ab5780631c75b6b2146102705780631f53ac021461029957806323b872dd146102c2578063313ce567146102ff576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f26106f7565b6040516101ff91906133c0565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a919061348a565b610734565b60405161023c91906134e5565b60405180910390f35b34801561025157600080fd5b5061025a6108ae565b604051610267919061350f565b60405180910390f35b34801561027c57600080fd5b506102976004803603810190610292919061352a565b6108c3565b005b3480156102a557600080fd5b506102c060048036038101906102bb9190613595565b610957565b005b3480156102ce57600080fd5b506102e960048036038101906102e491906135c2565b610ae9565b6040516102f691906134e5565b60405180910390f35b34801561030b57600080fd5b50610314610c98565b6040516103219190613631565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c919061364c565b610ca1565b60405161035e91906134e5565b60405180910390f35b34801561037357600080fd5b5061038e6004803603810190610389919061364c565b610cf7565b005b34801561039c57600080fd5b506103b760048036038101906103b29190613595565b610dce565b005b3480156103c557600080fd5b506103e060048036038101906103db919061352a565b610f60565b005b3480156103ee57600080fd5b5061040960048036038101906104049190613595565b610ff4565b005b34801561041757600080fd5b50610420611186565b005b34801561042e57600080fd5b506104496004803603810190610444919061364c565b611213565b604051610456919061350f565b60405180910390f35b34801561046b57600080fd5b5061047461125c565b005b34801561048257600080fd5b5061049d6004803603810190610498919061352a565b6112e4565b005b3480156104ab57600080fd5b506104b4611381565b6040516104c19190613688565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec919061352a565b6113aa565b005b3480156104ff57600080fd5b50610508611430565b60405161051591906133c0565b60405180910390f35b34801561052a57600080fd5b506105456004803603810190610540919061348a565b61146d565b60405161055291906134e5565b60405180910390f35b34801561056757600080fd5b50610582600480360381019061057d919061352a565b61148b565b005b34801561059057600080fd5b506105ab60048036038101906105a691906137eb565b611511565b005b3480156105b957600080fd5b506105d460048036038101906105cf9190613595565b611708565b005b3480156105e257600080fd5b506105fd60048036038101906105f8919061352a565b6117df565b005b34801561060b57600080fd5b5061062660048036038101906106219190613834565b611865565b604051610633919061350f565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e919061352a565b6118ec565b005b34801561067157600080fd5b5061068c6004803603810190610687919061364c565b611972565b005b34801561069a57600080fd5b506106b560048036038101906106b0919061364c565b611a6a565b005b3480156106c357600080fd5b506106de60048036038101906106d9919061352a565b611b41565b005b3480156106ec57600080fd5b506106f5611bd5565b005b60606040518060400160405280601481526020017f536d696e656d2044414f204c61756e6368706164000000000000000000000000815250905090565b60008073ffffffffffffffffffffffffffffffffffffffff1661075561209f565b73ffffffffffffffffffffffffffffffffffffffff16141561077657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107b057600080fd5b81601160006107bd61209f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff1661085761209f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c919061350f565b60405180910390a36001905092915050565b60006c0c9f2c9cd04674edea40000000905090565b6108cb61209f565b73ffffffffffffffffffffffffffffffffffffffff166108e9611381565b73ffffffffffffffffffffffffffffffffffffffff161461093f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610936906138c0565b60405180910390fd5b8060038190555061094e6120a7565b60048190555050565b61095f61209f565b73ffffffffffffffffffffffffffffffffffffffff1661097d611381565b73ffffffffffffffffffffffffffffffffffffffff16146109d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ca906138c0565b60405180910390fd5b600060126000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff16610b0a61209f565b73ffffffffffffffffffffffffffffffffffffffff161415610b2b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610b6557600080fd5b610b708484846120d9565b610c0682601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bbd61209f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286190919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c4f61209f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b60006012905090565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610cff61209f565b73ffffffffffffffffffffffffffffffffffffffff16610d1d611381565b73ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a906138c0565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610dd661209f565b73ffffffffffffffffffffffffffffffffffffffff16610df4611381565b73ffffffffffffffffffffffffffffffffffffffff1614610e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e41906138c0565b60405180910390fd5b600060126000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f6861209f565b73ffffffffffffffffffffffffffffffffffffffff16610f86611381565b73ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd3906138c0565b60405180910390fd5b80600181905550610feb6120a7565b60048190555050565b610ffc61209f565b73ffffffffffffffffffffffffffffffffffffffff1661101a611381565b73ffffffffffffffffffffffffffffffffffffffff1614611070576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611067906138c0565b60405180910390fd5b600060126000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61118e61209f565b73ffffffffffffffffffffffffffffffffffffffff166111ac611381565b73ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f9906138c0565b60405180910390fd5b600047905061121081612877565b50565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61126461209f565b73ffffffffffffffffffffffffffffffffffffffff16611282611381565b73ffffffffffffffffffffffffffffffffffffffff16146112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf906138c0565b60405180910390fd5b6112e26000612a5c565b565b6112ec61209f565b73ffffffffffffffffffffffffffffffffffffffff1661130a611381565b73ffffffffffffffffffffffffffffffffffffffff1614611360576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611357906138c0565b60405180910390fd5b61136930611213565b81111561137557600080fd5b61137e81612b20565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113b261209f565b73ffffffffffffffffffffffffffffffffffffffff166113d0611381565b73ffffffffffffffffffffffffffffffffffffffff1614611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d906138c0565b60405180910390fd5b80600e8190555050565b60606040518060400160405280600481526020017f534d4e4d00000000000000000000000000000000000000000000000000000000815250905090565b600061148161147a61209f565b84846120d9565b6001905092915050565b61149361209f565b73ffffffffffffffffffffffffffffffffffffffff166114b1611381565b73ffffffffffffffffffffffffffffffffffffffff1614611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe906138c0565b60405180910390fd5b80600d8190555050565b61151961209f565b73ffffffffffffffffffffffffffffffffffffffff16611537611381565b73ffffffffffffffffffffffffffffffffffffffff161461158d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611584906138c0565b60405180910390fd5b60005b815181101561170457601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106115e5576115e46138e0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156116795750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110611658576116576138e0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156116f1576001600f6000848481518110611697576116966138e0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806116fc9061393e565b915050611590565b5050565b61171061209f565b73ffffffffffffffffffffffffffffffffffffffff1661172e611381565b73ffffffffffffffffffffffffffffffffffffffff1614611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177b906138c0565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6117e761209f565b73ffffffffffffffffffffffffffffffffffffffff16611805611381565b73ffffffffffffffffffffffffffffffffffffffff161461185b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611852906138c0565b60405180910390fd5b8060058190555050565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118f461209f565b73ffffffffffffffffffffffffffffffffffffffff16611912611381565b73ffffffffffffffffffffffffffffffffffffffff1614611968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195f906138c0565b60405180910390fd5b80600c8190555050565b61197a61209f565b73ffffffffffffffffffffffffffffffffffffffff16611998611381565b73ffffffffffffffffffffffffffffffffffffffff16146119ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e5906138c0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a55906139f9565b60405180910390fd5b611a6781612a5c565b50565b611a7261209f565b73ffffffffffffffffffffffffffffffffffffffff16611a90611381565b73ffffffffffffffffffffffffffffffffffffffff1614611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add906138c0565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611b4961209f565b73ffffffffffffffffffffffffffffffffffffffff16611b67611381565b73ffffffffffffffffffffffffffffffffffffffff1614611bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb4906138c0565b60405180910390fd5b80600281905550611bcc6120a7565b60048190555050565b611bdd61209f565b73ffffffffffffffffffffffffffffffffffffffff16611bfb611381565b73ffffffffffffffffffffffffffffffffffffffff1614611c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c48906138c0565b60405180910390fd5b60148054906101000a900460ff1615611c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9690613a65565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611d3330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166c0c9f2c9cd04674edea40000000612d99565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da29190613a9a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2d9190613a9a565b6040518363ffffffff1660e01b8152600401611e4a929190613ac7565b6020604051808303816000875af1158015611e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8d9190613a9a565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611f1630611213565b600080611f21611381565b426040518863ffffffff1660e01b8152600401611f4396959493929190613b35565b60606040518083038185885af1158015611f61573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f869190613bab565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401612028929190613bfe565b6020604051808303816000875af1158015612047573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206b9190613c53565b5060016014806101000a81548160ff02191690831515021790555050565b600081836120979190613c80565b905092915050565b600033905090565b60006120d46003546120c660015460025461208990919063ffffffff16565b61208990919063ffffffff16565b905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214090613d48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b090613dda565b60405180910390fd5b600081116121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f390613e6c565b60405180910390fd5b612204611381565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122725750612242611381565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561278357601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561231b5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561236657600554811115612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235c90613efe565b60405180910390fd5b5b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561240a5750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244090613f6a565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124f45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561254a5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125fe5760148054906101000a900460ff1661259c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259390613ffc565b60405180910390fd5b60006125a783611213565b90506125de60646125d0600c546c0c9f2c9cd04674edea40000000612f6490919063ffffffff16565b612f7a90919063ffffffff16565b6125f1828461208990919063ffffffff16565b11156125fc57600080fd5b505b600061260930611213565b9050601460159054906101000a900460ff161580156126765750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561268c575060148054906101000a900460ff165b15612781576000811115612752576126ec60646126de600d546126d0601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611213565b612f6490919063ffffffff16565b612f7a90919063ffffffff16565b811115612748576127456064612737600d54612729601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611213565b612f6490919063ffffffff16565b612f7a90919063ffffffff16565b90505b61275181612b20565b5b6000479050600e5481111561277f5761277e612779600e544761286190919063ffffffff16565b612877565b5b505b505b600060019050601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061282a5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561283457600090505b8061284257612841612f90565b5b61284d848484612fd3565b8061285b5761285a61321c565b5b50505050565b6000818361286f919061401c565b905092915050565b600080600061288584613247565b9250925092506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516128d390614081565b60006040518083038185875af1925050503d8060008114612910576040519150601f19603f3d011682016040523d82523d6000602084013e612915565b606091505b5050809150508061292557600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161296b90614081565b60006040518083038185875af1925050503d80600081146129a8576040519150601f19603f3d011682016040523d82523d6000602084013e6129ad565b606091505b505080915050806129bd57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612a0390614081565b60006040518083038185875af1925050503d8060008114612a40576040519150601f19603f3d011682016040523d82523d6000602084013e612a45565b606091505b50508091505080612a5557600080fd5b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612b5857612b576136a8565b5b604051908082528060200260200182016040528015612b865781602001602082028036833780820191505090505b5090503081600081518110612b9e57612b9d6138e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c699190613a9a565b81600181518110612c7d57612c7c6138e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ce430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612d99565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d48959493929190614154565b600060405180830381600087803b158015612d6257600080fd5b505af1158015612d76573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0090614220565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e70906142b2565b60405180910390fd5b80601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612f57919061350f565b60405180910390a3505050565b60008183612f7291906142d2565b905092915050565b60008183612f88919061435b565b905092915050565b600154600981905550600354600b81905550600254600a81905550600060018190555060006003819055506000600281905550612fcb6120a7565b600481905550565b61302581601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286190919063ffffffff16565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000613073826132e5565b90506130d9816130cb84601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208990919063ffffffff16565b61286190919063ffffffff16565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061316e81601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208990919063ffffffff16565b601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161320e919061350f565b60405180910390a350505050565b600954600181905550600b54600381905550600a5460028190555061323f6120a7565b600481905550565b60008060008061327660045461326860025488612f6490919063ffffffff16565b612f7a90919063ffffffff16565b905060006132a360045461329560015489612f6490919063ffffffff16565b612f7a90919063ffffffff16565b905060006132d06004546132c26003548a612f6490919063ffffffff16565b612f7a90919063ffffffff16565b90508282829550955095505050509193909250565b60008061331c6c0c9f2c9cd04674edea4000000061330e60045486612f6490919063ffffffff16565b612f7a90919063ffffffff16565b905080915050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613361578082015181840152602081019050613346565b83811115613370576000848401525b50505050565b6000601f19601f8301169050919050565b600061339282613327565b61339c8185613332565b93506133ac818560208601613343565b6133b581613376565b840191505092915050565b600060208201905081810360008301526133da8184613387565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613421826133f6565b9050919050565b61343181613416565b811461343c57600080fd5b50565b60008135905061344e81613428565b92915050565b6000819050919050565b61346781613454565b811461347257600080fd5b50565b6000813590506134848161345e565b92915050565b600080604083850312156134a1576134a06133ec565b5b60006134af8582860161343f565b92505060206134c085828601613475565b9150509250929050565b60008115159050919050565b6134df816134ca565b82525050565b60006020820190506134fa60008301846134d6565b92915050565b61350981613454565b82525050565b60006020820190506135246000830184613500565b92915050565b6000602082840312156135405761353f6133ec565b5b600061354e84828501613475565b91505092915050565b6000613562826133f6565b9050919050565b61357281613557565b811461357d57600080fd5b50565b60008135905061358f81613569565b92915050565b6000602082840312156135ab576135aa6133ec565b5b60006135b984828501613580565b91505092915050565b6000806000606084860312156135db576135da6133ec565b5b60006135e98682870161343f565b93505060206135fa8682870161343f565b925050604061360b86828701613475565b9150509250925092565b600060ff82169050919050565b61362b81613615565b82525050565b60006020820190506136466000830184613622565b92915050565b600060208284031215613662576136616133ec565b5b60006136708482850161343f565b91505092915050565b61368281613416565b82525050565b600060208201905061369d6000830184613679565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6136e082613376565b810181811067ffffffffffffffff821117156136ff576136fe6136a8565b5b80604052505050565b60006137126133e2565b905061371e82826136d7565b919050565b600067ffffffffffffffff82111561373e5761373d6136a8565b5b602082029050602081019050919050565b600080fd5b600061376761376284613723565b613708565b9050808382526020820190506020840283018581111561378a5761378961374f565b5b835b818110156137b3578061379f888261343f565b84526020840193505060208101905061378c565b5050509392505050565b600082601f8301126137d2576137d16136a3565b5b81356137e2848260208601613754565b91505092915050565b600060208284031215613801576138006133ec565b5b600082013567ffffffffffffffff81111561381f5761381e6133f1565b5b61382b848285016137bd565b91505092915050565b6000806040838503121561384b5761384a6133ec565b5b60006138598582860161343f565b925050602061386a8582860161343f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138aa602083613332565b91506138b582613874565b602082019050919050565b600060208201905081810360008301526138d98161389d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061394982613454565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561397c5761397b61390f565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139e3602683613332565b91506139ee82613987565b604082019050919050565b60006020820190508181036000830152613a12816139d6565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613a4f601783613332565b9150613a5a82613a19565b602082019050919050565b60006020820190508181036000830152613a7e81613a42565b9050919050565b600081519050613a9481613428565b92915050565b600060208284031215613ab057613aaf6133ec565b5b6000613abe84828501613a85565b91505092915050565b6000604082019050613adc6000830185613679565b613ae96020830184613679565b9392505050565b6000819050919050565b6000819050919050565b6000613b1f613b1a613b1584613af0565b613afa565b613454565b9050919050565b613b2f81613b04565b82525050565b600060c082019050613b4a6000830189613679565b613b576020830188613500565b613b646040830187613b26565b613b716060830186613b26565b613b7e6080830185613679565b613b8b60a0830184613500565b979650505050505050565b600081519050613ba58161345e565b92915050565b600080600060608486031215613bc457613bc36133ec565b5b6000613bd286828701613b96565b9350506020613be386828701613b96565b9250506040613bf486828701613b96565b9150509250925092565b6000604082019050613c136000830185613679565b613c206020830184613500565b9392505050565b613c30816134ca565b8114613c3b57600080fd5b50565b600081519050613c4d81613c27565b92915050565b600060208284031215613c6957613c686133ec565b5b6000613c7784828501613c3e565b91505092915050565b6000613c8b82613454565b9150613c9683613454565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ccb57613cca61390f565b5b828201905092915050565b7f5b736d696e656d5d3a207472616e736665722066726f6d20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000613d32602883613332565b9150613d3d82613cd6565b604082019050919050565b60006020820190508181036000830152613d6181613d25565b9050919050565b7f5b736d696e656d5d3a207472616e7366657220746f20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613dc4602683613332565b9150613dcf82613d68565b604082019050919050565b60006020820190508181036000830152613df381613db7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613e56602983613332565b9150613e6182613dfa565b604082019050919050565b60006020820190508181036000830152613e8581613e49565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613ee8602883613332565b9150613ef382613e8c565b604082019050919050565b60006020820190508181036000830152613f1781613edb565b9050919050565b7f426f742064657465637465640000000000000000000000000000000000000000600082015250565b6000613f54600c83613332565b9150613f5f82613f1e565b602082019050919050565b60006020820190508181036000830152613f8381613f47565b9050919050565b7f5b736d696e656d5d3a2054726164696e67206e6f74207374617274656420796560008201527f742e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fe6602283613332565b9150613ff182613f8a565b604082019050919050565b6000602082019050818103600083015261401581613fd9565b9050919050565b600061402782613454565b915061403283613454565b9250828210156140455761404461390f565b5b828203905092915050565b600081905092915050565b50565b600061406b600083614050565b91506140768261405b565b600082019050919050565b600061408c8261405e565b9150819050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140cb81613416565b82525050565b60006140dd83836140c2565b60208301905092915050565b6000602082019050919050565b600061410182614096565b61410b81856140a1565b9350614116836140b2565b8060005b8381101561414757815161412e88826140d1565b9750614139836140e9565b92505060018101905061411a565b5085935050505092915050565b600060a0820190506141696000830188613500565b6141766020830187613b26565b818103604083015261418881866140f6565b90506141976060830185613679565b6141a46080830184613500565b9695505050505050565b7f5b736d696e656d5d3a20617070726f76652066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b600061420a602783613332565b9150614215826141ae565b604082019050919050565b60006020820190508181036000830152614239816141fd565b9050919050565b7f5b736d696e656d5d3a20617070726f766520746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061429c602583613332565b91506142a782614240565b604082019050919050565b600060208201905081810360008301526142cb8161428f565b9050919050565b60006142dd82613454565b91506142e883613454565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156143215761432061390f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061436682613454565b915061437183613454565b9250826143815761438061432c565b5b82820490509291505056fea26469706673582212201fe6123909afb82a2171ff014fb958443bcaa7aaa01a4ea2e7e2ccf067208c4964736f6c634300080c0033000000000000000000000000902be80391ecaef62e4a06a145c0cb2c485bdc8900000000000000000000000008ae335d64b14e7d6e014a8f1aed8348decf79ea00000000000000000000000079ccf83dfa71119e96c2cb4150928082d2eb7966
Deployed Bytecode
0x6080604052600436106101d15760003560e01c8063881dce60116100f7578063cf0848f711610095578063f2fde38b11610064578063f2fde38b14610665578063f7d071811461068e578063fa9ad57f146106b7578063fcfff16f146106e0576101d8565b8063cf0848f7146105ad578063d543dbeb146105d6578063dd62ed3e146105ff578063dff4474e1461063c576101d8565b806395d89b41116100d157806395d89b41146104f3578063a9059cbb1461051e578063aa0531751461055b578063b515566a14610584576101d8565b8063881dce60146104765780638da5cb5b1461049f5780638efbc0d8146104ca576101d8565b80633bbac5791161016f578063628554fa1161013e578063628554fa146103e25780636fc3eaec1461040b57806370a0823114610422578063715018a61461045f576101d8565b80633bbac5791461032a578063437823ec146103675780635d098b3814610390578063625e764c146103b9576101d8565b80631c75b6b2116101ab5780631c75b6b2146102705780631f53ac021461029957806323b872dd146102c2578063313ce567146102ff576101d8565b806306fdde03146101dd578063095ea7b31461020857806318160ddd14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f26106f7565b6040516101ff91906133c0565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a919061348a565b610734565b60405161023c91906134e5565b60405180910390f35b34801561025157600080fd5b5061025a6108ae565b604051610267919061350f565b60405180910390f35b34801561027c57600080fd5b506102976004803603810190610292919061352a565b6108c3565b005b3480156102a557600080fd5b506102c060048036038101906102bb9190613595565b610957565b005b3480156102ce57600080fd5b506102e960048036038101906102e491906135c2565b610ae9565b6040516102f691906134e5565b60405180910390f35b34801561030b57600080fd5b50610314610c98565b6040516103219190613631565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c919061364c565b610ca1565b60405161035e91906134e5565b60405180910390f35b34801561037357600080fd5b5061038e6004803603810190610389919061364c565b610cf7565b005b34801561039c57600080fd5b506103b760048036038101906103b29190613595565b610dce565b005b3480156103c557600080fd5b506103e060048036038101906103db919061352a565b610f60565b005b3480156103ee57600080fd5b5061040960048036038101906104049190613595565b610ff4565b005b34801561041757600080fd5b50610420611186565b005b34801561042e57600080fd5b506104496004803603810190610444919061364c565b611213565b604051610456919061350f565b60405180910390f35b34801561046b57600080fd5b5061047461125c565b005b34801561048257600080fd5b5061049d6004803603810190610498919061352a565b6112e4565b005b3480156104ab57600080fd5b506104b4611381565b6040516104c19190613688565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec919061352a565b6113aa565b005b3480156104ff57600080fd5b50610508611430565b60405161051591906133c0565b60405180910390f35b34801561052a57600080fd5b506105456004803603810190610540919061348a565b61146d565b60405161055291906134e5565b60405180910390f35b34801561056757600080fd5b50610582600480360381019061057d919061352a565b61148b565b005b34801561059057600080fd5b506105ab60048036038101906105a691906137eb565b611511565b005b3480156105b957600080fd5b506105d460048036038101906105cf9190613595565b611708565b005b3480156105e257600080fd5b506105fd60048036038101906105f8919061352a565b6117df565b005b34801561060b57600080fd5b5061062660048036038101906106219190613834565b611865565b604051610633919061350f565b60405180910390f35b34801561064857600080fd5b50610663600480360381019061065e919061352a565b6118ec565b005b34801561067157600080fd5b5061068c6004803603810190610687919061364c565b611972565b005b34801561069a57600080fd5b506106b560048036038101906106b0919061364c565b611a6a565b005b3480156106c357600080fd5b506106de60048036038101906106d9919061352a565b611b41565b005b3480156106ec57600080fd5b506106f5611bd5565b005b60606040518060400160405280601481526020017f536d696e656d2044414f204c61756e6368706164000000000000000000000000815250905090565b60008073ffffffffffffffffffffffffffffffffffffffff1661075561209f565b73ffffffffffffffffffffffffffffffffffffffff16141561077657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156107b057600080fd5b81601160006107bd61209f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff1661085761209f565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161089c919061350f565b60405180910390a36001905092915050565b60006c0c9f2c9cd04674edea40000000905090565b6108cb61209f565b73ffffffffffffffffffffffffffffffffffffffff166108e9611381565b73ffffffffffffffffffffffffffffffffffffffff161461093f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610936906138c0565b60405180910390fd5b8060038190555061094e6120a7565b60048190555050565b61095f61209f565b73ffffffffffffffffffffffffffffffffffffffff1661097d611381565b73ffffffffffffffffffffffffffffffffffffffff16146109d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ca906138c0565b60405180910390fd5b600060126000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff16610b0a61209f565b73ffffffffffffffffffffffffffffffffffffffff161415610b2b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610b6557600080fd5b610b708484846120d9565b610c0682601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610bbd61209f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286190919063ffffffff16565b601160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c4f61209f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509392505050565b60006012905090565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610cff61209f565b73ffffffffffffffffffffffffffffffffffffffff16610d1d611381565b73ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a906138c0565b60405180910390fd5b6001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610dd661209f565b73ffffffffffffffffffffffffffffffffffffffff16610df4611381565b73ffffffffffffffffffffffffffffffffffffffff1614610e4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e41906138c0565b60405180910390fd5b600060126000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610f6861209f565b73ffffffffffffffffffffffffffffffffffffffff16610f86611381565b73ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd3906138c0565b60405180910390fd5b80600181905550610feb6120a7565b60048190555050565b610ffc61209f565b73ffffffffffffffffffffffffffffffffffffffff1661101a611381565b73ffffffffffffffffffffffffffffffffffffffff1614611070576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611067906138c0565b60405180910390fd5b600060126000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61118e61209f565b73ffffffffffffffffffffffffffffffffffffffff166111ac611381565b73ffffffffffffffffffffffffffffffffffffffff1614611202576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f9906138c0565b60405180910390fd5b600047905061121081612877565b50565b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61126461209f565b73ffffffffffffffffffffffffffffffffffffffff16611282611381565b73ffffffffffffffffffffffffffffffffffffffff16146112d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cf906138c0565b60405180910390fd5b6112e26000612a5c565b565b6112ec61209f565b73ffffffffffffffffffffffffffffffffffffffff1661130a611381565b73ffffffffffffffffffffffffffffffffffffffff1614611360576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611357906138c0565b60405180910390fd5b61136930611213565b81111561137557600080fd5b61137e81612b20565b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113b261209f565b73ffffffffffffffffffffffffffffffffffffffff166113d0611381565b73ffffffffffffffffffffffffffffffffffffffff1614611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d906138c0565b60405180910390fd5b80600e8190555050565b60606040518060400160405280600481526020017f534d4e4d00000000000000000000000000000000000000000000000000000000815250905090565b600061148161147a61209f565b84846120d9565b6001905092915050565b61149361209f565b73ffffffffffffffffffffffffffffffffffffffff166114b1611381565b73ffffffffffffffffffffffffffffffffffffffff1614611507576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fe906138c0565b60405180910390fd5b80600d8190555050565b61151961209f565b73ffffffffffffffffffffffffffffffffffffffff16611537611381565b73ffffffffffffffffffffffffffffffffffffffff161461158d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611584906138c0565b60405180910390fd5b60005b815181101561170457601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106115e5576115e46138e0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156116795750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110611658576116576138e0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156116f1576001600f6000848481518110611697576116966138e0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806116fc9061393e565b915050611590565b5050565b61171061209f565b73ffffffffffffffffffffffffffffffffffffffff1661172e611381565b73ffffffffffffffffffffffffffffffffffffffff1614611784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177b906138c0565b60405180910390fd5b6000601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6117e761209f565b73ffffffffffffffffffffffffffffffffffffffff16611805611381565b73ffffffffffffffffffffffffffffffffffffffff161461185b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611852906138c0565b60405180910390fd5b8060058190555050565b6000601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118f461209f565b73ffffffffffffffffffffffffffffffffffffffff16611912611381565b73ffffffffffffffffffffffffffffffffffffffff1614611968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195f906138c0565b60405180910390fd5b80600c8190555050565b61197a61209f565b73ffffffffffffffffffffffffffffffffffffffff16611998611381565b73ffffffffffffffffffffffffffffffffffffffff16146119ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e5906138c0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a55906139f9565b60405180910390fd5b611a6781612a5c565b50565b611a7261209f565b73ffffffffffffffffffffffffffffffffffffffff16611a90611381565b73ffffffffffffffffffffffffffffffffffffffff1614611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add906138c0565b60405180910390fd5b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611b4961209f565b73ffffffffffffffffffffffffffffffffffffffff16611b67611381565b73ffffffffffffffffffffffffffffffffffffffff1614611bbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bb4906138c0565b60405180910390fd5b80600281905550611bcc6120a7565b60048190555050565b611bdd61209f565b73ffffffffffffffffffffffffffffffffffffffff16611bfb611381565b73ffffffffffffffffffffffffffffffffffffffff1614611c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c48906138c0565b60405180910390fd5b60148054906101000a900460ff1615611c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9690613a65565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611d3330601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166c0c9f2c9cd04674edea40000000612d99565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da29190613a9a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e2d9190613a9a565b6040518363ffffffff1660e01b8152600401611e4a929190613ac7565b6020604051808303816000875af1158015611e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8d9190613a9a565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611f1630611213565b600080611f21611381565b426040518863ffffffff1660e01b8152600401611f4396959493929190613b35565b60606040518083038185885af1158015611f61573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f869190613bab565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401612028929190613bfe565b6020604051808303816000875af1158015612047573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061206b9190613c53565b5060016014806101000a81548160ff02191690831515021790555050565b600081836120979190613c80565b905092915050565b600033905090565b60006120d46003546120c660015460025461208990919063ffffffff16565b61208990919063ffffffff16565b905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214090613d48565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156121b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b090613dda565b60405180910390fd5b600081116121fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121f390613e6c565b60405180910390fd5b612204611381565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122725750612242611381565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561278357601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561231b5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561236657600554811115612365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235c90613efe565b60405180910390fd5b5b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561240a5750600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b612449576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244090613f6a565b60405180910390fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156124f45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561254a5750601260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156125fe5760148054906101000a900460ff1661259c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259390613ffc565b60405180910390fd5b60006125a783611213565b90506125de60646125d0600c546c0c9f2c9cd04674edea40000000612f6490919063ffffffff16565b612f7a90919063ffffffff16565b6125f1828461208990919063ffffffff16565b11156125fc57600080fd5b505b600061260930611213565b9050601460159054906101000a900460ff161580156126765750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561268c575060148054906101000a900460ff165b15612781576000811115612752576126ec60646126de600d546126d0601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611213565b612f6490919063ffffffff16565b612f7a90919063ffffffff16565b811115612748576127456064612737600d54612729601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611213565b612f6490919063ffffffff16565b612f7a90919063ffffffff16565b90505b61275181612b20565b5b6000479050600e5481111561277f5761277e612779600e544761286190919063ffffffff16565b612877565b5b505b505b600060019050601260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061282a5750601260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561283457600090505b8061284257612841612f90565b5b61284d848484612fd3565b8061285b5761285a61321c565b5b50505050565b6000818361286f919061401c565b905092915050565b600080600061288584613247565b9250925092506000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16846040516128d390614081565b60006040518083038185875af1925050503d8060008114612910576040519150601f19603f3d011682016040523d82523d6000602084013e612915565b606091505b5050809150508061292557600080fd5b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161296b90614081565b60006040518083038185875af1925050503d80600081146129a8576040519150601f19603f3d011682016040523d82523d6000602084013e6129ad565b606091505b505080915050806129bd57600080fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051612a0390614081565b60006040518083038185875af1925050503d8060008114612a40576040519150601f19603f3d011682016040523d82523d6000602084013e612a45565b606091505b50508091505080612a5557600080fd5b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612b5857612b576136a8565b5b604051908082528060200260200182016040528015612b865781602001602082028036833780820191505090505b5090503081600081518110612b9e57612b9d6138e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c699190613a9a565b81600181518110612c7d57612c7c6138e0565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612ce430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612d99565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612d48959493929190614154565b600060405180830381600087803b158015612d6257600080fd5b505af1158015612d76573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e0090614220565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e70906142b2565b60405180910390fd5b80601160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051612f57919061350f565b60405180910390a3505050565b60008183612f7291906142d2565b905092915050565b60008183612f88919061435b565b905092915050565b600154600981905550600354600b81905550600254600a81905550600060018190555060006003819055506000600281905550612fcb6120a7565b600481905550565b61302581601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461286190919063ffffffff16565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000613073826132e5565b90506130d9816130cb84601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208990919063ffffffff16565b61286190919063ffffffff16565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061316e81601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461208990919063ffffffff16565b601060003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161320e919061350f565b60405180910390a350505050565b600954600181905550600b54600381905550600a5460028190555061323f6120a7565b600481905550565b60008060008061327660045461326860025488612f6490919063ffffffff16565b612f7a90919063ffffffff16565b905060006132a360045461329560015489612f6490919063ffffffff16565b612f7a90919063ffffffff16565b905060006132d06004546132c26003548a612f6490919063ffffffff16565b612f7a90919063ffffffff16565b90508282829550955095505050509193909250565b60008061331c6c0c9f2c9cd04674edea4000000061330e60045486612f6490919063ffffffff16565b612f7a90919063ffffffff16565b905080915050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613361578082015181840152602081019050613346565b83811115613370576000848401525b50505050565b6000601f19601f8301169050919050565b600061339282613327565b61339c8185613332565b93506133ac818560208601613343565b6133b581613376565b840191505092915050565b600060208201905081810360008301526133da8184613387565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613421826133f6565b9050919050565b61343181613416565b811461343c57600080fd5b50565b60008135905061344e81613428565b92915050565b6000819050919050565b61346781613454565b811461347257600080fd5b50565b6000813590506134848161345e565b92915050565b600080604083850312156134a1576134a06133ec565b5b60006134af8582860161343f565b92505060206134c085828601613475565b9150509250929050565b60008115159050919050565b6134df816134ca565b82525050565b60006020820190506134fa60008301846134d6565b92915050565b61350981613454565b82525050565b60006020820190506135246000830184613500565b92915050565b6000602082840312156135405761353f6133ec565b5b600061354e84828501613475565b91505092915050565b6000613562826133f6565b9050919050565b61357281613557565b811461357d57600080fd5b50565b60008135905061358f81613569565b92915050565b6000602082840312156135ab576135aa6133ec565b5b60006135b984828501613580565b91505092915050565b6000806000606084860312156135db576135da6133ec565b5b60006135e98682870161343f565b93505060206135fa8682870161343f565b925050604061360b86828701613475565b9150509250925092565b600060ff82169050919050565b61362b81613615565b82525050565b60006020820190506136466000830184613622565b92915050565b600060208284031215613662576136616133ec565b5b60006136708482850161343f565b91505092915050565b61368281613416565b82525050565b600060208201905061369d6000830184613679565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6136e082613376565b810181811067ffffffffffffffff821117156136ff576136fe6136a8565b5b80604052505050565b60006137126133e2565b905061371e82826136d7565b919050565b600067ffffffffffffffff82111561373e5761373d6136a8565b5b602082029050602081019050919050565b600080fd5b600061376761376284613723565b613708565b9050808382526020820190506020840283018581111561378a5761378961374f565b5b835b818110156137b3578061379f888261343f565b84526020840193505060208101905061378c565b5050509392505050565b600082601f8301126137d2576137d16136a3565b5b81356137e2848260208601613754565b91505092915050565b600060208284031215613801576138006133ec565b5b600082013567ffffffffffffffff81111561381f5761381e6133f1565b5b61382b848285016137bd565b91505092915050565b6000806040838503121561384b5761384a6133ec565b5b60006138598582860161343f565b925050602061386a8582860161343f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138aa602083613332565b91506138b582613874565b602082019050919050565b600060208201905081810360008301526138d98161389d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061394982613454565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561397c5761397b61390f565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006139e3602683613332565b91506139ee82613987565b604082019050919050565b60006020820190508181036000830152613a12816139d6565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613a4f601783613332565b9150613a5a82613a19565b602082019050919050565b60006020820190508181036000830152613a7e81613a42565b9050919050565b600081519050613a9481613428565b92915050565b600060208284031215613ab057613aaf6133ec565b5b6000613abe84828501613a85565b91505092915050565b6000604082019050613adc6000830185613679565b613ae96020830184613679565b9392505050565b6000819050919050565b6000819050919050565b6000613b1f613b1a613b1584613af0565b613afa565b613454565b9050919050565b613b2f81613b04565b82525050565b600060c082019050613b4a6000830189613679565b613b576020830188613500565b613b646040830187613b26565b613b716060830186613b26565b613b7e6080830185613679565b613b8b60a0830184613500565b979650505050505050565b600081519050613ba58161345e565b92915050565b600080600060608486031215613bc457613bc36133ec565b5b6000613bd286828701613b96565b9350506020613be386828701613b96565b9250506040613bf486828701613b96565b9150509250925092565b6000604082019050613c136000830185613679565b613c206020830184613500565b9392505050565b613c30816134ca565b8114613c3b57600080fd5b50565b600081519050613c4d81613c27565b92915050565b600060208284031215613c6957613c686133ec565b5b6000613c7784828501613c3e565b91505092915050565b6000613c8b82613454565b9150613c9683613454565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ccb57613cca61390f565b5b828201905092915050565b7f5b736d696e656d5d3a207472616e736665722066726f6d20746865207a65726f60008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000613d32602883613332565b9150613d3d82613cd6565b604082019050919050565b60006020820190508181036000830152613d6181613d25565b9050919050565b7f5b736d696e656d5d3a207472616e7366657220746f20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613dc4602683613332565b9150613dcf82613d68565b604082019050919050565b60006020820190508181036000830152613df381613db7565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613e56602983613332565b9150613e6182613dfa565b604082019050919050565b60006020820190508181036000830152613e8581613e49565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b6000613ee8602883613332565b9150613ef382613e8c565b604082019050919050565b60006020820190508181036000830152613f1781613edb565b9050919050565b7f426f742064657465637465640000000000000000000000000000000000000000600082015250565b6000613f54600c83613332565b9150613f5f82613f1e565b602082019050919050565b60006020820190508181036000830152613f8381613f47565b9050919050565b7f5b736d696e656d5d3a2054726164696e67206e6f74207374617274656420796560008201527f742e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fe6602283613332565b9150613ff182613f8a565b604082019050919050565b6000602082019050818103600083015261401581613fd9565b9050919050565b600061402782613454565b915061403283613454565b9250828210156140455761404461390f565b5b828203905092915050565b600081905092915050565b50565b600061406b600083614050565b91506140768261405b565b600082019050919050565b600061408c8261405e565b9150819050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6140cb81613416565b82525050565b60006140dd83836140c2565b60208301905092915050565b6000602082019050919050565b600061410182614096565b61410b81856140a1565b9350614116836140b2565b8060005b8381101561414757815161412e88826140d1565b9750614139836140e9565b92505060018101905061411a565b5085935050505092915050565b600060a0820190506141696000830188613500565b6141766020830187613b26565b818103604083015261418881866140f6565b90506141976060830185613679565b6141a46080830184613500565b9695505050505050565b7f5b736d696e656d5d3a20617070726f76652066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b600061420a602783613332565b9150614215826141ae565b604082019050919050565b60006020820190508181036000830152614239816141fd565b9050919050565b7f5b736d696e656d5d3a20617070726f766520746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061429c602583613332565b91506142a782614240565b604082019050919050565b600060208201905081810360008301526142cb8161428f565b9050919050565b60006142dd82613454565b91506142e883613454565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156143215761432061390f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061436682613454565b915061437183613454565b9250826143815761438061432c565b5b82820490509291505056fea26469706673582212201fe6123909afb82a2171ff014fb958443bcaa7aaa01a4ea2e7e2ccf067208c4964736f6c634300080c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000902be80391ecaef62e4a06a145c0cb2c485bdc8900000000000000000000000008ae335d64b14e7d6e014a8f1aed8348decf79ea00000000000000000000000079ccf83dfa71119e96c2cb4150928082d2eb7966
-----Decoded View---------------
Arg [0] : devAddress (address): 0x902Be80391ECAEF62E4A06A145C0cB2C485bdc89
Arg [1] : marketingAddress (address): 0x08Ae335D64b14e7d6e014a8F1aeD8348deCf79ea
Arg [2] : sminemAddress (address): 0x79Ccf83DFa71119e96C2CB4150928082D2eb7966
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000902be80391ecaef62e4a06a145c0cb2c485bdc89
Arg [1] : 00000000000000000000000008ae335d64b14e7d6e014a8f1aed8348decf79ea
Arg [2] : 00000000000000000000000079ccf83dfa71119e96c2cb4150928082d2eb7966
Deployed Bytecode Sourcemap
19247:11157:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21897:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22412:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22171:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28550:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28032:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22687:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22083:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30299:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27266:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27510:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28266:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27780:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29612:153;;;;;;;;;;;;;:::i;:::-;;23018:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12502:103;;;;;;;;;;;;;:::i;:::-;;29448:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11851:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30104:85;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21988:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22258:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29983:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29181:262;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27384:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;29770:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23131:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29871:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12760:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;30196:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;28411:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21170:688;;;;;;;;;;;;;:::i;:::-;;21897:83;21934:13;21967:5;;;;;;;;;;;;;;;;;21960:12;;21897:83;:::o;22412:270::-;22484:4;22527:1;22503:26;;:12;:10;:12::i;:::-;:26;;;;22495:35;;;;;;22562:1;22543:21;;:7;:21;;;;22535:30;;;;;;22606:6;22570:10;:24;22581:12;:10;:12::i;:::-;22570:24;;;;;;;;;;;;;;;:33;22595:7;22570:33;;;;;;;;;;;;;;;:42;;;;22645:7;22622:39;;22631:12;:10;:12::i;:::-;22622:39;;;22654:6;22622:39;;;;;;:::i;:::-;;;;;;;;22673:4;22666:11;;22412:270;;;;:::o;22171:82::-;22215:7;19517:13;22229:19;;22171:82;:::o;28550:128::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28622:3:::1;28612:7;:13;;;;28649:21;:19;:21::i;:::-;28630:16;:40;;;;28550:128:::0;:::o;28032:229::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28153:5:::1;28119:18;:31;28138:11;;;;;;;;;;;28119:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;28183:16;28169:11;;:30;;;;;;;;;;;;;;;;;;28249:4;28210:18;:36;28229:16;28210:36;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;28032:229:::0;:::o;22687:323::-;22782:4;22825:1;22801:26;;:12;:10;:12::i;:::-;:26;;;;22793:35;;;;;;22859:1;22841:20;;:6;:20;;;;22833:29;;;;;;22867:36;22877:6;22885:9;22896:6;22867:9;:36::i;:::-;22943:44;22980:6;22943:10;:18;22954:6;22943:18;;;;;;;;;;;;;;;:32;22962:12;:10;:12::i;:::-;22943:32;;;;;;;;;;;;;;;;:36;;:44;;;;:::i;:::-;22908:10;:18;22919:6;22908:18;;;;;;;;;;;;;;;:32;22927:12;:10;:12::i;:::-;22908:32;;;;;;;;;;;;;;;:79;;;;23001:4;22994:11;;22687:323;;;;;:::o;22083:83::-;22124:5;19468:2;22142:16;;22083:83;:::o;30299:98::-;30350:4;30374:8;:15;30383:5;30374:15;;;;;;;;;;;;;;;;;;;;;;;;;30367:22;;30299:98;;;:::o;27266:113::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27367:4:::1;27337:18;:27;27356:7;27337:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;27266:113:::0;:::o;27510:265::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27649:5:::1;27609:18;:37;27628:17;;;;;;;;;;;27609:37;;;;;;;;;;;;;;;;:45;;;;;;;;;;;;;;;;;;27685:22;27665:17;;:42;;;;;;;;;;;;;;;;;;27763:4;27718:18;:42;27737:22;27718:42;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;27510:265:::0;:::o;28266:140::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28350:3:::1;28334:13;:19;;;;28377:21;:19;:21::i;:::-;28358:16;:40;;;;28266:140:::0;:::o;27780:247::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27910:5:::1;27873:18;:34;27892:14;;;;;;;;;;;27873:34;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;27943:19;27926:14;;:36;;;;;;;;;;;;;;;;;;28015:4;27973:18;:39;27992:19;27973:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;27780:247:::0;:::o;29612:153::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29664:26:::1;29693:21;29664:50;;29725:32;29738:18;29725:12;:32::i;:::-;29653:112;29612:153::o:0;23018:108::-;23075:7;23099:10;:19;23110:7;23099:19;;;;;;;;;;;;;;;;23092:26;;23018:108;;;:::o;12502:103::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12567:30:::1;12594:1;12567:18;:30::i;:::-;12502:103::o:0;29448:152::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29532:24:::1;29550:4;29532:9;:24::i;:::-;29522:6;:34;;29514:43;;;::::0;::::1;;29568:24;29585:6;29568:16;:24::i;:::-;29448:152:::0;:::o;11851:87::-;11897:7;11924:6;;;;;;;;;;;11917:13;;11851:87;:::o;30104:85::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;30176:5:::1;30167:6;:14;;;;30104:85:::0;:::o;21988:87::-;22027:13;22060:7;;;;;;;;;;;;;;;;;22053:14;;21988:87;:::o;22258:149::-;22333:4;22344:42;22354:12;:10;:12::i;:::-;22368:9;22379:6;22344:9;:42::i;:::-;22398:4;22391:11;;22258:149;;;;:::o;29983:116::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;30088:3:::1;30060:25;:31;;;;29983:116:::0;:::o;29181:262::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29248:6:::1;29243:193;29264:4;:11;29260:1;:15;29243:193;;;29312:13;;;;;;;;;;;29301:24;;:4;29306:1;29301:7;;;;;;;;:::i;:::-;;;;;;;;:24;;;;:63;;;;;29348:15;;;;;;;;;;;29329:35;;:4;29334:1;29329:7;;;;;;;;:::i;:::-;;;;;;;;:35;;;;29301:63;29297:128;;;29405:4;29385:8;:17;29394:4;29399:1;29394:7;;;;;;;;:::i;:::-;;;;;;;;29385:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;29297:128;29277:3;;;;;:::i;:::-;;;;29243:193;;;;29181:262:::0;:::o;27384:121::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27492:5:::1;27462:18;:27;27481:7;27462:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;27384:121:::0;:::o;29770:96::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29855:3:::1;29838:14;:20;;;;29770:96:::0;:::o;23131:124::-;23203:7;23224:10;:17;23235:5;23224:17;;;;;;;;;;;;;;;:26;23242:7;23224:26;;;;;;;;;;;;;;;;23217:33;;23131:124;;;;:::o;29871:107::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29967:3:::1;29942:22;:28;;;;29871:107:::0;:::o;12760:201::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12869:1:::1;12849:22;;:8;:22;;;;12841:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12925:28;12944:8;12925:18;:28::i;:::-;12760:201:::0;:::o;30196:91::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;30274:5:::1;30255:8;:16;30264:6;30255:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;30196:91:::0;:::o;28411:134::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28489:3:::1;28476:10;:16;;;;28516:21;:19;:21::i;:::-;28497:16;:40;;;;28411:134:::0;:::o;21170:688::-;12082:12;:10;:12::i;:::-;12071:23;;:7;:5;:7::i;:::-;:23;;;12063:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21219:6:::1;::::0;::::1;;;;;;;;21218:7;21210:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;21257:35;21314:42;21257:100;;21386:16;21368:15;;:34;;;;;;;;;;;;;;;;;;21407:63;21424:4;21439:15;;;;;;;;;;;19517:13;21407:8;:63::i;:::-;21509:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21491:56;;;21556:4;21563:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21491:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21475:13;;:112;;;;;;;;;;;;;;;;;;21592:15;;;;;;;;;;;:31;;;21631:21;21667:4;21678:24;21696:4;21678:9;:24::i;:::-;21708:1;21715::::0;21722:7:::1;:5;:7::i;:::-;21735:15;21592:159;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21769:13;;;;;;;;;;;21762:29;;;21800:15;;;;;;;;;;;21818:14;21762:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21849:4;21840:6;::::0;:13:::1;;;;;;;;;;;;;;;;;;21205:653;21170:688::o:0;5737:98::-;5795:7;5826:1;5822;:5;;;;:::i;:::-;5815:12;;5737:98;;;;:::o;10579:::-;10632:7;10659:10;10652:17;;10579:98;:::o;25609:120::-;25661:7;25682:42;25716:7;;25682:29;25697:13;;25682:10;;:14;;:29;;;;:::i;:::-;:33;;:42;;;;:::i;:::-;25675:49;;25609:120;:::o;23260:1823::-;23366:1;23348:20;;:6;:20;;;;23340:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;23453:1;23432:23;;:9;:23;;;;23424:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;23526:1;23517:6;:10;23509:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23597:7;:5;:7::i;:::-;23587:17;;:6;:17;;;;:41;;;;;23621:7;:5;:7::i;:::-;23608:20;;:9;:20;;;;23587:41;23584:1230;;;23649:18;:29;23668:9;23649:29;;;;;;;;;;;;;;;;;;;;;;;;;23648:30;:61;;;;;23683:18;:26;23702:6;23683:26;;;;;;;;;;;;;;;;;;;;;;;;;23682:27;23648:61;23645:179;;;23749:14;;23739:6;:24;;23731:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;23645:179;23838:8;:16;23847:6;23838:16;;;;;;;;;;;;;;;;;;;;;;;;;23837:17;:41;;;;;23859:8;:19;23868:9;23859:19;;;;;;;;;;;;;;;;;;;;;;;;;23858:20;23837:41;23829:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;23924:13;;;;;;;;;;;23914:23;;:6;:23;;;:64;;;;;23962:15;;;;;;;;;;;23941:37;;:9;:37;;;;23914:64;:98;;;;;23983:18;:29;24002:9;23983:29;;;;;;;;;;;;;;;;;;;;;;;;;23982:30;23914:98;23911:321;;;24029:6;;;;;;;;;;24021:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;24081:18;24102:29;24120:9;24102;:29::i;:::-;24081:50;;24175:49;24220:3;24175:40;24192:22;;19517:13;24175:16;;:40;;;;:::i;:::-;:44;;:49;;;;:::i;:::-;24146:25;24157:13;24146:6;:10;;:25;;;;:::i;:::-;:78;;24138:87;;;;;;24014:218;23911:321;24239:28;24270:24;24288:4;24270:9;:24::i;:::-;24239:55;;24306:6;;;;;;;;;;;24305:7;:34;;;;;24326:13;;;;;;;;;;;24316:23;;:6;:23;;;;24305:34;:44;;;;;24343:6;;;;;;;;;;24305:44;24302:507;;;24384:1;24361:20;:24;24358:287;;;24421:64;24481:3;24421:55;24450:25;;24421:24;24431:13;;;;;;;;;;;24421:9;:24::i;:::-;:28;;:55;;;;:::i;:::-;:59;;:64;;;;:::i;:::-;24398:20;:87;24395:197;;;24519:64;24579:3;24519:55;24548:25;;24519:24;24529:13;;;;;;;;;;;24519:9;:24::i;:::-;:28;;:55;;;;:::i;:::-;:59;;:64;;;;:::i;:::-;24496:87;;24395:197;24599:38;24616:20;24599:16;:38::i;:::-;24358:287;24651:26;24680:21;24651:50;;24732:6;;24711:18;:27;24708:95;;;24748:47;24761:33;24787:6;;24761:21;:25;;:33;;;;:::i;:::-;24748:12;:47::i;:::-;24708:95;24351:458;24302:507;23630:1184;23584:1230;24822:12;24837:4;24822:19;;24849:18;:26;24868:6;24849:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;24879:18;:29;24898:9;24879:29;;;;;;;;;;;;;;;;;;;;;;;;;24849:59;24846:79;;;24920:5;24910:15;;24846:79;24936:7;24932:40;;24958:14;:12;:14::i;:::-;24932:40;24983:43;25000:6;25008:9;25019:6;24983:16;:43::i;:::-;25041:7;25037:41;;25063:15;:13;:15::i;:::-;25037:41;23335:1748;23260:1823;;;:::o;6118:98::-;6176:7;6207:1;6203;:5;;;;:::i;:::-;6196:12;;6118:98;;;;:::o;26864:397::-;26916:14;26932;26948;26966:16;26975:6;26966:8;:16::i;:::-;26915:67;;;;;;26987:12;27026:14;;;;;;;;;;;:19;;27053:6;27026:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27012:52;;;;;27077:7;27069:16;;;;;;27110:17;;;;;;;;;;;:22;;27140:6;27110:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27096:55;;;;;27164:7;27156:16;;;;;;27197:11;;;;;;;;;;;:16;;27221:6;27197:35;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27183:49;;;;;27245:7;27237:16;;;;;;26910:351;;;;26864:397;:::o;13121:191::-;13195:16;13214:6;;;;;;;;;;;13195:25;;13240:8;13231:6;;:17;;;;;;;;;;;;;;;;;;13295:8;13264:40;;13285:8;13264:40;;;;;;;;;;;;13184:128;13121:191;:::o;26372:487::-;20560:4;20551:6;;:13;;;;;;;;;;;;;;;;;;26450:21:::1;26488:1;26474:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26450:40;;26519:4;26501;26506:1;26501:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;26545:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26535:4;26540:1;26535:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;26580:62;26597:4;26612:15;;;;;;;;;;;26630:11;26580:8;:62::i;:::-;26655:15;;;;;;;;;;;:66;;;26736:11;26762:1;26778:4;26805;26825:15;26655:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;26439:420;20596:5:::0;20587:6;;:14;;;;;;;;;;;;;;;;;;26372:487;:::o;26039:328::-;26140:1;26123:19;;:5;:19;;;;26115:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;26224:1;26205:21;;:7;:21;;;;26197:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;26308:6;26279:10;:17;26290:5;26279:17;;;;;;;;;;;;;;;:26;26297:7;26279:26;;;;;;;;;;;;;;;:35;;;;26346:7;26330:32;;26339:5;26330:32;;;26355:6;26330:32;;;;;;:::i;:::-;;;;;;;;26039:328;;;:::o;6475:98::-;6533:7;6564:1;6560;:5;;;;:::i;:::-;6553:12;;6475:98;;;;:::o;6874:::-;6932:7;6963:1;6959;:5;;;;:::i;:::-;6952:12;;6874:98;;;;:::o;28902:274::-;28963:13;;28939:21;:37;;;;28999:7;;28981:15;:25;;;;29032:10;;29011:18;:31;;;;29071:1;29055:13;:17;;;;29093:1;29083:7;:11;;;;29118:1;29105:10;:14;;;;29147:21;:19;:21::i;:::-;29128:16;:40;;;;28902:274::o;25088:364::-;25199:30;25222:6;25199:10;:18;25210:6;25199:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;25178:10;:18;25189:6;25178:18;;;;;;;;;;;;;;;:51;;;;25234:11;25248:14;25255:6;25248;:14::i;:::-;25234:28;;25291:42;25329:3;25291:33;25317:6;25291:10;:21;25302:9;25291:21;;;;;;;;;;;;;;;;:25;;:33;;;;:::i;:::-;:37;;:42;;;;:::i;:::-;25267:10;:21;25278:9;25267:21;;;;;;;;;;;;;;;:66;;;;25366:34;25396:3;25366:10;:25;25385:4;25366:25;;;;;;;;;;;;;;;;:29;;:34;;;;:::i;:::-;25338:10;:25;25357:4;25338:25;;;;;;;;;;;;;;;:62;;;;25429:9;25412:35;;25421:6;25412:35;;;25440:6;25412:35;;;;;;:::i;:::-;;;;;;;;25173:279;25088:364;;;:::o;28683:214::-;28743:21;;28727:13;:37;;;;28785:15;;28775:7;:25;;;;28824:18;;28811:10;:31;;;;28868:21;:19;:21::i;:::-;28849:16;:40;;;;28683:214::o;25734:300::-;25786:7;25795;25804;25818:11;25832:41;25856:16;;25832:19;25840:10;;25832:3;:7;;:19;;;;:::i;:::-;:23;;:41;;;;:::i;:::-;25818:55;;25878:11;25892:44;25919:16;;25892:22;25900:13;;25892:3;:7;;:22;;;;:::i;:::-;:26;;:44;;;;:::i;:::-;25878:58;;25941:11;25955:38;25976:16;;25955;25963:7;;25955:3;:7;;:16;;;;:::i;:::-;:20;;:38;;;;:::i;:::-;25941:52;;26006:6;26014;26022;25998:31;;;;;;;;;25734:300;;;;;:::o;25457:147::-;25510:7;25524:11;25538:46;19517:13;25538:28;25549:16;;25538:6;:10;;:28;;;;:::i;:::-;:32;;:46;;;;:::i;:::-;25524:60;;25596:3;25589:10;;;25457:147;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:104::-;4226:7;4255:24;4273:5;4255:24;:::i;:::-;4244:35;;4181:104;;;:::o;4291:138::-;4372:32;4398:5;4372:32;:::i;:::-;4365:5;4362:43;4352:71;;4419:1;4416;4409:12;4352:71;4291:138;:::o;4435:155::-;4489:5;4527:6;4514:20;4505:29;;4543:41;4578:5;4543:41;:::i;:::-;4435:155;;;;:::o;4596:345::-;4663:6;4712:2;4700:9;4691:7;4687:23;4683:32;4680:119;;;4718:79;;:::i;:::-;4680:119;4838:1;4863:61;4916:7;4907:6;4896:9;4892:22;4863:61;:::i;:::-;4853:71;;4809:125;4596:345;;;;:::o;4947:619::-;5024:6;5032;5040;5089:2;5077:9;5068:7;5064:23;5060:32;5057:119;;;5095:79;;:::i;:::-;5057:119;5215:1;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5186:117;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;5470:2;5496:53;5541:7;5532:6;5521:9;5517:22;5496:53;:::i;:::-;5486:63;;5441:118;4947:619;;;;;:::o;5572:86::-;5607:7;5647:4;5640:5;5636:16;5625:27;;5572:86;;;:::o;5664:112::-;5747:22;5763:5;5747:22;:::i;:::-;5742:3;5735:35;5664:112;;:::o;5782:214::-;5871:4;5909:2;5898:9;5894:18;5886:26;;5922:67;5986:1;5975:9;5971:17;5962:6;5922:67;:::i;:::-;5782:214;;;;:::o;6002:329::-;6061:6;6110:2;6098:9;6089:7;6085:23;6081:32;6078:119;;;6116:79;;:::i;:::-;6078:119;6236:1;6261:53;6306:7;6297:6;6286:9;6282:22;6261:53;:::i;:::-;6251:63;;6207:117;6002:329;;;;:::o;6337:118::-;6424:24;6442:5;6424:24;:::i;:::-;6419:3;6412:37;6337:118;;:::o;6461:222::-;6554:4;6592:2;6581:9;6577:18;6569:26;;6605:71;6673:1;6662:9;6658:17;6649:6;6605:71;:::i;:::-;6461:222;;;;:::o;6689:117::-;6798:1;6795;6788:12;6812:180;6860:77;6857:1;6850:88;6957:4;6954:1;6947:15;6981:4;6978:1;6971:15;6998:281;7081:27;7103:4;7081:27;:::i;:::-;7073:6;7069:40;7211:6;7199:10;7196:22;7175:18;7163:10;7160:34;7157:62;7154:88;;;7222:18;;:::i;:::-;7154:88;7262:10;7258:2;7251:22;7041:238;6998:281;;:::o;7285:129::-;7319:6;7346:20;;:::i;:::-;7336:30;;7375:33;7403:4;7395:6;7375:33;:::i;:::-;7285:129;;;:::o;7420:311::-;7497:4;7587:18;7579:6;7576:30;7573:56;;;7609:18;;:::i;:::-;7573:56;7659:4;7651:6;7647:17;7639:25;;7719:4;7713;7709:15;7701:23;;7420:311;;;:::o;7737:117::-;7846:1;7843;7836:12;7877:710;7973:5;7998:81;8014:64;8071:6;8014:64;:::i;:::-;7998:81;:::i;:::-;7989:90;;8099:5;8128:6;8121:5;8114:21;8162:4;8155:5;8151:16;8144:23;;8215:4;8207:6;8203:17;8195:6;8191:30;8244:3;8236:6;8233:15;8230:122;;;8263:79;;:::i;:::-;8230:122;8378:6;8361:220;8395:6;8390:3;8387:15;8361:220;;;8470:3;8499:37;8532:3;8520:10;8499:37;:::i;:::-;8494:3;8487:50;8566:4;8561:3;8557:14;8550:21;;8437:144;8421:4;8416:3;8412:14;8405:21;;8361:220;;;8365:21;7979:608;;7877:710;;;;;:::o;8610:370::-;8681:5;8730:3;8723:4;8715:6;8711:17;8707:27;8697:122;;8738:79;;:::i;:::-;8697:122;8855:6;8842:20;8880:94;8970:3;8962:6;8955:4;8947:6;8943:17;8880:94;:::i;:::-;8871:103;;8687:293;8610:370;;;;:::o;8986:539::-;9070:6;9119:2;9107:9;9098:7;9094:23;9090:32;9087:119;;;9125:79;;:::i;:::-;9087:119;9273:1;9262:9;9258:17;9245:31;9303:18;9295:6;9292:30;9289:117;;;9325:79;;:::i;:::-;9289:117;9430:78;9500:7;9491:6;9480:9;9476:22;9430:78;:::i;:::-;9420:88;;9216:302;8986:539;;;;:::o;9531:474::-;9599:6;9607;9656:2;9644:9;9635:7;9631:23;9627:32;9624:119;;;9662:79;;:::i;:::-;9624:119;9782:1;9807:53;9852:7;9843:6;9832:9;9828:22;9807:53;:::i;:::-;9797:63;;9753:117;9909:2;9935:53;9980:7;9971:6;9960:9;9956:22;9935:53;:::i;:::-;9925:63;;9880:118;9531:474;;;;;:::o;10011:182::-;10151:34;10147:1;10139:6;10135:14;10128:58;10011:182;:::o;10199:366::-;10341:3;10362:67;10426:2;10421:3;10362:67;:::i;:::-;10355:74;;10438:93;10527:3;10438:93;:::i;:::-;10556:2;10551:3;10547:12;10540:19;;10199:366;;;:::o;10571:419::-;10737:4;10775:2;10764:9;10760:18;10752:26;;10824:9;10818:4;10814:20;10810:1;10799:9;10795:17;10788:47;10852:131;10978:4;10852:131;:::i;:::-;10844:139;;10571:419;;;:::o;10996:180::-;11044:77;11041:1;11034:88;11141:4;11138:1;11131:15;11165:4;11162:1;11155:15;11182:180;11230:77;11227:1;11220:88;11327:4;11324:1;11317:15;11351:4;11348:1;11341:15;11368:233;11407:3;11430:24;11448:5;11430:24;:::i;:::-;11421:33;;11476:66;11469:5;11466:77;11463:103;;;11546:18;;:::i;:::-;11463:103;11593:1;11586:5;11582:13;11575:20;;11368:233;;;:::o;11607:225::-;11747:34;11743:1;11735:6;11731:14;11724:58;11816:8;11811:2;11803:6;11799:15;11792:33;11607:225;:::o;11838:366::-;11980:3;12001:67;12065:2;12060:3;12001:67;:::i;:::-;11994:74;;12077:93;12166:3;12077:93;:::i;:::-;12195:2;12190:3;12186:12;12179:19;;11838:366;;;:::o;12210:419::-;12376:4;12414:2;12403:9;12399:18;12391:26;;12463:9;12457:4;12453:20;12449:1;12438:9;12434:17;12427:47;12491:131;12617:4;12491:131;:::i;:::-;12483:139;;12210:419;;;:::o;12635:173::-;12775:25;12771:1;12763:6;12759:14;12752:49;12635:173;:::o;12814:366::-;12956:3;12977:67;13041:2;13036:3;12977:67;:::i;:::-;12970:74;;13053:93;13142:3;13053:93;:::i;:::-;13171:2;13166:3;13162:12;13155:19;;12814:366;;;:::o;13186:419::-;13352:4;13390:2;13379:9;13375:18;13367:26;;13439:9;13433:4;13429:20;13425:1;13414:9;13410:17;13403:47;13467:131;13593:4;13467:131;:::i;:::-;13459:139;;13186:419;;;:::o;13611:143::-;13668:5;13699:6;13693:13;13684:22;;13715:33;13742:5;13715:33;:::i;:::-;13611:143;;;;:::o;13760:351::-;13830:6;13879:2;13867:9;13858:7;13854:23;13850:32;13847:119;;;13885:79;;:::i;:::-;13847:119;14005:1;14030:64;14086:7;14077:6;14066:9;14062:22;14030:64;:::i;:::-;14020:74;;13976:128;13760:351;;;;:::o;14117:332::-;14238:4;14276:2;14265:9;14261:18;14253:26;;14289:71;14357:1;14346:9;14342:17;14333:6;14289:71;:::i;:::-;14370:72;14438:2;14427:9;14423:18;14414:6;14370:72;:::i;:::-;14117:332;;;;;:::o;14455:85::-;14500:7;14529:5;14518:16;;14455:85;;;:::o;14546:60::-;14574:3;14595:5;14588:12;;14546:60;;;:::o;14612:158::-;14670:9;14703:61;14721:42;14730:32;14756:5;14730:32;:::i;:::-;14721:42;:::i;:::-;14703:61;:::i;:::-;14690:74;;14612:158;;;:::o;14776:147::-;14871:45;14910:5;14871:45;:::i;:::-;14866:3;14859:58;14776:147;;:::o;14929:807::-;15178:4;15216:3;15205:9;15201:19;15193:27;;15230:71;15298:1;15287:9;15283:17;15274:6;15230:71;:::i;:::-;15311:72;15379:2;15368:9;15364:18;15355:6;15311:72;:::i;:::-;15393:80;15469:2;15458:9;15454:18;15445:6;15393:80;:::i;:::-;15483;15559:2;15548:9;15544:18;15535:6;15483:80;:::i;:::-;15573:73;15641:3;15630:9;15626:19;15617:6;15573:73;:::i;:::-;15656;15724:3;15713:9;15709:19;15700:6;15656:73;:::i;:::-;14929:807;;;;;;;;;:::o;15742:143::-;15799:5;15830:6;15824:13;15815:22;;15846:33;15873:5;15846:33;:::i;:::-;15742:143;;;;:::o;15891:663::-;15979:6;15987;15995;16044:2;16032:9;16023:7;16019:23;16015:32;16012:119;;;16050:79;;:::i;:::-;16012:119;16170:1;16195:64;16251:7;16242:6;16231:9;16227:22;16195:64;:::i;:::-;16185:74;;16141:128;16308:2;16334:64;16390:7;16381:6;16370:9;16366:22;16334:64;:::i;:::-;16324:74;;16279:129;16447:2;16473:64;16529:7;16520:6;16509:9;16505:22;16473:64;:::i;:::-;16463:74;;16418:129;15891:663;;;;;:::o;16560:332::-;16681:4;16719:2;16708:9;16704:18;16696:26;;16732:71;16800:1;16789:9;16785:17;16776:6;16732:71;:::i;:::-;16813:72;16881:2;16870:9;16866:18;16857:6;16813:72;:::i;:::-;16560:332;;;;;:::o;16898:116::-;16968:21;16983:5;16968:21;:::i;:::-;16961:5;16958:32;16948:60;;17004:1;17001;16994:12;16948:60;16898:116;:::o;17020:137::-;17074:5;17105:6;17099:13;17090:22;;17121:30;17145:5;17121:30;:::i;:::-;17020:137;;;;:::o;17163:345::-;17230:6;17279:2;17267:9;17258:7;17254:23;17250:32;17247:119;;;17285:79;;:::i;:::-;17247:119;17405:1;17430:61;17483:7;17474:6;17463:9;17459:22;17430:61;:::i;:::-;17420:71;;17376:125;17163:345;;;;:::o;17514:305::-;17554:3;17573:20;17591:1;17573:20;:::i;:::-;17568:25;;17607:20;17625:1;17607:20;:::i;:::-;17602:25;;17761:1;17693:66;17689:74;17686:1;17683:81;17680:107;;;17767:18;;:::i;:::-;17680:107;17811:1;17808;17804:9;17797:16;;17514:305;;;;:::o;17825:227::-;17965:34;17961:1;17953:6;17949:14;17942:58;18034:10;18029:2;18021:6;18017:15;18010:35;17825:227;:::o;18058:366::-;18200:3;18221:67;18285:2;18280:3;18221:67;:::i;:::-;18214:74;;18297:93;18386:3;18297:93;:::i;:::-;18415:2;18410:3;18406:12;18399:19;;18058:366;;;:::o;18430:419::-;18596:4;18634:2;18623:9;18619:18;18611:26;;18683:9;18677:4;18673:20;18669:1;18658:9;18654:17;18647:47;18711:131;18837:4;18711:131;:::i;:::-;18703:139;;18430:419;;;:::o;18855:225::-;18995:34;18991:1;18983:6;18979:14;18972:58;19064:8;19059:2;19051:6;19047:15;19040:33;18855:225;:::o;19086:366::-;19228:3;19249:67;19313:2;19308:3;19249:67;:::i;:::-;19242:74;;19325:93;19414:3;19325:93;:::i;:::-;19443:2;19438:3;19434:12;19427:19;;19086:366;;;:::o;19458:419::-;19624:4;19662:2;19651:9;19647:18;19639:26;;19711:9;19705:4;19701:20;19697:1;19686:9;19682:17;19675:47;19739:131;19865:4;19739:131;:::i;:::-;19731:139;;19458:419;;;:::o;19883:228::-;20023:34;20019:1;20011:6;20007:14;20000:58;20092:11;20087:2;20079:6;20075:15;20068:36;19883:228;:::o;20117:366::-;20259:3;20280:67;20344:2;20339:3;20280:67;:::i;:::-;20273:74;;20356:93;20445:3;20356:93;:::i;:::-;20474:2;20469:3;20465:12;20458:19;;20117:366;;;:::o;20489:419::-;20655:4;20693:2;20682:9;20678:18;20670:26;;20742:9;20736:4;20732:20;20728:1;20717:9;20713:17;20706:47;20770:131;20896:4;20770:131;:::i;:::-;20762:139;;20489:419;;;:::o;20914:227::-;21054:34;21050:1;21042:6;21038:14;21031:58;21123:10;21118:2;21110:6;21106:15;21099:35;20914:227;:::o;21147:366::-;21289:3;21310:67;21374:2;21369:3;21310:67;:::i;:::-;21303:74;;21386:93;21475:3;21386:93;:::i;:::-;21504:2;21499:3;21495:12;21488:19;;21147:366;;;:::o;21519:419::-;21685:4;21723:2;21712:9;21708:18;21700:26;;21772:9;21766:4;21762:20;21758:1;21747:9;21743:17;21736:47;21800:131;21926:4;21800:131;:::i;:::-;21792:139;;21519:419;;;:::o;21944:162::-;22084:14;22080:1;22072:6;22068:14;22061:38;21944:162;:::o;22112:366::-;22254:3;22275:67;22339:2;22334:3;22275:67;:::i;:::-;22268:74;;22351:93;22440:3;22351:93;:::i;:::-;22469:2;22464:3;22460:12;22453:19;;22112:366;;;:::o;22484:419::-;22650:4;22688:2;22677:9;22673:18;22665:26;;22737:9;22731:4;22727:20;22723:1;22712:9;22708:17;22701:47;22765:131;22891:4;22765:131;:::i;:::-;22757:139;;22484:419;;;:::o;22909:221::-;23049:34;23045:1;23037:6;23033:14;23026:58;23118:4;23113:2;23105:6;23101:15;23094:29;22909:221;:::o;23136:366::-;23278:3;23299:67;23363:2;23358:3;23299:67;:::i;:::-;23292:74;;23375:93;23464:3;23375:93;:::i;:::-;23493:2;23488:3;23484:12;23477:19;;23136:366;;;:::o;23508:419::-;23674:4;23712:2;23701:9;23697:18;23689:26;;23761:9;23755:4;23751:20;23747:1;23736:9;23732:17;23725:47;23789:131;23915:4;23789:131;:::i;:::-;23781:139;;23508:419;;;:::o;23933:191::-;23973:4;23993:20;24011:1;23993:20;:::i;:::-;23988:25;;24027:20;24045:1;24027:20;:::i;:::-;24022:25;;24066:1;24063;24060:8;24057:34;;;24071:18;;:::i;:::-;24057:34;24116:1;24113;24109:9;24101:17;;23933:191;;;;:::o;24130:147::-;24231:11;24268:3;24253:18;;24130:147;;;;:::o;24283:114::-;;:::o;24403:398::-;24562:3;24583:83;24664:1;24659:3;24583:83;:::i;:::-;24576:90;;24675:93;24764:3;24675:93;:::i;:::-;24793:1;24788:3;24784:11;24777:18;;24403:398;;;:::o;24807:379::-;24991:3;25013:147;25156:3;25013:147;:::i;:::-;25006:154;;25177:3;25170:10;;24807:379;;;:::o;25192:114::-;25259:6;25293:5;25287:12;25277:22;;25192:114;;;:::o;25312:184::-;25411:11;25445:6;25440:3;25433:19;25485:4;25480:3;25476:14;25461:29;;25312:184;;;;:::o;25502:132::-;25569:4;25592:3;25584:11;;25622:4;25617:3;25613:14;25605:22;;25502:132;;;:::o;25640:108::-;25717:24;25735:5;25717:24;:::i;:::-;25712:3;25705:37;25640:108;;:::o;25754:179::-;25823:10;25844:46;25886:3;25878:6;25844:46;:::i;:::-;25922:4;25917:3;25913:14;25899:28;;25754:179;;;;:::o;25939:113::-;26009:4;26041;26036:3;26032:14;26024:22;;25939:113;;;:::o;26088:732::-;26207:3;26236:54;26284:5;26236:54;:::i;:::-;26306:86;26385:6;26380:3;26306:86;:::i;:::-;26299:93;;26416:56;26466:5;26416:56;:::i;:::-;26495:7;26526:1;26511:284;26536:6;26533:1;26530:13;26511:284;;;26612:6;26606:13;26639:63;26698:3;26683:13;26639:63;:::i;:::-;26632:70;;26725:60;26778:6;26725:60;:::i;:::-;26715:70;;26571:224;26558:1;26555;26551:9;26546:14;;26511:284;;;26515:14;26811:3;26804:10;;26212:608;;;26088:732;;;;:::o;26826:831::-;27089:4;27127:3;27116:9;27112:19;27104:27;;27141:71;27209:1;27198:9;27194:17;27185:6;27141:71;:::i;:::-;27222:80;27298:2;27287:9;27283:18;27274:6;27222:80;:::i;:::-;27349:9;27343:4;27339:20;27334:2;27323:9;27319:18;27312:48;27377:108;27480:4;27471:6;27377:108;:::i;:::-;27369:116;;27495:72;27563:2;27552:9;27548:18;27539:6;27495:72;:::i;:::-;27577:73;27645:3;27634:9;27630:19;27621:6;27577:73;:::i;:::-;26826:831;;;;;;;;:::o;27663:226::-;27803:34;27799:1;27791:6;27787:14;27780:58;27872:9;27867:2;27859:6;27855:15;27848:34;27663:226;:::o;27895:366::-;28037:3;28058:67;28122:2;28117:3;28058:67;:::i;:::-;28051:74;;28134:93;28223:3;28134:93;:::i;:::-;28252:2;28247:3;28243:12;28236:19;;27895:366;;;:::o;28267:419::-;28433:4;28471:2;28460:9;28456:18;28448:26;;28520:9;28514:4;28510:20;28506:1;28495:9;28491:17;28484:47;28548:131;28674:4;28548:131;:::i;:::-;28540:139;;28267:419;;;:::o;28692:224::-;28832:34;28828:1;28820:6;28816:14;28809:58;28901:7;28896:2;28888:6;28884:15;28877:32;28692:224;:::o;28922:366::-;29064:3;29085:67;29149:2;29144:3;29085:67;:::i;:::-;29078:74;;29161:93;29250:3;29161:93;:::i;:::-;29279:2;29274:3;29270:12;29263:19;;28922:366;;;:::o;29294:419::-;29460:4;29498:2;29487:9;29483:18;29475:26;;29547:9;29541:4;29537:20;29533:1;29522:9;29518:17;29511:47;29575:131;29701:4;29575:131;:::i;:::-;29567:139;;29294:419;;;:::o;29719:348::-;29759:7;29782:20;29800:1;29782:20;:::i;:::-;29777:25;;29816:20;29834:1;29816:20;:::i;:::-;29811:25;;30004:1;29936:66;29932:74;29929:1;29926:81;29921:1;29914:9;29907:17;29903:105;29900:131;;;30011:18;;:::i;:::-;29900:131;30059:1;30056;30052:9;30041:20;;29719:348;;;;:::o;30073:180::-;30121:77;30118:1;30111:88;30218:4;30215:1;30208:15;30242:4;30239:1;30232:15;30259:185;30299:1;30316:20;30334:1;30316:20;:::i;:::-;30311:25;;30350:20;30368:1;30350:20;:::i;:::-;30345:25;;30389:1;30379:35;;30394:18;;:::i;:::-;30379:35;30436:1;30433;30429:9;30424:14;;30259:185;;;;:::o
Swarm Source
ipfs://1fe6123909afb82a2171ff014fb958443bcaa7aaa01a4ea2e7e2ccf067208c49
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $3,263.18 | 0.000000000000000002 | <$0.000001 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.