Overview
ETH Balance
0.42486035 ETH
Eth Value
$1,658.30 (@ $3,903.16/ETH)Latest 25 from a total of 6,769 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 23628011 | 3 hrs ago | IN | 0 ETH | 0.00001254 | ||||
Approve | 23624356 | 15 hrs ago | IN | 0 ETH | 0.00000505 | ||||
Approve | 23623822 | 17 hrs ago | IN | 0 ETH | 0.00005303 | ||||
Approve | 23621516 | 25 hrs ago | IN | 0 ETH | 0.00000974 | ||||
Approve | 23600026 | 4 days ago | IN | 0 ETH | 0.00008518 | ||||
Approve | 23599817 | 4 days ago | IN | 0 ETH | 0.00000797 | ||||
Approve | 23598267 | 4 days ago | IN | 0 ETH | 0.00012555 | ||||
Approve | 23595145 | 4 days ago | IN | 0 ETH | 0.00000657 | ||||
Approve | 23591949 | 5 days ago | IN | 0 ETH | 0.00003567 | ||||
Transfer | 23578799 | 7 days ago | IN | 0 ETH | 0.00007751 | ||||
Approve | 23576900 | 7 days ago | IN | 0 ETH | 0.00004314 | ||||
Approve | 23576354 | 7 days ago | IN | 0 ETH | 0.0001219 | ||||
Approve | 23575814 | 7 days ago | IN | 0 ETH | 0.00008472 | ||||
Approve | 23575661 | 7 days ago | IN | 0 ETH | 0.0001866 | ||||
Approve | 23559346 | 9 days ago | IN | 0 ETH | 0.00005538 | ||||
Approve | 23557424 | 10 days ago | IN | 0 ETH | 0.00002104 | ||||
Transfer | 23555684 | 10 days ago | IN | 0 ETH | 0.00004075 | ||||
Approve | 23555634 | 10 days ago | IN | 0 ETH | 0.00002544 | ||||
Approve | 23555182 | 10 days ago | IN | 0 ETH | 0.00008691 | ||||
Approve | 23553357 | 10 days ago | IN | 0 ETH | 0.00017338 | ||||
Approve | 23549466 | 11 days ago | IN | 0 ETH | 0.00041924 | ||||
Approve | 23543127 | 12 days ago | IN | 0 ETH | 0.00006049 | ||||
Approve | 23532265 | 13 days ago | IN | 0 ETH | 0.0000132 | ||||
Approve | 23532228 | 13 days ago | IN | 0 ETH | 0.00005856 | ||||
Approve | 23532169 | 13 days ago | IN | 0 ETH | 0.00000704 |
Latest 25 internal transactions
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
Transfer | 22639792 | 138 days ago | 0.02486035 ETH | ||||
Transfer | 22591336 | 145 days ago | 0.90134697 ETH | ||||
Transfer | 22591336 | 145 days ago | 0.90134697 ETH | ||||
Transfer | 22591327 | 145 days ago | 0.32230334 ETH | ||||
Transfer | 22591327 | 145 days ago | 0.32230334 ETH | ||||
Transfer | 22591327 | 145 days ago | 0.54618305 ETH | ||||
Transfer | 22591327 | 145 days ago | 0.54618305 ETH | ||||
Transfer | 22591324 | 145 days ago | 0.12210025 ETH | ||||
Transfer | 22591324 | 145 days ago | 0.12210025 ETH | ||||
Transfer | 22591321 | 145 days ago | 0.04420793 ETH | ||||
Transfer | 22591321 | 145 days ago | 0.04420793 ETH | ||||
Transfer | 22591318 | 145 days ago | 0.00746515 ETH | ||||
Transfer | 22591318 | 145 days ago | 0.00746515 ETH | ||||
Transfer | 22591315 | 145 days ago | 0.20831228 ETH | ||||
Transfer | 22591315 | 145 days ago | 0.20831228 ETH | ||||
Transfer | 22591312 | 145 days ago | 0.37372792 ETH | ||||
Transfer | 22591312 | 145 days ago | 0.37372792 ETH | ||||
Transfer | 22591312 | 145 days ago | 0.42383922 ETH | ||||
Transfer | 22591312 | 145 days ago | 0.42383922 ETH | ||||
Transfer | 22591312 | 145 days ago | 0.48477334 ETH | ||||
Transfer | 22591312 | 145 days ago | 0.48477334 ETH | ||||
Transfer | 22591311 | 145 days ago | 0.24638122 ETH | ||||
Transfer | 22591311 | 145 days ago | 0.24638122 ETH | ||||
Transfer | 22591311 | 145 days ago | 0.76312206 ETH | ||||
Transfer | 22591311 | 145 days ago | 0.76312206 ETH |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
DaWae
Compiler Version
v0.8.19+commit.7dd6d404
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2025-05-29 */ /* * SPDX-License-Identifier: MIT *🟥 https://t.me/dawae_eth *🟥 https://ogdawae.com/ *🟥 https://x.com/dawae_eth */ pragma solidity 0.8.19; library SafeMath { /** * @dev Returns the addition of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryAdd( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } /** * @dev Returns the substraction of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function trySub( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } /** * @dev Returns the multiplication of two unsigned integers, with an overflow flag. * * _Available since v3.4._ */ function tryMul( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } /** * @dev Returns the division of two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryDiv( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } /** * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. * * _Available since v3.4._ */ function tryMod( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } /** * @dev Returns the integer division of two unsigned integers, reverting on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {trySub}. * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } /** * @dev Returns the integer division of two unsigned integers, reverting with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * reverting with custom message when dividing by zero. * * CAUTION: This function is deprecated because it requires allocating memory for the error * message unnecessarily. For custom revert reasons use {tryMod}. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } 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 ); } 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); } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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 upd 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 upd 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 upd 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 {} } 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); } } interface IDexFactory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); 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(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IDexRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract DaWae is Context, ERC20, Ownable { using SafeMath for uint256; mapping(address => bool) private _isExcludedFromFee; address payable private _taxWallet; uint256 firstBlock; uint64 private lastLiquifyTime; uint256 private sellCount = 0; uint256 private buyFee = 20; uint256 private sellFee = 20; uint256 private _preventSwapBefore = 1; uint256 private _buyCount = 0; uint256 private _txAmountLimit; uint256 private _walletAmountLimit; uint256 private _swapbackMin; uint256 private _swapbackMax; IDexRouter private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; event MaxTxAmountUpdated(uint _txAmountLimit); event MaxWalletAmountUpdated(uint _walletAmountLimit); event FeesUpdated(uint buyFee, uint sellFee); event SwapbackUpdated(uint _swapbackMin, uint _swapbackMax); event FeeReceiverUpdated(address _taxWallet); event ExcludedFromFee(address account, bool status); event LimitsRemoved(); event TradingOpened(); modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor() ERC20("DaWae", "DAWAE") { uint256 _totalSupply = 1_000_000_000 * 10 ** 18; _txAmountLimit = (_totalSupply * 20) / 1000; _walletAmountLimit = (_totalSupply * 20) / 1000; _swapbackMin = (_totalSupply * 5) / 10000; _swapbackMax = (_totalSupply * 200) / 10000; _taxWallet = payable(0xDB877F72d669f8a7F39e1BBc7490C50Cce400CbA); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; _mint(_msgSender(), _totalSupply); } receive() external payable {} function openTrading() external onlyOwner { require(!tradingOpen, "trading is already open"); uniswapV2Router = IDexRouter( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); _approve(address(this), address(uniswapV2Router), totalSupply()); uniswapV2Pair = IDexFactory(uniswapV2Router.factory()).createPair( address(this), uniswapV2Router.WETH() ); uniswapV2Router.addLiquidityETH{value: address(this).balance}( address(this), balanceOf(address(this)), 0, 0, owner(), block.timestamp ); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; firstBlock = block.number; lastLiquifyTime = uint64(block.number); _isExcludedFromFee[address(this)] = true; buyFee = 0; emit TradingOpened(); } function setFeeAddress(address payable newRcv) external onlyOwner { _taxWallet = newRcv; emit FeeReceiverUpdated(newRcv); } function maxTxSet(uint256 newTxMax) external onlyOwner { require(newTxMax >= 1, "Max tx cant be lower than 0.1%"); _txAmountLimit = (totalSupply() * newTxMax) / 1000; emit MaxTxAmountUpdated(_txAmountLimit); } function maxWalletSet(uint256 newWalletMax) external onlyOwner { require(newWalletMax >= 1, "Max wallet cant be lower than 0.1%"); _walletAmountLimit = (totalSupply() * newWalletMax) / 1000; emit MaxWalletAmountUpdated(_walletAmountLimit); } function setSBValues( uint256 taxSwapThreshold, uint256 maxTaxSwap ) external onlyOwner { _swapbackMin = (totalSupply() * taxSwapThreshold) / 10000; _swapbackMax = (totalSupply() * maxTaxSwap) / 10000; emit SwapbackUpdated(taxSwapThreshold, maxTaxSwap); } function removeLimitsNow() external onlyOwner { _txAmountLimit = totalSupply(); _walletAmountLimit = totalSupply(); emit MaxTxAmountUpdated(totalSupply()); emit MaxWalletAmountUpdated(totalSupply()); } function taxesSet(uint256 feeBuy, uint256 feeSell) external onlyOwner { require(feeBuy <= 99, "Invalid buy tax value"); require(feeSell <= 99, "Invalid sell tax value"); buyFee = feeBuy; sellFee = feeSell; emit FeesUpdated(feeBuy, feeSell); } function removeStuckBalance() external { require(msg.sender == _taxWallet, "Only fee receiver can trigger"); _taxWallet.transfer(address(this).balance); } function setFeeExempt(address target, bool exempt) external onlyOwner { _isExcludedFromFee[target] = exempt; emit ExcludedFromFee(target, exempt); } function readView() external view returns ( uint256 _buyFee, uint256 _sellFee, uint256 maxTxAmount, uint256 maxWalletSize, uint256 taxSwapThreshold, uint256 maxTaxSwap ) { return ( buyFee, sellFee, _txAmountLimit, _walletAmountLimit, _swapbackMin, _swapbackMax ); } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount = 0; if (from != owner() && to != owner() && !inSwap) { taxAmount = amount.mul(buyFee).div(100); if ( from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] ) { require( amount <= _txAmountLimit, "Exceeds the _txAmountLimit." ); require( balanceOf(to) + amount <= _walletAmountLimit, "Exceeds the maxWalletSize." ); if (firstBlock + 3 > block.number) { require(!isContract(to)); } _buyCount++; } if (to != uniswapV2Pair && !_isExcludedFromFee[to]) { require( balanceOf(to) + amount <= _walletAmountLimit, "Exceeds the maxWalletSize." ); } if (to == uniswapV2Pair && from != address(this)) { taxAmount = amount.mul(sellFee).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if ( !inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _swapbackMin && _buyCount > _preventSwapBefore ) { if (block.number > lastLiquifyTime) { sellCount = 0; } require(sellCount < 3, "Only 3 sells per block!"); swapTokensForEth( min(amount, min(contractTokenBalance, _swapbackMax)) ); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(); } sellCount++; } } if (taxAmount > 0) { super._transfer(from, address(this), taxAmount); } super._transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256) { return (a > b) ? b : a; } function isContract(address account) private view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function manualSwap() external { require( msg.sender == _taxWallet || msg.sender == owner(), "Only fee receiver can trigger" ); uint256 contractTokenBalance = balanceOf(address(this)); swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(); } } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { lastLiquifyTime = uint64(block.number); address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee() private { bool success; (success, ) = address(_taxWallet).call{value: address(this).balance}( "" ); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"ExcludedFromFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_taxWallet","type":"address"}],"name":"FeeReceiverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"buyFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sellFee","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"LimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_txAmountLimit","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_walletAmountLimit","type":"uint256"}],"name":"MaxWalletAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_swapbackMin","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_swapbackMax","type":"uint256"}],"name":"SwapbackUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newTxMax","type":"uint256"}],"name":"maxTxSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newWalletMax","type":"uint256"}],"name":"maxWalletSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"readView","outputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"},{"internalType":"uint256","name":"maxTxAmount","type":"uint256"},{"internalType":"uint256","name":"maxWalletSize","type":"uint256"},{"internalType":"uint256","name":"taxSwapThreshold","type":"uint256"},{"internalType":"uint256","name":"maxTaxSwap","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimitsNow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newRcv","type":"address"}],"name":"setFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxSwapThreshold","type":"uint256"},{"internalType":"uint256","name":"maxTaxSwap","type":"uint256"}],"name":"setSBValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"feeBuy","type":"uint256"},{"internalType":"uint256","name":"feeSell","type":"uint256"}],"name":"taxesSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526000600a556014600b556014600c556001600d556000600e556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055503480156200006057600080fd5b506040518060400160405280600581526020017f44615761650000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f44415741450000000000000000000000000000000000000000000000000000008152508160039081620000de91906200085e565b508060049081620000f091906200085e565b50505062000113620001076200036a60201b60201c565b6200037260201b60201c565b60006b033b2e3c9fd0803ce800000090506103e860148262000136919062000974565b620001429190620009ee565b600f819055506103e86014826200015a919062000974565b620001669190620009ee565b6010819055506127106005826200017e919062000974565b6200018a9190620009ee565b60118190555061271060c882620001a2919062000974565b620001ae9190620009ee565b60128190555073db877f72d669f8a7f39e1bbc7490c50cce400cba600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600660006200021f6200043860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000363620003566200036a60201b60201c565b826200046260201b60201c565b5062000b12565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620004d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004cb9062000a87565b60405180910390fd5b620004e860008383620005da60201b60201c565b8060026000828254620004fc919062000aa9565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000553919062000aa9565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620005ba919062000af5565b60405180910390a3620005d660008383620005df60201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200066657607f821691505b6020821081036200067c576200067b6200061e565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620006a7565b620006f28683620006a7565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200073f6200073962000733846200070a565b62000714565b6200070a565b9050919050565b6000819050919050565b6200075b836200071e565b620007736200076a8262000746565b848454620006b4565b825550505050565b600090565b6200078a6200077b565b6200079781848462000750565b505050565b5b81811015620007bf57620007b360008262000780565b6001810190506200079d565b5050565b601f8211156200080e57620007d88162000682565b620007e38462000697565b81016020851015620007f3578190505b6200080b620008028562000697565b8301826200079c565b50505b505050565b600082821c905092915050565b6000620008336000198460080262000813565b1980831691505092915050565b60006200084e838362000820565b9150826002028217905092915050565b6200086982620005e4565b67ffffffffffffffff811115620008855762000884620005ef565b5b6200089182546200064d565b6200089e828285620007c3565b600060209050601f831160018114620008d65760008415620008c1578287015190505b620008cd858262000840565b8655506200093d565b601f198416620008e68662000682565b60005b828110156200091057848901518255600182019150602085019450602081019050620008e9565b868310156200093057848901516200092c601f89168262000820565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000981826200070a565b91506200098e836200070a565b92508282026200099e816200070a565b91508282048414831517620009b857620009b762000945565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009fb826200070a565b915062000a08836200070a565b92508262000a1b5762000a1a620009bf565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000a6f601f8362000a26565b915062000a7c8262000a37565b602082019050919050565b6000602082019050818103600083015262000aa28162000a60565b9050919050565b600062000ab6826200070a565b915062000ac3836200070a565b925082820190508082111562000ade5762000add62000945565b5b92915050565b62000aef816200070a565b82525050565b600060208201905062000b0c600083018462000ae4565b92915050565b6140758062000b226000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063a18ee1dd1161008a578063c636cb4811610064578063c636cb4814610514578063c9567bf91461053d578063dd62ed3e14610554578063f2fde38b1461059157610171565b8063a18ee1dd14610471578063a457c2d71461049a578063a9059cbb146104d757610171565b8063715018a61461039b5780637173163e146103b25780638705fcd4146103c95780638da5cb5b146103f25780638ebfc7961461041d57806395d89b411461044657610171565b8063313ce56711610123578063313ce5671461028657806335d210a0146102b157806339509351146102e15780634c45ece11461031e57806351bc3c851461034757806370a082311461035e57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de5780631ee406da1461020957806323b872dd1461023257806330409cf71461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105ba565b6040516101989190612c5b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612d16565b61064c565b6040516101d59190612d71565b60405180910390f35b3480156101ea57600080fd5b506101f361066a565b6040516102009190612d9b565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612db6565b610674565b005b34801561023e57600080fd5b5061025960048036038101906102549190612de3565b610796565b6040516102669190612d71565b60405180910390f35b34801561027b57600080fd5b5061028461088e565b005b34801561029257600080fd5b5061029b610989565b6040516102a89190612e52565b60405180910390f35b3480156102bd57600080fd5b506102c6610992565b6040516102d896959493929190612e6d565b60405180910390f35b3480156102ed57600080fd5b5061030860048036038101906103039190612d16565b6109c1565b6040516103159190612d71565b60405180910390f35b34801561032a57600080fd5b5061034560048036038101906103409190612ece565b610a6d565b005b34801561035357600080fd5b5061035c610bbc565b005b34801561036a57600080fd5b5061038560048036038101906103809190612f0e565b610cba565b6040516103929190612d9b565b60405180910390f35b3480156103a757600080fd5b506103b0610d02565b005b3480156103be57600080fd5b506103c7610d8a565b005b3480156103d557600080fd5b506103f060048036038101906103eb9190612f79565b610ea0565b005b3480156103fe57600080fd5b50610407610f97565b6040516104149190612fb5565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f9190612ffc565b610fc1565b005b34801561045257600080fd5b5061045b6110d1565b6040516104689190612c5b565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190612ece565b611163565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190612d16565b611268565b6040516104ce9190612d71565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190612d16565b611353565b60405161050b9190612d71565b60405180910390f35b34801561052057600080fd5b5061053b60048036038101906105369190612db6565b611371565b005b34801561054957600080fd5b50610552611493565b005b34801561056057600080fd5b5061057b6004803603810190610576919061303c565b611a56565b6040516105889190612d9b565b60405180910390f35b34801561059d57600080fd5b506105b860048036038101906105b39190612f0e565b611add565b005b6060600380546105c9906130ab565b80601f01602080910402602001604051908101604052809291908181526020018280546105f5906130ab565b80156106425780601f1061061757610100808354040283529160200191610642565b820191906000526020600020905b81548152906001019060200180831161062557829003601f168201915b5050505050905090565b6000610660610659611bd4565b8484611bdc565b6001905092915050565b6000600254905090565b61067c611bd4565b73ffffffffffffffffffffffffffffffffffffffff1661069a610f97565b73ffffffffffffffffffffffffffffffffffffffff16146106f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e790613128565b60405180910390fd5b6001811015610734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072b90613194565b60405180910390fd5b6103e88161074061066a565b61074a91906131e3565b6107549190613254565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600f5460405161078b9190612d9b565b60405180910390a150565b60006107a3848484611da5565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107ee611bd4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561086e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610865906132f7565b60405180910390fd5b6108828561087a611bd4565b858403611bdc565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091590613363565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610986573d6000803e3d6000fd5b50565b60006012905090565b600080600080600080600b54600c54600f54601054601154601254955095509550955095509550909192939495565b6000610a636109ce611bd4565b8484600160006109dc611bd4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a5e9190613383565b611bdc565b6001905092915050565b610a75611bd4565b73ffffffffffffffffffffffffffffffffffffffff16610a93610f97565b73ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae090613128565b60405180910390fd5b6063821115610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2490613403565b60405180910390fd5b6063811115610b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b689061346f565b60405180910390fd5b81600b8190555080600c819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051610bb092919061348f565b60405180910390a15050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c4a5750610c1b610f97565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8090613363565b60405180910390fd5b6000610c9430610cba565b9050610c9f816124d9565b60004790506000811115610cb657610cb561277b565b5b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d0a611bd4565b73ffffffffffffffffffffffffffffffffffffffff16610d28610f97565b73ffffffffffffffffffffffffffffffffffffffff1614610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7590613128565b60405180910390fd5b610d88600061280e565b565b610d92611bd4565b73ffffffffffffffffffffffffffffffffffffffff16610db0610f97565b73ffffffffffffffffffffffffffffffffffffffff1614610e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd90613128565b60405180910390fd5b610e0e61066a565b600f81905550610e1c61066a565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610e4b61066a565b604051610e589190612d9b565b60405180910390a17f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e001610e8961066a565b604051610e969190612d9b565b60405180910390a1565b610ea8611bd4565b73ffffffffffffffffffffffffffffffffffffffff16610ec6610f97565b73ffffffffffffffffffffffffffffffffffffffff1614610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1390613128565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f27aae5db36d94179909d019ae0b1ac7c16d96d953148f63c0f6a0a9c8ead79ee81604051610f8c9190613517565b60405180910390a150565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fc9611bd4565b73ffffffffffffffffffffffffffffffffffffffff16610fe7610f97565b73ffffffffffffffffffffffffffffffffffffffff161461103d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103490613128565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f2d43abd87b27cee7b0aa8c6f7e0b4a3247b683262a83cbc2318b0df398a49aa982826040516110c5929190613532565b60405180910390a15050565b6060600480546110e0906130ab565b80601f016020809104026020016040519081016040528092919081815260200182805461110c906130ab565b80156111595780601f1061112e57610100808354040283529160200191611159565b820191906000526020600020905b81548152906001019060200180831161113c57829003601f168201915b5050505050905090565b61116b611bd4565b73ffffffffffffffffffffffffffffffffffffffff16611189610f97565b73ffffffffffffffffffffffffffffffffffffffff16146111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d690613128565b60405180910390fd5b612710826111eb61066a565b6111f591906131e3565b6111ff9190613254565b6011819055506127108161121161066a565b61121b91906131e3565b6112259190613254565b6012819055507f2b3f4c022d9943b151090e389857495bb9d8493714259cc19a540f5a11475fb1828260405161125c92919061348f565b60405180910390a15050565b60008060016000611277611bd4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b906135cd565b60405180910390fd5b61134861133f611bd4565b85858403611bdc565b600191505092915050565b6000611367611360611bd4565b8484611da5565b6001905092915050565b611379611bd4565b73ffffffffffffffffffffffffffffffffffffffff16611397610f97565b73ffffffffffffffffffffffffffffffffffffffff16146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490613128565b60405180910390fd5b6001811015611431576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114289061365f565b60405180910390fd5b6103e88161143d61066a565b61144791906131e3565b6114519190613254565b6010819055507f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e0016010546040516114889190612d9b565b60405180910390a150565b61149b611bd4565b73ffffffffffffffffffffffffffffffffffffffff166114b9610f97565b73ffffffffffffffffffffffffffffffffffffffff161461150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690613128565b60405180910390fd5b60148054906101000a900460ff161561155d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611554906136cb565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115e630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115e161066a565b611bdc565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116779190613700565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117249190613700565b6040518363ffffffff1660e01b815260040161174192919061372d565b6020604051808303816000875af1158015611760573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117849190613700565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061180d30610cba565b600080611818610f97565b426040518863ffffffff1660e01b815260040161183a96959493929190613791565b60606040518083038185885af1158015611858573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061187d9190613807565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161191f92919061385a565b6020604051808303816000875af115801561193e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119629190613898565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff0219169083151502179055504360088190555043600960006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600b819055507fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f60405160405180910390a1565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ae5611bd4565b73ffffffffffffffffffffffffffffffffffffffff16611b03610f97565b73ffffffffffffffffffffffffffffffffffffffff1614611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5090613128565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf90613937565b60405180910390fd5b611bd18161280e565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c42906139c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb190613a5b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d989190612d9b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0b90613aed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7a90613b7f565b60405180910390fd5b60008111611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd90613c11565b60405180910390fd5b6000611ed0610f97565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f3e5750611f0e610f97565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f575750601460159054906101000a900460ff16155b156124a157611f846064611f76600b54856128d490919063ffffffff16565b6128ea90919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120315750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120875750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561216c57600f548211156120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c890613c7d565b60405180910390fd5b601054826120de85610cba565b6120e89190613383565b1115612129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212090613ce9565b60405180910390fd5b4360036008546121399190613383565b11156121535761214883612900565b1561215257600080fd5b5b600e600081548092919061216690613d09565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122145750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612272576010548261222685610cba565b6122309190613383565b1115612271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226890613ce9565b60405180910390fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122fb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561232b57612328606461231a600c54856128d490919063ffffffff16565b6128ea90919063ffffffff16565b90505b600061233630610cba565b9050601460159054906101000a900460ff161580156123a25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156123ba5750601460169054906101000a900460ff165b80156123c7575060115481115b80156123d65750600d54600e54115b1561249f57600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff1643111561240c576000600a819055505b6003600a5410612451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244890613d9d565b60405180910390fd5b61246e6124698461246484601254612913565b612913565b6124d9565b600047905060008111156124855761248461277b565b5b600a600081548092919061249890613d09565b9190505550505b505b60008111156124b6576124b584308361292c565b5b6124d384846124ce8486612bab90919063ffffffff16565b61292c565b50505050565b6001601460156101000a81548160ff02191690831515021790555043600960006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000600267ffffffffffffffff81111561253a57612539613dbd565b5b6040519080825280602002602001820160405280156125685781602001602082028036833780820191505090505b50905030816000815181106125805761257f613dec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264b9190613700565b8160018151811061265f5761265e613dec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126c630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bdc565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161272a959493929190613ed9565b600060405180830381600087803b15801561274457600080fd5b505af1158015612758573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516127c390613f64565b60006040518083038185875af1925050503d8060008114612800576040519150601f19603f3d011682016040523d82523d6000602084013e612805565b606091505b50508091505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836128e291906131e3565b905092915050565b600081836128f89190613254565b905092915050565b600080823b905060008111915050919050565b60008183116129225782612924565b815b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361299b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299290613aed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0190613b7f565b60405180910390fd5b612a15838383612bc1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9290613feb565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b2e9190613383565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b929190612d9b565b60405180910390a3612ba5848484612bc6565b50505050565b60008183612bb9919061400b565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c05578082015181840152602081019050612bea565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c2d82612bcb565b612c378185612bd6565b9350612c47818560208601612be7565b612c5081612c11565b840191505092915050565b60006020820190508181036000830152612c758184612c22565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cad82612c82565b9050919050565b612cbd81612ca2565b8114612cc857600080fd5b50565b600081359050612cda81612cb4565b92915050565b6000819050919050565b612cf381612ce0565b8114612cfe57600080fd5b50565b600081359050612d1081612cea565b92915050565b60008060408385031215612d2d57612d2c612c7d565b5b6000612d3b85828601612ccb565b9250506020612d4c85828601612d01565b9150509250929050565b60008115159050919050565b612d6b81612d56565b82525050565b6000602082019050612d866000830184612d62565b92915050565b612d9581612ce0565b82525050565b6000602082019050612db06000830184612d8c565b92915050565b600060208284031215612dcc57612dcb612c7d565b5b6000612dda84828501612d01565b91505092915050565b600080600060608486031215612dfc57612dfb612c7d565b5b6000612e0a86828701612ccb565b9350506020612e1b86828701612ccb565b9250506040612e2c86828701612d01565b9150509250925092565b600060ff82169050919050565b612e4c81612e36565b82525050565b6000602082019050612e676000830184612e43565b92915050565b600060c082019050612e826000830189612d8c565b612e8f6020830188612d8c565b612e9c6040830187612d8c565b612ea96060830186612d8c565b612eb66080830185612d8c565b612ec360a0830184612d8c565b979650505050505050565b60008060408385031215612ee557612ee4612c7d565b5b6000612ef385828601612d01565b9250506020612f0485828601612d01565b9150509250929050565b600060208284031215612f2457612f23612c7d565b5b6000612f3284828501612ccb565b91505092915050565b6000612f4682612c82565b9050919050565b612f5681612f3b565b8114612f6157600080fd5b50565b600081359050612f7381612f4d565b92915050565b600060208284031215612f8f57612f8e612c7d565b5b6000612f9d84828501612f64565b91505092915050565b612faf81612ca2565b82525050565b6000602082019050612fca6000830184612fa6565b92915050565b612fd981612d56565b8114612fe457600080fd5b50565b600081359050612ff681612fd0565b92915050565b6000806040838503121561301357613012612c7d565b5b600061302185828601612ccb565b925050602061303285828601612fe7565b9150509250929050565b6000806040838503121561305357613052612c7d565b5b600061306185828601612ccb565b925050602061307285828601612ccb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806130c357607f821691505b6020821081036130d6576130d561307c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613112602083612bd6565b915061311d826130dc565b602082019050919050565b6000602082019050818103600083015261314181613105565b9050919050565b7f4d61782074782063616e74206265206c6f776572207468616e20302e31250000600082015250565b600061317e601e83612bd6565b915061318982613148565b602082019050919050565b600060208201905081810360008301526131ad81613171565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131ee82612ce0565b91506131f983612ce0565b925082820261320781612ce0565b9150828204841483151761321e5761321d6131b4565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061325f82612ce0565b915061326a83612ce0565b92508261327a57613279613225565b5b828204905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006132e1602883612bd6565b91506132ec82613285565b604082019050919050565b60006020820190508181036000830152613310816132d4565b9050919050565b7f4f6e6c79206665652072656365697665722063616e2074726967676572000000600082015250565b600061334d601d83612bd6565b915061335882613317565b602082019050919050565b6000602082019050818103600083015261337c81613340565b9050919050565b600061338e82612ce0565b915061339983612ce0565b92508282019050808211156133b1576133b06131b4565b5b92915050565b7f496e76616c696420627579207461782076616c75650000000000000000000000600082015250565b60006133ed601583612bd6565b91506133f8826133b7565b602082019050919050565b6000602082019050818103600083015261341c816133e0565b9050919050565b7f496e76616c69642073656c6c207461782076616c756500000000000000000000600082015250565b6000613459601683612bd6565b915061346482613423565b602082019050919050565b600060208201905081810360008301526134888161344c565b9050919050565b60006040820190506134a46000830185612d8c565b6134b16020830184612d8c565b9392505050565b6000819050919050565b60006134dd6134d86134d384612c82565b6134b8565b612c82565b9050919050565b60006134ef826134c2565b9050919050565b6000613501826134e4565b9050919050565b613511816134f6565b82525050565b600060208201905061352c6000830184613508565b92915050565b60006040820190506135476000830185612fa6565b6135546020830184612d62565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006135b7602583612bd6565b91506135c28261355b565b604082019050919050565b600060208201905081810360008301526135e6816135aa565b9050919050565b7f4d61782077616c6c65742063616e74206265206c6f776572207468616e20302e60008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b6000613649602283612bd6565b9150613654826135ed565b604082019050919050565b600060208201905081810360008301526136788161363c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006136b5601783612bd6565b91506136c08261367f565b602082019050919050565b600060208201905081810360008301526136e4816136a8565b9050919050565b6000815190506136fa81612cb4565b92915050565b60006020828403121561371657613715612c7d565b5b6000613724848285016136eb565b91505092915050565b60006040820190506137426000830185612fa6565b61374f6020830184612fa6565b9392505050565b6000819050919050565b600061377b61377661377184613756565b6134b8565b612ce0565b9050919050565b61378b81613760565b82525050565b600060c0820190506137a66000830189612fa6565b6137b36020830188612d8c565b6137c06040830187613782565b6137cd6060830186613782565b6137da6080830185612fa6565b6137e760a0830184612d8c565b979650505050505050565b60008151905061380181612cea565b92915050565b6000806000606084860312156138205761381f612c7d565b5b600061382e868287016137f2565b935050602061383f868287016137f2565b9250506040613850868287016137f2565b9150509250925092565b600060408201905061386f6000830185612fa6565b61387c6020830184612d8c565b9392505050565b60008151905061389281612fd0565b92915050565b6000602082840312156138ae576138ad612c7d565b5b60006138bc84828501613883565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613921602683612bd6565b915061392c826138c5565b604082019050919050565b6000602082019050818103600083015261395081613914565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139b3602483612bd6565b91506139be82613957565b604082019050919050565b600060208201905081810360008301526139e2816139a6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a45602283612bd6565b9150613a50826139e9565b604082019050919050565b60006020820190508181036000830152613a7481613a38565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ad7602583612bd6565b9150613ae282613a7b565b604082019050919050565b60006020820190508181036000830152613b0681613aca565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b69602383612bd6565b9150613b7482613b0d565b604082019050919050565b60006020820190508181036000830152613b9881613b5c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613bfb602983612bd6565b9150613c0682613b9f565b604082019050919050565b60006020820190508181036000830152613c2a81613bee565b9050919050565b7f4578636565647320746865205f7478416d6f756e744c696d69742e0000000000600082015250565b6000613c67601b83612bd6565b9150613c7282613c31565b602082019050919050565b60006020820190508181036000830152613c9681613c5a565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613cd3601a83612bd6565b9150613cde82613c9d565b602082019050919050565b60006020820190508181036000830152613d0281613cc6565b9050919050565b6000613d1482612ce0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d4657613d456131b4565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000600082015250565b6000613d87601783612bd6565b9150613d9282613d51565b602082019050919050565b60006020820190508181036000830152613db681613d7a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e5081612ca2565b82525050565b6000613e628383613e47565b60208301905092915050565b6000602082019050919050565b6000613e8682613e1b565b613e908185613e26565b9350613e9b83613e37565b8060005b83811015613ecc578151613eb38882613e56565b9750613ebe83613e6e565b925050600181019050613e9f565b5085935050505092915050565b600060a082019050613eee6000830188612d8c565b613efb6020830187613782565b8181036040830152613f0d8186613e7b565b9050613f1c6060830185612fa6565b613f296080830184612d8c565b9695505050505050565b600081905092915050565b50565b6000613f4e600083613f33565b9150613f5982613f3e565b600082019050919050565b6000613f6f82613f41565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613fd5602683612bd6565b9150613fe082613f79565b604082019050919050565b6000602082019050818103600083015261400481613fc8565b9050919050565b600061401682612ce0565b915061402183612ce0565b9250828203905081811115614039576140386131b4565b5b9291505056fea2646970667358221220c981cead949fd0e26a5841afdc90b3a6aacb3f0c6d50025d709eed1f9f735a1d64736f6c63430008130033
Deployed Bytecode
0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063a18ee1dd1161008a578063c636cb4811610064578063c636cb4814610514578063c9567bf91461053d578063dd62ed3e14610554578063f2fde38b1461059157610171565b8063a18ee1dd14610471578063a457c2d71461049a578063a9059cbb146104d757610171565b8063715018a61461039b5780637173163e146103b25780638705fcd4146103c95780638da5cb5b146103f25780638ebfc7961461041d57806395d89b411461044657610171565b8063313ce56711610123578063313ce5671461028657806335d210a0146102b157806339509351146102e15780634c45ece11461031e57806351bc3c851461034757806370a082311461035e57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de5780631ee406da1461020957806323b872dd1461023257806330409cf71461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105ba565b6040516101989190612c5b565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612d16565b61064c565b6040516101d59190612d71565b60405180910390f35b3480156101ea57600080fd5b506101f361066a565b6040516102009190612d9b565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612db6565b610674565b005b34801561023e57600080fd5b5061025960048036038101906102549190612de3565b610796565b6040516102669190612d71565b60405180910390f35b34801561027b57600080fd5b5061028461088e565b005b34801561029257600080fd5b5061029b610989565b6040516102a89190612e52565b60405180910390f35b3480156102bd57600080fd5b506102c6610992565b6040516102d896959493929190612e6d565b60405180910390f35b3480156102ed57600080fd5b5061030860048036038101906103039190612d16565b6109c1565b6040516103159190612d71565b60405180910390f35b34801561032a57600080fd5b5061034560048036038101906103409190612ece565b610a6d565b005b34801561035357600080fd5b5061035c610bbc565b005b34801561036a57600080fd5b5061038560048036038101906103809190612f0e565b610cba565b6040516103929190612d9b565b60405180910390f35b3480156103a757600080fd5b506103b0610d02565b005b3480156103be57600080fd5b506103c7610d8a565b005b3480156103d557600080fd5b506103f060048036038101906103eb9190612f79565b610ea0565b005b3480156103fe57600080fd5b50610407610f97565b6040516104149190612fb5565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f9190612ffc565b610fc1565b005b34801561045257600080fd5b5061045b6110d1565b6040516104689190612c5b565b60405180910390f35b34801561047d57600080fd5b5061049860048036038101906104939190612ece565b611163565b005b3480156104a657600080fd5b506104c160048036038101906104bc9190612d16565b611268565b6040516104ce9190612d71565b60405180910390f35b3480156104e357600080fd5b506104fe60048036038101906104f99190612d16565b611353565b60405161050b9190612d71565b60405180910390f35b34801561052057600080fd5b5061053b60048036038101906105369190612db6565b611371565b005b34801561054957600080fd5b50610552611493565b005b34801561056057600080fd5b5061057b6004803603810190610576919061303c565b611a56565b6040516105889190612d9b565b60405180910390f35b34801561059d57600080fd5b506105b860048036038101906105b39190612f0e565b611add565b005b6060600380546105c9906130ab565b80601f01602080910402602001604051908101604052809291908181526020018280546105f5906130ab565b80156106425780601f1061061757610100808354040283529160200191610642565b820191906000526020600020905b81548152906001019060200180831161062557829003601f168201915b5050505050905090565b6000610660610659611bd4565b8484611bdc565b6001905092915050565b6000600254905090565b61067c611bd4565b73ffffffffffffffffffffffffffffffffffffffff1661069a610f97565b73ffffffffffffffffffffffffffffffffffffffff16146106f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e790613128565b60405180910390fd5b6001811015610734576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072b90613194565b60405180910390fd5b6103e88161074061066a565b61074a91906131e3565b6107549190613254565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600f5460405161078b9190612d9b565b60405180910390a150565b60006107a3848484611da5565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107ee611bd4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561086e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610865906132f7565b60405180910390fd5b6108828561087a611bd4565b858403611bdc565b60019150509392505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461091e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091590613363565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610986573d6000803e3d6000fd5b50565b60006012905090565b600080600080600080600b54600c54600f54601054601154601254955095509550955095509550909192939495565b6000610a636109ce611bd4565b8484600160006109dc611bd4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a5e9190613383565b611bdc565b6001905092915050565b610a75611bd4565b73ffffffffffffffffffffffffffffffffffffffff16610a93610f97565b73ffffffffffffffffffffffffffffffffffffffff1614610ae9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae090613128565b60405180910390fd5b6063821115610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2490613403565b60405180910390fd5b6063811115610b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b689061346f565b60405180910390fd5b81600b8190555080600c819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a18282604051610bb092919061348f565b60405180910390a15050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610c4a5750610c1b610f97565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8090613363565b60405180910390fd5b6000610c9430610cba565b9050610c9f816124d9565b60004790506000811115610cb657610cb561277b565b5b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610d0a611bd4565b73ffffffffffffffffffffffffffffffffffffffff16610d28610f97565b73ffffffffffffffffffffffffffffffffffffffff1614610d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7590613128565b60405180910390fd5b610d88600061280e565b565b610d92611bd4565b73ffffffffffffffffffffffffffffffffffffffff16610db0610f97565b73ffffffffffffffffffffffffffffffffffffffff1614610e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfd90613128565b60405180910390fd5b610e0e61066a565b600f81905550610e1c61066a565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610e4b61066a565b604051610e589190612d9b565b60405180910390a17f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e001610e8961066a565b604051610e969190612d9b565b60405180910390a1565b610ea8611bd4565b73ffffffffffffffffffffffffffffffffffffffff16610ec6610f97565b73ffffffffffffffffffffffffffffffffffffffff1614610f1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1390613128565b60405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f27aae5db36d94179909d019ae0b1ac7c16d96d953148f63c0f6a0a9c8ead79ee81604051610f8c9190613517565b60405180910390a150565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fc9611bd4565b73ffffffffffffffffffffffffffffffffffffffff16610fe7610f97565b73ffffffffffffffffffffffffffffffffffffffff161461103d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103490613128565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f2d43abd87b27cee7b0aa8c6f7e0b4a3247b683262a83cbc2318b0df398a49aa982826040516110c5929190613532565b60405180910390a15050565b6060600480546110e0906130ab565b80601f016020809104026020016040519081016040528092919081815260200182805461110c906130ab565b80156111595780601f1061112e57610100808354040283529160200191611159565b820191906000526020600020905b81548152906001019060200180831161113c57829003601f168201915b5050505050905090565b61116b611bd4565b73ffffffffffffffffffffffffffffffffffffffff16611189610f97565b73ffffffffffffffffffffffffffffffffffffffff16146111df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d690613128565b60405180910390fd5b612710826111eb61066a565b6111f591906131e3565b6111ff9190613254565b6011819055506127108161121161066a565b61121b91906131e3565b6112259190613254565b6012819055507f2b3f4c022d9943b151090e389857495bb9d8493714259cc19a540f5a11475fb1828260405161125c92919061348f565b60405180910390a15050565b60008060016000611277611bd4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132b906135cd565b60405180910390fd5b61134861133f611bd4565b85858403611bdc565b600191505092915050565b6000611367611360611bd4565b8484611da5565b6001905092915050565b611379611bd4565b73ffffffffffffffffffffffffffffffffffffffff16611397610f97565b73ffffffffffffffffffffffffffffffffffffffff16146113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490613128565b60405180910390fd5b6001811015611431576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114289061365f565b60405180910390fd5b6103e88161143d61066a565b61144791906131e3565b6114519190613254565b6010819055507f4b39c36d20c57d220f61fd25c4349d4435cc03ef6c2a680942f15333c3c3e0016010546040516114889190612d9b565b60405180910390a150565b61149b611bd4565b73ffffffffffffffffffffffffffffffffffffffff166114b9610f97565b73ffffffffffffffffffffffffffffffffffffffff161461150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690613128565b60405180910390fd5b60148054906101000a900460ff161561155d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611554906136cb565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506115e630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166115e161066a565b611bdc565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611653573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116779190613700565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611700573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117249190613700565b6040518363ffffffff1660e01b815260040161174192919061372d565b6020604051808303816000875af1158015611760573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117849190613700565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061180d30610cba565b600080611818610f97565b426040518863ffffffff1660e01b815260040161183a96959493929190613791565b60606040518083038185885af1158015611858573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061187d9190613807565b505050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161191f92919061385a565b6020604051808303816000875af115801561193e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119629190613898565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff0219169083151502179055504360088190555043600960006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600b819055507fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f60405160405180910390a1565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611ae5611bd4565b73ffffffffffffffffffffffffffffffffffffffff16611b03610f97565b73ffffffffffffffffffffffffffffffffffffffff1614611b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5090613128565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611bc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bbf90613937565b60405180910390fd5b611bd18161280e565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c42906139c9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611cba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb190613a5b565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d989190612d9b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0b90613aed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7a90613b7f565b60405180910390fd5b60008111611ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebd90613c11565b60405180910390fd5b6000611ed0610f97565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f3e5750611f0e610f97565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611f575750601460159054906101000a900460ff16155b156124a157611f846064611f76600b54856128d490919063ffffffff16565b6128ea90919063ffffffff16565b9050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120315750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120875750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561216c57600f548211156120d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c890613c7d565b60405180910390fd5b601054826120de85610cba565b6120e89190613383565b1115612129576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212090613ce9565b60405180910390fd5b4360036008546121399190613383565b11156121535761214883612900565b1561215257600080fd5b5b600e600081548092919061216690613d09565b91905055505b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156122145750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612272576010548261222685610cba565b6122309190613383565b1115612271576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226890613ce9565b60405180910390fd5b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122fb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561232b57612328606461231a600c54856128d490919063ffffffff16565b6128ea90919063ffffffff16565b90505b600061233630610cba565b9050601460159054906101000a900460ff161580156123a25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156123ba5750601460169054906101000a900460ff165b80156123c7575060115481115b80156123d65750600d54600e54115b1561249f57600960009054906101000a900467ffffffffffffffff1667ffffffffffffffff1643111561240c576000600a819055505b6003600a5410612451576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244890613d9d565b60405180910390fd5b61246e6124698461246484601254612913565b612913565b6124d9565b600047905060008111156124855761248461277b565b5b600a600081548092919061249890613d09565b9190505550505b505b60008111156124b6576124b584308361292c565b5b6124d384846124ce8486612bab90919063ffffffff16565b61292c565b50505050565b6001601460156101000a81548160ff02191690831515021790555043600960006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506000600267ffffffffffffffff81111561253a57612539613dbd565b5b6040519080825280602002602001820160405280156125685781602001602082028036833780820191505090505b50905030816000815181106125805761257f613dec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612627573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264b9190613700565b8160018151811061265f5761265e613dec565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126c630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bdc565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161272a959493929190613ed9565b600060405180830381600087803b15801561274457600080fd5b505af1158015612758573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516127c390613f64565b60006040518083038185875af1925050503d8060008114612800576040519150601f19603f3d011682016040523d82523d6000602084013e612805565b606091505b50508091505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836128e291906131e3565b905092915050565b600081836128f89190613254565b905092915050565b600080823b905060008111915050919050565b60008183116129225782612924565b815b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361299b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299290613aed565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0190613b7f565b60405180910390fd5b612a15838383612bc1565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612a9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a9290613feb565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b2e9190613383565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612b929190612d9b565b60405180910390a3612ba5848484612bc6565b50505050565b60008183612bb9919061400b565b905092915050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c05578082015181840152602081019050612bea565b60008484015250505050565b6000601f19601f8301169050919050565b6000612c2d82612bcb565b612c378185612bd6565b9350612c47818560208601612be7565b612c5081612c11565b840191505092915050565b60006020820190508181036000830152612c758184612c22565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612cad82612c82565b9050919050565b612cbd81612ca2565b8114612cc857600080fd5b50565b600081359050612cda81612cb4565b92915050565b6000819050919050565b612cf381612ce0565b8114612cfe57600080fd5b50565b600081359050612d1081612cea565b92915050565b60008060408385031215612d2d57612d2c612c7d565b5b6000612d3b85828601612ccb565b9250506020612d4c85828601612d01565b9150509250929050565b60008115159050919050565b612d6b81612d56565b82525050565b6000602082019050612d866000830184612d62565b92915050565b612d9581612ce0565b82525050565b6000602082019050612db06000830184612d8c565b92915050565b600060208284031215612dcc57612dcb612c7d565b5b6000612dda84828501612d01565b91505092915050565b600080600060608486031215612dfc57612dfb612c7d565b5b6000612e0a86828701612ccb565b9350506020612e1b86828701612ccb565b9250506040612e2c86828701612d01565b9150509250925092565b600060ff82169050919050565b612e4c81612e36565b82525050565b6000602082019050612e676000830184612e43565b92915050565b600060c082019050612e826000830189612d8c565b612e8f6020830188612d8c565b612e9c6040830187612d8c565b612ea96060830186612d8c565b612eb66080830185612d8c565b612ec360a0830184612d8c565b979650505050505050565b60008060408385031215612ee557612ee4612c7d565b5b6000612ef385828601612d01565b9250506020612f0485828601612d01565b9150509250929050565b600060208284031215612f2457612f23612c7d565b5b6000612f3284828501612ccb565b91505092915050565b6000612f4682612c82565b9050919050565b612f5681612f3b565b8114612f6157600080fd5b50565b600081359050612f7381612f4d565b92915050565b600060208284031215612f8f57612f8e612c7d565b5b6000612f9d84828501612f64565b91505092915050565b612faf81612ca2565b82525050565b6000602082019050612fca6000830184612fa6565b92915050565b612fd981612d56565b8114612fe457600080fd5b50565b600081359050612ff681612fd0565b92915050565b6000806040838503121561301357613012612c7d565b5b600061302185828601612ccb565b925050602061303285828601612fe7565b9150509250929050565b6000806040838503121561305357613052612c7d565b5b600061306185828601612ccb565b925050602061307285828601612ccb565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806130c357607f821691505b6020821081036130d6576130d561307c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613112602083612bd6565b915061311d826130dc565b602082019050919050565b6000602082019050818103600083015261314181613105565b9050919050565b7f4d61782074782063616e74206265206c6f776572207468616e20302e31250000600082015250565b600061317e601e83612bd6565b915061318982613148565b602082019050919050565b600060208201905081810360008301526131ad81613171565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131ee82612ce0565b91506131f983612ce0565b925082820261320781612ce0565b9150828204841483151761321e5761321d6131b4565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061325f82612ce0565b915061326a83612ce0565b92508261327a57613279613225565b5b828204905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006132e1602883612bd6565b91506132ec82613285565b604082019050919050565b60006020820190508181036000830152613310816132d4565b9050919050565b7f4f6e6c79206665652072656365697665722063616e2074726967676572000000600082015250565b600061334d601d83612bd6565b915061335882613317565b602082019050919050565b6000602082019050818103600083015261337c81613340565b9050919050565b600061338e82612ce0565b915061339983612ce0565b92508282019050808211156133b1576133b06131b4565b5b92915050565b7f496e76616c696420627579207461782076616c75650000000000000000000000600082015250565b60006133ed601583612bd6565b91506133f8826133b7565b602082019050919050565b6000602082019050818103600083015261341c816133e0565b9050919050565b7f496e76616c69642073656c6c207461782076616c756500000000000000000000600082015250565b6000613459601683612bd6565b915061346482613423565b602082019050919050565b600060208201905081810360008301526134888161344c565b9050919050565b60006040820190506134a46000830185612d8c565b6134b16020830184612d8c565b9392505050565b6000819050919050565b60006134dd6134d86134d384612c82565b6134b8565b612c82565b9050919050565b60006134ef826134c2565b9050919050565b6000613501826134e4565b9050919050565b613511816134f6565b82525050565b600060208201905061352c6000830184613508565b92915050565b60006040820190506135476000830185612fa6565b6135546020830184612d62565b9392505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006135b7602583612bd6565b91506135c28261355b565b604082019050919050565b600060208201905081810360008301526135e6816135aa565b9050919050565b7f4d61782077616c6c65742063616e74206265206c6f776572207468616e20302e60008201527f3125000000000000000000000000000000000000000000000000000000000000602082015250565b6000613649602283612bd6565b9150613654826135ed565b604082019050919050565b600060208201905081810360008301526136788161363c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006136b5601783612bd6565b91506136c08261367f565b602082019050919050565b600060208201905081810360008301526136e4816136a8565b9050919050565b6000815190506136fa81612cb4565b92915050565b60006020828403121561371657613715612c7d565b5b6000613724848285016136eb565b91505092915050565b60006040820190506137426000830185612fa6565b61374f6020830184612fa6565b9392505050565b6000819050919050565b600061377b61377661377184613756565b6134b8565b612ce0565b9050919050565b61378b81613760565b82525050565b600060c0820190506137a66000830189612fa6565b6137b36020830188612d8c565b6137c06040830187613782565b6137cd6060830186613782565b6137da6080830185612fa6565b6137e760a0830184612d8c565b979650505050505050565b60008151905061380181612cea565b92915050565b6000806000606084860312156138205761381f612c7d565b5b600061382e868287016137f2565b935050602061383f868287016137f2565b9250506040613850868287016137f2565b9150509250925092565b600060408201905061386f6000830185612fa6565b61387c6020830184612d8c565b9392505050565b60008151905061389281612fd0565b92915050565b6000602082840312156138ae576138ad612c7d565b5b60006138bc84828501613883565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613921602683612bd6565b915061392c826138c5565b604082019050919050565b6000602082019050818103600083015261395081613914565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006139b3602483612bd6565b91506139be82613957565b604082019050919050565b600060208201905081810360008301526139e2816139a6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a45602283612bd6565b9150613a50826139e9565b604082019050919050565b60006020820190508181036000830152613a7481613a38565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ad7602583612bd6565b9150613ae282613a7b565b604082019050919050565b60006020820190508181036000830152613b0681613aca565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b69602383612bd6565b9150613b7482613b0d565b604082019050919050565b60006020820190508181036000830152613b9881613b5c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613bfb602983612bd6565b9150613c0682613b9f565b604082019050919050565b60006020820190508181036000830152613c2a81613bee565b9050919050565b7f4578636565647320746865205f7478416d6f756e744c696d69742e0000000000600082015250565b6000613c67601b83612bd6565b9150613c7282613c31565b602082019050919050565b60006020820190508181036000830152613c9681613c5a565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613cd3601a83612bd6565b9150613cde82613c9d565b602082019050919050565b60006020820190508181036000830152613d0281613cc6565b9050919050565b6000613d1482612ce0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613d4657613d456131b4565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b21000000000000000000600082015250565b6000613d87601783612bd6565b9150613d9282613d51565b602082019050919050565b60006020820190508181036000830152613db681613d7a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e5081612ca2565b82525050565b6000613e628383613e47565b60208301905092915050565b6000602082019050919050565b6000613e8682613e1b565b613e908185613e26565b9350613e9b83613e37565b8060005b83811015613ecc578151613eb38882613e56565b9750613ebe83613e6e565b925050600181019050613e9f565b5085935050505092915050565b600060a082019050613eee6000830188612d8c565b613efb6020830187613782565b8181036040830152613f0d8186613e7b565b9050613f1c6060830185612fa6565b613f296080830184612d8c565b9695505050505050565b600081905092915050565b50565b6000613f4e600083613f33565b9150613f5982613f3e565b600082019050919050565b6000613f6f82613f41565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613fd5602683612bd6565b9150613fe082613f79565b604082019050919050565b6000602082019050818103600083015261400481613fc8565b9050919050565b600061401682612ce0565b915061402183612ce0565b9250828203905081811115614039576140386131b4565b5b9291505056fea2646970667358221220c981cead949fd0e26a5841afdc90b3a6aacb3f0c6d50025d709eed1f9f735a1d64736f6c63430008130033
Deployed Bytecode Sourcemap
25414:9345:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11012:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13245:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12132:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28483:241;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13917:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29881:177;;;;;;;;;;;;;:::i;:::-;;11974:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30245:485;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;14851:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29581:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;33603:435;;;;;;;;;;;;;:::i;:::-;;12303:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22351:103;;;;;;;;;;;;;:::i;:::-;;29331:242;;;;;;;;;;;;;:::i;:::-;;28327:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21700:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;30066:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11231:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;29013:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15640:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12659:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28732:273;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;27312:1007;;;;;;;;;;;;;:::i;:::-;;12922:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22609:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11012:100;11066:13;11099:5;11092:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11012:100;:::o;13245:194::-;13353:4;13370:39;13379:12;:10;:12::i;:::-;13393:7;13402:6;13370:8;:39::i;:::-;13427:4;13420:11;;13245:194;;;;:::o;12132:108::-;12193:7;12220:12;;12213:19;;12132:108;:::o;28483:241::-;21931:12;:10;:12::i;:::-;21920:23;;:7;:5;:7::i;:::-;:23;;;21912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28569:1:::1;28557:8;:13;;28549:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;28662:4;28650:8;28634:13;:11;:13::i;:::-;:24;;;;:::i;:::-;28633:33;;;;:::i;:::-;28616:14;:50;;;;28682:34;28701:14;;28682:34;;;;;;:::i;:::-;;;;;;;;28483:241:::0;:::o;13917:529::-;14057:4;14074:36;14084:6;14092:9;14103:6;14074:9;:36::i;:::-;14123:24;14150:11;:19;14162:6;14150:19;;;;;;;;;;;;;;;:33;14170:12;:10;:12::i;:::-;14150:33;;;;;;;;;;;;;;;;14123:60;;14236:6;14216:16;:26;;14194:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;14346:57;14355:6;14363:12;:10;:12::i;:::-;14396:6;14377:16;:25;14346:8;:57::i;:::-;14434:4;14427:11;;;13917:529;;;;;:::o;29881:177::-;29953:10;;;;;;;;;;;29939:24;;:10;:24;;;29931:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;30008:10;;;;;;;;;;;:19;;:42;30028:21;30008:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29881:177::o;11974:93::-;12032:5;12057:2;12050:9;;11974:93;:::o;30245:485::-;30329:15;30359:16;30390:19;30424:21;30460:24;30499:18;30567:6;;30588:7;;30610:14;;30639:18;;30672:12;;30699;;30545:177;;;;;;;;;;;;30245:485;;;;;;:::o;14851:290::-;14964:4;14981:130;15004:12;:10;:12::i;:::-;15031:7;15090:10;15053:11;:25;15065:12;:10;:12::i;:::-;15053:25;;;;;;;;;;;;;;;:34;15079:7;15053:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;14981:8;:130::i;:::-;15129:4;15122:11;;14851:290;;;;:::o;29581:292::-;21931:12;:10;:12::i;:::-;21920:23;;:7;:5;:7::i;:::-;:23;;;21912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29680:2:::1;29670:6;:12;;29662:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;29738:2;29727:7;:13;;29719:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;29787:6;29778;:15;;;;29814:7;29804;:17;;;;29837:28;29849:6;29857:7;29837:28;;;;;;;:::i;:::-;;;;;;;;29581:292:::0;;:::o;33603:435::-;33681:10;;;;;;;;;;;33667:24;;:10;:24;;;:49;;;;33709:7;:5;:7::i;:::-;33695:21;;:10;:21;;;33667:49;33645:128;;;;;;;;;;;;:::i;:::-;;;;;;;;;33784:28;33815:24;33833:4;33815:9;:24::i;:::-;33784:55;;33852:38;33869:20;33852:16;:38::i;:::-;33901:26;33930:21;33901:50;;33987:1;33966:18;:22;33962:69;;;34005:14;:12;:14::i;:::-;33962:69;33634:404;;33603:435::o;12303:143::-;12393:7;12420:9;:18;12430:7;12420:18;;;;;;;;;;;;;;;;12413:25;;12303:143;;;:::o;22351:103::-;21931:12;:10;:12::i;:::-;21920:23;;:7;:5;:7::i;:::-;:23;;;21912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22416:30:::1;22443:1;22416:18;:30::i;:::-;22351:103::o:0;29331:242::-;21931:12;:10;:12::i;:::-;21920:23;;:7;:5;:7::i;:::-;:23;;;21912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29405:13:::1;:11;:13::i;:::-;29388:14;:30;;;;29450:13;:11;:13::i;:::-;29429:18;:34;;;;29479:33;29498:13;:11;:13::i;:::-;29479:33;;;;;;:::i;:::-;;;;;;;;29528:37;29551:13;:11;:13::i;:::-;29528:37;;;;;;:::i;:::-;;;;;;;;29331:242::o:0;28327:148::-;21931:12;:10;:12::i;:::-;21920:23;;:7;:5;:7::i;:::-;:23;;;21912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28417:6:::1;28404:10;;:19;;;;;;;;;;;;;;;;;;28441:26;28460:6;28441:26;;;;;;:::i;:::-;;;;;;;;28327:148:::0;:::o;21700:87::-;21746:7;21773:6;;;;;;;;;;;21766:13;;21700:87;:::o;30066:171::-;21931:12;:10;:12::i;:::-;21920:23;;:7;:5;:7::i;:::-;:23;;;21912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;30176:6:::1;30147:18;:26;30166:6;30147:26;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;30198:31;30214:6;30222;30198:31;;;;;;;:::i;:::-;;;;;;;;30066:171:::0;;:::o;11231:104::-;11287:13;11320:7;11313:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11231:104;:::o;29013:310::-;21931:12;:10;:12::i;:::-;21920:23;;:7;:5;:7::i;:::-;:23;;;21912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;29187:5:::1;29167:16;29151:13;:11;:13::i;:::-;:32;;;;:::i;:::-;29150:42;;;;:::i;:::-;29135:12;:57;;;;29249:5;29235:10;29219:13;:11;:13::i;:::-;:26;;;;:::i;:::-;29218:36;;;;:::i;:::-;29203:12;:51;;;;29270:45;29286:16;29304:10;29270:45;;;;;;;:::i;:::-;;;;;;;;29013:310:::0;;:::o;15640:475::-;15758:4;15775:24;15802:11;:25;15814:12;:10;:12::i;:::-;15802:25;;;;;;;;;;;;;;;:34;15828:7;15802:34;;;;;;;;;;;;;;;;15775:61;;15889:15;15869:16;:35;;15847:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;16005:67;16014:12;:10;:12::i;:::-;16028:7;16056:15;16037:16;:34;16005:8;:67::i;:::-;16103:4;16096:11;;;15640:475;;;;:::o;12659:200::-;12770:4;12787:42;12797:12;:10;:12::i;:::-;12811:9;12822:6;12787:9;:42::i;:::-;12847:4;12840:11;;12659:200;;;;:::o;28732:273::-;21931:12;:10;:12::i;:::-;21920:23;;:7;:5;:7::i;:::-;:23;;;21912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;28830:1:::1;28814:12;:17;;28806:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;28935:4;28919:12;28903:13;:11;:13::i;:::-;:28;;;;:::i;:::-;28902:37;;;;:::i;:::-;28881:18;:58;;;;28955:42;28978:18;;28955:42;;;;;;:::i;:::-;;;;;;;;28732:273:::0;:::o;27312:1007::-;21931:12;:10;:12::i;:::-;21920:23;;:7;:5;:7::i;:::-;:23;;;21912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;27374:11:::1;::::0;::::1;;;;;;;;27373:12;27365:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;27467:42;27424:15;;:96;;;;;;;;;;;;;;;;;;27531:64;27548:4;27563:15;;;;;;;;;;;27581:13;:11;:13::i;:::-;27531:8;:64::i;:::-;27634:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27622:49;;;27694:4;27714:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27622:125;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27606:13;;:141;;;;;;;;;;;;;;;;;;27758:15;;;;;;;;;;;:31;;;27797:21;27842:4;27862:24;27880:4;27862:9;:24::i;:::-;27901:1;27917::::0;27933:7:::1;:5;:7::i;:::-;27955:15;27758:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;27999:13;;;;;;;;;;;27992:29;;;28030:15;;;;;;;;;;;28048:14;27992:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;28088:4;28074:11;;:18;;;;;;;;;;;;;;;;;;28117:4;28103:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;28145:12;28132:10;:25;;;;28193:12;28168:15;;:38;;;;;;;;;;;;;;;;;;28253:4;28217:18;:33;28244:4;28217:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;28277:1;28268:6;:10;;;;28296:15;;;;;;;;;;27312:1007::o:0;12922:176::-;13036:7;13063:11;:18;13075:5;13063:18;;;;;;;;;;;;;;;:27;13082:7;13063:27;;;;;;;;;;;;;;;;13056:34;;12922:176;;;;:::o;22609:238::-;21931:12;:10;:12::i;:::-;21920:23;;:7;:5;:7::i;:::-;:23;;;21912:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22732:1:::1;22712:22;;:8;:22;;::::0;22690:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22811:28;22830:8;22811:18;:28::i;:::-;22609:238:::0;:::o;10018:98::-;10071:7;10098:10;10091:17;;10018:98;:::o;19423:380::-;19576:1;19559:19;;:5;:19;;;19551:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19657:1;19638:21;;:7;:21;;;19630:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19741:6;19711:11;:18;19723:5;19711:18;;;;;;;;;;;;;;;:27;19730:7;19711:27;;;;;;;;;;;;;;;:36;;;;19779:7;19763:32;;19772:5;19763:32;;;19788:6;19763:32;;;;;;:::i;:::-;;;;;;;;19423:380;;;:::o;30738:2539::-;30886:1;30870:18;;:4;:18;;;30862:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;30963:1;30949:16;;:2;:16;;;30941:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;31033:1;31024:6;:10;31016:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;31091:17;31135:7;:5;:7::i;:::-;31127:15;;:4;:15;;;;:32;;;;;31152:7;:5;:7::i;:::-;31146:13;;:2;:13;;;;31127:32;:43;;;;;31164:6;;;;;;;;;;;31163:7;31127:43;31123:1983;;;31199:27;31222:3;31199:18;31210:6;;31199;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;31187:39;;31273:13;;;;;;;;;;;31265:21;;:4;:21;;;:72;;;;;31321:15;;;;;;;;;;;31307:30;;:2;:30;;;;31265:72;:116;;;;;31359:18;:22;31378:2;31359:22;;;;;;;;;;;;;;;;;;;;;;;;;31358:23;31265:116;31243:629;;;31456:14;;31446:6;:24;;31416:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;31616:18;;31606:6;31590:13;31600:2;31590:9;:13::i;:::-;:22;;;;:::i;:::-;:44;;31560:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;31746:12;31742:1;31729:10;;:14;;;;:::i;:::-;:29;31725:102;;;31792:14;31803:2;31792:10;:14::i;:::-;31791:15;31783:24;;;;;;31725:102;31845:9;;:11;;;;;;;;;:::i;:::-;;;;;;31243:629;31898:13;;;;;;;;;;;31892:19;;:2;:19;;;;:46;;;;;31916:18;:22;31935:2;31916:22;;;;;;;;;;;;;;;;;;;;;;;;;31915:23;31892:46;31888:231;;;32015:18;;32005:6;31989:13;31999:2;31989:9;:13::i;:::-;:22;;;;:::i;:::-;:44;;31959:144;;;;;;;;;;;;:::i;:::-;;;;;;;;;31888:231;32145:13;;;;;;;;;;;32139:19;;:2;:19;;;:44;;;;;32178:4;32162:21;;:4;:21;;;;32139:44;32135:125;;;32216:28;32240:3;32216:19;32227:7;;32216:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;32204:40;;32135:125;32276:28;32307:24;32325:4;32307:9;:24::i;:::-;32276:55;;32369:6;;;;;;;;;;;32368:7;:47;;;;;32402:13;;;;;;;;;;;32396:19;;:2;:19;;;32368:47;:79;;;;;32436:11;;;;;;;;;;;32368:79;:135;;;;;32491:12;;32468:20;:35;32368:135;:186;;;;;32536:18;;32524:9;;:30;32368:186;32346:749;;;32608:15;;;;;;;;;;;32593:30;;:12;:30;32589:92;;;32660:1;32648:9;:13;;;;32589:92;32719:1;32707:9;;:13;32699:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;32767:110;32806:52;32810:6;32818:39;32822:20;32844:12;;32818:3;:39::i;:::-;32806:3;:52::i;:::-;32767:16;:110::i;:::-;32896:26;32925:21;32896:50;;32990:1;32969:18;:22;32965:85;;;33016:14;:12;:14::i;:::-;32965:85;33068:9;;:11;;;;;;;;;:::i;:::-;;;;;;32570:525;32346:749;31172:1934;31123:1983;33134:1;33122:9;:13;33118:93;;;33152:47;33168:4;33182;33189:9;33152:15;:47::i;:::-;33118:93;33221:48;33237:4;33243:2;33247:21;33258:9;33247:6;:10;;:21;;;;:::i;:::-;33221:15;:48::i;:::-;30851:2426;30738:2539;;;:::o;34046:532::-;26621:4;26612:6;;:13;;;;;;;;;;;;;;;;;;34149:12:::1;34124:15;;:38;;;;;;;;;;;;;;;;;;34173:21;34211:1;34197:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34173:40;;34242:4;34224;34229:1;34224:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;34268:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;34258:4;34263:1;34258:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;34301:62;34318:4;34333:15;;;;;;;;;;;34351:11;34301:8;:62::i;:::-;34374:15;;;;;;;;;;;:66;;;34455:11;34481:1;34497:4;34524;34544:15;34374:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;34113:465;26657:5:::0;26648:6;;:14;;;;;;;;;;;;;;;;;;34046:532;:::o;34586:170::-;34629:12;34674:10;;;;;;;;;;;34666:24;;34698:21;34666:82;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34652:96;;;;;34618:138;34586:170::o;23007:191::-;23081:16;23100:6;;;;;;;;;;;23081:25;;23126:8;23117:6;;:17;;;;;;;;;;;;;;;;;;23181:8;23150:40;;23171:8;23150:40;;;;;;;;;;;;23070:128;23007:191;:::o;3377:98::-;3435:7;3466:1;3462;:5;;;;:::i;:::-;3455:12;;3377:98;;;;:::o;3776:::-;3834:7;3865:1;3861;:5;;;;:::i;:::-;3854:12;;3776:98;;;;:::o;33400:195::-;33459:4;33476:12;33543:7;33531:20;33523:28;;33586:1;33579:4;:8;33572:15;;;33400:195;;;:::o;33285:107::-;33342:7;33374:1;33370;:5;33369:15;;33383:1;33369:15;;;33379:1;33369:15;33362:22;;33285:107;;;;:::o;16605:770::-;16763:1;16745:20;;:6;:20;;;16737:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;16847:1;16826:23;;:9;:23;;;16818:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16902:47;16923:6;16931:9;16942:6;16902:20;:47::i;:::-;16962:21;16986:9;:17;16996:6;16986:17;;;;;;;;;;;;;;;;16962:41;;17053:6;17036:13;:23;;17014:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;17197:6;17181:13;:22;17161:9;:17;17171:6;17161:17;;;;;;;;;;;;;;;:42;;;;17249:6;17225:9;:20;17235:9;17225:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;17290:9;17273:35;;17282:6;17273:35;;;17301:6;17273:35;;;;;;:::i;:::-;;;;;;;;17321:46;17341:6;17349:9;17360:6;17321:19;:46::i;:::-;16726:649;16605:770;;;:::o;3020:98::-;3078:7;3109:1;3105;:5;;;;:::i;:::-;3098:12;;3020:98;;;;:::o;20403:125::-;;;;:::o;21132:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:775::-;5421:4;5459:3;5448:9;5444:19;5436:27;;5473:71;5541:1;5530:9;5526:17;5517:6;5473:71;:::i;:::-;5554:72;5622:2;5611:9;5607:18;5598:6;5554:72;:::i;:::-;5636;5704:2;5693:9;5689:18;5680:6;5636:72;:::i;:::-;5718;5786:2;5775:9;5771:18;5762:6;5718:72;:::i;:::-;5800:73;5868:3;5857:9;5853:19;5844:6;5800:73;:::i;:::-;5883;5951:3;5940:9;5936:19;5927:6;5883:73;:::i;:::-;5188:775;;;;;;;;;:::o;5969:474::-;6037:6;6045;6094:2;6082:9;6073:7;6069:23;6065:32;6062:119;;;6100:79;;:::i;:::-;6062:119;6220:1;6245:53;6290:7;6281:6;6270:9;6266:22;6245:53;:::i;:::-;6235:63;;6191:117;6347:2;6373:53;6418:7;6409:6;6398:9;6394:22;6373:53;:::i;:::-;6363:63;;6318:118;5969:474;;;;;:::o;6449:329::-;6508:6;6557:2;6545:9;6536:7;6532:23;6528:32;6525:119;;;6563:79;;:::i;:::-;6525:119;6683:1;6708:53;6753:7;6744:6;6733:9;6729:22;6708:53;:::i;:::-;6698:63;;6654:117;6449:329;;;;:::o;6784:104::-;6829:7;6858:24;6876:5;6858:24;:::i;:::-;6847:35;;6784:104;;;:::o;6894:138::-;6975:32;7001:5;6975:32;:::i;:::-;6968:5;6965:43;6955:71;;7022:1;7019;7012:12;6955:71;6894:138;:::o;7038:155::-;7092:5;7130:6;7117:20;7108:29;;7146:41;7181:5;7146:41;:::i;:::-;7038:155;;;;:::o;7199:345::-;7266:6;7315:2;7303:9;7294:7;7290:23;7286:32;7283:119;;;7321:79;;:::i;:::-;7283:119;7441:1;7466:61;7519:7;7510:6;7499:9;7495:22;7466:61;:::i;:::-;7456:71;;7412:125;7199:345;;;;:::o;7550:118::-;7637:24;7655:5;7637:24;:::i;:::-;7632:3;7625:37;7550:118;;:::o;7674:222::-;7767:4;7805:2;7794:9;7790:18;7782:26;;7818:71;7886:1;7875:9;7871:17;7862:6;7818:71;:::i;:::-;7674:222;;;;:::o;7902:116::-;7972:21;7987:5;7972:21;:::i;:::-;7965:5;7962:32;7952:60;;8008:1;8005;7998:12;7952:60;7902:116;:::o;8024:133::-;8067:5;8105:6;8092:20;8083:29;;8121:30;8145:5;8121:30;:::i;:::-;8024:133;;;;:::o;8163:468::-;8228:6;8236;8285:2;8273:9;8264:7;8260:23;8256:32;8253:119;;;8291:79;;:::i;:::-;8253:119;8411:1;8436:53;8481:7;8472:6;8461:9;8457:22;8436:53;:::i;:::-;8426:63;;8382:117;8538:2;8564:50;8606:7;8597:6;8586:9;8582:22;8564:50;:::i;:::-;8554:60;;8509:115;8163:468;;;;;:::o;8637:474::-;8705:6;8713;8762:2;8750:9;8741:7;8737:23;8733:32;8730:119;;;8768:79;;:::i;:::-;8730:119;8888:1;8913:53;8958:7;8949:6;8938:9;8934:22;8913:53;:::i;:::-;8903:63;;8859:117;9015:2;9041:53;9086:7;9077:6;9066:9;9062:22;9041:53;:::i;:::-;9031:63;;8986:118;8637:474;;;;;:::o;9117:180::-;9165:77;9162:1;9155:88;9262:4;9259:1;9252:15;9286:4;9283:1;9276:15;9303:320;9347:6;9384:1;9378:4;9374:12;9364:22;;9431:1;9425:4;9421:12;9452:18;9442:81;;9508:4;9500:6;9496:17;9486:27;;9442:81;9570:2;9562:6;9559:14;9539:18;9536:38;9533:84;;9589:18;;:::i;:::-;9533:84;9354:269;9303:320;;;:::o;9629:182::-;9769:34;9765:1;9757:6;9753:14;9746:58;9629:182;:::o;9817:366::-;9959:3;9980:67;10044:2;10039:3;9980:67;:::i;:::-;9973:74;;10056:93;10145:3;10056:93;:::i;:::-;10174:2;10169:3;10165:12;10158:19;;9817:366;;;:::o;10189:419::-;10355:4;10393:2;10382:9;10378:18;10370:26;;10442:9;10436:4;10432:20;10428:1;10417:9;10413:17;10406:47;10470:131;10596:4;10470:131;:::i;:::-;10462:139;;10189:419;;;:::o;10614:180::-;10754:32;10750:1;10742:6;10738:14;10731:56;10614:180;:::o;10800:366::-;10942:3;10963:67;11027:2;11022:3;10963:67;:::i;:::-;10956:74;;11039:93;11128:3;11039:93;:::i;:::-;11157:2;11152:3;11148:12;11141:19;;10800:366;;;:::o;11172:419::-;11338:4;11376:2;11365:9;11361:18;11353:26;;11425:9;11419:4;11415:20;11411:1;11400:9;11396:17;11389:47;11453:131;11579:4;11453:131;:::i;:::-;11445:139;;11172:419;;;:::o;11597:180::-;11645:77;11642:1;11635:88;11742:4;11739:1;11732:15;11766:4;11763:1;11756:15;11783:410;11823:7;11846:20;11864:1;11846:20;:::i;:::-;11841:25;;11880:20;11898:1;11880:20;:::i;:::-;11875:25;;11935:1;11932;11928:9;11957:30;11975:11;11957:30;:::i;:::-;11946:41;;12136:1;12127:7;12123:15;12120:1;12117:22;12097:1;12090:9;12070:83;12047:139;;12166:18;;:::i;:::-;12047:139;11831:362;11783:410;;;;:::o;12199:180::-;12247:77;12244:1;12237:88;12344:4;12341:1;12334:15;12368:4;12365:1;12358:15;12385:185;12425:1;12442:20;12460:1;12442:20;:::i;:::-;12437:25;;12476:20;12494:1;12476:20;:::i;:::-;12471:25;;12515:1;12505:35;;12520:18;;:::i;:::-;12505:35;12562:1;12559;12555:9;12550:14;;12385:185;;;;:::o;12576:227::-;12716:34;12712:1;12704:6;12700:14;12693:58;12785:10;12780:2;12772:6;12768:15;12761:35;12576:227;:::o;12809:366::-;12951:3;12972:67;13036:2;13031:3;12972:67;:::i;:::-;12965:74;;13048:93;13137:3;13048:93;:::i;:::-;13166:2;13161:3;13157:12;13150:19;;12809:366;;;:::o;13181:419::-;13347:4;13385:2;13374:9;13370:18;13362:26;;13434:9;13428:4;13424:20;13420:1;13409:9;13405:17;13398:47;13462:131;13588:4;13462:131;:::i;:::-;13454:139;;13181:419;;;:::o;13606:179::-;13746:31;13742:1;13734:6;13730:14;13723:55;13606:179;:::o;13791:366::-;13933:3;13954:67;14018:2;14013:3;13954:67;:::i;:::-;13947:74;;14030:93;14119:3;14030:93;:::i;:::-;14148:2;14143:3;14139:12;14132:19;;13791:366;;;:::o;14163:419::-;14329:4;14367:2;14356:9;14352:18;14344:26;;14416:9;14410:4;14406:20;14402:1;14391:9;14387:17;14380:47;14444:131;14570:4;14444:131;:::i;:::-;14436:139;;14163:419;;;:::o;14588:191::-;14628:3;14647:20;14665:1;14647:20;:::i;:::-;14642:25;;14681:20;14699:1;14681:20;:::i;:::-;14676:25;;14724:1;14721;14717:9;14710:16;;14745:3;14742:1;14739:10;14736:36;;;14752:18;;:::i;:::-;14736:36;14588:191;;;;:::o;14785:171::-;14925:23;14921:1;14913:6;14909:14;14902:47;14785:171;:::o;14962:366::-;15104:3;15125:67;15189:2;15184:3;15125:67;:::i;:::-;15118:74;;15201:93;15290:3;15201:93;:::i;:::-;15319:2;15314:3;15310:12;15303:19;;14962:366;;;:::o;15334:419::-;15500:4;15538:2;15527:9;15523:18;15515:26;;15587:9;15581:4;15577:20;15573:1;15562:9;15558:17;15551:47;15615:131;15741:4;15615:131;:::i;:::-;15607:139;;15334:419;;;:::o;15759:172::-;15899:24;15895:1;15887:6;15883:14;15876:48;15759:172;:::o;15937:366::-;16079:3;16100:67;16164:2;16159:3;16100:67;:::i;:::-;16093:74;;16176:93;16265:3;16176:93;:::i;:::-;16294:2;16289:3;16285:12;16278:19;;15937:366;;;:::o;16309:419::-;16475:4;16513:2;16502:9;16498:18;16490:26;;16562:9;16556:4;16552:20;16548:1;16537:9;16533:17;16526:47;16590:131;16716:4;16590:131;:::i;:::-;16582:139;;16309:419;;;:::o;16734:332::-;16855:4;16893:2;16882:9;16878:18;16870:26;;16906:71;16974:1;16963:9;16959:17;16950:6;16906:71;:::i;:::-;16987:72;17055:2;17044:9;17040:18;17031:6;16987:72;:::i;:::-;16734:332;;;;;:::o;17072:60::-;17100:3;17121:5;17114:12;;17072:60;;;:::o;17138:142::-;17188:9;17221:53;17239:34;17248:24;17266:5;17248:24;:::i;:::-;17239:34;:::i;:::-;17221:53;:::i;:::-;17208:66;;17138:142;;;:::o;17286:126::-;17336:9;17369:37;17400:5;17369:37;:::i;:::-;17356:50;;17286:126;;;:::o;17418:134::-;17476:9;17509:37;17540:5;17509:37;:::i;:::-;17496:50;;17418:134;;;:::o;17558:147::-;17653:45;17692:5;17653:45;:::i;:::-;17648:3;17641:58;17558:147;;:::o;17711:238::-;17812:4;17850:2;17839:9;17835:18;17827:26;;17863:79;17939:1;17928:9;17924:17;17915:6;17863:79;:::i;:::-;17711:238;;;;:::o;17955:320::-;18070:4;18108:2;18097:9;18093:18;18085:26;;18121:71;18189:1;18178:9;18174:17;18165:6;18121:71;:::i;:::-;18202:66;18264:2;18253:9;18249:18;18240:6;18202:66;:::i;:::-;17955:320;;;;;:::o;18281:224::-;18421:34;18417:1;18409:6;18405:14;18398:58;18490:7;18485:2;18477:6;18473:15;18466:32;18281:224;:::o;18511:366::-;18653:3;18674:67;18738:2;18733:3;18674:67;:::i;:::-;18667:74;;18750:93;18839:3;18750:93;:::i;:::-;18868:2;18863:3;18859:12;18852:19;;18511:366;;;:::o;18883:419::-;19049:4;19087:2;19076:9;19072:18;19064:26;;19136:9;19130:4;19126:20;19122:1;19111:9;19107:17;19100:47;19164:131;19290:4;19164:131;:::i;:::-;19156:139;;18883:419;;;:::o;19308:221::-;19448:34;19444:1;19436:6;19432:14;19425:58;19517:4;19512:2;19504:6;19500:15;19493:29;19308:221;:::o;19535:366::-;19677:3;19698:67;19762:2;19757:3;19698:67;:::i;:::-;19691:74;;19774:93;19863:3;19774:93;:::i;:::-;19892:2;19887:3;19883:12;19876:19;;19535:366;;;:::o;19907:419::-;20073:4;20111:2;20100:9;20096:18;20088:26;;20160:9;20154:4;20150:20;20146:1;20135:9;20131:17;20124:47;20188:131;20314:4;20188:131;:::i;:::-;20180:139;;19907:419;;;:::o;20332:173::-;20472:25;20468:1;20460:6;20456:14;20449:49;20332:173;:::o;20511:366::-;20653:3;20674:67;20738:2;20733:3;20674:67;:::i;:::-;20667:74;;20750:93;20839:3;20750:93;:::i;:::-;20868:2;20863:3;20859:12;20852:19;;20511:366;;;:::o;20883:419::-;21049:4;21087:2;21076:9;21072:18;21064:26;;21136:9;21130:4;21126:20;21122:1;21111:9;21107:17;21100:47;21164:131;21290:4;21164:131;:::i;:::-;21156:139;;20883:419;;;:::o;21308:143::-;21365:5;21396:6;21390:13;21381:22;;21412:33;21439:5;21412:33;:::i;:::-;21308:143;;;;:::o;21457:351::-;21527:6;21576:2;21564:9;21555:7;21551:23;21547:32;21544:119;;;21582:79;;:::i;:::-;21544:119;21702:1;21727:64;21783:7;21774:6;21763:9;21759:22;21727:64;:::i;:::-;21717:74;;21673:128;21457:351;;;;:::o;21814:332::-;21935:4;21973:2;21962:9;21958:18;21950:26;;21986:71;22054:1;22043:9;22039:17;22030:6;21986:71;:::i;:::-;22067:72;22135:2;22124:9;22120:18;22111:6;22067:72;:::i;:::-;21814:332;;;;;:::o;22152:85::-;22197:7;22226:5;22215:16;;22152:85;;;:::o;22243:158::-;22301:9;22334:61;22352:42;22361:32;22387:5;22361:32;:::i;:::-;22352:42;:::i;:::-;22334:61;:::i;:::-;22321:74;;22243:158;;;:::o;22407:147::-;22502:45;22541:5;22502:45;:::i;:::-;22497:3;22490:58;22407:147;;:::o;22560:807::-;22809:4;22847:3;22836:9;22832:19;22824:27;;22861:71;22929:1;22918:9;22914:17;22905:6;22861:71;:::i;:::-;22942:72;23010:2;22999:9;22995:18;22986:6;22942:72;:::i;:::-;23024:80;23100:2;23089:9;23085:18;23076:6;23024:80;:::i;:::-;23114;23190:2;23179:9;23175:18;23166:6;23114:80;:::i;:::-;23204:73;23272:3;23261:9;23257:19;23248:6;23204:73;:::i;:::-;23287;23355:3;23344:9;23340:19;23331:6;23287:73;:::i;:::-;22560:807;;;;;;;;;:::o;23373:143::-;23430:5;23461:6;23455:13;23446:22;;23477:33;23504:5;23477:33;:::i;:::-;23373:143;;;;:::o;23522:663::-;23610:6;23618;23626;23675:2;23663:9;23654:7;23650:23;23646:32;23643:119;;;23681:79;;:::i;:::-;23643:119;23801:1;23826:64;23882:7;23873:6;23862:9;23858:22;23826:64;:::i;:::-;23816:74;;23772:128;23939:2;23965:64;24021:7;24012:6;24001:9;23997:22;23965:64;:::i;:::-;23955:74;;23910:129;24078:2;24104:64;24160:7;24151:6;24140:9;24136:22;24104:64;:::i;:::-;24094:74;;24049:129;23522:663;;;;;:::o;24191:332::-;24312:4;24350:2;24339:9;24335:18;24327:26;;24363:71;24431:1;24420:9;24416:17;24407:6;24363:71;:::i;:::-;24444:72;24512:2;24501:9;24497:18;24488:6;24444:72;:::i;:::-;24191:332;;;;;:::o;24529:137::-;24583:5;24614:6;24608:13;24599:22;;24630:30;24654:5;24630:30;:::i;:::-;24529:137;;;;:::o;24672:345::-;24739:6;24788:2;24776:9;24767:7;24763:23;24759:32;24756:119;;;24794:79;;:::i;:::-;24756:119;24914:1;24939:61;24992:7;24983:6;24972:9;24968:22;24939:61;:::i;:::-;24929:71;;24885:125;24672:345;;;;:::o;25023:225::-;25163:34;25159:1;25151:6;25147:14;25140:58;25232:8;25227:2;25219:6;25215:15;25208:33;25023:225;:::o;25254:366::-;25396:3;25417:67;25481:2;25476:3;25417:67;:::i;:::-;25410:74;;25493:93;25582:3;25493:93;:::i;:::-;25611:2;25606:3;25602:12;25595:19;;25254:366;;;:::o;25626:419::-;25792:4;25830:2;25819:9;25815:18;25807:26;;25879:9;25873:4;25869:20;25865:1;25854:9;25850:17;25843:47;25907:131;26033:4;25907:131;:::i;:::-;25899:139;;25626:419;;;:::o;26051:223::-;26191:34;26187:1;26179:6;26175:14;26168:58;26260:6;26255:2;26247:6;26243:15;26236:31;26051:223;:::o;26280:366::-;26422:3;26443:67;26507:2;26502:3;26443:67;:::i;:::-;26436:74;;26519:93;26608:3;26519:93;:::i;:::-;26637:2;26632:3;26628:12;26621:19;;26280:366;;;:::o;26652:419::-;26818:4;26856:2;26845:9;26841:18;26833:26;;26905:9;26899:4;26895:20;26891:1;26880:9;26876:17;26869:47;26933:131;27059:4;26933:131;:::i;:::-;26925:139;;26652:419;;;:::o;27077:221::-;27217:34;27213:1;27205:6;27201:14;27194:58;27286:4;27281:2;27273:6;27269:15;27262:29;27077:221;:::o;27304:366::-;27446:3;27467:67;27531:2;27526:3;27467:67;:::i;:::-;27460:74;;27543:93;27632:3;27543:93;:::i;:::-;27661:2;27656:3;27652:12;27645:19;;27304:366;;;:::o;27676:419::-;27842:4;27880:2;27869:9;27865:18;27857:26;;27929:9;27923:4;27919:20;27915:1;27904:9;27900:17;27893:47;27957:131;28083:4;27957:131;:::i;:::-;27949:139;;27676:419;;;:::o;28101:224::-;28241:34;28237:1;28229:6;28225:14;28218:58;28310:7;28305:2;28297:6;28293:15;28286:32;28101:224;:::o;28331:366::-;28473:3;28494:67;28558:2;28553:3;28494:67;:::i;:::-;28487:74;;28570:93;28659:3;28570:93;:::i;:::-;28688:2;28683:3;28679:12;28672:19;;28331:366;;;:::o;28703:419::-;28869:4;28907:2;28896:9;28892:18;28884:26;;28956:9;28950:4;28946:20;28942:1;28931:9;28927:17;28920:47;28984:131;29110:4;28984:131;:::i;:::-;28976:139;;28703:419;;;:::o;29128:222::-;29268:34;29264:1;29256:6;29252:14;29245:58;29337:5;29332:2;29324:6;29320:15;29313:30;29128:222;:::o;29356:366::-;29498:3;29519:67;29583:2;29578:3;29519:67;:::i;:::-;29512:74;;29595:93;29684:3;29595:93;:::i;:::-;29713:2;29708:3;29704:12;29697:19;;29356:366;;;:::o;29728:419::-;29894:4;29932:2;29921:9;29917:18;29909:26;;29981:9;29975:4;29971:20;29967:1;29956:9;29952:17;29945:47;30009:131;30135:4;30009:131;:::i;:::-;30001:139;;29728:419;;;:::o;30153:228::-;30293:34;30289:1;30281:6;30277:14;30270:58;30362:11;30357:2;30349:6;30345:15;30338:36;30153:228;:::o;30387:366::-;30529:3;30550:67;30614:2;30609:3;30550:67;:::i;:::-;30543:74;;30626:93;30715:3;30626:93;:::i;:::-;30744:2;30739:3;30735:12;30728:19;;30387:366;;;:::o;30759:419::-;30925:4;30963:2;30952:9;30948:18;30940:26;;31012:9;31006:4;31002:20;30998:1;30987:9;30983:17;30976:47;31040:131;31166:4;31040:131;:::i;:::-;31032:139;;30759:419;;;:::o;31184:177::-;31324:29;31320:1;31312:6;31308:14;31301:53;31184:177;:::o;31367:366::-;31509:3;31530:67;31594:2;31589:3;31530:67;:::i;:::-;31523:74;;31606:93;31695:3;31606:93;:::i;:::-;31724:2;31719:3;31715:12;31708:19;;31367:366;;;:::o;31739:419::-;31905:4;31943:2;31932:9;31928:18;31920:26;;31992:9;31986:4;31982:20;31978:1;31967:9;31963:17;31956:47;32020:131;32146:4;32020:131;:::i;:::-;32012:139;;31739:419;;;:::o;32164:176::-;32304:28;32300:1;32292:6;32288:14;32281:52;32164:176;:::o;32346:366::-;32488:3;32509:67;32573:2;32568:3;32509:67;:::i;:::-;32502:74;;32585:93;32674:3;32585:93;:::i;:::-;32703:2;32698:3;32694:12;32687:19;;32346:366;;;:::o;32718:419::-;32884:4;32922:2;32911:9;32907:18;32899:26;;32971:9;32965:4;32961:20;32957:1;32946:9;32942:17;32935:47;32999:131;33125:4;32999:131;:::i;:::-;32991:139;;32718:419;;;:::o;33143:233::-;33182:3;33205:24;33223:5;33205:24;:::i;:::-;33196:33;;33251:66;33244:5;33241:77;33238:103;;33321:18;;:::i;:::-;33238:103;33368:1;33361:5;33357:13;33350:20;;33143:233;;;:::o;33382:173::-;33522:25;33518:1;33510:6;33506:14;33499:49;33382:173;:::o;33561:366::-;33703:3;33724:67;33788:2;33783:3;33724:67;:::i;:::-;33717:74;;33800:93;33889:3;33800:93;:::i;:::-;33918:2;33913:3;33909:12;33902:19;;33561:366;;;:::o;33933:419::-;34099:4;34137:2;34126:9;34122:18;34114:26;;34186:9;34180:4;34176:20;34172:1;34161:9;34157:17;34150:47;34214:131;34340:4;34214:131;:::i;:::-;34206:139;;33933:419;;;:::o;34358:180::-;34406:77;34403:1;34396:88;34503:4;34500:1;34493:15;34527:4;34524:1;34517:15;34544:180;34592:77;34589:1;34582:88;34689:4;34686:1;34679:15;34713:4;34710:1;34703:15;34730:114;34797:6;34831:5;34825:12;34815:22;;34730:114;;;:::o;34850:184::-;34949:11;34983:6;34978:3;34971:19;35023:4;35018:3;35014:14;34999:29;;34850:184;;;;:::o;35040:132::-;35107:4;35130:3;35122:11;;35160:4;35155:3;35151:14;35143:22;;35040:132;;;:::o;35178:108::-;35255:24;35273:5;35255:24;:::i;:::-;35250:3;35243:37;35178:108;;:::o;35292:179::-;35361:10;35382:46;35424:3;35416:6;35382:46;:::i;:::-;35460:4;35455:3;35451:14;35437:28;;35292:179;;;;:::o;35477:113::-;35547:4;35579;35574:3;35570:14;35562:22;;35477:113;;;:::o;35626:732::-;35745:3;35774:54;35822:5;35774:54;:::i;:::-;35844:86;35923:6;35918:3;35844:86;:::i;:::-;35837:93;;35954:56;36004:5;35954:56;:::i;:::-;36033:7;36064:1;36049:284;36074:6;36071:1;36068:13;36049:284;;;36150:6;36144:13;36177:63;36236:3;36221:13;36177:63;:::i;:::-;36170:70;;36263:60;36316:6;36263:60;:::i;:::-;36253:70;;36109:224;36096:1;36093;36089:9;36084:14;;36049:284;;;36053:14;36349:3;36342:10;;35750:608;;;35626:732;;;;:::o;36364:831::-;36627:4;36665:3;36654:9;36650:19;36642:27;;36679:71;36747:1;36736:9;36732:17;36723:6;36679:71;:::i;:::-;36760:80;36836:2;36825:9;36821:18;36812:6;36760:80;:::i;:::-;36887:9;36881:4;36877:20;36872:2;36861:9;36857:18;36850:48;36915:108;37018:4;37009:6;36915:108;:::i;:::-;36907:116;;37033:72;37101:2;37090:9;37086:18;37077:6;37033:72;:::i;:::-;37115:73;37183:3;37172:9;37168:19;37159:6;37115:73;:::i;:::-;36364:831;;;;;;;;:::o;37201:147::-;37302:11;37339:3;37324:18;;37201:147;;;;:::o;37354:114::-;;:::o;37474:398::-;37633:3;37654:83;37735:1;37730:3;37654:83;:::i;:::-;37647:90;;37746:93;37835:3;37746:93;:::i;:::-;37864:1;37859:3;37855:11;37848:18;;37474:398;;;:::o;37878:379::-;38062:3;38084:147;38227:3;38084:147;:::i;:::-;38077:154;;38248:3;38241:10;;37878:379;;;:::o;38263:225::-;38403:34;38399:1;38391:6;38387:14;38380:58;38472:8;38467:2;38459:6;38455:15;38448:33;38263:225;:::o;38494:366::-;38636:3;38657:67;38721:2;38716:3;38657:67;:::i;:::-;38650:74;;38733:93;38822:3;38733:93;:::i;:::-;38851:2;38846:3;38842:12;38835:19;;38494:366;;;:::o;38866:419::-;39032:4;39070:2;39059:9;39055:18;39047:26;;39119:9;39113:4;39109:20;39105:1;39094:9;39090:17;39083:47;39147:131;39273:4;39147:131;:::i;:::-;39139:139;;38866:419;;;:::o;39291:194::-;39331:4;39351:20;39369:1;39351:20;:::i;:::-;39346:25;;39385:20;39403:1;39385:20;:::i;:::-;39380:25;;39429:1;39426;39422:9;39414:17;;39453:1;39447:4;39444:11;39441:37;;;39458:18;;:::i;:::-;39441:37;39291:194;;;;:::o
Swarm Source
ipfs://c981cead949fd0e26a5841afdc90b3a6aacb3f0c6d50025d709eed1f9f735a1d
Loading...
Loading
Loading...
Loading
OVERVIEW
Dawae creates a community built on laughter and memes. DAWAE is all 'bout sharing de joy of internet culture while vibing on Ethereum.
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $3,903.16 | 0.4249 | $1,658.3 |
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.