Token migration announcement. Exponential Capital token contract has migrated to a new address.
ERC-20
Overview
Max Total Supply
999,999,999,999,994,164,656,845,716.433926467097581591 EXPO
Holders
1,073 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
49,150,513.24921200820654748 EXPOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
EXPO
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-01-19 */ // 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/IUniswapV2Pair.sol pragma solidity >=0.5.0; interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) 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: @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: @openzeppelin/contracts/token/ERC20/IERC20.sol // OpenZeppelin Contracts v4.4.1 (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 `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: @openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/IERC20Metadata.sol) pragma solidity ^0.8.0; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol // OpenZeppelin Contracts v4.4.1 (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `sender` to `recipient`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } // File: hardhat/console.sol pragma solidity >= 0.4.22 <0.9.0; library console { address constant CONSOLE_ADDRESS = address(0x000000000000000000636F6e736F6c652e6c6f67); function _sendLogPayload(bytes memory payload) private view { uint256 payloadLength = payload.length; address consoleAddress = CONSOLE_ADDRESS; assembly { let payloadStart := add(payload, 32) let r := staticcall(gas(), consoleAddress, payloadStart, payloadLength, 0, 0) } } function log() internal view { _sendLogPayload(abi.encodeWithSignature("log()")); } function logInt(int p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(int)", p0)); } function logUint(uint p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint)", p0)); } function logString(string memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); } function logBool(bool p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); } function logAddress(address p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); } function logBytes(bytes memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes)", p0)); } function logBytes1(bytes1 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes1)", p0)); } function logBytes2(bytes2 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes2)", p0)); } function logBytes3(bytes3 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes3)", p0)); } function logBytes4(bytes4 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes4)", p0)); } function logBytes5(bytes5 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes5)", p0)); } function logBytes6(bytes6 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes6)", p0)); } function logBytes7(bytes7 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes7)", p0)); } function logBytes8(bytes8 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes8)", p0)); } function logBytes9(bytes9 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes9)", p0)); } function logBytes10(bytes10 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes10)", p0)); } function logBytes11(bytes11 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes11)", p0)); } function logBytes12(bytes12 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes12)", p0)); } function logBytes13(bytes13 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes13)", p0)); } function logBytes14(bytes14 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes14)", p0)); } function logBytes15(bytes15 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes15)", p0)); } function logBytes16(bytes16 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes16)", p0)); } function logBytes17(bytes17 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes17)", p0)); } function logBytes18(bytes18 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes18)", p0)); } function logBytes19(bytes19 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes19)", p0)); } function logBytes20(bytes20 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes20)", p0)); } function logBytes21(bytes21 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes21)", p0)); } function logBytes22(bytes22 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes22)", p0)); } function logBytes23(bytes23 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes23)", p0)); } function logBytes24(bytes24 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes24)", p0)); } function logBytes25(bytes25 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes25)", p0)); } function logBytes26(bytes26 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes26)", p0)); } function logBytes27(bytes27 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes27)", p0)); } function logBytes28(bytes28 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes28)", p0)); } function logBytes29(bytes29 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes29)", p0)); } function logBytes30(bytes30 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes30)", p0)); } function logBytes31(bytes31 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes31)", p0)); } function logBytes32(bytes32 p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bytes32)", p0)); } function log(uint p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint)", p0)); } function log(string memory p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(string)", p0)); } function log(bool p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool)", p0)); } function log(address p0) internal view { _sendLogPayload(abi.encodeWithSignature("log(address)", p0)); } function log(uint p0, uint p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint)", p0, p1)); } function log(uint p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string)", p0, p1)); } function log(uint p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool)", p0, p1)); } function log(uint p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address)", p0, p1)); } function log(string memory p0, uint p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint)", p0, p1)); } function log(string memory p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string)", p0, p1)); } function log(string memory p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool)", p0, p1)); } function log(string memory p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address)", p0, p1)); } function log(bool p0, uint p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint)", p0, p1)); } function log(bool p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string)", p0, p1)); } function log(bool p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool)", p0, p1)); } function log(bool p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address)", p0, p1)); } function log(address p0, uint p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint)", p0, p1)); } function log(address p0, string memory p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string)", p0, p1)); } function log(address p0, bool p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool)", p0, p1)); } function log(address p0, address p1) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address)", p0, p1)); } function log(uint p0, uint p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint)", p0, p1, p2)); } function log(uint p0, uint p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string)", p0, p1, p2)); } function log(uint p0, uint p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool)", p0, p1, p2)); } function log(uint p0, uint p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address)", p0, p1, p2)); } function log(uint p0, string memory p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint)", p0, p1, p2)); } function log(uint p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string)", p0, p1, p2)); } function log(uint p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool)", p0, p1, p2)); } function log(uint p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address)", p0, p1, p2)); } function log(uint p0, bool p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint)", p0, p1, p2)); } function log(uint p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string)", p0, p1, p2)); } function log(uint p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool)", p0, p1, p2)); } function log(uint p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address)", p0, p1, p2)); } function log(uint p0, address p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint)", p0, p1, p2)); } function log(uint p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string)", p0, p1, p2)); } function log(uint p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool)", p0, p1, p2)); } function log(uint p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address)", p0, p1, p2)); } function log(string memory p0, uint p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint)", p0, p1, p2)); } function log(string memory p0, uint p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string)", p0, p1, p2)); } function log(string memory p0, uint p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool)", p0, p1, p2)); } function log(string memory p0, uint p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address)", p0, p1, p2)); } function log(string memory p0, string memory p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint)", p0, p1, p2)); } function log(string memory p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string)", p0, p1, p2)); } function log(string memory p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool)", p0, p1, p2)); } function log(string memory p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address)", p0, p1, p2)); } function log(string memory p0, bool p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint)", p0, p1, p2)); } function log(string memory p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string)", p0, p1, p2)); } function log(string memory p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool)", p0, p1, p2)); } function log(string memory p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address)", p0, p1, p2)); } function log(string memory p0, address p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint)", p0, p1, p2)); } function log(string memory p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string)", p0, p1, p2)); } function log(string memory p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool)", p0, p1, p2)); } function log(string memory p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address)", p0, p1, p2)); } function log(bool p0, uint p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint)", p0, p1, p2)); } function log(bool p0, uint p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string)", p0, p1, p2)); } function log(bool p0, uint p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool)", p0, p1, p2)); } function log(bool p0, uint p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address)", p0, p1, p2)); } function log(bool p0, string memory p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint)", p0, p1, p2)); } function log(bool p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string)", p0, p1, p2)); } function log(bool p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool)", p0, p1, p2)); } function log(bool p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address)", p0, p1, p2)); } function log(bool p0, bool p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint)", p0, p1, p2)); } function log(bool p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string)", p0, p1, p2)); } function log(bool p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool)", p0, p1, p2)); } function log(bool p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address)", p0, p1, p2)); } function log(bool p0, address p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint)", p0, p1, p2)); } function log(bool p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string)", p0, p1, p2)); } function log(bool p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool)", p0, p1, p2)); } function log(bool p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address)", p0, p1, p2)); } function log(address p0, uint p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint)", p0, p1, p2)); } function log(address p0, uint p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string)", p0, p1, p2)); } function log(address p0, uint p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool)", p0, p1, p2)); } function log(address p0, uint p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address)", p0, p1, p2)); } function log(address p0, string memory p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint)", p0, p1, p2)); } function log(address p0, string memory p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string)", p0, p1, p2)); } function log(address p0, string memory p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool)", p0, p1, p2)); } function log(address p0, string memory p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address)", p0, p1, p2)); } function log(address p0, bool p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint)", p0, p1, p2)); } function log(address p0, bool p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string)", p0, p1, p2)); } function log(address p0, bool p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool)", p0, p1, p2)); } function log(address p0, bool p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address)", p0, p1, p2)); } function log(address p0, address p1, uint p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint)", p0, p1, p2)); } function log(address p0, address p1, string memory p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string)", p0, p1, p2)); } function log(address p0, address p1, bool p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool)", p0, p1, p2)); } function log(address p0, address p1, address p2) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address)", p0, p1, p2)); } function log(uint p0, uint p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,uint)", p0, p1, p2, p3)); } function log(uint p0, uint p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,string)", p0, p1, p2, p3)); } function log(uint p0, uint p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,bool)", p0, p1, p2, p3)); } function log(uint p0, uint p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,uint,address)", p0, p1, p2, p3)); } function log(uint p0, uint p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,uint)", p0, p1, p2, p3)); } function log(uint p0, uint p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,string)", p0, p1, p2, p3)); } function log(uint p0, uint p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,bool)", p0, p1, p2, p3)); } function log(uint p0, uint p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,string,address)", p0, p1, p2, p3)); } function log(uint p0, uint p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,uint)", p0, p1, p2, p3)); } function log(uint p0, uint p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,string)", p0, p1, p2, p3)); } function log(uint p0, uint p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,bool)", p0, p1, p2, p3)); } function log(uint p0, uint p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,bool,address)", p0, p1, p2, p3)); } function log(uint p0, uint p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,uint)", p0, p1, p2, p3)); } function log(uint p0, uint p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,string)", p0, p1, p2, p3)); } function log(uint p0, uint p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,bool)", p0, p1, p2, p3)); } function log(uint p0, uint p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,uint,address,address)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,uint)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,string)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,bool)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,uint,address)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,uint)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,string)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,bool)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,string,address)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,uint)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,string)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,bool)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,bool,address)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,uint)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,string)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,bool)", p0, p1, p2, p3)); } function log(uint p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,string,address,address)", p0, p1, p2, p3)); } function log(uint p0, bool p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,uint)", p0, p1, p2, p3)); } function log(uint p0, bool p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,string)", p0, p1, p2, p3)); } function log(uint p0, bool p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,bool)", p0, p1, p2, p3)); } function log(uint p0, bool p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,uint,address)", p0, p1, p2, p3)); } function log(uint p0, bool p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,uint)", p0, p1, p2, p3)); } function log(uint p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,string)", p0, p1, p2, p3)); } function log(uint p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,bool)", p0, p1, p2, p3)); } function log(uint p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,string,address)", p0, p1, p2, p3)); } function log(uint p0, bool p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,uint)", p0, p1, p2, p3)); } function log(uint p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,string)", p0, p1, p2, p3)); } function log(uint p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,bool)", p0, p1, p2, p3)); } function log(uint p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,bool,address)", p0, p1, p2, p3)); } function log(uint p0, bool p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,uint)", p0, p1, p2, p3)); } function log(uint p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,string)", p0, p1, p2, p3)); } function log(uint p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,bool)", p0, p1, p2, p3)); } function log(uint p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,bool,address,address)", p0, p1, p2, p3)); } function log(uint p0, address p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,uint)", p0, p1, p2, p3)); } function log(uint p0, address p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,string)", p0, p1, p2, p3)); } function log(uint p0, address p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,bool)", p0, p1, p2, p3)); } function log(uint p0, address p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,uint,address)", p0, p1, p2, p3)); } function log(uint p0, address p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,uint)", p0, p1, p2, p3)); } function log(uint p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,string)", p0, p1, p2, p3)); } function log(uint p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,bool)", p0, p1, p2, p3)); } function log(uint p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,string,address)", p0, p1, p2, p3)); } function log(uint p0, address p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,uint)", p0, p1, p2, p3)); } function log(uint p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,string)", p0, p1, p2, p3)); } function log(uint p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,bool)", p0, p1, p2, p3)); } function log(uint p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,bool,address)", p0, p1, p2, p3)); } function log(uint p0, address p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,uint)", p0, p1, p2, p3)); } function log(uint p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,string)", p0, p1, p2, p3)); } function log(uint p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,bool)", p0, p1, p2, p3)); } function log(uint p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(uint,address,address,address)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,uint)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,string)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,uint,address)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,uint)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,string)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,string,address)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,uint)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,uint)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,string)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, uint p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,uint,address,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,uint)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,uint,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,uint)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,string,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,uint)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,uint)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,string)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,string,address,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,uint)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,uint,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,uint)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,string,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,uint)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,uint)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,string)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,bool,address,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,uint)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,uint,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,uint)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,string,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,uint)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,bool,address)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,uint)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,string)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,bool)", p0, p1, p2, p3)); } function log(string memory p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(string,address,address,address)", p0, p1, p2, p3)); } function log(bool p0, uint p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,uint)", p0, p1, p2, p3)); } function log(bool p0, uint p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,string)", p0, p1, p2, p3)); } function log(bool p0, uint p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,bool)", p0, p1, p2, p3)); } function log(bool p0, uint p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,uint,address)", p0, p1, p2, p3)); } function log(bool p0, uint p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,uint)", p0, p1, p2, p3)); } function log(bool p0, uint p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,string)", p0, p1, p2, p3)); } function log(bool p0, uint p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,bool)", p0, p1, p2, p3)); } function log(bool p0, uint p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,string,address)", p0, p1, p2, p3)); } function log(bool p0, uint p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,uint)", p0, p1, p2, p3)); } function log(bool p0, uint p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,string)", p0, p1, p2, p3)); } function log(bool p0, uint p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, uint p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,bool,address)", p0, p1, p2, p3)); } function log(bool p0, uint p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,uint)", p0, p1, p2, p3)); } function log(bool p0, uint p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,string)", p0, p1, p2, p3)); } function log(bool p0, uint p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,bool)", p0, p1, p2, p3)); } function log(bool p0, uint p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,uint,address,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,uint)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,uint,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,uint)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,string,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,uint)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,bool,address)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,uint)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,string)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,bool)", p0, p1, p2, p3)); } function log(bool p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,string,address,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,uint)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,uint,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,uint)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,string,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,uint)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,bool,address)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,uint)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,string)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,bool)", p0, p1, p2, p3)); } function log(bool p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,bool,address,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,uint)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,uint,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,uint)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,string,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,uint)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,bool,address)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,uint)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,string)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,bool)", p0, p1, p2, p3)); } function log(bool p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(bool,address,address,address)", p0, p1, p2, p3)); } function log(address p0, uint p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,uint)", p0, p1, p2, p3)); } function log(address p0, uint p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,string)", p0, p1, p2, p3)); } function log(address p0, uint p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,bool)", p0, p1, p2, p3)); } function log(address p0, uint p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,uint,address)", p0, p1, p2, p3)); } function log(address p0, uint p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,uint)", p0, p1, p2, p3)); } function log(address p0, uint p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,string)", p0, p1, p2, p3)); } function log(address p0, uint p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,bool)", p0, p1, p2, p3)); } function log(address p0, uint p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,string,address)", p0, p1, p2, p3)); } function log(address p0, uint p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,uint)", p0, p1, p2, p3)); } function log(address p0, uint p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,string)", p0, p1, p2, p3)); } function log(address p0, uint p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,bool)", p0, p1, p2, p3)); } function log(address p0, uint p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,bool,address)", p0, p1, p2, p3)); } function log(address p0, uint p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,uint)", p0, p1, p2, p3)); } function log(address p0, uint p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,string)", p0, p1, p2, p3)); } function log(address p0, uint p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,bool)", p0, p1, p2, p3)); } function log(address p0, uint p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,uint,address,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,uint)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,uint,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,uint)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,string,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,uint)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,bool,address)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,uint)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,string)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,bool)", p0, p1, p2, p3)); } function log(address p0, string memory p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,string,address,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,uint)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,uint,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,uint)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,string,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,uint)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,bool,address)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,uint)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,string)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,bool)", p0, p1, p2, p3)); } function log(address p0, bool p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,bool,address,address)", p0, p1, p2, p3)); } function log(address p0, address p1, uint p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,uint)", p0, p1, p2, p3)); } function log(address p0, address p1, uint p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,string)", p0, p1, p2, p3)); } function log(address p0, address p1, uint p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, uint p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,uint,address)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,uint)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,string)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, string memory p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,string,address)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,uint)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,string)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, bool p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,bool,address)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, uint p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,uint)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, string memory p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,string)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, bool p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,bool)", p0, p1, p2, p3)); } function log(address p0, address p1, address p2, address p3) internal view { _sendLogPayload(abi.encodeWithSignature("log(address,address,address,address)", p0, p1, p2, p3)); } } // File: contracts/PlatypusPrinter.sol pragma solidity ^0.8.0; contract EXPO is ERC20, Ownable { modifier lockSwap { _inSwap = true; _; _inSwap = false; } modifier liquidityAdd { _inLiquidityAdd = true; _; _inLiquidityAdd = false; } uint256 internal _maxTransfer = 10; uint256 internal _maxWallet = 30; uint256 internal _marketingFee = 5; uint256 internal _treasuryFee = 7; uint256 internal _autoLiquidityRate = 3; uint256 internal _marketingFeeEarlySell = 9; uint256 internal _treasuryFeeEarlySell = 13; uint256 internal _reflectRate = 10; uint256 internal _autoBurnRate = 2; uint256 internal _cooldown = 30 seconds; uint256 internal _totalFees = _marketingFee + _treasuryFee + _autoLiquidityRate; uint256 internal _TotalEarlySellFees = _marketingFeeEarlySell + _treasuryFeeEarlySell + _autoLiquidityRate; uint256 internal _swapFeesAt = 1000 ether; bool internal useEarlySellTime = true; bool internal useBuyCooldown = true; bool internal _swapFees = true; // total wei reflected ever uint256 internal _ethReflectionBasis; uint256 internal _totalReflected; uint256 internal _totalTreasuryFees; uint256 internal _totalMarketingFees; uint256 internal _totalLiquidityFees; address payable public _marketingWallet; address payable public _treasuryWallet; address payable public _burnWallet; address payable public _liquidityWallet; uint256 internal _totalSupply = 0; uint256 public _totalBurned; uint256 public _totalDistributed; uint256 public earlySellTime = 24 hours; IUniswapV2Router02 internal _router = IUniswapV2Router02(address(0)); address internal _pair; bool internal _inSwap = false; bool internal _inLiquidityAdd = false; bool internal _tradingActive = false; uint256 internal _tradingStartBlock = 0; mapping(address => uint256) private _balances; mapping(address => bool) private _reflectionExcluded; mapping(address => bool) private _taxExcluded; mapping(address => bool) private _bot; mapping(address => uint256) private _lastBuy; mapping(address => uint256) private _lastReflectionBasis; mapping(address => uint256) private _totalWalletRewards; address[] internal _reflectionExcludedList; constructor( address uniswapFactory, address uniswapRouter, address payable treasuryWallet, address payable marketingWallet, address payable liquidityWallet ) ERC20("Exponential Capital", "EXPO") Ownable() { addTaxExcluded(owner()); addTaxExcluded(treasuryWallet); addTaxExcluded(address(this)); _liquidityWallet = liquidityWallet; _treasuryWallet = treasuryWallet; _marketingWallet = marketingWallet; _burnWallet = payable(0x000000000000000000000000000000000000dEaD); _router = IUniswapV2Router02(uniswapRouter); IUniswapV2Factory uniswapContract = IUniswapV2Factory(uniswapFactory); _pair = uniswapContract.createPair(address(this), _router.WETH()); } function launch(uint256 tokens) public payable onlyOwner() liquidityAdd { _mint(address(this), tokens); addLiquidity(tokens, msg.value); if (!_tradingActive) { _tradingActive = true; _tradingStartBlock = block.number; } } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(_router), tokenAmount); // add the liquidity _router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function addReflection() public payable { _ethReflectionBasis += msg.value; } function isReflectionExcluded(address account) public view returns (bool) { return _reflectionExcluded[account]; } function removeReflectionExcluded(address account) public onlyOwner() { require(isReflectionExcluded(account), "Account must be excluded"); _reflectionExcluded[account] = false; } function addReflectionExcluded(address account) public onlyOwner() { _addReflectionExcluded(account); } function _addReflectionExcluded(address account) internal { require(!isReflectionExcluded(account), "Account must not be excluded"); _reflectionExcluded[account] = true; } function isTaxExcluded(address account) public view returns (bool) { return _taxExcluded[account]; } function addTaxExcluded(address account) public onlyOwner() { require(!isTaxExcluded(account), "Account must not be excluded"); _taxExcluded[account] = true; } function removeTaxExcluded(address account) public onlyOwner() { require(isTaxExcluded(account), "Account must not be excluded"); _taxExcluded[account] = false; } function isBot(address account) public view returns (bool) { return _bot[account]; } function addBot(address account) internal { _addBot(account); } function _addBot(address account) internal { require(!isBot(account), "Account must not be flagged"); require(account != address(_router), "Account must not be uniswap router"); require(account != _pair, "Account must not be uniswap pair"); _bot[account] = true; _addReflectionExcluded(account); } function removeBot(address account) public onlyOwner() { require(isBot(account), "Account must be flagged"); _bot[account] = false; removeReflectionExcluded(account); } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function _addBalance(address account, uint256 amount) internal { _balances[account] = _balances[account] + amount; } function _subtractBalance(address account, uint256 amount) internal { _balances[account] = _balances[account] - amount; } function _transfer( address sender, address recipient, uint256 amount ) internal override { if (isTaxExcluded(sender) || isTaxExcluded(recipient)) { _rawTransfer(sender, recipient, amount); return; } require(!isBot(sender), "Sender locked as bot"); require(!isBot(recipient), "Recipient locked as bot"); uint256 maxTxAmount = totalSupply() * _maxTransfer / 1000; uint256 maxWalletAmount = totalSupply() * _maxWallet / 1000; require(amount <= maxTxAmount || _inLiquidityAdd || _inSwap || recipient == address(_router), "Exceeds max transaction amount"); uint256 contractTokenBalance = balanceOf(address(this)); bool overMinTokenBalance = contractTokenBalance >= _swapFeesAt; if (_lastReflectionBasis[recipient] <= 0) { _lastReflectionBasis[recipient] = _ethReflectionBasis; } if(contractTokenBalance >= maxTxAmount) { contractTokenBalance = maxTxAmount; } if ( overMinTokenBalance && !_inSwap && sender != _pair && _swapFees ) { _swap(contractTokenBalance); } _claimReflection(payable(sender)); _claimReflection(payable(recipient)); uint256 send = amount; uint256 reflect = 0; uint256 marketing = 0; uint256 liquidity = 0; uint256 treasury = 0; uint256 burn = 0; if (sender == _pair && _tradingActive) { // Buy, apply buy fee schedule require((_balances[recipient] + amount) <= maxWalletAmount); send = amount * (100 - _totalFees) / 100; reflect = amount * _reflectRate / 100; burn = amount * _autoBurnRate / 100; require((!useBuyCooldown || block.timestamp - _lastBuy[tx.origin] > _cooldown) || _inSwap, "hit cooldown, try again later"); _autoBurnTokens(sender, burn); _lastBuy[tx.origin] = block.timestamp; _reflect(sender, reflect); } else if (recipient == _pair && _tradingActive) { // Sell, apply sell fee schedule if (useEarlySellTime && _lastBuy[tx.origin] + (earlySellTime) >= block.timestamp){ send = amount * (100 - _TotalEarlySellFees) / 100; marketing = amount * _marketingFeeEarlySell / 100; liquidity = amount * _autoLiquidityRate / 100; treasury = amount * _treasuryFeeEarlySell / 100; } else{ send = amount * (100 - _totalFees) / 100; marketing = amount * _marketingFee / 100; liquidity = amount * _autoLiquidityRate / 100; treasury = amount * _treasuryFee / 100; } _takeMarketing(sender, marketing); _takeTreasury(sender, treasury); _takeLiquidity(sender, liquidity); } _rawTransfer(sender, recipient, send); if (_tradingActive && block.number == _tradingStartBlock && !isTaxExcluded(tx.origin)) { if (tx.origin == address(_pair)) { if (sender == address(_pair)) { _addBot(recipient); } else { _addBot(sender); } } else { _addBot(tx.origin); } } } function _claimReflection(address payable addr) internal { if (addr == _pair || addr == address(_router)) return; uint256 basisDifference = _ethReflectionBasis - _lastReflectionBasis[addr]; uint256 owed = basisDifference * balanceOf(addr) / _totalSupply; _lastReflectionBasis[addr] = _ethReflectionBasis; if (owed == 0) { return; } addr.transfer(owed); _totalWalletRewards[addr] += owed; _totalDistributed += owed; } function claimReflection() public { _claimReflection(payable(msg.sender)); } function pendingRewards(address addr) public view returns (uint256) { uint256 basisDifference = _ethReflectionBasis - _lastReflectionBasis[addr]; uint256 owed = basisDifference * balanceOf(addr) / _totalSupply; return owed; } function totalRewardsDistributed() public view returns (uint256) { return _totalDistributed; } function totalWalletRewards(address addr) public view returns (uint256) { return _totalWalletRewards[addr]; } function _swap(uint256 amount) internal lockSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), amount); uint256 contractEthBalance = address(this).balance; _router.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, path, address(this), block.timestamp ); uint256 tradeValue = address(this).balance - contractEthBalance; uint256 marketingAmount = amount * _totalMarketingFees / (_totalReflected + _totalMarketingFees + _totalTreasuryFees + _totalLiquidityFees); uint256 treasuryAmount = amount * _totalTreasuryFees / (_totalReflected + _totalMarketingFees + _totalTreasuryFees + _totalLiquidityFees); uint256 liquidityAmount = amount * _totalLiquidityFees / (_totalReflected + _totalMarketingFees + _totalTreasuryFees + _totalLiquidityFees); uint256 reflectedAmount = amount - (marketingAmount + treasuryAmount + liquidityAmount); uint256 marketingEth = tradeValue * _totalMarketingFees / (_totalReflected + _totalMarketingFees + _totalTreasuryFees + _totalLiquidityFees); uint256 treasuryEth = tradeValue * _totalTreasuryFees / (_totalReflected + _totalMarketingFees + _totalTreasuryFees + _totalLiquidityFees); uint256 liquidityEth = tradeValue * _totalLiquidityFees / (_totalReflected + _totalMarketingFees + _totalTreasuryFees + _totalLiquidityFees); uint256 reflectedEth = tradeValue - (marketingEth + treasuryEth + liquidityEth); if (marketingEth > 0) { _liquidityWallet.transfer(liquidityEth); _marketingWallet.transfer(marketingEth); _treasuryWallet.transfer(treasuryEth); } _totalMarketingFees -= marketingAmount; _totalTreasuryFees -= treasuryAmount; _totalLiquidityFees -= liquidityAmount; _totalReflected -= reflectedAmount; _ethReflectionBasis += reflectedEth; } function swapAll() public { uint256 maxTxAmount = totalSupply() * _maxTransfer / 1000; uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance >= maxTxAmount) { contractTokenBalance = maxTxAmount; } if ( !_inSwap ) { _swap(contractTokenBalance); } } function withdrawAll() public onlyOwner() { uint256 split = address(this).balance / 2; _marketingWallet.transfer(split); _treasuryWallet.transfer(address(this).balance - split); } function _reflect(address account, uint256 amount) internal { require(account != address(0), "reflect from the zero address"); _rawTransfer(account, address(this), amount); _totalReflected += amount; emit Transfer(account, address(this), amount); } function _takeMarketing(address account, uint256 amount) internal { require(account != address(0), "take marketing from the zero address"); _rawTransfer(account, address(this), amount); _totalMarketingFees += amount; emit Transfer(account, address(this), amount); } function _takeTreasury(address account, uint256 amount) internal { require(account != address(0), "take treasury from the zero address"); _rawTransfer(account, address(this), amount); _totalTreasuryFees += amount; emit Transfer(account, address(this), amount); } function _takeLiquidity(address account, uint256 amount) internal { require(account != address(0), "take liquidity from the zero address"); _rawTransfer(account, address(this), amount); _totalLiquidityFees += amount; emit Transfer(account, address(this), amount); } function _autoBurnTokens(address _account, uint _amount) private { require( _amount <= balanceOf(_account)); _balances[_account] = (_balances[_account] - _amount); _totalSupply = (_totalSupply - _amount); _totalBurned = (_totalBurned + _amount); emit Transfer(_account, address(0), _amount); } // modified from OpenZeppelin ERC20 function _rawTransfer( address sender, address recipient, uint256 amount ) internal { require(sender != address(0), "transfer from the zero address"); require(recipient != address(0), "transfer to the zero address"); uint256 senderBalance = balanceOf(sender); require(senderBalance >= amount, "transfer amount exceeds balance"); unchecked { _subtractBalance(sender, amount); } _addBalance(recipient, amount); emit Transfer(sender, recipient, amount); } function setMaxTransfer(uint256 maxTransfer) public onlyOwner() { _maxTransfer = maxTransfer; } function setSwapFees(bool swapFees) public onlyOwner() { _swapFees = swapFees; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function _mint(address account, uint256 amount) internal override { _totalSupply += amount; _addBalance(account, amount); emit Transfer(address(0), account, amount); } function mint(address account, uint256 amount) public onlyOwner() { _mint(account, amount); } function airdrop(address[] memory accounts, uint256[] memory amounts) public onlyOwner() { require(accounts.length == amounts.length, "array lengths must match"); for (uint256 i = 0; i < accounts.length; i++) { _mint(accounts[i], amounts[i]); } } function totalBurned() public view returns (uint256) { return _totalBurned; } function updateSellFees(uint256 _sellMarketingFee, uint256 _sellTreasuryFee, uint256 _liquidityFee, uint256 _reflectionFee, uint256 _autoBurnFee, uint256 _earlySellTreasuryFee, uint256 _earlySellMarketingFee) external onlyOwner { _marketingFee = _sellMarketingFee; _treasuryFee = _sellTreasuryFee; _autoLiquidityRate = _liquidityFee; _reflectRate = _reflectionFee; _autoBurnRate = _autoBurnFee; _treasuryFeeEarlySell = _earlySellTreasuryFee; _marketingFeeEarlySell = _earlySellMarketingFee; _totalFees = (_marketingFee + _autoLiquidityRate + _treasuryFee); _TotalEarlySellFees = (_marketingFeeEarlySell + _treasuryFeeEarlySell + _autoLiquidityRate); require(_totalFees <= 25, "Must keep fees at 25% or less"); require(_TotalEarlySellFees <= 25, "Must keep fees at 25% or less"); } function getTotalFee() public view returns (uint256) { return _totalFees; } function getTotalEarlySellFee() public view returns (uint256) { return _TotalEarlySellFees; } function setMaxWallet(uint256 amount) public onlyOwner() { require(amount >= _totalSupply / 1000); _maxWallet = amount; } function setMaxTransaction(uint256 amount) public onlyOwner() { require(amount >= _totalSupply / 1000); _maxTransfer = amount; } function setSwapFeesAt(uint256 amount) public onlyOwner() { _swapFeesAt = amount; } function setTradingActive(bool active) public onlyOwner() { _tradingActive = active; } function setUseEarlySellTime(bool useSellTime) public onlyOwner() { useEarlySellTime = useSellTime; } function setUseCooldown(bool useCooldown) public onlyOwner() { useBuyCooldown = useCooldown; } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"uniswapFactory","type":"address"},{"internalType":"address","name":"uniswapRouter","type":"address"},{"internalType":"address payable","name":"treasuryWallet","type":"address"},{"internalType":"address payable","name":"marketingWallet","type":"address"},{"internalType":"address payable","name":"liquidityWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_burnWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_treasuryWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addReflection","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addReflectionExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addTaxExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimReflection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"earlySellTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalEarlySellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isReflectionExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isTaxExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"launch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"pendingRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeReflectionExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeTaxExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransfer","type":"uint256"}],"name":"setMaxTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"swapFees","type":"bool"}],"name":"setSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapFeesAt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"active","type":"bool"}],"name":"setTradingActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"useCooldown","type":"bool"}],"name":"setUseCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"useSellTime","type":"bool"}],"name":"setUseEarlySellTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBurned","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRewardsDistributed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"totalWalletRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sellMarketingFee","type":"uint256"},{"internalType":"uint256","name":"_sellTreasuryFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_autoBurnFee","type":"uint256"},{"internalType":"uint256","name":"_earlySellTreasuryFee","type":"uint256"},{"internalType":"uint256","name":"_earlySellMarketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600a600655601e600755600560085560076009556003600a556009600b55600d600c55600a600d556002600e55601e600f55600a546009546008546200004b919062000510565b62000057919062000510565b601055600a54600c54600b546200006f919062000510565b6200007b919062000510565b601155683635c9adc5dea000006012556013805462ffffff1916620101011790556000601d81905562015180602055602180546001600160a01b03191690556022805462ffffff60a01b19169055602355348015620000d957600080fd5b506040516200360138038062003601833981016040819052620000fc9162000550565b604080518082018252601381527f4578706f6e656e7469616c204361706974616c000000000000000000000000006020808301918252835180850190945260048452634558504f60e01b9084015281519192916200015d916003916200046a565b508051620001739060049060208401906200046a565b505050620001906200018a6200032560201b60201c565b62000329565b620001ad620001a76005546001600160a01b031690565b6200037b565b620001b8836200037b565b620001c3306200037b565b601c80546001600160a01b038084166001600160a01b031992831617909255601a805486841690831617905560198054858416908316179055601b8054821661dead17905560218054878416921682179055604080516315ab88c960e31b81529051889384169263c9c6539692309263ad5c4648916004808201926020929091908290030181865afa1580156200025e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002849190620005d0565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f89190620005d0565b602280546001600160a01b0319166001600160a01b03929092169190911790555062000634945050505050565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6005546001600160a01b03163314620003db5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03811660009081526026602052604090205460ff1615620004465760405162461bcd60e51b815260206004820152601c60248201527f4163636f756e74206d757374206e6f74206265206578636c75646564000000006044820152606401620003d2565b6001600160a01b03166000908152602660205260409020805460ff19166001179055565b8280546200047890620005f7565b90600052602060002090601f0160209004810192826200049c5760008555620004e7565b82601f10620004b757805160ff1916838001178555620004e7565b82800160010185558215620004e7579182015b82811115620004e7578251825591602001919060010190620004ca565b50620004f5929150620004f9565b5090565b5b80821115620004f55760008155600101620004fa565b600082198211156200053257634e487b7160e01b600052601160045260246000fd5b500190565b6001600160a01b03811681146200054d57600080fd5b50565b600080600080600060a086880312156200056957600080fd5b8551620005768162000537565b6020870151909550620005898162000537565b60408701519094506200059c8162000537565b6060870151909350620005af8162000537565b6080870151909250620005c28162000537565b809150509295509295909350565b600060208284031215620005e357600080fd5b8151620005f08162000537565b9392505050565b600181811c908216806200060c57607f821691505b602082108114156200062e57634e487b7160e01b600052602260045260246000fd5b50919050565b612fbd80620006446000396000f3fe6080604052600436106102e85760003560e01c8063715018a611610190578063a9059cbb116100dc578063dd62ed3e11610095578063ee1725461161006f578063ee172546146108c6578063efeaf784146108db578063f2fde38b146108fb578063fd01bd4c1461091b57600080fd5b8063dd62ed3e14610840578063e3f9fc6314610886578063e9a7e633146108a657600080fd5b8063a9059cbb14610795578063ab5a1887146107b5578063b41356c9146107d5578063bc9c3b77146107f5578063c6fe97271461080b578063d89135cd1461082b57600080fd5b80638da5cb5b1161014957806395d89b411161012357806395d89b4114610720578063962dfc75146107355780639daa30e314610755578063a457c2d71461077557600080fd5b80638da5cb5b146106a95780639045be58146106c7578063959bd6c21461070057600080fd5b8063715018a61461061757806377348de91461062c5780637ae316d01461064c578063853828b61461066157806385b12c7c146106765780638c369d3b1461068957600080fd5b806340c10f191161024f578063586509cf11610208578063644ce4be116101e2578063644ce4be146105a157806367243482146105b757806369ec8e9c146105d757806370a08231146105f757600080fd5b8063586509cf146105415780635d0044ca146105615780635fecd9261461058157600080fd5b806340c10f191461048e578063488981c8146104ae5780634d48b105146104c35780634e6be544146104f95780634fb0b7e7146105015780635196aadb1461052157600080fd5b8063313ce567116102a1578063313ce567146103e657806331d7a26214610402578063375632931461042257806339509351146104395780633bbac579146104595780633e9ffbea1461047957600080fd5b806306fdde03146102f4578063095ea7b31461031f57806318160ddd1461034f57806323b872dd1461036e578063243a7e311461038e578063269d1faa146103c657600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b50610309610931565b60405161031691906129fa565b60405180910390f35b34801561032b57600080fd5b5061033f61033a366004612a64565b6109c3565b6040519015158152602001610316565b34801561035b57600080fd5b50601d545b604051908152602001610316565b34801561037a57600080fd5b5061033f610389366004612a90565b6109d9565b34801561039a57600080fd5b50601c546103ae906001600160a01b031681565b6040516001600160a01b039091168152602001610316565b3480156103d257600080fd5b50601a546103ae906001600160a01b031681565b3480156103f257600080fd5b5060405160128152602001610316565b34801561040e57600080fd5b5061036061041d366004612ad1565b610a88565b34801561042e57600080fd5b50610437610adb565b005b34801561044557600080fd5b5061033f610454366004612a64565b610ae6565b34801561046557600080fd5b5061033f610474366004612ad1565b610b22565b34801561048557600080fd5b50610437610b40565b34801561049a57600080fd5b506104376104a9366004612a64565b610b9c565b3480156104ba57600080fd5b50601154610360565b3480156104cf57600080fd5b506103606104de366004612ad1565b6001600160a01b03166000908152602a602052604090205490565b610437610bd0565b34801561050d57600080fd5b5061043761051c366004612ad1565b610be9565b34801561052d57600080fd5b5061043761053c366004612ad1565b610c5d565b34801561054d57600080fd5b5061043761055c366004612af5565b610c93565b34801561056d57600080fd5b5061043761057c366004612af5565b610cc2565b34801561058d57600080fd5b5061043761059c366004612ad1565b610d0d565b3480156105ad57600080fd5b5061036060205481565b3480156105c357600080fd5b506104376105d2366004612be4565b610db5565b3480156105e357600080fd5b5061033f6105f2366004612ad1565b610e8f565b34801561060357600080fd5b50610360610612366004612ad1565b610ead565b34801561062357600080fd5b50610437610ec8565b34801561063857600080fd5b50610437610647366004612af5565b610efc565b34801561065857600080fd5b50601054610360565b34801561066d57600080fd5b50610437610f2b565b610437610684366004612af5565b610fdf565b34801561069557600080fd5b50601b546103ae906001600160a01b031681565b3480156106b557600080fd5b506005546001600160a01b03166103ae565b3480156106d357600080fd5b5061033f6106e2366004612ad1565b6001600160a01b031660009081526025602052604090205460ff1690565b34801561070c57600080fd5b5061043761071b366004612ca6565b611069565b34801561072c57600080fd5b506103096110b1565b34801561074157600080fd5b506019546103ae906001600160a01b031681565b34801561076157600080fd5b50610437610770366004612ad1565b6110c0565b34801561078157600080fd5b5061033f610790366004612a64565b611173565b3480156107a157600080fd5b5061033f6107b0366004612a64565b61120c565b3480156107c157600080fd5b506104376107d0366004612af5565b611219565b3480156107e157600080fd5b506104376107f0366004612ad1565b61125f565b34801561080157600080fd5b50610360601f5481565b34801561081757600080fd5b50610437610826366004612ca6565b6112cf565b34801561083757600080fd5b50601e54610360565b34801561084c57600080fd5b5061036061085b366004612cc8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561089257600080fd5b506104376108a1366004612ca6565b611313565b3480156108b257600080fd5b506104376108c1366004612ca6565b611359565b3480156108d257600080fd5b50601f54610360565b3480156108e757600080fd5b506104376108f6366004612d01565b611396565b34801561090757600080fd5b50610437610916366004612ad1565b6114ca565b34801561092757600080fd5b50610360601e5481565b60606003805461094090612d4d565b80601f016020809104026020016040519081016040528092919081815260200182805461096c90612d4d565b80156109b95780601f1061098e576101008083540402835291602001916109b9565b820191906000526020600020905b81548152906001019060200180831161099c57829003601f168201915b5050505050905090565b60006109d0338484611562565b50600192915050565b60006109e6848484611686565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a705760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610a7d8533858403611562565b506001949350505050565b6001600160a01b0381166000908152602960205260408120546014548291610aaf91612d9e565b90506000601d54610abf85610ead565b610ac99084612db5565b610ad39190612dd4565b949350505050565b610ae433611c81565b565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109d0918590610b1d908690612df6565b611562565b6001600160a01b031660009081526027602052604090205460ff1690565b60006103e8600654610b51601d5490565b610b5b9190612db5565b610b659190612dd4565b90506000610b7230610ead565b9050818110610b7e5750805b602254600160a01b900460ff16610b9857610b9881611da6565b5050565b6005546001600160a01b03163314610bc65760405162461bcd60e51b8152600401610a6790612e0e565b610b988282612251565b3460146000828254610be29190612df6565b9091555050565b6005546001600160a01b03163314610c135760405162461bcd60e51b8152600401610a6790612e0e565b610c1c81610e8f565b15610c395760405162461bcd60e51b8152600401610a6790612e43565b6001600160a01b03166000908152602660205260409020805460ff19166001179055565b6005546001600160a01b03163314610c875760405162461bcd60e51b8152600401610a6790612e0e565b610c90816122a7565b50565b6005546001600160a01b03163314610cbd5760405162461bcd60e51b8152600401610a6790612e0e565b601255565b6005546001600160a01b03163314610cec5760405162461bcd60e51b8152600401610a6790612e0e565b6103e8601d54610cfc9190612dd4565b811015610d0857600080fd5b600755565b6005546001600160a01b03163314610d375760405162461bcd60e51b8152600401610a6790612e0e565b610d4081610b22565b610d8c5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206d75737420626520666c61676765640000000000000000006044820152606401610a67565b6001600160a01b0381166000908152602760205260409020805460ff19169055610c90816110c0565b6005546001600160a01b03163314610ddf5760405162461bcd60e51b8152600401610a6790612e0e565b8051825114610e305760405162461bcd60e51b815260206004820152601860248201527f6172726179206c656e67746873206d757374206d6174636800000000000000006044820152606401610a67565b60005b8251811015610e8a57610e78838281518110610e5157610e51612e7a565b6020026020010151838381518110610e6b57610e6b612e7a565b6020026020010151612251565b80610e8281612e90565b915050610e33565b505050565b6001600160a01b031660009081526026602052604090205460ff1690565b6001600160a01b031660009081526024602052604090205490565b6005546001600160a01b03163314610ef25760405162461bcd60e51b8152600401610a6790612e0e565b610ae46000612304565b6005546001600160a01b03163314610f265760405162461bcd60e51b8152600401610a6790612e0e565b600655565b6005546001600160a01b03163314610f555760405162461bcd60e51b8152600401610a6790612e0e565b6000610f62600247612dd4565b6019546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610f9d573d6000803e3d6000fd5b50601a546001600160a01b03166108fc610fb78347612d9e565b6040518115909202916000818181858888f19350505050158015610b98573d6000803e3d6000fd5b6005546001600160a01b031633146110095760405162461bcd60e51b8152600401610a6790612e0e565b6022805460ff60a81b1916600160a81b1790556110263082612251565b6110308134612356565b602254600160b01b900460ff16611059576022805460ff60b01b1916600160b01b179055436023555b506022805460ff60a81b19169055565b6005546001600160a01b031633146110935760405162461bcd60e51b8152600401610a6790612e0e565b60228054911515600160b01b0260ff60b01b19909216919091179055565b60606004805461094090612d4d565b6005546001600160a01b031633146110ea5760405162461bcd60e51b8152600401610a6790612e0e565b6001600160a01b03811660009081526025602052604090205460ff166111525760405162461bcd60e51b815260206004820152601860248201527f4163636f756e74206d757374206265206578636c7564656400000000000000006044820152606401610a67565b6001600160a01b03166000908152602560205260409020805460ff19169055565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111f55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a67565b6112023385858403611562565b5060019392505050565b60006109d0338484611686565b6005546001600160a01b031633146112435760405162461bcd60e51b8152600401610a6790612e0e565b6103e8601d546112539190612dd4565b811015610f2657600080fd5b6005546001600160a01b031633146112895760405162461bcd60e51b8152600401610a6790612e0e565b61129281610e8f565b6112ae5760405162461bcd60e51b8152600401610a6790612e43565b6001600160a01b03166000908152602660205260409020805460ff19169055565b6005546001600160a01b031633146112f95760405162461bcd60e51b8152600401610a6790612e0e565b601380549115156101000261ff0019909216919091179055565b6005546001600160a01b0316331461133d5760405162461bcd60e51b8152600401610a6790612e0e565b60138054911515620100000262ff000019909216919091179055565b6005546001600160a01b031633146113835760405162461bcd60e51b8152600401610a6790612e0e565b6013805460ff1916911515919091179055565b6005546001600160a01b031633146113c05760405162461bcd60e51b8152600401610a6790612e0e565b60088790556009869055600a859055600d849055600e839055600c829055600b819055856113ee8689612df6565b6113f89190612df6565b601055600a54600c54600b5461140e9190612df6565b6114189190612df6565b6011556010546019101561146e5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610a67565b601960115411156114c15760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610a67565b50505050505050565b6005546001600160a01b031633146114f45760405162461bcd60e51b8152600401610a6790612e0e565b6001600160a01b0381166115595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a67565b610c9081612304565b6001600160a01b0383166115c45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a67565b6001600160a01b0382166116255760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a67565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b61168f83610e8f565b8061169e575061169e82610e8f565b156116ae57610e8a83838361242b565b6116b783610b22565b156116fb5760405162461bcd60e51b815260206004820152601460248201527314d95b99195c881b1bd8dad95908185cc8189bdd60621b6044820152606401610a67565b61170482610b22565b156117515760405162461bcd60e51b815260206004820152601760248201527f526563697069656e74206c6f636b656420617320626f740000000000000000006044820152606401610a67565b60006103e8600654611762601d5490565b61176c9190612db5565b6117769190612dd4565b905060006103e8600754611789601d5490565b6117939190612db5565b61179d9190612dd4565b905081831115806117b75750602254600160a81b900460ff165b806117cb5750602254600160a01b900460ff165b806117e357506021546001600160a01b038581169116145b61182f5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178207472616e73616374696f6e20616d6f756e7400006044820152606401610a67565b600061183a30610ead565b6012546001600160a01b0387166000908152602960205260409020549192508210159061187e576014546001600160a01b0387166000908152602960205260409020555b838210611889578391505b8080156118a05750602254600160a01b900460ff16155b80156118ba57506022546001600160a01b03888116911614155b80156118ce575060135462010000900460ff165b156118dc576118dc82611da6565b6118e587611c81565b6118ee86611c81565b602254859060009081908190819081906001600160a01b038e811691161480156119215750602254600160b01b900460ff165b15611a73576001600160a01b038c16600090815260246020526040902054899061194c908d90612df6565b111561195757600080fd5b606460105460646119689190612d9e565b611972908d612db5565b61197c9190612dd4565b95506064600d548c61198e9190612db5565b6119989190612dd4565b94506064600e548c6119aa9190612db5565b6119b49190612dd4565b601354909150610100900460ff1615806119e85750600f54326000908152602860205260409020546119e69042612d9e565b115b806119fc5750602254600160a01b900460ff165b611a485760405162461bcd60e51b815260206004820152601d60248201527f68697420636f6f6c646f776e2c2074727920616761696e206c617465720000006044820152606401610a67565b611a528d82612589565b326000908152602860205260409020429055611a6e8d86612629565b611bed565b6022546001600160a01b038d81169116148015611a995750602254600160b01b900460ff165b15611bed5760135460ff168015611ace57506020805432600090815260289092526040909120544291611acb91612df6565b10155b15611b535760646011546064611ae49190612d9e565b611aee908d612db5565b611af89190612dd4565b95506064600b548c611b0a9190612db5565b611b149190612dd4565b93506064600a548c611b269190612db5565b611b309190612dd4565b92506064600c548c611b429190612db5565b611b4c9190612dd4565b9150611bcf565b60646010546064611b649190612d9e565b611b6e908d612db5565b611b789190612dd4565b955060646008548c611b8a9190612db5565b611b949190612dd4565b93506064600a548c611ba69190612db5565b611bb09190612dd4565b925060646009548c611bc29190612db5565b611bcc9190612dd4565b91505b611bd98d856126cc565b611be38d8361274b565b611bed8d846127ca565b611bf88d8d8861242b565b602254600160b01b900460ff168015611c12575060235443145b8015611c245750611c2232610e8f565b155b15611c72576022546001600160a01b0316321415611c69576022546001600160a01b038e811691161415611c6057611c5b8c612849565b611c72565b611c5b8d612849565b611c7232612849565b50505050505050505050505050565b6022546001600160a01b0382811691161480611caa57506021546001600160a01b038281169116145b15611cb25750565b6001600160a01b038116600090815260296020526040812054601454611cd89190612d9e565b90506000601d54611ce884610ead565b611cf29084612db5565b611cfc9190612dd4565b6014546001600160a01b038516600090815260296020526040902055905080611d2457505050565b6040516001600160a01b0384169082156108fc029083906000818181858888f19350505050158015611d5a573d6000803e3d6000fd5b506001600160a01b0383166000908152602a602052604081208054839290611d83908490612df6565b9250508190555080601f6000828254611d9c9190612df6565b9091555050505050565b6022805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611dee57611dee612e7a565b6001600160a01b03928316602091820292909201810191909152602154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6b9190612eab565b81600181518110611e7e57611e7e612e7a565b6001600160a01b039283166020918202929092010152602154611ea49130911684611562565b60215460405163791ac94760e01b815247916001600160a01b03169063791ac94790611edd908690600090879030904290600401612ec8565b600060405180830381600087803b158015611ef757600080fd5b505af1158015611f0b573d6000803e3d6000fd5b5050505060008147611f1d9190612d9e565b90506000601854601654601754601554611f379190612df6565b611f419190612df6565b611f4b9190612df6565b601754611f589087612db5565b611f629190612dd4565b90506000601854601654601754601554611f7c9190612df6565b611f869190612df6565b611f909190612df6565b601654611f9d9088612db5565b611fa79190612dd4565b90506000601854601654601754601554611fc19190612df6565b611fcb9190612df6565b611fd59190612df6565b601854611fe29089612db5565b611fec9190612dd4565b9050600081611ffb8486612df6565b6120059190612df6565b61200f9089612d9e565b905060006018546016546017546015546120299190612df6565b6120339190612df6565b61203d9190612df6565b60175461204a9088612db5565b6120549190612dd4565b9050600060185460165460175460155461206e9190612df6565b6120789190612df6565b6120829190612df6565b60165461208f9089612db5565b6120999190612dd4565b905060006018546016546017546015546120b39190612df6565b6120bd9190612df6565b6120c79190612df6565b6018546120d4908a612db5565b6120de9190612dd4565b90506000816120ed8486612df6565b6120f79190612df6565b612101908a612d9e565b905083156121bb57601c546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612143573d6000803e3d6000fd5b506019546040516001600160a01b039091169085156108fc029086906000818181858888f1935050505015801561217e573d6000803e3d6000fd5b50601a546040516001600160a01b039091169084156108fc029085906000818181858888f193505050501580156121b9573d6000803e3d6000fd5b505b87601760008282546121cd9190612d9e565b9250508190555086601660008282546121e69190612d9e565b9250508190555085601860008282546121ff9190612d9e565b9250508190555084601560008282546122189190612d9e565b9250508190555080601460008282546122319190612df6565b90915550506022805460ff60a01b19169055505050505050505050505050565b80601d60008282546122639190612df6565b9091555061227390508282612992565b6040518181526001600160a01b03831690600090600080516020612f68833981519152906020015b60405180910390a35050565b6001600160a01b03811660009081526025602052604090205460ff16156122e05760405162461bcd60e51b8152600401610a6790612e43565b6001600160a01b03166000908152602560205260409020805460ff19166001179055565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60215461236e9030906001600160a01b031684611562565b6021546001600160a01b031663f305d7198230856000806123976005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156123ff573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124249190612f39565b5050505050565b6001600160a01b0383166124815760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610a67565b6001600160a01b0382166124d75760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610a67565b60006124e284610ead565b9050818110156125345760405162461bcd60e51b815260206004820152601f60248201527f7472616e7366657220616d6f756e7420657863656564732062616c616e6365006044820152606401610a67565b61253e84836129d6565b6125488383612992565b826001600160a01b0316846001600160a01b0316600080516020612f688339815191528460405161257b91815260200190565b60405180910390a350505050565b61259282610ead565b81111561259e57600080fd5b6001600160a01b0382166000908152602460205260409020546125c2908290612d9e565b6001600160a01b038316600090815260246020526040902055601d546125e9908290612d9e565b601d55601e546125fa908290612df6565b601e556040518181526000906001600160a01b03841690600080516020612f688339815191529060200161229b565b6001600160a01b03821661267f5760405162461bcd60e51b815260206004820152601d60248201527f7265666c6563742066726f6d20746865207a65726f20616464726573730000006044820152606401610a67565b61268a82308361242b565b806015600082825461269c9190612df6565b909155505060405181815230906001600160a01b03841690600080516020612f688339815191529060200161229b565b6001600160a01b03821661272e5760405162461bcd60e51b8152602060048201526024808201527f74616b65206d61726b6574696e672066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a67565b61273982308361242b565b806017600082825461269c9190612df6565b6001600160a01b0382166127ad5760405162461bcd60e51b815260206004820152602360248201527f74616b652074726561737572792066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610a67565b6127b882308361242b565b806016600082825461269c9190612df6565b6001600160a01b03821661282c5760405162461bcd60e51b8152602060048201526024808201527f74616b65206c69717569646974792066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a67565b61283782308361242b565b806018600082825461269c9190612df6565b61285281610b22565b1561289f5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e74206d757374206e6f7420626520666c616767656400000000006044820152606401610a67565b6021546001600160a01b03828116911614156129085760405162461bcd60e51b815260206004820152602260248201527f4163636f756e74206d757374206e6f7420626520756e697377617020726f757460448201526132b960f11b6064820152608401610a67565b6022546001600160a01b03828116911614156129665760405162461bcd60e51b815260206004820181905260248201527f4163636f756e74206d757374206e6f7420626520756e697377617020706169726044820152606401610a67565b6001600160a01b0381166000908152602760205260409020805460ff19166001179055610c90816122a7565b6001600160a01b0382166000908152602460205260409020546129b6908290612df6565b6001600160a01b0390921660009081526024602052604090209190915550565b6001600160a01b0382166000908152602460205260409020546129b6908290612d9e565b600060208083528351808285015260005b81811015612a2757858101830151858201604001528201612a0b565b81811115612a39576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610c9057600080fd5b60008060408385031215612a7757600080fd5b8235612a8281612a4f565b946020939093013593505050565b600080600060608486031215612aa557600080fd5b8335612ab081612a4f565b92506020840135612ac081612a4f565b929592945050506040919091013590565b600060208284031215612ae357600080fd5b8135612aee81612a4f565b9392505050565b600060208284031215612b0757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b4d57612b4d612b0e565b604052919050565b600067ffffffffffffffff821115612b6f57612b6f612b0e565b5060051b60200190565b600082601f830112612b8a57600080fd5b81356020612b9f612b9a83612b55565b612b24565b82815260059290921b84018101918181019086841115612bbe57600080fd5b8286015b84811015612bd95780358352918301918301612bc2565b509695505050505050565b60008060408385031215612bf757600080fd5b823567ffffffffffffffff80821115612c0f57600080fd5b818501915085601f830112612c2357600080fd5b81356020612c33612b9a83612b55565b82815260059290921b84018101918181019089841115612c5257600080fd5b948201945b83861015612c79578535612c6a81612a4f565b82529482019490820190612c57565b96505086013592505080821115612c8f57600080fd5b50612c9c85828601612b79565b9150509250929050565b600060208284031215612cb857600080fd5b81358015158114612aee57600080fd5b60008060408385031215612cdb57600080fd5b8235612ce681612a4f565b91506020830135612cf681612a4f565b809150509250929050565b600080600080600080600060e0888a031215612d1c57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600181811c90821680612d6157607f821691505b60208210811415612d8257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015612db057612db0612d88565b500390565b6000816000190483118215151615612dcf57612dcf612d88565b500290565b600082612df157634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115612e0957612e09612d88565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601c908201527f4163636f756e74206d757374206e6f74206265206578636c7564656400000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612ea457612ea4612d88565b5060010190565b600060208284031215612ebd57600080fd5b8151612aee81612a4f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612f185784516001600160a01b031683529383019391830191600101612ef3565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612f4e57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220505468b67790e03ef4b7ad7cae13da93786787149a2300c0fb303e37d836f4bc64736f6c634300080b00330000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000009e2f500a31f5b6ec0bdfc87957587307d247a5950000000000000000000000003ab55bc1d111a4a93c9f486ddc944d821b1effe0000000000000000000000000a1073568dca251c5be5bce11691035378f3b1585
Deployed Bytecode
0x6080604052600436106102e85760003560e01c8063715018a611610190578063a9059cbb116100dc578063dd62ed3e11610095578063ee1725461161006f578063ee172546146108c6578063efeaf784146108db578063f2fde38b146108fb578063fd01bd4c1461091b57600080fd5b8063dd62ed3e14610840578063e3f9fc6314610886578063e9a7e633146108a657600080fd5b8063a9059cbb14610795578063ab5a1887146107b5578063b41356c9146107d5578063bc9c3b77146107f5578063c6fe97271461080b578063d89135cd1461082b57600080fd5b80638da5cb5b1161014957806395d89b411161012357806395d89b4114610720578063962dfc75146107355780639daa30e314610755578063a457c2d71461077557600080fd5b80638da5cb5b146106a95780639045be58146106c7578063959bd6c21461070057600080fd5b8063715018a61461061757806377348de91461062c5780637ae316d01461064c578063853828b61461066157806385b12c7c146106765780638c369d3b1461068957600080fd5b806340c10f191161024f578063586509cf11610208578063644ce4be116101e2578063644ce4be146105a157806367243482146105b757806369ec8e9c146105d757806370a08231146105f757600080fd5b8063586509cf146105415780635d0044ca146105615780635fecd9261461058157600080fd5b806340c10f191461048e578063488981c8146104ae5780634d48b105146104c35780634e6be544146104f95780634fb0b7e7146105015780635196aadb1461052157600080fd5b8063313ce567116102a1578063313ce567146103e657806331d7a26214610402578063375632931461042257806339509351146104395780633bbac579146104595780633e9ffbea1461047957600080fd5b806306fdde03146102f4578063095ea7b31461031f57806318160ddd1461034f57806323b872dd1461036e578063243a7e311461038e578063269d1faa146103c657600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b50610309610931565b60405161031691906129fa565b60405180910390f35b34801561032b57600080fd5b5061033f61033a366004612a64565b6109c3565b6040519015158152602001610316565b34801561035b57600080fd5b50601d545b604051908152602001610316565b34801561037a57600080fd5b5061033f610389366004612a90565b6109d9565b34801561039a57600080fd5b50601c546103ae906001600160a01b031681565b6040516001600160a01b039091168152602001610316565b3480156103d257600080fd5b50601a546103ae906001600160a01b031681565b3480156103f257600080fd5b5060405160128152602001610316565b34801561040e57600080fd5b5061036061041d366004612ad1565b610a88565b34801561042e57600080fd5b50610437610adb565b005b34801561044557600080fd5b5061033f610454366004612a64565b610ae6565b34801561046557600080fd5b5061033f610474366004612ad1565b610b22565b34801561048557600080fd5b50610437610b40565b34801561049a57600080fd5b506104376104a9366004612a64565b610b9c565b3480156104ba57600080fd5b50601154610360565b3480156104cf57600080fd5b506103606104de366004612ad1565b6001600160a01b03166000908152602a602052604090205490565b610437610bd0565b34801561050d57600080fd5b5061043761051c366004612ad1565b610be9565b34801561052d57600080fd5b5061043761053c366004612ad1565b610c5d565b34801561054d57600080fd5b5061043761055c366004612af5565b610c93565b34801561056d57600080fd5b5061043761057c366004612af5565b610cc2565b34801561058d57600080fd5b5061043761059c366004612ad1565b610d0d565b3480156105ad57600080fd5b5061036060205481565b3480156105c357600080fd5b506104376105d2366004612be4565b610db5565b3480156105e357600080fd5b5061033f6105f2366004612ad1565b610e8f565b34801561060357600080fd5b50610360610612366004612ad1565b610ead565b34801561062357600080fd5b50610437610ec8565b34801561063857600080fd5b50610437610647366004612af5565b610efc565b34801561065857600080fd5b50601054610360565b34801561066d57600080fd5b50610437610f2b565b610437610684366004612af5565b610fdf565b34801561069557600080fd5b50601b546103ae906001600160a01b031681565b3480156106b557600080fd5b506005546001600160a01b03166103ae565b3480156106d357600080fd5b5061033f6106e2366004612ad1565b6001600160a01b031660009081526025602052604090205460ff1690565b34801561070c57600080fd5b5061043761071b366004612ca6565b611069565b34801561072c57600080fd5b506103096110b1565b34801561074157600080fd5b506019546103ae906001600160a01b031681565b34801561076157600080fd5b50610437610770366004612ad1565b6110c0565b34801561078157600080fd5b5061033f610790366004612a64565b611173565b3480156107a157600080fd5b5061033f6107b0366004612a64565b61120c565b3480156107c157600080fd5b506104376107d0366004612af5565b611219565b3480156107e157600080fd5b506104376107f0366004612ad1565b61125f565b34801561080157600080fd5b50610360601f5481565b34801561081757600080fd5b50610437610826366004612ca6565b6112cf565b34801561083757600080fd5b50601e54610360565b34801561084c57600080fd5b5061036061085b366004612cc8565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561089257600080fd5b506104376108a1366004612ca6565b611313565b3480156108b257600080fd5b506104376108c1366004612ca6565b611359565b3480156108d257600080fd5b50601f54610360565b3480156108e757600080fd5b506104376108f6366004612d01565b611396565b34801561090757600080fd5b50610437610916366004612ad1565b6114ca565b34801561092757600080fd5b50610360601e5481565b60606003805461094090612d4d565b80601f016020809104026020016040519081016040528092919081815260200182805461096c90612d4d565b80156109b95780601f1061098e576101008083540402835291602001916109b9565b820191906000526020600020905b81548152906001019060200180831161099c57829003601f168201915b5050505050905090565b60006109d0338484611562565b50600192915050565b60006109e6848484611686565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610a705760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610a7d8533858403611562565b506001949350505050565b6001600160a01b0381166000908152602960205260408120546014548291610aaf91612d9e565b90506000601d54610abf85610ead565b610ac99084612db5565b610ad39190612dd4565b949350505050565b610ae433611c81565b565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916109d0918590610b1d908690612df6565b611562565b6001600160a01b031660009081526027602052604090205460ff1690565b60006103e8600654610b51601d5490565b610b5b9190612db5565b610b659190612dd4565b90506000610b7230610ead565b9050818110610b7e5750805b602254600160a01b900460ff16610b9857610b9881611da6565b5050565b6005546001600160a01b03163314610bc65760405162461bcd60e51b8152600401610a6790612e0e565b610b988282612251565b3460146000828254610be29190612df6565b9091555050565b6005546001600160a01b03163314610c135760405162461bcd60e51b8152600401610a6790612e0e565b610c1c81610e8f565b15610c395760405162461bcd60e51b8152600401610a6790612e43565b6001600160a01b03166000908152602660205260409020805460ff19166001179055565b6005546001600160a01b03163314610c875760405162461bcd60e51b8152600401610a6790612e0e565b610c90816122a7565b50565b6005546001600160a01b03163314610cbd5760405162461bcd60e51b8152600401610a6790612e0e565b601255565b6005546001600160a01b03163314610cec5760405162461bcd60e51b8152600401610a6790612e0e565b6103e8601d54610cfc9190612dd4565b811015610d0857600080fd5b600755565b6005546001600160a01b03163314610d375760405162461bcd60e51b8152600401610a6790612e0e565b610d4081610b22565b610d8c5760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206d75737420626520666c61676765640000000000000000006044820152606401610a67565b6001600160a01b0381166000908152602760205260409020805460ff19169055610c90816110c0565b6005546001600160a01b03163314610ddf5760405162461bcd60e51b8152600401610a6790612e0e565b8051825114610e305760405162461bcd60e51b815260206004820152601860248201527f6172726179206c656e67746873206d757374206d6174636800000000000000006044820152606401610a67565b60005b8251811015610e8a57610e78838281518110610e5157610e51612e7a565b6020026020010151838381518110610e6b57610e6b612e7a565b6020026020010151612251565b80610e8281612e90565b915050610e33565b505050565b6001600160a01b031660009081526026602052604090205460ff1690565b6001600160a01b031660009081526024602052604090205490565b6005546001600160a01b03163314610ef25760405162461bcd60e51b8152600401610a6790612e0e565b610ae46000612304565b6005546001600160a01b03163314610f265760405162461bcd60e51b8152600401610a6790612e0e565b600655565b6005546001600160a01b03163314610f555760405162461bcd60e51b8152600401610a6790612e0e565b6000610f62600247612dd4565b6019546040519192506001600160a01b03169082156108fc029083906000818181858888f19350505050158015610f9d573d6000803e3d6000fd5b50601a546001600160a01b03166108fc610fb78347612d9e565b6040518115909202916000818181858888f19350505050158015610b98573d6000803e3d6000fd5b6005546001600160a01b031633146110095760405162461bcd60e51b8152600401610a6790612e0e565b6022805460ff60a81b1916600160a81b1790556110263082612251565b6110308134612356565b602254600160b01b900460ff16611059576022805460ff60b01b1916600160b01b179055436023555b506022805460ff60a81b19169055565b6005546001600160a01b031633146110935760405162461bcd60e51b8152600401610a6790612e0e565b60228054911515600160b01b0260ff60b01b19909216919091179055565b60606004805461094090612d4d565b6005546001600160a01b031633146110ea5760405162461bcd60e51b8152600401610a6790612e0e565b6001600160a01b03811660009081526025602052604090205460ff166111525760405162461bcd60e51b815260206004820152601860248201527f4163636f756e74206d757374206265206578636c7564656400000000000000006044820152606401610a67565b6001600160a01b03166000908152602560205260409020805460ff19169055565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156111f55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610a67565b6112023385858403611562565b5060019392505050565b60006109d0338484611686565b6005546001600160a01b031633146112435760405162461bcd60e51b8152600401610a6790612e0e565b6103e8601d546112539190612dd4565b811015610f2657600080fd5b6005546001600160a01b031633146112895760405162461bcd60e51b8152600401610a6790612e0e565b61129281610e8f565b6112ae5760405162461bcd60e51b8152600401610a6790612e43565b6001600160a01b03166000908152602660205260409020805460ff19169055565b6005546001600160a01b031633146112f95760405162461bcd60e51b8152600401610a6790612e0e565b601380549115156101000261ff0019909216919091179055565b6005546001600160a01b0316331461133d5760405162461bcd60e51b8152600401610a6790612e0e565b60138054911515620100000262ff000019909216919091179055565b6005546001600160a01b031633146113835760405162461bcd60e51b8152600401610a6790612e0e565b6013805460ff1916911515919091179055565b6005546001600160a01b031633146113c05760405162461bcd60e51b8152600401610a6790612e0e565b60088790556009869055600a859055600d849055600e839055600c829055600b819055856113ee8689612df6565b6113f89190612df6565b601055600a54600c54600b5461140e9190612df6565b6114189190612df6565b6011556010546019101561146e5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610a67565b601960115411156114c15760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323525206f72206c6573730000006044820152606401610a67565b50505050505050565b6005546001600160a01b031633146114f45760405162461bcd60e51b8152600401610a6790612e0e565b6001600160a01b0381166115595760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a67565b610c9081612304565b6001600160a01b0383166115c45760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a67565b6001600160a01b0382166116255760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610a67565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b61168f83610e8f565b8061169e575061169e82610e8f565b156116ae57610e8a83838361242b565b6116b783610b22565b156116fb5760405162461bcd60e51b815260206004820152601460248201527314d95b99195c881b1bd8dad95908185cc8189bdd60621b6044820152606401610a67565b61170482610b22565b156117515760405162461bcd60e51b815260206004820152601760248201527f526563697069656e74206c6f636b656420617320626f740000000000000000006044820152606401610a67565b60006103e8600654611762601d5490565b61176c9190612db5565b6117769190612dd4565b905060006103e8600754611789601d5490565b6117939190612db5565b61179d9190612dd4565b905081831115806117b75750602254600160a81b900460ff165b806117cb5750602254600160a01b900460ff165b806117e357506021546001600160a01b038581169116145b61182f5760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178207472616e73616374696f6e20616d6f756e7400006044820152606401610a67565b600061183a30610ead565b6012546001600160a01b0387166000908152602960205260409020549192508210159061187e576014546001600160a01b0387166000908152602960205260409020555b838210611889578391505b8080156118a05750602254600160a01b900460ff16155b80156118ba57506022546001600160a01b03888116911614155b80156118ce575060135462010000900460ff165b156118dc576118dc82611da6565b6118e587611c81565b6118ee86611c81565b602254859060009081908190819081906001600160a01b038e811691161480156119215750602254600160b01b900460ff165b15611a73576001600160a01b038c16600090815260246020526040902054899061194c908d90612df6565b111561195757600080fd5b606460105460646119689190612d9e565b611972908d612db5565b61197c9190612dd4565b95506064600d548c61198e9190612db5565b6119989190612dd4565b94506064600e548c6119aa9190612db5565b6119b49190612dd4565b601354909150610100900460ff1615806119e85750600f54326000908152602860205260409020546119e69042612d9e565b115b806119fc5750602254600160a01b900460ff165b611a485760405162461bcd60e51b815260206004820152601d60248201527f68697420636f6f6c646f776e2c2074727920616761696e206c617465720000006044820152606401610a67565b611a528d82612589565b326000908152602860205260409020429055611a6e8d86612629565b611bed565b6022546001600160a01b038d81169116148015611a995750602254600160b01b900460ff165b15611bed5760135460ff168015611ace57506020805432600090815260289092526040909120544291611acb91612df6565b10155b15611b535760646011546064611ae49190612d9e565b611aee908d612db5565b611af89190612dd4565b95506064600b548c611b0a9190612db5565b611b149190612dd4565b93506064600a548c611b269190612db5565b611b309190612dd4565b92506064600c548c611b429190612db5565b611b4c9190612dd4565b9150611bcf565b60646010546064611b649190612d9e565b611b6e908d612db5565b611b789190612dd4565b955060646008548c611b8a9190612db5565b611b949190612dd4565b93506064600a548c611ba69190612db5565b611bb09190612dd4565b925060646009548c611bc29190612db5565b611bcc9190612dd4565b91505b611bd98d856126cc565b611be38d8361274b565b611bed8d846127ca565b611bf88d8d8861242b565b602254600160b01b900460ff168015611c12575060235443145b8015611c245750611c2232610e8f565b155b15611c72576022546001600160a01b0316321415611c69576022546001600160a01b038e811691161415611c6057611c5b8c612849565b611c72565b611c5b8d612849565b611c7232612849565b50505050505050505050505050565b6022546001600160a01b0382811691161480611caa57506021546001600160a01b038281169116145b15611cb25750565b6001600160a01b038116600090815260296020526040812054601454611cd89190612d9e565b90506000601d54611ce884610ead565b611cf29084612db5565b611cfc9190612dd4565b6014546001600160a01b038516600090815260296020526040902055905080611d2457505050565b6040516001600160a01b0384169082156108fc029083906000818181858888f19350505050158015611d5a573d6000803e3d6000fd5b506001600160a01b0383166000908152602a602052604081208054839290611d83908490612df6565b9250508190555080601f6000828254611d9c9190612df6565b9091555050505050565b6022805460ff60a01b1916600160a01b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611dee57611dee612e7a565b6001600160a01b03928316602091820292909201810191909152602154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611e47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e6b9190612eab565b81600181518110611e7e57611e7e612e7a565b6001600160a01b039283166020918202929092010152602154611ea49130911684611562565b60215460405163791ac94760e01b815247916001600160a01b03169063791ac94790611edd908690600090879030904290600401612ec8565b600060405180830381600087803b158015611ef757600080fd5b505af1158015611f0b573d6000803e3d6000fd5b5050505060008147611f1d9190612d9e565b90506000601854601654601754601554611f379190612df6565b611f419190612df6565b611f4b9190612df6565b601754611f589087612db5565b611f629190612dd4565b90506000601854601654601754601554611f7c9190612df6565b611f869190612df6565b611f909190612df6565b601654611f9d9088612db5565b611fa79190612dd4565b90506000601854601654601754601554611fc19190612df6565b611fcb9190612df6565b611fd59190612df6565b601854611fe29089612db5565b611fec9190612dd4565b9050600081611ffb8486612df6565b6120059190612df6565b61200f9089612d9e565b905060006018546016546017546015546120299190612df6565b6120339190612df6565b61203d9190612df6565b60175461204a9088612db5565b6120549190612dd4565b9050600060185460165460175460155461206e9190612df6565b6120789190612df6565b6120829190612df6565b60165461208f9089612db5565b6120999190612dd4565b905060006018546016546017546015546120b39190612df6565b6120bd9190612df6565b6120c79190612df6565b6018546120d4908a612db5565b6120de9190612dd4565b90506000816120ed8486612df6565b6120f79190612df6565b612101908a612d9e565b905083156121bb57601c546040516001600160a01b039091169083156108fc029084906000818181858888f19350505050158015612143573d6000803e3d6000fd5b506019546040516001600160a01b039091169085156108fc029086906000818181858888f1935050505015801561217e573d6000803e3d6000fd5b50601a546040516001600160a01b039091169084156108fc029085906000818181858888f193505050501580156121b9573d6000803e3d6000fd5b505b87601760008282546121cd9190612d9e565b9250508190555086601660008282546121e69190612d9e565b9250508190555085601860008282546121ff9190612d9e565b9250508190555084601560008282546122189190612d9e565b9250508190555080601460008282546122319190612df6565b90915550506022805460ff60a01b19169055505050505050505050505050565b80601d60008282546122639190612df6565b9091555061227390508282612992565b6040518181526001600160a01b03831690600090600080516020612f68833981519152906020015b60405180910390a35050565b6001600160a01b03811660009081526025602052604090205460ff16156122e05760405162461bcd60e51b8152600401610a6790612e43565b6001600160a01b03166000908152602560205260409020805460ff19166001179055565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60215461236e9030906001600160a01b031684611562565b6021546001600160a01b031663f305d7198230856000806123976005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156123ff573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124249190612f39565b5050505050565b6001600160a01b0383166124815760405162461bcd60e51b815260206004820152601e60248201527f7472616e736665722066726f6d20746865207a65726f206164647265737300006044820152606401610a67565b6001600160a01b0382166124d75760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610a67565b60006124e284610ead565b9050818110156125345760405162461bcd60e51b815260206004820152601f60248201527f7472616e7366657220616d6f756e7420657863656564732062616c616e6365006044820152606401610a67565b61253e84836129d6565b6125488383612992565b826001600160a01b0316846001600160a01b0316600080516020612f688339815191528460405161257b91815260200190565b60405180910390a350505050565b61259282610ead565b81111561259e57600080fd5b6001600160a01b0382166000908152602460205260409020546125c2908290612d9e565b6001600160a01b038316600090815260246020526040902055601d546125e9908290612d9e565b601d55601e546125fa908290612df6565b601e556040518181526000906001600160a01b03841690600080516020612f688339815191529060200161229b565b6001600160a01b03821661267f5760405162461bcd60e51b815260206004820152601d60248201527f7265666c6563742066726f6d20746865207a65726f20616464726573730000006044820152606401610a67565b61268a82308361242b565b806015600082825461269c9190612df6565b909155505060405181815230906001600160a01b03841690600080516020612f688339815191529060200161229b565b6001600160a01b03821661272e5760405162461bcd60e51b8152602060048201526024808201527f74616b65206d61726b6574696e672066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a67565b61273982308361242b565b806017600082825461269c9190612df6565b6001600160a01b0382166127ad5760405162461bcd60e51b815260206004820152602360248201527f74616b652074726561737572792066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610a67565b6127b882308361242b565b806016600082825461269c9190612df6565b6001600160a01b03821661282c5760405162461bcd60e51b8152602060048201526024808201527f74616b65206c69717569646974792066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610a67565b61283782308361242b565b806018600082825461269c9190612df6565b61285281610b22565b1561289f5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e74206d757374206e6f7420626520666c616767656400000000006044820152606401610a67565b6021546001600160a01b03828116911614156129085760405162461bcd60e51b815260206004820152602260248201527f4163636f756e74206d757374206e6f7420626520756e697377617020726f757460448201526132b960f11b6064820152608401610a67565b6022546001600160a01b03828116911614156129665760405162461bcd60e51b815260206004820181905260248201527f4163636f756e74206d757374206e6f7420626520756e697377617020706169726044820152606401610a67565b6001600160a01b0381166000908152602760205260409020805460ff19166001179055610c90816122a7565b6001600160a01b0382166000908152602460205260409020546129b6908290612df6565b6001600160a01b0390921660009081526024602052604090209190915550565b6001600160a01b0382166000908152602460205260409020546129b6908290612d9e565b600060208083528351808285015260005b81811015612a2757858101830151858201604001528201612a0b565b81811115612a39576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114610c9057600080fd5b60008060408385031215612a7757600080fd5b8235612a8281612a4f565b946020939093013593505050565b600080600060608486031215612aa557600080fd5b8335612ab081612a4f565b92506020840135612ac081612a4f565b929592945050506040919091013590565b600060208284031215612ae357600080fd5b8135612aee81612a4f565b9392505050565b600060208284031215612b0757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b4d57612b4d612b0e565b604052919050565b600067ffffffffffffffff821115612b6f57612b6f612b0e565b5060051b60200190565b600082601f830112612b8a57600080fd5b81356020612b9f612b9a83612b55565b612b24565b82815260059290921b84018101918181019086841115612bbe57600080fd5b8286015b84811015612bd95780358352918301918301612bc2565b509695505050505050565b60008060408385031215612bf757600080fd5b823567ffffffffffffffff80821115612c0f57600080fd5b818501915085601f830112612c2357600080fd5b81356020612c33612b9a83612b55565b82815260059290921b84018101918181019089841115612c5257600080fd5b948201945b83861015612c79578535612c6a81612a4f565b82529482019490820190612c57565b96505086013592505080821115612c8f57600080fd5b50612c9c85828601612b79565b9150509250929050565b600060208284031215612cb857600080fd5b81358015158114612aee57600080fd5b60008060408385031215612cdb57600080fd5b8235612ce681612a4f565b91506020830135612cf681612a4f565b809150509250929050565b600080600080600080600060e0888a031215612d1c57600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600181811c90821680612d6157607f821691505b60208210811415612d8257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015612db057612db0612d88565b500390565b6000816000190483118215151615612dcf57612dcf612d88565b500290565b600082612df157634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115612e0957612e09612d88565b500190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6020808252601c908201527f4163636f756e74206d757374206e6f74206265206578636c7564656400000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6000600019821415612ea457612ea4612d88565b5060010190565b600060208284031215612ebd57600080fd5b8151612aee81612a4f565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612f185784516001600160a01b031683529383019391830191600101612ef3565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612f4e57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220505468b67790e03ef4b7ad7cae13da93786787149a2300c0fb303e37d836f4bc64736f6c634300080b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000009e2f500a31f5b6ec0bdfc87957587307d247a5950000000000000000000000003ab55bc1d111a4a93c9f486ddc944d821b1effe0000000000000000000000000a1073568dca251c5be5bce11691035378f3b1585
-----Decoded View---------------
Arg [0] : uniswapFactory (address): 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f
Arg [1] : uniswapRouter (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [2] : treasuryWallet (address): 0x9E2F500A31f5b6EC0BDFc87957587307d247A595
Arg [3] : marketingWallet (address): 0x3ab55bC1D111a4A93c9F486ddC944D821b1efFE0
Arg [4] : liquidityWallet (address): 0xa1073568dcA251C5bE5bcE11691035378f3B1585
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f
Arg [1] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [2] : 0000000000000000000000009e2f500a31f5b6ec0bdfc87957587307d247a595
Arg [3] : 0000000000000000000000003ab55bc1d111a4a93c9f486ddc944d821b1effe0
Arg [4] : 000000000000000000000000a1073568dca251c5be5bce11691035378f3b1585
Deployed Bytecode Sourcemap
91176:19082:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17559:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19726:169;;;;;;;;;;-1:-1:-1;19726:169:0;;;;;:::i;:::-;;:::i;:::-;;;1237:14:1;;1230:22;1212:41;;1200:2;1185:18;19726:169:0;1072:187:1;107534:100:0;;;;;;;;;;-1:-1:-1;107614:12:0;;107534:100;;;1410:25:1;;;1398:2;1383:18;107534:100:0;1264:177:1;20377:492:0;;;;;;;;;;-1:-1:-1;20377:492:0;;;;;:::i;:::-;;:::i;92623:39::-;;;;;;;;;;-1:-1:-1;92623:39:0;;;;-1:-1:-1;;;;;92623:39:0;;;;;;-1:-1:-1;;;;;2087:32:1;;;2069:51;;2057:2;2042:18;92623:39:0;1907:219:1;92537:38:0;;;;;;;;;;-1:-1:-1;92537:38:0;;;;-1:-1:-1;;;;;92537:38:0;;;18521:93;;;;;;;;;;-1:-1:-1;18521:93:0;;18604:2;2273:36:1;;2261:2;2246:18;18521:93:0;2131:184:1;101841:257:0;;;;;;;;;;-1:-1:-1;101841:257:0;;;;;:::i;:::-;;:::i;101739:90::-;;;;;;;;;;;;;:::i;:::-;;21278:215;;;;;;;;;;-1:-1:-1;21278:215:0;;;;;:::i;:::-;;:::i;96442:98::-;;;;;;;;;;-1:-1:-1;96442:98:0;;;;;:::i;:::-;;:::i;104470:394::-;;;;;;;;;;;;;:::i;107849:107::-;;;;;;;;;;-1:-1:-1;107849:107:0;;;;;:::i;:::-;;:::i;109357:::-;;;;;;;;;;-1:-1:-1;109437:19:0;;109357:107;;102220:123;;;;;;;;;;-1:-1:-1;102220:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;102310:25:0;102283:7;102310:25;;;:19;:25;;;;;;;102220:123;95159:91;;;:::i;96055:184::-;;;;;;;;;;-1:-1:-1;96055:184:0;;;;;:::i;:::-;;:::i;95606:117::-;;;;;;;;;;-1:-1:-1;95606:117:0;;;;;:::i;:::-;;:::i;109780:97::-;;;;;;;;;;-1:-1:-1;109780:97:0;;;;;:::i;:::-;;:::i;109472:144::-;;;;;;;;;;-1:-1:-1;109472:144:0;;;;;:::i;:::-;;:::i;96990:202::-;;;;;;;;;;-1:-1:-1;96990:202:0;;;;;:::i;:::-;;:::i;92781:39::-;;;;;;;;;;;;;;;;107964:293;;;;;;;;;;-1:-1:-1;107964:293:0;;;;;:::i;:::-;;:::i;95933:114::-;;;;;;;;;;-1:-1:-1;95933:114:0;;;;;:::i;:::-;;:::i;97200:177::-;;;;;;;;;;-1:-1:-1;97200:177:0;;;;;:::i;:::-;;:::i;10980:103::-;;;;;;;;;;;;;:::i;107315:109::-;;;;;;;;;;-1:-1:-1;107315:109:0;;;;;:::i;:::-;;:::i;109260:89::-;;;;;;;;;;-1:-1:-1;109331:10:0;;109260:89;;104872:211;;;;;;;;;;;;;:::i;94354:292::-;;;;;;:::i;:::-;;:::i;92582:34::-;;;;;;;;;;-1:-1:-1;92582:34:0;;;;-1:-1:-1;;;;;92582:34:0;;;10329:87;;;;;;;;;;-1:-1:-1;10402:6:0;;-1:-1:-1;;;;;10402:6:0;10329:87;;95258:128;;;;;;;;;;-1:-1:-1;95258:128:0;;;;;:::i;:::-;-1:-1:-1;;;;;95350:28:0;95326:4;95350:28;;;:19;:28;;;;;;;;;95258:128;109885:100;;;;;;;;;;-1:-1:-1;109885:100:0;;;;;:::i;:::-;;:::i;17778:104::-;;;;;;;;;;;;;:::i;92491:39::-;;;;;;;;;;-1:-1:-1;92491:39:0;;;;-1:-1:-1;;;;;92491:39:0;;;95394:204;;;;;;;;;;-1:-1:-1;95394:204:0;;;;;:::i;:::-;;:::i;21996:413::-;;;;;;;;;;-1:-1:-1;21996:413:0;;;;;:::i;:::-;;:::i;19190:175::-;;;;;;;;;;-1:-1:-1;19190:175:0;;;;;:::i;:::-;;:::i;109624:151::-;;;;;;;;;;-1:-1:-1;109624:151:0;;;;;:::i;:::-;;:::i;96247:187::-;;;;;;;;;;-1:-1:-1;96247:187:0;;;;;:::i;:::-;;:::i;92745:32::-;;;;;;;;;;;;;;;;110110:108;;;;;;;;;;-1:-1:-1;110110:108:0;;;;;:::i;:::-;;:::i;108263:91::-;;;;;;;;;;-1:-1:-1;108334:12:0;;108263:91;;19428:151;;;;;;;;;;-1:-1:-1;19428:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;19544:18:0;;;19517:7;19544:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;19428:151;107432:94;;;;;;;;;;-1:-1:-1;107432:94:0;;;;;:::i;:::-;;:::i;109990:115::-;;;;;;;;;;-1:-1:-1;109990:115:0;;;;;:::i;:::-;;:::i;102106:108::-;;;;;;;;;;-1:-1:-1;102189:17:0;;102106:108;;108362:890;;;;;;;;;;-1:-1:-1;108362:890:0;;;;;:::i;:::-;;:::i;11238:201::-;;;;;;;;;;-1:-1:-1;11238:201:0;;;;;:::i;:::-;;:::i;92711:27::-;;;;;;;;;;;;;;;;17559:100;17613:13;17646:5;17639:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17559:100;:::o;19726:169::-;19809:4;19826:39;9133:10;19849:7;19858:6;19826:8;:39::i;:::-;-1:-1:-1;19883:4:0;19726:169;;;;:::o;20377:492::-;20517:4;20534:36;20544:6;20552:9;20563:6;20534:9;:36::i;:::-;-1:-1:-1;;;;;20610:19:0;;20583:24;20610:19;;;:11;:19;;;;;;;;9133:10;20610:33;;;;;;;;20662:26;;;;20654:79;;;;-1:-1:-1;;;20654:79:0;;7307:2:1;20654:79:0;;;7289:21:1;7346:2;7326:18;;;7319:30;7385:34;7365:18;;;7358:62;-1:-1:-1;;;7436:18:1;;;7429:38;7484:19;;20654:79:0;;;;;;;;;20769:57;20778:6;9133:10;20819:6;20800:16;:25;20769:8;:57::i;:::-;-1:-1:-1;20857:4:0;;20377:492;-1:-1:-1;;;;20377:492:0:o;101841:257::-;-1:-1:-1;;;;;101968:26:0;;101900:7;101968:26;;;:20;:26;;;;;;101946:19;;101900:7;;101946:48;;;:::i;:::-;101920:74;;102005:12;102056;;102038:15;102048:4;102038:9;:15::i;:::-;102020:33;;:15;:33;:::i;:::-;:48;;;;:::i;:::-;102005:63;101841:257;-1:-1:-1;;;;101841:257:0:o;101739:90::-;101784:37;101809:10;101784:16;:37::i;:::-;101739:90::o;21278:215::-;9133:10;21366:4;21415:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;21415:34:0;;;;;;;;;;21366:4;;21383:80;;21406:7;;21415:47;;21452:10;;21415:47;:::i;:::-;21383:8;:80::i;96442:98::-;-1:-1:-1;;;;;96519:13:0;96495:4;96519:13;;;:4;:13;;;;;;;;;96442:98::o;104470:394::-;104507:19;104560:4;104545:12;;104529:13;107614:12;;;107534:100;104529:13;:28;;;;:::i;:::-;:35;;;;:::i;:::-;104507:57;;104575:28;104606:24;104624:4;104606:9;:24::i;:::-;104575:55;;104670:11;104646:20;:35;104643:110;;-1:-1:-1;104730:11:0;104643:110;104784:7;;-1:-1:-1;;;104784:7:0;;;;104765:92;;104818:27;104824:20;104818:5;:27::i;:::-;104496:368;;104470:394::o;107849:107::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;107926:22:::1;107932:7;107941:6;107926:5;:22::i;95159:91::-:0;95233:9;95210:19;;:32;;;;;;;:::i;:::-;;;;-1:-1:-1;;95159:91:0:o;96055:184::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;96135:22:::1;96149:7;96135:13;:22::i;:::-;96134:23;96126:64;;;;-1:-1:-1::0;;;96126:64:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;96203:21:0::1;;::::0;;;:12:::1;:21;::::0;;;;:28;;-1:-1:-1;;96203:28:0::1;96227:4;96203:28;::::0;;96055:184::o;95606:117::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;95684:31:::1;95707:7;95684:22;:31::i;:::-;95606:117:::0;:::o;109780:97::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;109849:11:::1;:20:::0;109780:97::o;109472:144::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;109573:4:::1;109558:12;;:19;;;;:::i;:::-;109548:6;:29;;109540:38;;;::::0;::::1;;109589:10;:19:::0;109472:144::o;96990:202::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;97064:14:::1;97070:7;97064:5;:14::i;:::-;97056:50;;;::::0;-1:-1:-1;;;97056:50:0;;9224:2:1;97056:50:0::1;::::0;::::1;9206:21:1::0;9263:2;9243:18;;;9236:30;9302:25;9282:18;;;9275:53;9345:18;;97056:50:0::1;9022:347:1::0;97056:50:0::1;-1:-1:-1::0;;;;;97119:13:0;::::1;97135:5;97119:13:::0;;;:4:::1;:13;::::0;;;;:21;;-1:-1:-1;;97119:21:0::1;::::0;;97151:33:::1;97124:7:::0;97151:24:::1;:33::i;107964:293::-:0;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;108091:7:::1;:14;108072:8;:15;:33;108064:70;;;::::0;-1:-1:-1;;;108064:70:0;;9576:2:1;108064:70:0::1;::::0;::::1;9558:21:1::0;9615:2;9595:18;;;9588:30;9654:26;9634:18;;;9627:54;9698:18;;108064:70:0::1;9374:348:1::0;108064:70:0::1;108152:9;108147:103;108171:8;:15;108167:1;:19;108147:103;;;108208:30;108214:8;108223:1;108214:11;;;;;;;;:::i;:::-;;;;;;;108227:7;108235:1;108227:10;;;;;;;;:::i;:::-;;;;;;;108208:5;:30::i;:::-;108188:3:::0;::::1;::::0;::::1;:::i;:::-;;;;108147:103;;;;107964:293:::0;;:::o;95933:114::-;-1:-1:-1;;;;;96018:21:0;95994:4;96018:21;;;:12;:21;;;;;;;;;95933:114::o;97200:177::-;-1:-1:-1;;;;;97351:18:0;97319:7;97351:18;;;:9;:18;;;;;;;97200:177::o;10980:103::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;11045:30:::1;11072:1;11045:18;:30::i;107315:109::-:0;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;107390:12:::1;:26:::0;107315:109::o;104872:211::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;104925:13:::1;104941:25;104965:1;104941:21;:25;:::i;:::-;104977:16;::::0;:32:::1;::::0;104925:41;;-1:-1:-1;;;;;;104977:16:0::1;::::0;:32;::::1;;;::::0;104925:41;;104977:16:::1;:32:::0;:16;:32;104925:41;104977:16;:32;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;105020:15:0::1;::::0;-1:-1:-1;;;;;105020:15:0::1;:55;105045:29;105069:5:::0;105045:21:::1;:29;:::i;:::-;105020:55;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;94354:292:::0;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;91345:15:::1;:22:::0;;-1:-1:-1;;;;91345:22:0::1;-1:-1:-1::0;;;91345:22:0::1;::::0;;94437:28:::2;94451:4;94458:6:::0;94437:5:::2;:28::i;:::-;94478:31;94491:6;94499:9;94478:12;:31::i;:::-;94527:14;::::0;-1:-1:-1;;;94527:14:0;::::2;;;94522:117;;94558:14;:21:::0;;-1:-1:-1;;;;94558:21:0::2;-1:-1:-1::0;;;94558:21:0::2;::::0;;94615:12:::2;94594:18;:33:::0;94522:117:::2;-1:-1:-1::0;91390:15:0::1;:23:::0;;-1:-1:-1;;;;91390:23:0::1;::::0;;94354:292::o;109885:100::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;109954:14:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;109954:23:0::1;-1:-1:-1::0;;;;109954:23:0;;::::1;::::0;;;::::1;::::0;;109885:100::o;17778:104::-;17834:13;17867:7;17860:14;;;;;:::i;95394:204::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;95350:28:0;;95326:4;95350:28;;;:19;:28;;;;;;;;95475:66:::1;;;::::0;-1:-1:-1;;;95475:66:0;;10201:2:1;95475:66:0::1;::::0;::::1;10183:21:1::0;10240:2;10220:18;;;10213:30;10279:26;10259:18;;;10252:54;10323:18;;95475:66:0::1;9999:348:1::0;95475:66:0::1;-1:-1:-1::0;;;;;95554:28:0::1;95585:5;95554:28:::0;;;:19:::1;:28;::::0;;;;:36;;-1:-1:-1;;95554:36:0::1;::::0;;95394:204::o;21996:413::-;9133:10;22089:4;22133:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;22133:34:0;;;;;;;;;;22186:35;;;;22178:85;;;;-1:-1:-1;;;22178:85:0;;10554:2:1;22178:85:0;;;10536:21:1;10593:2;10573:18;;;10566:30;10632:34;10612:18;;;10605:62;-1:-1:-1;;;10683:18:1;;;10676:35;10728:19;;22178:85:0;10352:401:1;22178:85:0;22299:67;9133:10;22322:7;22350:15;22331:16;:34;22299:8;:67::i;:::-;-1:-1:-1;22397:4:0;;21996:413;-1:-1:-1;;;21996:413:0:o;19190:175::-;19276:4;19293:42;9133:10;19317:9;19328:6;19293:9;:42::i;109624:151::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;109730:4:::1;109715:12;;:19;;;;:::i;:::-;109705:6;:29;;109697:38;;;::::0;::::1;96247:187:::0;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;96329:22:::1;96343:7;96329:13;:22::i;:::-;96321:63;;;;-1:-1:-1::0;;;96321:63:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;96397:21:0::1;96421:5;96397:21:::0;;;:12:::1;:21;::::0;;;;:29;;-1:-1:-1;;96397:29:0::1;::::0;;96247:187::o;110110:108::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;110182:14:::1;:28:::0;;;::::1;;;;-1:-1:-1::0;;110182:28:0;;::::1;::::0;;;::::1;::::0;;110110:108::o;107432:94::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;107498:9:::1;:20:::0;;;::::1;;::::0;::::1;-1:-1:-1::0;;107498:20:0;;::::1;::::0;;;::::1;::::0;;107432:94::o;109990:115::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;110067:16:::1;:30:::0;;-1:-1:-1;;110067:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;109990:115::o;108362:890::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;108601:13:::1;:33:::0;;;108645:12:::1;:31:::0;;;108687:18:::1;:34:::0;;;108734:12:::1;:29:::0;;;108774:13:::1;:28:::0;;;108815:21:::1;:45:::0;;;108871:22:::1;:47:::0;;;108660:16;108945:34:::1;108708:13:::0;108617:17;108945:34:::1;:::i;:::-;:49;;;;:::i;:::-;108931:10;:64:::0;109078:18:::1;::::0;109054:21:::1;::::0;109029:22:::1;::::0;:46:::1;::::0;109054:21;109029:46:::1;:::i;:::-;:67;;;;:::i;:::-;109006:19;:91:::0;109116:10:::1;::::0;109130:2:::1;-1:-1:-1::0;109116:16:0::1;109108:58;;;::::0;-1:-1:-1;;;109108:58:0;;10960:2:1;109108:58:0::1;::::0;::::1;10942:21:1::0;10999:2;10979:18;;;10972:30;11038:31;11018:18;;;11011:59;11087:18;;109108:58:0::1;10758:353:1::0;109108:58:0::1;109208:2;109185:19;;:25;;109177:67;;;::::0;-1:-1:-1;;;109177:67:0;;10960:2:1;109177:67:0::1;::::0;::::1;10942:21:1::0;10999:2;10979:18;;;10972:30;11038:31;11018:18;;;11011:59;11087:18;;109177:67:0::1;10758:353:1::0;109177:67:0::1;108362:890:::0;;;;;;;:::o;11238:201::-;10402:6;;-1:-1:-1;;;;;10402:6:0;9133:10;10549:23;10541:68;;;;-1:-1:-1;;;10541:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11327:22:0;::::1;11319:73;;;::::0;-1:-1:-1;;;11319:73:0;;11318:2:1;11319:73:0::1;::::0;::::1;11300:21:1::0;11357:2;11337:18;;;11330:30;11396:34;11376:18;;;11369:62;-1:-1:-1;;;11447:18:1;;;11440:36;11493:19;;11319:73:0::1;11116:402:1::0;11319:73:0::1;11403:28;11422:8;11403:18;:28::i;25680:380::-:0;-1:-1:-1;;;;;25816:19:0;;25808:68;;;;-1:-1:-1;;;25808:68:0;;11725:2:1;25808:68:0;;;11707:21:1;11764:2;11744:18;;;11737:30;11803:34;11783:18;;;11776:62;-1:-1:-1;;;11854:18:1;;;11847:34;11898:19;;25808:68:0;11523:400:1;25808:68:0;-1:-1:-1;;;;;25895:21:0;;25887:68;;;;-1:-1:-1;;;25887:68:0;;12130:2:1;25887:68:0;;;12112:21:1;12169:2;12149:18;;;12142:30;12208:34;12188:18;;;12181:62;-1:-1:-1;;;12259:18:1;;;12252:32;12301:19;;25887:68:0;11928:398:1;25887:68:0;-1:-1:-1;;;;;25968:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;26020:32;;1410:25:1;;;26020:32:0;;1383:18:1;26020:32:0;;;;;;;25680:380;;;:::o;97666:3538::-;97803:21;97817:6;97803:13;:21::i;:::-;:49;;;;97828:24;97842:9;97828:13;:24::i;:::-;97799:142;;;97869:39;97882:6;97890:9;97901:6;97869:12;:39::i;97799:142::-;97962:13;97968:6;97962:5;:13::i;:::-;97961:14;97953:47;;;;-1:-1:-1;;;97953:47:0;;12533:2:1;97953:47:0;;;12515:21:1;12572:2;12552:18;;;12545:30;-1:-1:-1;;;12591:18:1;;;12584:50;12651:18;;97953:47:0;12331:344:1;97953:47:0;98020:16;98026:9;98020:5;:16::i;:::-;98019:17;98011:53;;;;-1:-1:-1;;;98011:53:0;;12882:2:1;98011:53:0;;;12864:21:1;12921:2;12901:18;;;12894:30;12960:25;12940:18;;;12933:53;13003:18;;98011:53:0;12680:347:1;98011:53:0;98075:19;98128:4;98113:12;;98097:13;107614:12;;;107534:100;98097:13;:28;;;;:::i;:::-;:35;;;;:::i;:::-;98075:57;;98143:23;98198:4;98185:10;;98169:13;107614:12;;;107534:100;98169:13;:26;;;;:::i;:::-;:33;;;;:::i;:::-;98143:59;;98231:11;98221:6;:21;;:41;;;-1:-1:-1;98247:15:0;;-1:-1:-1;;;98247:15:0;;;;98221:41;:52;;;-1:-1:-1;98266:7:0;;-1:-1:-1;;;98266:7:0;;;;98221:52;:85;;;-1:-1:-1;98298:7:0;;-1:-1:-1;;;;;98277:29:0;;;98298:7;;98277:29;98221:85;98213:128;;;;-1:-1:-1;;;98213:128:0;;13234:2:1;98213:128:0;;;13216:21:1;13273:2;13253:18;;;13246:30;13312:32;13292:18;;;13285:60;13362:18;;98213:128:0;13032:354:1;98213:128:0;98354:28;98385:24;98403:4;98385:9;:24::i;:::-;98471:11;;-1:-1:-1;;;;;98499:31:0;;98420:24;98499:31;;;:20;:31;;;;;;98354:55;;-1:-1:-1;98447:35:0;;;;98495:122;;98586:19;;-1:-1:-1;;;;;98552:31:0;;;;;;:20;:31;;;;;:53;98495:122;98656:11;98632:20;:35;98629:101;;98707:11;98684:34;;98629:101;98760:19;:44;;;;-1:-1:-1;98797:7:0;;-1:-1:-1;;;98797:7:0;;;;98796:8;98760:44;:76;;;;-1:-1:-1;98831:5:0;;-1:-1:-1;;;;;98821:15:0;;;98831:5;;98821:15;;98760:76;:102;;;;-1:-1:-1;98853:9:0;;;;;;;98760:102;98742:186;;;98889:27;98895:20;98889:5;:27::i;:::-;98940:33;98965:6;98940:16;:33::i;:::-;98984:36;99009:9;98984:16;:36::i;:::-;99237:5;;99048:6;;99033:12;;;;;;;;;;-1:-1:-1;;;;;99227:15:0;;;99237:5;;99227:15;:33;;;;-1:-1:-1;99246:14:0;;-1:-1:-1;;;99246:14:0;;;;99227:33;99223:1510;;;-1:-1:-1;;;;;99321:20:0;;;;;;:9;:20;;;;;;99355:15;;99321:29;;99344:6;;99321:29;:::i;:::-;99320:50;;99312:59;;;;;;99425:3;99411:10;;99405:3;:16;;;;:::i;:::-;99395:27;;:6;:27;:::i;:::-;:33;;;;:::i;:::-;99388:40;;99477:3;99462:12;;99453:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;99443:37;;99527:3;99511:13;;99502:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;99557:14;;99495:35;;-1:-1:-1;99557:14:0;;;;;99556:15;;:68;;-1:-1:-1;99615:9:0;;99602;99593:19;;;;:8;:19;;;;;;99575:37;;:15;:37;:::i;:::-;:49;99556:68;99555:81;;;-1:-1:-1;99629:7:0;;-1:-1:-1;;;99629:7:0;;;;99555:81;99547:123;;;;-1:-1:-1;;;99547:123:0;;13593:2:1;99547:123:0;;;13575:21:1;13632:2;13612:18;;;13605:30;13671:31;13651:18;;;13644:59;13720:18;;99547:123:0;13391:353:1;99547:123:0;99685:29;99701:6;99709:4;99685:15;:29::i;:::-;99738:9;99729:19;;;;:8;:19;;;;;99751:15;99729:37;;99781:25;99790:6;99798:7;99781:8;:25::i;:::-;99223:1510;;;99841:5;;-1:-1:-1;;;;;99828:18:0;;;99841:5;;99828:18;:36;;;;-1:-1:-1;99850:14:0;;-1:-1:-1;;;99850:14:0;;;;99828:36;99824:909;;;99934:16;;;;:76;;;;-1:-1:-1;99977:13:0;;;99963:9;99954:19;;;;:8;:19;;;;;;;;99995:15;;99954:37;;;:::i;:::-;:56;;99934:76;99930:636;;;100076:3;100053:19;;100047:3;:25;;;;:::i;:::-;100037:36;;:6;:36;:::i;:::-;:42;;;;:::i;:::-;100030:49;;100144:3;100119:22;;100110:6;:31;;;;:::i;:::-;:37;;;;:::i;:::-;100098:49;;100208:3;100187:18;;100178:6;:27;;;;:::i;:::-;:33;;;;:::i;:::-;100166:45;;100274:3;100250:21;;100241:6;:30;;;;:::i;:::-;:36;;;;:::i;:::-;100230:47;;99930:636;;;100367:3;100353:10;;100347:3;:16;;;;:::i;:::-;100337:27;;:6;:27;:::i;:::-;:33;;;;:::i;:::-;100330:40;;100426:3;100410:13;;100401:6;:22;;;;:::i;:::-;:28;;;;:::i;:::-;100389:40;;100490:3;100469:18;;100460:6;:27;;;;:::i;:::-;:33;;;;:::i;:::-;100448:45;;100547:3;100532:12;;100523:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;100512:38;;99930:636;100594:33;100609:6;100617:9;100594:14;:33::i;:::-;100642:31;100656:6;100664:8;100642:13;:31::i;:::-;100688:33;100703:6;100711:9;100688:14;:33::i;:::-;100745:37;100758:6;100766:9;100777:4;100745:12;:37::i;:::-;100807:14;;-1:-1:-1;;;100807:14:0;;;;:52;;;;;100841:18;;100825:12;:34;100807:52;:81;;;;;100864:24;100878:9;100864:13;:24::i;:::-;100863:25;100807:81;100803:394;;;100930:5;;-1:-1:-1;;;;;100930:5:0;100909:9;:27;100905:281;;;100979:5;;-1:-1:-1;;;;;100961:24:0;;;100979:5;;100961:24;100957:155;;;101010:18;101018:9;101010:7;:18::i;:::-;100905:281;;100957:155;101077:15;101085:6;101077:7;:15::i;100905:281::-;101152:18;101160:9;101152:7;:18::i;:::-;97788:3416;;;;;;;;;;97666:3538;;;:::o;101212:519::-;101294:5;;-1:-1:-1;;;;;101286:13:0;;;101294:5;;101286:13;;:41;;-1:-1:-1;101319:7:0;;-1:-1:-1;;;;;101303:24:0;;;101319:7;;101303:24;101286:41;101282:54;;;101212:519;:::o;101282:54::-;-1:-1:-1;;;;;101396:26:0;;101348:23;101396:26;;;:20;:26;;;;;;101374:19;;:48;;101396:26;101374:48;:::i;:::-;101348:74;;101433:12;101484;;101466:15;101476:4;101466:9;:15::i;:::-;101448:33;;:15;:33;:::i;:::-;:48;;;;:::i;:::-;101538:19;;-1:-1:-1;;;;;101509:26:0;;;;;;:20;:26;;;;;:48;101433:63;-1:-1:-1;101572:9:0;101568:52;;101602:7;;101212:519;:::o;101568:52::-;101630:19;;-1:-1:-1;;;;;101630:13:0;;;:19;;;;;101644:4;;101630:19;;;;101644:4;101630:13;:19;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;101654:25:0;;;;;;:19;:25;;;;;:33;;101683:4;;101654:25;:33;;101683:4;;101654:33;:::i;:::-;;;;;;;;101719:4;101698:17;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;101212:519:0:o;102351:2111::-;91244:7;:14;;-1:-1:-1;;;;91244:14:0;-1:-1:-1;;;91244:14:0;;;102435:16:::1;::::0;;102449:1:::1;102435:16:::0;;;;;::::1;::::0;;-1:-1:-1;;102435:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;102435:16:0::1;102411:40;;102480:4;102462;102467:1;102462:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;102462:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;102506:7:::1;::::0;:14:::1;::::0;;-1:-1:-1;;;102506:14:0;;;;:7;;;::::1;::::0;:12:::1;::::0;:14:::1;::::0;;::::1;::::0;102462:7;;102506:14;;;;;:7;:14:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;102496:4;102501:1;102496:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;102496:24:0;;::::1;:7;::::0;;::::1;::::0;;;;;:24;102565:7:::1;::::0;102533:49:::1;::::0;102550:4:::1;::::0;102565:7:::1;102575:6:::0;102533:8:::1;:49::i;:::-;102658:7;::::0;:183:::1;::::0;-1:-1:-1;;;102658:183:0;;102624:21:::1;::::0;-1:-1:-1;;;;;102658:7:0::1;::::0;:58:::1;::::0;:183:::1;::::0;102731:6;;102595:26:::1;::::0;102768:4;;102795::::1;::::0;102815:15:::1;::::0;102658:183:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;102854:18;102899;102875:21;:42;;;;:::i;:::-;102854:63;;102930:23;103049:19;;103028:18;;103006:19;;102988:15;;:37;;;;:::i;:::-;:58;;;;:::i;:::-;:80;;;;:::i;:::-;102965:19;::::0;102956:28:::1;::::0;:6;:28:::1;:::i;:::-;:113;;;;:::i;:::-;102930:139;;103080:22;103197:19;;103176:18;;103154:19;;103136:15;;:37;;;;:::i;:::-;:58;;;;:::i;:::-;:80;;;;:::i;:::-;103114:18;::::0;103105:27:::1;::::0;:6;:27:::1;:::i;:::-;:112;;;;:::i;:::-;103080:137;;103228:23;103347:19;;103326:18;;103304:19;;103286:15;;:37;;;;:::i;:::-;:58;;;;:::i;:::-;:80;;;;:::i;:::-;103263:19;::::0;103254:28:::1;::::0;:6;:28:::1;:::i;:::-;:113;;;;:::i;:::-;103228:139:::0;-1:-1:-1;103380:23:0::1;103228:139:::0;103416:32:::1;103434:14:::0;103416:15;:32:::1;:::i;:::-;:50;;;;:::i;:::-;103406:61;::::0;:6;:61:::1;:::i;:::-;103380:87;;103480:20;103600:19;;103579:18;;103557:19;;103539:15;;:37;;;;:::i;:::-;:58;;;;:::i;:::-;:80;;;;:::i;:::-;103516:19;::::0;103503:32:::1;::::0;:10;:32:::1;:::i;:::-;:117;;;;:::i;:::-;103480:140;;103631:19;103749;;103728:18;;103706:19;;103688:15;;:37;;;;:::i;:::-;:58;;;;:::i;:::-;:80;;;;:::i;:::-;103666:18;::::0;103653:31:::1;::::0;:10;:31:::1;:::i;:::-;:116;;;;:::i;:::-;103631:138;;103780:20;103900:19;;103879:18;;103857:19;;103839:15;;:37;;;;:::i;:::-;:58;;;;:::i;:::-;:80;;;;:::i;:::-;103816:19;::::0;103803:32:::1;::::0;:10;:32:::1;:::i;:::-;:117;;;;:::i;:::-;103780:140:::0;-1:-1:-1;103931:20:0::1;103780:140:::0;103968:26:::1;103983:11:::0;103968:12;:26:::1;:::i;:::-;:41;;;;:::i;:::-;103954:56;::::0;:10;:56:::1;:::i;:::-;103931:79:::0;-1:-1:-1;104027:16:0;;104023:194:::1;;104060:16;::::0;:39:::1;::::0;-1:-1:-1;;;;;104060:16:0;;::::1;::::0;:39;::::1;;;::::0;104086:12;;104060:16:::1;:39:::0;:16;:39;104086:12;104060:16;:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;104114:16:0::1;::::0;:39:::1;::::0;-1:-1:-1;;;;;104114:16:0;;::::1;::::0;:39;::::1;;;::::0;104140:12;;104114:16:::1;:39:::0;:16;:39;104140:12;104114:16;:39;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;104168:15:0::1;::::0;:37:::1;::::0;-1:-1:-1;;;;;104168:15:0;;::::1;::::0;:37;::::1;;;::::0;104193:11;;104168:15:::1;:37:::0;:15;:37;104193:11;104168:15;:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;104023:194;104252:15;104229:19;;:38;;;;;;;:::i;:::-;;;;;;;;104300:14;104278:18;;:36;;;;;;;:::i;:::-;;;;;;;;104348:15;104325:19;;:38;;;;;;;:::i;:::-;;;;;;;;104393:15;104374;;:34;;;;;;;:::i;:::-;;;;;;;;104442:12;104419:19;;:35;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;;91281:7:0;:15;;-1:-1:-1;;;;91281:15:0;;;-1:-1:-1;;;;;;;;;;;;102351:2111:0:o;107642:199::-;107735:6;107719:12;;:22;;;;;;;:::i;:::-;;;;-1:-1:-1;107752:28:0;;-1:-1:-1;107764:7:0;107773:6;107752:11;:28::i;:::-;107796:37;;1410:25:1;;;-1:-1:-1;;;;;107796:37:0;;;107813:1;;-1:-1:-1;;;;;;;;;;;107796:37:0;1398:2:1;1383:18;107796:37:0;;;;;;;;107642:199;;:::o;95731:194::-;-1:-1:-1;;;;;95350:28:0;;95326:4;95350:28;;;:19;:28;;;;;;;;95808:30;95800:71;;;;-1:-1:-1;;;95800:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;95882:28:0;;;;;:19;:28;;;;;:35;;-1:-1:-1;;95882:35:0;95913:4;95882:35;;;95731:194::o;11599:191::-;11692:6;;;-1:-1:-1;;;;;11709:17:0;;;-1:-1:-1;;;;;;11709:17:0;;;;;;;11742:40;;11692:6;;;11709:17;11692:6;;11742:40;;11673:16;;11742:40;11662:128;11599:191;:::o;94654:497::-;94834:7;;94802:54;;94819:4;;-1:-1:-1;;;;;94834:7:0;94844:11;94802:8;:54::i;:::-;94899:7;;-1:-1:-1;;;;;94899:7:0;:23;94930:9;94963:4;94983:11;94899:7;;95095;10402:6;;-1:-1:-1;;;;;10402:6:0;;10329:87;95095:7;94899:244;;;;;;-1:-1:-1;;;;;;94899:244:0;;;-1:-1:-1;;;;;15349:15:1;;;94899:244:0;;;15331:34:1;15381:18;;;15374:34;;;;15424:18;;;15417:34;;;;15467:18;;;15460:34;15531:15;;;15510:19;;;15503:44;95117:15:0;15563:19:1;;;15556:35;15265:19;;94899:244:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;94654:497;;:::o;106729:578::-;-1:-1:-1;;;;;106864:20:0;;106856:63;;;;-1:-1:-1;;;106856:63:0;;16115:2:1;106856:63:0;;;16097:21:1;16154:2;16134:18;;;16127:30;16193:32;16173:18;;;16166:60;16243:18;;106856:63:0;15913:354:1;106856:63:0;-1:-1:-1;;;;;106938:23:0;;106930:64;;;;-1:-1:-1;;;106930:64:0;;16474:2:1;106930:64:0;;;16456:21:1;16513:2;16493:18;;;16486:30;16552;16532:18;;;16525:58;16600:18;;106930:64:0;16272:352:1;106930:64:0;107007:21;107031:17;107041:6;107031:9;:17::i;:::-;107007:41;;107084:6;107067:13;:23;;107059:67;;;;-1:-1:-1;;;107059:67:0;;16831:2:1;107059:67:0;;;16813:21:1;16870:2;16850:18;;;16843:30;16909:33;16889:18;;;16882:61;16960:18;;107059:67:0;16629:355:1;107059:67:0;107162:32;107179:6;107187;107162:16;:32::i;:::-;107216:30;107228:9;107239:6;107216:11;:30::i;:::-;107281:9;-1:-1:-1;;;;;107264:35:0;107273:6;-1:-1:-1;;;;;107264:35:0;-1:-1:-1;;;;;;;;;;;107292:6:0;107264:35;;;;1410:25:1;;1398:2;1383:18;;1264:177;107264:35:0;;;;;;;;106845:462;106729:578;;;:::o;106335:345::-;106433:19;106443:8;106433:9;:19::i;:::-;106422:7;:30;;106413:40;;;;;;-1:-1:-1;;;;;106487:19:0;;;;;;:9;:19;;;;;;:29;;106509:7;;106487:29;:::i;:::-;-1:-1:-1;;;;;106464:19:0;;;;;;:9;:19;;;;;:53;106544:12;;:22;;106559:7;;106544:22;:::i;:::-;106528:12;:39;106594:12;;:22;;106609:7;;106594:22;:::i;:::-;106578:12;:39;106633;;1410:25:1;;;106660:1:0;;-1:-1:-1;;;;;106633:39:0;;;-1:-1:-1;;;;;;;;;;;106633:39:0;1398:2:1;1383:18;106633:39:0;1264:177:1;105091:291:0;-1:-1:-1;;;;;105170:21:0;;105162:63;;;;-1:-1:-1;;;105162:63:0;;17191:2:1;105162:63:0;;;17173:21:1;17230:2;17210:18;;;17203:30;17269:31;17249:18;;;17242:59;17318:18;;105162:63:0;16989:353:1;105162:63:0;105238:44;105251:7;105268:4;105275:6;105238:12;:44::i;:::-;105312:6;105293:15;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;105334:40:0;;1410:25:1;;;105360:4:0;;-1:-1:-1;;;;;105334:40:0;;;-1:-1:-1;;;;;;;;;;;105334:40:0;1398:2:1;1383:18;105334:40:0;1264:177:1;105390:308:0;-1:-1:-1;;;;;105475:21:0;;105467:70;;;;-1:-1:-1;;;105467:70:0;;17549:2:1;105467:70:0;;;17531:21:1;17588:2;17568:18;;;17561:30;17627:34;17607:18;;;17600:62;-1:-1:-1;;;17678:18:1;;;17671:34;17722:19;;105467:70:0;17347:400:1;105467:70:0;105550:44;105563:7;105580:4;105587:6;105550:12;:44::i;:::-;105628:6;105605:19;;:29;;;;;;;:::i;105706:305::-;-1:-1:-1;;;;;105790:21:0;;105782:69;;;;-1:-1:-1;;;105782:69:0;;17954:2:1;105782:69:0;;;17936:21:1;17993:2;17973:18;;;17966:30;18032:34;18012:18;;;18005:62;-1:-1:-1;;;18083:18:1;;;18076:33;18126:19;;105782:69:0;17752:399:1;105782:69:0;105864:44;105877:7;105894:4;105901:6;105864:12;:44::i;:::-;105941:6;105919:18;;:28;;;;;;;:::i;106019:308::-;-1:-1:-1;;;;;106104:21:0;;106096:70;;;;-1:-1:-1;;;106096:70:0;;18358:2:1;106096:70:0;;;18340:21:1;18397:2;18377:18;;;18370:30;18436:34;18416:18;;;18409:62;-1:-1:-1;;;18487:18:1;;;18480:34;18531:19;;106096:70:0;18156:400:1;106096:70:0;106179:44;106192:7;106209:4;106216:6;106179:12;:44::i;:::-;106257:6;106234:19;;:29;;;;;;;:::i;96633:349::-;96696:14;96702:7;96696:5;:14::i;:::-;96695:15;96687:55;;;;-1:-1:-1;;;96687:55:0;;18763:2:1;96687:55:0;;;18745:21:1;18802:2;18782:18;;;18775:30;18841:29;18821:18;;;18814:57;18888:18;;96687:55:0;18561:351:1;96687:55:0;96780:7;;-1:-1:-1;;;;;96761:27:0;;;96780:7;;96761:27;;96753:74;;;;-1:-1:-1;;;96753:74:0;;19119:2:1;96753:74:0;;;19101:21:1;19158:2;19138:18;;;19131:30;19197:34;19177:18;;;19170:62;-1:-1:-1;;;19248:18:1;;;19241:32;19290:19;;96753:74:0;18917:398:1;96753:74:0;96857:5;;-1:-1:-1;;;;;96846:16:0;;;96857:5;;96846:16;;96838:61;;;;-1:-1:-1;;;96838:61:0;;19522:2:1;96838:61:0;;;19504:21:1;;;19541:18;;;19534:30;19600:34;19580:18;;;19573:62;19652:18;;96838:61:0;19320:356:1;96838:61:0;-1:-1:-1;;;;;96912:13:0;;;;;;:4;:13;;;;;:20;;-1:-1:-1;;96912:20:0;96928:4;96912:20;;;96943:31;96917:7;96943:22;:31::i;97385:130::-;-1:-1:-1;;;;;97480:18:0;;;;;;:9;:18;;;;;;:27;;97501:6;;97480:27;:::i;:::-;-1:-1:-1;;;;;97459:18:0;;;;;;;:9;:18;;;;;:48;;;;-1:-1:-1;97385:130:0:o;97523:135::-;-1:-1:-1;;;;;97623:18:0;;;;;;:9;:18;;;;;;:27;;97644:6;;97623:27;:::i;14:597:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:131::-;-1:-1:-1;;;;;691:31:1;;681:42;;671:70;;737:1;734;727:12;752:315;820:6;828;881:2;869:9;860:7;856:23;852:32;849:52;;;897:1;894;887:12;849:52;936:9;923:23;955:31;980:5;955:31;:::i;:::-;1005:5;1057:2;1042:18;;;;1029:32;;-1:-1:-1;;;752:315:1:o;1446:456::-;1523:6;1531;1539;1592:2;1580:9;1571:7;1567:23;1563:32;1560:52;;;1608:1;1605;1598:12;1560:52;1647:9;1634:23;1666:31;1691:5;1666:31;:::i;:::-;1716:5;-1:-1:-1;1773:2:1;1758:18;;1745:32;1786:33;1745:32;1786:33;:::i;:::-;1446:456;;1838:7;;-1:-1:-1;;;1892:2:1;1877:18;;;;1864:32;;1446:456::o;2320:247::-;2379:6;2432:2;2420:9;2411:7;2407:23;2403:32;2400:52;;;2448:1;2445;2438:12;2400:52;2487:9;2474:23;2506:31;2531:5;2506:31;:::i;:::-;2556:5;2320:247;-1:-1:-1;;;2320:247:1:o;2572:180::-;2631:6;2684:2;2672:9;2663:7;2659:23;2655:32;2652:52;;;2700:1;2697;2690:12;2652:52;-1:-1:-1;2723:23:1;;2572:180;-1:-1:-1;2572:180:1:o;2757:127::-;2818:10;2813:3;2809:20;2806:1;2799:31;2849:4;2846:1;2839:15;2873:4;2870:1;2863:15;2889:275;2960:2;2954:9;3025:2;3006:13;;-1:-1:-1;;3002:27:1;2990:40;;3060:18;3045:34;;3081:22;;;3042:62;3039:88;;;3107:18;;:::i;:::-;3143:2;3136:22;2889:275;;-1:-1:-1;2889:275:1:o;3169:183::-;3229:4;3262:18;3254:6;3251:30;3248:56;;;3284:18;;:::i;:::-;-1:-1:-1;3329:1:1;3325:14;3341:4;3321:25;;3169:183::o;3357:662::-;3411:5;3464:3;3457:4;3449:6;3445:17;3441:27;3431:55;;3482:1;3479;3472:12;3431:55;3518:6;3505:20;3544:4;3568:60;3584:43;3624:2;3584:43;:::i;:::-;3568:60;:::i;:::-;3662:15;;;3748:1;3744:10;;;;3732:23;;3728:32;;;3693:12;;;;3772:15;;;3769:35;;;3800:1;3797;3790:12;3769:35;3836:2;3828:6;3824:15;3848:142;3864:6;3859:3;3856:15;3848:142;;;3930:17;;3918:30;;3968:12;;;;3881;;3848:142;;;-1:-1:-1;4008:5:1;3357:662;-1:-1:-1;;;;;;3357:662:1:o;4024:1215::-;4142:6;4150;4203:2;4191:9;4182:7;4178:23;4174:32;4171:52;;;4219:1;4216;4209:12;4171:52;4259:9;4246:23;4288:18;4329:2;4321:6;4318:14;4315:34;;;4345:1;4342;4335:12;4315:34;4383:6;4372:9;4368:22;4358:32;;4428:7;4421:4;4417:2;4413:13;4409:27;4399:55;;4450:1;4447;4440:12;4399:55;4486:2;4473:16;4508:4;4532:60;4548:43;4588:2;4548:43;:::i;4532:60::-;4626:15;;;4708:1;4704:10;;;;4696:19;;4692:28;;;4657:12;;;;4732:19;;;4729:39;;;4764:1;4761;4754:12;4729:39;4788:11;;;;4808:217;4824:6;4819:3;4816:15;4808:217;;;4904:3;4891:17;4921:31;4946:5;4921:31;:::i;:::-;4965:18;;4841:12;;;;5003;;;;4808:217;;;5044:5;-1:-1:-1;;5087:18:1;;5074:32;;-1:-1:-1;;5118:16:1;;;5115:36;;;5147:1;5144;5137:12;5115:36;;5170:63;5225:7;5214:8;5203:9;5199:24;5170:63;:::i;:::-;5160:73;;;4024:1215;;;;;:::o;5452:273::-;5508:6;5561:2;5549:9;5540:7;5536:23;5532:32;5529:52;;;5577:1;5574;5567:12;5529:52;5616:9;5603:23;5669:5;5662:13;5655:21;5648:5;5645:32;5635:60;;5691:1;5688;5681:12;5730:388;5798:6;5806;5859:2;5847:9;5838:7;5834:23;5830:32;5827:52;;;5875:1;5872;5865:12;5827:52;5914:9;5901:23;5933:31;5958:5;5933:31;:::i;:::-;5983:5;-1:-1:-1;6040:2:1;6025:18;;6012:32;6053:33;6012:32;6053:33;:::i;:::-;6105:7;6095:17;;;5730:388;;;;;:::o;6123:592::-;6236:6;6244;6252;6260;6268;6276;6284;6337:3;6325:9;6316:7;6312:23;6308:33;6305:53;;;6354:1;6351;6344:12;6305:53;-1:-1:-1;;6377:23:1;;;6447:2;6432:18;;6419:32;;-1:-1:-1;6498:2:1;6483:18;;6470:32;;6549:2;6534:18;;6521:32;;-1:-1:-1;6600:3:1;6585:19;;6572:33;;-1:-1:-1;6652:3:1;6637:19;;6624:33;;-1:-1:-1;6704:3:1;6689:19;6676:33;;-1:-1:-1;6123:592:1;-1:-1:-1;6123:592:1:o;6720:380::-;6799:1;6795:12;;;;6842;;;6863:61;;6917:4;6909:6;6905:17;6895:27;;6863:61;6970:2;6962:6;6959:14;6939:18;6936:38;6933:161;;;7016:10;7011:3;7007:20;7004:1;6997:31;7051:4;7048:1;7041:15;7079:4;7076:1;7069:15;6933:161;;6720:380;;;:::o;7514:127::-;7575:10;7570:3;7566:20;7563:1;7556:31;7606:4;7603:1;7596:15;7630:4;7627:1;7620:15;7646:125;7686:4;7714:1;7711;7708:8;7705:34;;;7719:18;;:::i;:::-;-1:-1:-1;7756:9:1;;7646:125::o;7776:168::-;7816:7;7882:1;7878;7874:6;7870:14;7867:1;7864:21;7859:1;7852:9;7845:17;7841:45;7838:71;;;7889:18;;:::i;:::-;-1:-1:-1;7929:9:1;;7776:168::o;7949:217::-;7989:1;8015;8005:132;;8059:10;8054:3;8050:20;8047:1;8040:31;8094:4;8091:1;8084:15;8122:4;8119:1;8112:15;8005:132;-1:-1:-1;8151:9:1;;7949:217::o;8171:128::-;8211:3;8242:1;8238:6;8235:1;8232:13;8229:39;;;8248:18;;:::i;:::-;-1:-1:-1;8284:9:1;;8171:128::o;8304:356::-;8506:2;8488:21;;;8525:18;;;8518:30;8584:34;8579:2;8564:18;;8557:62;8651:2;8636:18;;8304:356::o;8665:352::-;8867:2;8849:21;;;8906:2;8886:18;;;8879:30;8945;8940:2;8925:18;;8918:58;9008:2;8993:18;;8665:352::o;9727:127::-;9788:10;9783:3;9779:20;9776:1;9769:31;9819:4;9816:1;9809:15;9843:4;9840:1;9833:15;9859:135;9898:3;-1:-1:-1;;9919:17:1;;9916:43;;;9939:18;;:::i;:::-;-1:-1:-1;9986:1:1;9975:13;;9859:135::o;13749:251::-;13819:6;13872:2;13860:9;13851:7;13847:23;13843:32;13840:52;;;13888:1;13885;13878:12;13840:52;13920:9;13914:16;13939:31;13964:5;13939:31;:::i;14005:980::-;14267:4;14315:3;14304:9;14300:19;14346:6;14335:9;14328:25;14372:2;14410:6;14405:2;14394:9;14390:18;14383:34;14453:3;14448:2;14437:9;14433:18;14426:31;14477:6;14512;14506:13;14543:6;14535;14528:22;14581:3;14570:9;14566:19;14559:26;;14620:2;14612:6;14608:15;14594:29;;14641:1;14651:195;14665:6;14662:1;14659:13;14651:195;;;14730:13;;-1:-1:-1;;;;;14726:39:1;14714:52;;14821:15;;;;14786:12;;;;14762:1;14680:9;14651:195;;;-1:-1:-1;;;;;;;14902:32:1;;;;14897:2;14882:18;;14875:60;-1:-1:-1;;;14966:3:1;14951:19;14944:35;14863:3;14005:980;-1:-1:-1;;;14005:980:1:o;15602:306::-;15690:6;15698;15706;15759:2;15747:9;15738:7;15734:23;15730:32;15727:52;;;15775:1;15772;15765:12;15727:52;15804:9;15798:16;15788:26;;15854:2;15843:9;15839:18;15833:25;15823:35;;15898:2;15887:9;15883:18;15877:25;15867:35;;15602:306;;;;;:::o
Swarm Source
ipfs://505468b67790e03ef4b7ad7cae13da93786787149a2300c0fb303e37d836f4bc
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.