Contract 0x0b8057C3Cc676C329c25C1d0Cd27776efA73762d

 
 
Txn Hash
Method
Block
From
To
Value
0x71148a94da63d29358c376096a1c95aabe98181dfb363901b01b2114f10904abApprove156341962022-09-28 20:22:352 hrs 36 mins ago0x19fe08a2c7ae5c3df35bbf39f9f377d884189452 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00057448 12.30432972
0x6426cabd3664a0d4886d25ea8cfdb685b6bd7d0b64554a442320d55b391596b7Transfer156285772022-09-28 1:32:4721 hrs 26 mins ago0x8dd17ec861e63566a1aa4b78be59892202f3d2e5 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00041715 12.0171376
0xea86b9dd842c7840d0231d34386bfc80b16e3873b540061cc426e06dbbe0957fApprove156250242022-09-27 13:35:351 day 9 hrs ago0xcbe395cb70fdc2dabf8fde97c98576e4c6f2b6eb IN  MEGAWEAPON: $WEAPON Token0 Ether0.00123953 26.5481675
0x5f0e50af897c52f0c9d4d7ecda0402ff4c155dc9d9e8bcabcc2129a011077455Approve156249812022-09-27 13:26:591 day 9 hrs ago0x253eb1901d73acbdcc4743197eac82110b521c80 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00115494 24.73643078
0x8b0b4f5a91598f6088ff89990dd2789be6cfd069555382c2c910bc59b90a03f3Approve156036382022-09-24 13:52:354 days 9 hrs ago0x0dae65ba8713ed40bc5b6e2c59cd56fe20dd7e5c IN  MEGAWEAPON: $WEAPON Token0 Ether0.00030495 6.53141335
0x901977e907b18488ed31e7f31e8825ab9de3be6db759d98f47582a066e3c2e1bApprove156032822022-09-24 12:41:114 days 10 hrs ago0xb2e6540940f2d37b0295fa2b97f5d3803e191c63 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00028829 6.17471669
0x2a825d3e25ea17d10748b02bac7250e003b32e537861bb90654aa2e3a5358eafApprove155996922022-09-24 0:40:234 days 22 hrs ago0xfb3e0dbf3397d0ddf5769b9b69e20fddafa0cb75 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00028794 6.16721204
0x99eabead9f580630ca8dd9ee74547ed52a27c4ccae8cacfdb22f36467c113d55Approve155972252022-09-23 16:25:475 days 6 hrs ago0x760cdeb7653561e8d405df496e7d9151bc68712c IN  MEGAWEAPON: $WEAPON Token0 Ether0.0005082 10.88468295
0x9c9ebe18ea50cf9551ce026cf69c012944ab3d0f2ec479386816fa8871b16f07Approve155968332022-09-23 15:06:355 days 7 hrs ago0x020184d4e241f04707df512eabf1cc0a11ad8db2 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00043371 9.28919957
0x261c9136addced075834fcb27e07a9a299fdc7b92c8ebf61ab98475f231b4a1bApprove155968022022-09-23 15:00:235 days 7 hrs ago0x020184d4e241f04707df512eabf1cc0a11ad8db2 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00046111 9.87605434
0xcb8be15c2a95f8af9270efc3c65d55469651c80aa3b54172c6fe977f4c812c8aApprove155967692022-09-23 14:53:475 days 8 hrs ago0x020184d4e241f04707df512eabf1cc0a11ad8db2 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00050659 10.85014954
0x7c79e2a7f4aaec5642cefd18f7f3737e8a6d166843ba5b4baa50ddae2c76e5cfApprove155962592022-09-23 13:10:475 days 9 hrs ago0xa6256d6cc647c63bed3a5b199092004601610345 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00047202 10.10977241
0xffd3310b0aea306435016405c34f4748cfa6501158acf647b567d6dd5817e867Transfer155913672022-09-22 20:47:596 days 2 hrs ago0x14931bf7b62b8cec8bb2e993f1e4f7985875ad1b IN  MEGAWEAPON: $WEAPON Token0 Ether0.00053779 15.49262268
0x815dcef37cc8627e9af2b2af38942620de30d24443eb5c22116f4624759179f0Transfer155881892022-09-22 10:08:476 days 12 hrs ago0x8dd17ec861e63566a1aa4b78be59892202f3d2e5 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00027182 7.83063144
0x788f850698bfd6119227fdfed075d63a04c298dd4d718ccef4e3ab5623098230Approve155875442022-09-22 7:59:236 days 15 hrs ago0x6e2965c8660b7239290b18cdf5e14733290cf69e IN  MEGAWEAPON: $WEAPON Token0 Ether0.00022002 4.71238409
0x8f35eb79c7bb835fc4740ce33d748d744173dc00ccadb93e0510ace8eade6d06Approve155830632022-09-21 16:54:237 days 6 hrs ago0x09cf98e50e4c169bbff86a418900d0b1e81e6389 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00073473 15.7365601
0xcee0666787a9d9c4b8a4a933e5cb17ed6c5e19cd27db077a0bec1e6ab5f33af7Transfer155783052022-09-21 0:37:237 days 22 hrs ago0x8dd17ec861e63566a1aa4b78be59892202f3d2e5 IN  MEGAWEAPON: $WEAPON Token0 Ether0.0002575 7.41823189
0x109757074b8b40cce8edd0ba523ba5d5b66b7e3e99f871172525525fe0cc5adbApprove155764202022-09-20 18:17:358 days 4 hrs ago0x308092d19c2680b590e3fac72184dbb0da4de28c IN  MEGAWEAPON: $WEAPON Token0 Ether0.00065764 14.08545604
0xc923fe00e595e5cf0f8fb95cb72a4a97394ae506ad5b3954c05fa5e2abce393fApprove155759912022-09-20 16:50:598 days 6 hrs ago0x78d9d4d2ea41249e3d22665a1db34fd4e7cad8a9 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00068636 14.70049177
0xcb2e888a3a6306577da0e21b3f55a7d5114f605d5e0b2ae68e28829c35d409ddApprove155696022022-09-19 19:21:479 days 3 hrs ago0xf2da2c8473c9a353414673300d34551e0936f765 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00154155 33.01683513
0x8557c5babfd8e32b4edfbdd911e02c59f907eb57f57026c872e9eb620e957c5cApprove155549212022-09-17 17:54:4711 days 5 hrs ago0x7cae415c0e62cf3759a03cab8ce974ee63109aed IN  MEGAWEAPON: $WEAPON Token0 Ether0.00027988 5.99463159
0xb4cad25308c76f197798ad0e02847c8b0b7ad1fb8cb10b571e04e51036c9ed29Approve155540772022-09-17 15:05:1111 days 7 hrs ago0x5e125826ce115f5923cb80ae49b31b8e204a48bd IN  MEGAWEAPON: $WEAPON Token0 Ether0.00046897 10.0445214
0xca92a9c2deed93d5b43ec7ab94fb5ca1ffbb102b8cb6657dd04cbca8d7d475cfTransfer155525352022-09-17 9:53:2311 days 13 hrs ago0x14931bf7b62b8cec8bb2e993f1e4f7985875ad1b IN  MEGAWEAPON: $WEAPON Token0 Ether0.00023578 6.79248611
0xdeb81c5e5774ce148779374bac356120b58614916ba088cc7a8afa8581444a93Approve155516642022-09-17 6:57:1111 days 16 hrs ago0x67954a24597afa7fbc76fd5325ddf6c3a65db620 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00019328 4.13981095
0x54466e05e30ae7ee13780d64a7ea450c67285c77d2e3492bd7332f8b69a58aaaApprove155489192022-09-16 21:42:5912 days 1 hr ago0x70b4ff2af0fe0ac7ea3d3d1430c3ab1b46310443 IN  MEGAWEAPON: $WEAPON Token0 Ether0.00079663 17.06222923
[ Download CSV Export 

OVERVIEW

MEGAWEAPON is a competitive P2E online game, currently in development. Players will have the opportunity to risk their staked tokens against one another in online matches to increase their earnings.

Latest 25 internal transaction
Parent Txn Hash Block From To Value
0xebc3741af8aa2b7760b350c607b2b2b32860533b33d5a5e64286512de171ba71156342402022-09-28 20:31:232 hrs 28 mins ago MEGAWEAPON: $WEAPON Token 0xd8d1e6a874a4fda4136f11b57cc65f037ab278930.00811233 Ether
0xebc3741af8aa2b7760b350c607b2b2b32860533b33d5a5e64286512de171ba71156342402022-09-28 20:31:232 hrs 28 mins ago MEGAWEAPON: $WEAPON Token 0x06d4b5995daf45cc44f11982a6c2db997aed2d480.00202808 Ether
0xebc3741af8aa2b7760b350c607b2b2b32860533b33d5a5e64286512de171ba71156342402022-09-28 20:31:232 hrs 28 mins ago Uniswap V2: Router 2 MEGAWEAPON: $WEAPON Token0.01014041 Ether
0xf048156a744501a5fc745b03d65654da7ba27f21a49b0370586d876d31edc1f5156261512022-09-27 17:22:231 day 5 hrs ago MEGAWEAPON: $WEAPON Token 0xd8d1e6a874a4fda4136f11b57cc65f037ab278930.02119602 Ether
0xf048156a744501a5fc745b03d65654da7ba27f21a49b0370586d876d31edc1f5156261512022-09-27 17:22:231 day 5 hrs ago MEGAWEAPON: $WEAPON Token 0x06d4b5995daf45cc44f11982a6c2db997aed2d480.005299 Ether
0xf048156a744501a5fc745b03d65654da7ba27f21a49b0370586d876d31edc1f5156261512022-09-27 17:22:231 day 5 hrs ago Uniswap V2: Router 2 MEGAWEAPON: $WEAPON Token0.02649503 Ether
0x50223119da2d35aa7d34d1ffe338b6df04f08c7527da5c655f799ab34f09b150156260802022-09-27 17:07:591 day 5 hrs ago MEGAWEAPON: $WEAPON Token 0xd8d1e6a874a4fda4136f11b57cc65f037ab278930.11359218 Ether
0x50223119da2d35aa7d34d1ffe338b6df04f08c7527da5c655f799ab34f09b150156260802022-09-27 17:07:591 day 5 hrs ago MEGAWEAPON: $WEAPON Token 0x06d4b5995daf45cc44f11982a6c2db997aed2d480.02839804 Ether
0x50223119da2d35aa7d34d1ffe338b6df04f08c7527da5c655f799ab34f09b150156260802022-09-27 17:07:591 day 5 hrs ago Uniswap V2: Router 2 MEGAWEAPON: $WEAPON Token0.14199022 Ether
0x85675df84bca33da54662f9a02471e51da2dbbc9c42769e3fc92eeabb079b437156252072022-09-27 14:12:111 day 8 hrs ago MEGAWEAPON: $WEAPON Token 0xd8d1e6a874a4fda4136f11b57cc65f037ab278930.05940623 Ether
0x85675df84bca33da54662f9a02471e51da2dbbc9c42769e3fc92eeabb079b437156252072022-09-27 14:12:111 day 8 hrs ago MEGAWEAPON: $WEAPON Token 0x06d4b5995daf45cc44f11982a6c2db997aed2d480.01485155 Ether
0x85675df84bca33da54662f9a02471e51da2dbbc9c42769e3fc92eeabb079b437156252072022-09-27 14:12:111 day 8 hrs ago Uniswap V2: Router 2 MEGAWEAPON: $WEAPON Token0.07425779 Ether
0x47194c126d5b9821bcc598929ee5f45a80018c0674c4925dfe81cb1cc2668a17156251982022-09-27 14:10:231 day 8 hrs ago MEGAWEAPON: $WEAPON Token 0xd8d1e6a874a4fda4136f11b57cc65f037ab278930.04974787 Ether
0x47194c126d5b9821bcc598929ee5f45a80018c0674c4925dfe81cb1cc2668a17156251982022-09-27 14:10:231 day 8 hrs ago MEGAWEAPON: $WEAPON Token 0x06d4b5995daf45cc44f11982a6c2db997aed2d480.01243696 Ether
0x47194c126d5b9821bcc598929ee5f45a80018c0674c4925dfe81cb1cc2668a17156251982022-09-27 14:10:231 day 8 hrs ago Uniswap V2: Router 2 MEGAWEAPON: $WEAPON Token0.06218484 Ether
0xf7d4bf6c2ab304de580cafb00b8aec422fefadc457226246b4d93658b5ecfadb156250392022-09-27 13:38:351 day 9 hrs ago MEGAWEAPON: $WEAPON Token 0xd8d1e6a874a4fda4136f11b57cc65f037ab278930.11030771 Ether
0xf7d4bf6c2ab304de580cafb00b8aec422fefadc457226246b4d93658b5ecfadb156250392022-09-27 13:38:351 day 9 hrs ago MEGAWEAPON: $WEAPON Token 0x06d4b5995daf45cc44f11982a6c2db997aed2d480.02757692 Ether
0xf7d4bf6c2ab304de580cafb00b8aec422fefadc457226246b4d93658b5ecfadb156250392022-09-27 13:38:351 day 9 hrs ago Uniswap V2: Router 2 MEGAWEAPON: $WEAPON Token0.13788464 Ether
0x2b0e940af303bb302842e1f41fb5f915a6a9abfea993a8a0e54ad16f17f020f8156249872022-09-27 13:28:111 day 9 hrs ago MEGAWEAPON: $WEAPON Token 0xd8d1e6a874a4fda4136f11b57cc65f037ab278930.23103473 Ether
0x2b0e940af303bb302842e1f41fb5f915a6a9abfea993a8a0e54ad16f17f020f8156249872022-09-27 13:28:111 day 9 hrs ago MEGAWEAPON: $WEAPON Token 0x06d4b5995daf45cc44f11982a6c2db997aed2d480.05775868 Ether
0x2b0e940af303bb302842e1f41fb5f915a6a9abfea993a8a0e54ad16f17f020f8156249872022-09-27 13:28:111 day 9 hrs ago Uniswap V2: Router 2 MEGAWEAPON: $WEAPON Token0.28879341 Ether
0xb1aee69f308223d4afe801d1297a9b477998fd3f4f332b4dcb6668320d33c3c0156247352022-09-27 12:37:231 day 10 hrs ago MEGAWEAPON: $WEAPON Token 0xd8d1e6a874a4fda4136f11b57cc65f037ab278930.1560759 Ether
0xb1aee69f308223d4afe801d1297a9b477998fd3f4f332b4dcb6668320d33c3c0156247352022-09-27 12:37:231 day 10 hrs ago MEGAWEAPON: $WEAPON Token 0x06d4b5995daf45cc44f11982a6c2db997aed2d480.03901897 Ether
0xb1aee69f308223d4afe801d1297a9b477998fd3f4f332b4dcb6668320d33c3c0156247352022-09-27 12:37:231 day 10 hrs ago Uniswap V2: Router 2 MEGAWEAPON: $WEAPON Token0.19509487 Ether
0x0724b64562609cd2443007e6e42a4d644622311a1f2d7db5c2c89988ae8717ff156241152022-09-27 10:32:111 day 12 hrs ago MEGAWEAPON: $WEAPON Token 0xd8d1e6a874a4fda4136f11b57cc65f037ab278930.05729145 Ether
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
WEAPON

Compiler Version
v0.8.1+commit.df193b15

Optimization Enabled:
Yes with 2000 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-04-05
*/

pragma solidity 0.8.1;


interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function removeLiquidity(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETH(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountToken, uint amountETH);
    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);
    function removeLiquidityETHWithPermit(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountToken, uint amountETH);
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);

    function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
// SPDX-License-Identifier: MIT

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function removeLiquidityETHSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external returns (uint amountETH);
    function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
        address token,
        uint liquidity,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountETH);

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IWEAPONStakable is IERC20 {
    function stakedBalanceOf(address account) external view returns (uint256);
    function getStake(address account) external view returns (uint256, uint256, uint256);

    function stake(address account, uint256 amount, uint256 unstakeTime, bool isPlayer, uint256 adjustedStake) external;
    function unstake(address account, uint256 unstakeAmount, bool isPlayer, uint256 adjustedStake) external;
    function sync(address account, uint256 adjustedStake) external;
    function toggleStaking() external;
}


contract WEAPON is Context, IWEAPONStakable {

    bool private _swapping;

    bool public stakingEnabled = false;

    bool public mintLocked = true;
    uint public mintLockTime = 1643673599;

    mapping (address => bool) private _isPool;

    mapping (address => uint256) private _balances;
    mapping (address => uint256) private _stakedBalances;
    mapping (address => uint256) private _stakeExpireTime;
    mapping (address => uint256) private _stakeBeginTime;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply = 10 * 10**6 * 10**9; 

    string private constant _name = "Megaweapon";
    string private constant _symbol = "$WEAPON";
    string private constant _version = "2";
    uint8 private constant _decimals = 9;
    uint8 private _buyTax = 10;
    uint8 private _sellTax = 10;
    uint8 private _stakingRewards = 20;

    address immutable private _lp;
    address payable immutable private _vault;
    address payable immutable private _multiSig;
    address payable private _stakingContract;
    address private constant _uniRouter = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;

    IUniswapV2Router02 private UniV2Router;

    constructor(address vault, address multiSig) {
        require(vault != address(0) && multiSig != address(0), "$WEAPON: cannot assign privilege to zero address");
        _lp = _msgSender();
        _balances[_msgSender()] = _totalSupply;
        UniV2Router = IUniswapV2Router02(_uniRouter);
        _vault = payable(vault);
        _multiSig = payable(multiSig);
    }

    event Stake(address indexed staker, uint256 amount, uint256 stakeTime, uint256 stakeExpire);
    event Unstake(address indexed staker, uint256 amount, uint256 stakeAmountRemaining);
    event Adjust(address indexed staker, uint256 oldStake, uint256 newStake);
    event ChangeBuyTax(uint256 prevTax, uint256 newTax);
    event ChangeSellTax(uint256 prevTax, uint256 newTax);
    event ChangeRewards(uint256 prevRew, uint256 newRew);
    event ToggleStaking(bool enabled);
    event SetStakingContract(address stakingCon);
    event SetPool(address isNowPool);
    event FailsafeTokenSwap(uint256 amount);
    event FailsafeETHTransfer(uint256 amount);
    event FreezeMint(uint256 mintLockTime);
    event ThawMint(uint256 mintLockTime);

    modifier onlyMultiSig {
        require (_msgSender() == _multiSig, "$WEAPON: unauthorized");
        _;
    }

    modifier lockSwap {
        _swapping = true;
        _;
        _swapping = false;
    }

    function name() external pure returns (string memory) {
        return _name;
    }

    function symbol() external pure returns (string memory) {
        return _symbol;
    }

    function version() external pure returns (string memory) {
        return _version;
    }

    function decimals() external pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) external view override returns (uint256) {
        return _balances[account];
    }

    function stakedBalanceOf(address account) external view override returns (uint256) {
        return _stakedBalances[account];    
    }

    function getStake(address account) external view override returns (uint256, uint256, uint256) {
        if (stakingEnabled && _stakedBalances[account] > 0)
            return (_stakedBalances[account], _stakeBeginTime[account], _stakeExpireTime[account]);
        else return (0,0,0);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) external view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require (_allowances[sender][_msgSender()] >= amount, "ERC20: transfer amount exceeds allowance");
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(_balances[sender] >= amount, "ERC20: transfer exceeds balance");
        require(amount > 0, "$WEAPON: cannot transfer zero");
        require(!(_isPool[sender] && _isPool[recipient]), "$WEAPON: cannot transfer pool to pool");

        uint256 taxedAmount = amount;
        uint256 tax = 0;
    
        if (_isPool[sender] == true && recipient != _lp && recipient != _uniRouter) {
            tax = amount * _buyTax / 100;
            taxedAmount = amount - tax;
            _balances[address(this)] += tax;
        }
        if (_isPool[recipient] == true && sender != _lp && sender != _uniRouter){ 
            tax = amount * _sellTax / 100;
            taxedAmount = amount - tax;
            _balances[address(this)] += tax;

            if (_balances[address(this)] > 100 * 10**9 && !_swapping) {
                uint256 _swapAmount = _balances[address(this)];
                if (_swapAmount > amount * 40 / 100) _swapAmount = amount * 40 / 100;
                _tokensToETH(_swapAmount);
            }
        }
    
        _balances[recipient] += taxedAmount;
        _balances[sender] -= amount;

        emit Transfer(sender, recipient, amount);
    }

    function stake(address account, uint256 amount, uint256 unstakeTime, bool isPlayer, uint256 adjustedStake) external override {
        require (_msgSender() == _stakingContract, "$WEAPON: must stake through staking contract");
        require (account != address(0), "$WEAPON: cannot stake zero address");
        require (stakingEnabled, "$WEAPON: staking currently not enabled"); 

        if (isPlayer)
        { 
            if (_stakedBalances[account] != adjustedStake){
                emit Adjust(account, _stakedBalances[account], adjustedStake);
                _stakedBalances[account] = adjustedStake;
            }
        }

        require (unstakeTime > (block.timestamp + 86100),"$WEAPON: minimum stake time 23 hours 55 min"); 
        require (unstakeTime >= _stakeExpireTime[account], "$WEAPON: new stake time cannot be shorter");
        require (_balances[account] >= amount, "$WEAPON: stake exceeds available balance");
        if (_stakedBalances[account] == 0) require (amount > 0, "$WEAPON: cannot stake 0 tokens");

        _balances[account] = _balances[account] - amount;
        _balances[_stakingContract] = _balances[_stakingContract] + amount;
        _stakedBalances[account] = _stakedBalances[account] + amount;

        _stakeExpireTime[account] = unstakeTime;
        _stakeBeginTime[account] = block.timestamp;

        emit Stake(account, amount, block.timestamp, unstakeTime);
    }

    function unstake(address account, uint256 unstakeAmount, bool isPlayer, uint256 adjustedStake) external override {
        require (_msgSender() == _stakingContract, "$WEAPON: must unstake through staking contract");
        require (account != address(0), "$WEAPON: cannot unstake zero address");
        require(unstakeAmount > 0, "$WEAPON: cannot unstake zero tokens");

        if (isPlayer)
        { 
            if (_stakedBalances[account] != adjustedStake){
                emit Adjust(account, _stakedBalances[account], adjustedStake);
                _stakedBalances[account] = adjustedStake;
            }
        }

        require(unstakeAmount <= _stakedBalances[account], "$WEAPON: unstake exceeds staked balance");
        
        _stakedBalances[account] = _stakedBalances[account] - unstakeAmount;
        _balances[account] = _balances[account] + unstakeAmount;
        _balances[_stakingContract] = _balances[_stakingContract] - unstakeAmount;
        
        emit Unstake(account, unstakeAmount, _stakedBalances[account]);
    }

    function sync(address account, uint256 adjustedStake) external override {
        require (_msgSender() == _stakingContract, "$WEAPON: unauthorized");
        require (account != address(0), "$WEAPON: cannot sync zero address");
        emit Adjust(account, _stakedBalances[account], adjustedStake);
        _stakedBalances[account] = adjustedStake;
    }

    function freezeMint(uint256 timestamp) external onlyMultiSig {
        require (timestamp > mintLockTime, "$WEAPON: cannot reduce lock time");
        mintLocked = true;
        mintLockTime = timestamp;

        emit FreezeMint(mintLockTime);
    }

    function thawMint() external onlyMultiSig {
        require (block.timestamp >= mintLockTime, "$WEAPON: still frozen");
        mintLocked = false;
        mintLockTime = block.timestamp + 86400;

        emit ThawMint(mintLockTime);
    } 

    function mint(uint256 amount, address recipient) external onlyMultiSig {
        require (block.timestamp > mintLockTime && mintLocked == false, "$WEAPON: still frozen");
        _totalSupply = _totalSupply + amount;
        _balances[recipient] = _balances[recipient] + amount;

        emit Transfer(address(0), recipient, amount);
    }

    function toggleStaking() external override onlyMultiSig {
        require (_stakingContract != address(0), "$WEAPON: staking contract not set");
        if (stakingEnabled == true) stakingEnabled = false;
        else stakingEnabled = true;
        emit ToggleStaking(stakingEnabled);
    }

    function setStakingContract(address addr) external onlyMultiSig {
        require(addr != address(0), "$WEAPON: cannot be zero address");
        _stakingContract = payable(addr);
        emit SetStakingContract(addr);
    }

    function getStakingContract() external view returns (address) {
        return _stakingContract;
    }

    function setBuyTax(uint8 newTax) external onlyMultiSig {
        require (newTax <= 10, "$WEAPON: tax cannot exceed 10%");
        emit ChangeBuyTax(_buyTax, newTax);
        _buyTax = newTax;
    }

    function setSellTax(uint8 newTax) external onlyMultiSig {
        require (newTax <= 10, "$WEAPON: tax cannot exceed 10%");
        emit ChangeSellTax(_sellTax, newTax);
        _sellTax = newTax;
    }

    function setRewards(uint8 newRewards) external onlyMultiSig {
        require (newRewards >= 20, "$WEAPON: rewards minimum 20%");
        require (newRewards <= 100, "$WEAPON: rewards maximum 100%");
        emit ChangeRewards(_stakingRewards, newRewards);
        _stakingRewards = newRewards;
    }

    function setPool(address addr) external onlyMultiSig {
        require(addr != address(0), "$WEAPON: zero address cannot be pool");
        _isPool[addr] = true;
        emit SetPool(addr);
    }
    
    function isPool(address addr) external view returns (bool){
        return _isPool[addr];
    }

    function _transferETH(uint256 amount, address payable _to) private {
        (bool sent, bytes memory data) = _to.call{value: amount}("");
        require(sent, "Failed to send Ether");
    }

    function _tokensToETH(uint256 amount) private lockSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = UniV2Router.WETH();

        _approve(address(this), _uniRouter, amount);
        UniV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(amount, 0, path, address(this), block.timestamp);

        if (address(this).balance > 0) 
        {
            if (stakingEnabled) {
                uint stakingShare = address(this).balance * _stakingRewards / 100;
                _transferETH(stakingShare, _stakingContract);
            }
            _transferETH(address(this).balance, _vault);
        }
    }
    
    function failsafeTokenSwap(uint256 amount) external onlyMultiSig {
        _tokensToETH(amount);
        emit FailsafeTokenSwap(amount);
    }

    function failsafeETHtransfer() external onlyMultiSig {
        emit FailsafeETHTransfer(address(this).balance);
        (bool sent, bytes memory data) = _msgSender().call{value: address(this).balance}("");
        require(sent, "Failed to send Ether");
    }

    receive() external payable {}

    fallback() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"vault","type":"address"},{"internalType":"address","name":"multiSig","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"oldStake","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newStake","type":"uint256"}],"name":"Adjust","type":"event"},{"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":"uint256","name":"prevTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"ChangeBuyTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"prevRew","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newRew","type":"uint256"}],"name":"ChangeRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"prevTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTax","type":"uint256"}],"name":"ChangeSellTax","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FailsafeETHTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FailsafeTokenSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"mintLockTime","type":"uint256"}],"name":"FreezeMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"isNowPool","type":"address"}],"name":"SetPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"stakingCon","type":"address"}],"name":"SetStakingContract","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakeTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakeExpire","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"mintLockTime","type":"uint256"}],"name":"ThawMint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ToggleStaking","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"stakeAmountRemaining","type":"uint256"}],"name":"Unstake","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"failsafeETHtransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"failsafeTokenSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"freezeMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakingContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintLockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint8","name":"newTax","type":"uint8"}],"name":"setBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newRewards","type":"uint8"}],"name":"setRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newTax","type":"uint8"}],"name":"setSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setStakingContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"unstakeTime","type":"uint256"},{"internalType":"bool","name":"isPlayer","type":"bool"},{"internalType":"uint256","name":"adjustedStake","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"stakedBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stakingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"adjustedStake","type":"uint256"}],"name":"sync","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"thawMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleStaking","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":"account","type":"address"},{"internalType":"uint256","name":"unstakeAmount","type":"uint256"},{"internalType":"bool","name":"isPlayer","type":"bool"},{"internalType":"uint256","name":"adjustedStake","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"stateMutability":"payable","type":"receive"}]

60e06040526000805462ffff001916620100001790556361f877ff600155662386f26fc100006008556009805462140000610a0060ff19909216600a1761ff0019169190911762ff000019161790553480156200005b57600080fd5b5060405162003022380380620030228339810160408190526200007e9162000172565b6001600160a01b038216158015906200009f57506001600160a01b03811615155b620000c75760405162461bcd60e51b8152600401620000be90620001a9565b60405180910390fd5b620000d162000151565b60601b6001600160601b03191660805260085460036000620000f262000151565b6001600160a01b03168152602081019190915260400160002055600a80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556001600160601b0319606092831b811660a052911b1660c052620001f9565b3390565b80516001600160a01b03811681146200016d57600080fd5b919050565b6000806040838503121562000185578182fd5b620001908362000155565b9150620001a06020840162000155565b90509250929050565b60208082526030908201527f24574541504f4e3a2063616e6e6f742061737369676e2070726976696c65676560408201526f20746f207a65726f206164647265737360801b606082015260800190565b60805160601c60a05160601c60c05160601c612da36200027f600039600081816105f00152818161081e01528181610923015281816109ff01528181610b3401528181610cb501528181610d7a01528181610ecf01528181610f95015281816115f701526116c101526000611f86015260008181611a800152611b600152612da36000f3fe6080604052600436106101dc5760003560e01c80637a76646011610102578063a2bad69211610095578063dd62ed3e11610064578063dd62ed3e14610525578063df3c3a3014610545578063e3ed39951461055a578063ef4fcafa1461057a576101e3565b8063a2bad692146104a5578063a9059cbb146104c5578063bb11c627146104e5578063d8fda58d14610505576101e3565b806394bf804d116100d157806394bf804d1461043b57806395d89b411461045b578063962b5df9146104705780639dd373b914610485576101e3565b80637a766460146103b55780638e68dce4146103e4578063938caa381461040657806393fea3f814610426576101e3565b8063313ce5671161017a57806354fd4d501161014957806354fd4d50146103405780635b16ebb7146103555780636081752b1461037557806370a0823114610395576101e3565b8063313ce567146102c95780633b8105b3146102eb5780634437152a1461030057806349abdc1414610320576101e3565b806316765391116101b6578063167653911461025257806318160ddd1461027f5780631cfff51b1461029457806323b872dd146102a9576101e3565b806306fdde03146101e5578063095ea7b3146102105780631023231c1461023d576101e3565b366101e357005b005b3480156101f157600080fd5b506101fa61059a565b6040516102079190612241565b60405180910390f35b34801561021c57600080fd5b5061023061022b366004612103565b6105d1565b6040516102079190612236565b34801561024957600080fd5b506101e36105ee565b34801561025e57600080fd5b5061027261026d36600461204c565b61070f565b6040516102079190612bf4565b34801561028b57600080fd5b5061027261072e565b3480156102a057600080fd5b50610230610734565b3480156102b557600080fd5b506102306102c43660046120c3565b610742565b3480156102d557600080fd5b506102de610817565b6040516102079190612c91565b3480156102f757600080fd5b506101e361081c565b34801561030c57600080fd5b506101e361031b36600461204c565b610921565b34801561032c57600080fd5b506101e361033b3660046121fe565b6109fd565b34801561034c57600080fd5b506101fa610add565b34801561036157600080fd5b5061023061037036600461204c565b610b14565b34801561038157600080fd5b506101e36103903660046121fe565b610b32565b3480156103a157600080fd5b506102726103b036600461204c565b610c05565b3480156103c157600080fd5b506103d56103d036600461204c565b610c20565b60405161020793929190612c7b565b3480156103f057600080fd5b506103f9610c9d565b6040516102079190612222565b34801561041257600080fd5b506101e36104213660046121c2565b610cb3565b34801561043257600080fd5b50610272610d72565b34801561044757600080fd5b506101e36104563660046121da565b610d78565b34801561046757600080fd5b506101fa610e96565b34801561047c57600080fd5b506101e3610ecd565b34801561049157600080fd5b506101e36104a036600461204c565b610f93565b3480156104b157600080fd5b506101e36104c0366004612173565b61107a565b3480156104d157600080fd5b506102306104e0366004612103565b611389565b3480156104f157600080fd5b506101e361050036600461212e565b61139d565b34801561051157600080fd5b506101e36105203660046121c2565b6115f5565b34801561053157600080fd5b5061027261054036600461208b565b611685565b34801561055157600080fd5b506102306116b0565b34801561056657600080fd5b506101e36105753660046121fe565b6116bf565b34801561058657600080fd5b506101e3610595366004612103565b6117c5565b60408051808201909152600a81527f4d656761776561706f6e00000000000000000000000000000000000000000000602082015290565b60006105e56105de61189a565b848461189e565b50600192915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661062061189a565b6001600160a01b03161461064f5760405162461bcd60e51b81526004016106469061280a565b60405180910390fd5b7f1f64c685e757b0c83e841acaf1a5ce47a4fb3aa43f46bdc8217f4a7a5e8d7ed84760405161067e9190612bf4565b60405180910390a160008061069161189a565b6001600160a01b0316476040516106a79061221f565b60006040518083038185875af1925050503d80600081146106e4576040519150601f19603f3d011682016040523d82523d6000602084013e6106e9565b606091505b50915091508161070b5760405162461bcd60e51b8152600401610646906124a3565b5050565b6001600160a01b0381166000908152600460205260409020545b919050565b60085490565b600054610100900460ff1681565b6001600160a01b038316600090815260076020526040812082908261076561189a565b6001600160a01b03166001600160a01b031681526020019081526020016000205410156107a45760405162461bcd60e51b8152600401610646906127ad565b6107af848484611952565b61080d846107bb61189a565b6001600160a01b038716600090815260076020526040812086916107dd61189a565b6001600160a01b03166001600160a01b03168152602001908152602001600020546108089190612d28565b61189e565b5060019392505050565b600990565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661084e61189a565b6001600160a01b0316146108745760405162461bcd60e51b81526004016106469061280a565b600954630100000090046001600160a01b03166108a35760405162461bcd60e51b815260040161064690612b3a565b60005460ff610100909104161515600114156108c9576000805461ff00191690556108d9565b6000805461ff0019166101001790555b7f39c3c37112aa9f1b74ce99befb140716c3f946730c4b9d9f4939c003ce446c77600060019054906101000a900460ff166040516109179190612236565b60405180910390a1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661095361189a565b6001600160a01b0316146109795760405162461bcd60e51b81526004016106469061280a565b6001600160a01b03811661099f5760405162461bcd60e51b815260040161064690612841565b6001600160a01b03811660009081526002602052604090819020805460ff19166001179055517f67816c9262630d6052ccaada1732fda377aa9e9abb3bc91cfd887a016a18a43a906109f2908390612222565b60405180910390a150565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610a2f61189a565b6001600160a01b031614610a555760405162461bcd60e51b81526004016106469061280a565b600a8160ff161115610a795760405162461bcd60e51b815260040161064690612958565b7f6d9880198c1159f52707b61a6882da80275b14b90bd9e5f332b3ed9d39eeb42c600960019054906101000a900460ff1682604051610ab9929190612c9f565b60405180910390a16009805460ff9092166101000261ff0019909216919091179055565b60408051808201909152600181527f3200000000000000000000000000000000000000000000000000000000000000602082015290565b6001600160a01b031660009081526002602052604090205460ff1690565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b6461189a565b6001600160a01b031614610b8a5760405162461bcd60e51b81526004016106469061280a565b600a8160ff161115610bae5760405162461bcd60e51b815260040161064690612958565b6009546040517fae004c20b38d4d71a0cf8304ec672eacfd34dedc962fa7e5e82d9e55ac7444c091610be79160ff909116908490612c9f565b60405180910390a16009805460ff191660ff92909216919091179055565b6001600160a01b031660009081526003602052604090205490565b6000805481908190610100900460ff168015610c5357506001600160a01b03841660009081526004602052604090205415155b15610c8c575050506001600160a01b03811660009081526004602090815260408083205460068352818420546005909352922054610c96565b5060009150819050805b9193909250565b600954630100000090046001600160a01b031690565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ce561189a565b6001600160a01b031614610d0b5760405162461bcd60e51b81526004016106469061280a565b6001548111610d2c5760405162461bcd60e51b815260040161064690612400565b6000805462ff000019166201000017905560018190556040517f22d94bc7514daebac7d4ba58d9c133477215e3ca7d28fdc673301c1473345ea2906109f2908390612bf4565b60015481565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610daa61189a565b6001600160a01b031614610dd05760405162461bcd60e51b81526004016106469061280a565b60015442118015610dea575060005462010000900460ff16155b610e065760405162461bcd60e51b8152600401610646906125f1565b81600854610e149190612cb3565b6008556001600160a01b038116600090815260036020526040902054610e3b908390612cb3565b6001600160a01b0382166000818152600360205260408082209390935591519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e8a908690612bf4565b60405180910390a35050565b60408051808201909152600781527f24574541504f4e00000000000000000000000000000000000000000000000000602082015290565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610eff61189a565b6001600160a01b031614610f255760405162461bcd60e51b81526004016106469061280a565b600154421015610f475760405162461bcd60e51b8152600401610646906125f1565b6000805462ff000019169055610f604262015180612cb3565b60018190556040517f69f59bb2e123082e696cc484745189309eda69163011dce939f71d19c714b3dc9161091791612bf4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fc561189a565b6001600160a01b031614610feb5760405162461bcd60e51b81526004016106469061280a565b6001600160a01b0381166110115760405162461bcd60e51b815260040161064690612719565b600980547fffffffffffffffffff0000000000000000000000000000000000000000ffffff1663010000006001600160a01b038416021790556040517f77da29da4ba6bf0a49e709076c8fc946886ea566b52a1429ac484d59f879be37906109f2908390612222565b600954630100000090046001600160a01b031661109561189a565b6001600160a01b0316146110bb5760405162461bcd60e51b815260040161064690612b97565b6001600160a01b0385166110e15760405162461bcd60e51b815260040161064690612594565b600054610100900460ff166111085760405162461bcd60e51b815260040161064690612628565b811561119b576001600160a01b038516600090815260046020526040902054811461119b576001600160a01b038516600081815260046020526040908190205490517f5cb6b338abc32929561a7c976045b80ae6af37304b361e7d9f5076e6cb4569e791611177918590612c6d565b60405180910390a26001600160a01b03851660009081526004602052604090208190555b6111a84262015054612cb3565b83116111c65760405162461bcd60e51b8152600401610646906124da565b6001600160a01b0385166000908152600560205260409020548310156111fe5760405162461bcd60e51b81526004016106469061230f565b6001600160a01b0385166000908152600360205260409020548411156112365760405162461bcd60e51b815260040161064690612a80565b6001600160a01b03851660009081526004602052604090205461127357600084116112735760405162461bcd60e51b81526004016106469061236c565b6001600160a01b038516600090815260036020526040902054611297908590612d28565b6001600160a01b038087166000908152600360205260408082209390935560095463010000009004909116815220546112d1908590612cb3565b6009546001600160a01b0363010000009091048116600090815260036020908152604080832094909455918816815260049091522054611312908590612cb3565b6001600160a01b03861660008181526004602090815260408083209490945560058152838220879055600690528290204290819055915190917ff556991011e831bcfac4f406d547e5e32cdd98267efab83935230d5f8d02c4469161137a9188918890612c7b565b60405180910390a25050505050565b60006105e561139661189a565b8484611952565b600954630100000090046001600160a01b03166113b861189a565b6001600160a01b0316146113de5760405162461bcd60e51b815260040161064690612537565b6001600160a01b0384166114045760405162461bcd60e51b815260040161064690612750565b600083116114245760405162461bcd60e51b815260040161064690612add565b81156114b7576001600160a01b03841660009081526004602052604090205481146114b7576001600160a01b038416600081815260046020526040908190205490517f5cb6b338abc32929561a7c976045b80ae6af37304b361e7d9f5076e6cb4569e791611493918590612c6d565b60405180910390a26001600160a01b03841660009081526004602052604090208190555b6001600160a01b0384166000908152600460205260409020548311156114ef5760405162461bcd60e51b815260040161064690612685565b6001600160a01b038416600090815260046020526040902054611513908490612d28565b6001600160a01b038516600090815260046020908152604080832093909355600390522054611543908490612cb3565b6001600160a01b0380861660009081526003602052604080822093909355600954630100000090049091168152205461157d908490612d28565b6009546001600160a01b0363010000009091048116600090815260036020908152604080832094909455918716808252600490925282902054915190917ff960dbf9e5d0682f7a298ed974e33a28b4464914b7a2bfac12ae419a9afeb280916115e7918791612c6d565b60405180910390a250505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661162761189a565b6001600160a01b03161461164d5760405162461bcd60e51b81526004016106469061280a565b61165681611d46565b7f8ae3c994b30b13928ab97e09c40c6723fd78cb4c761449737ecc51cb1f91d877816040516109f29190612bf4565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b60005462010000900460ff1681565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166116f161189a565b6001600160a01b0316146117175760405162461bcd60e51b81526004016106469061280a565b60148160ff16101561173b5760405162461bcd60e51b81526004016106469061246c565b60648160ff16111561175f5760405162461bcd60e51b815260040161064690612a49565b7f717d38a0af5ed15f7369104a29a63331d40ff3543f1dbc8ad39b22689f88b517600960029054906101000a900460ff168260405161179f929190612c9f565b60405180910390a16009805460ff909216620100000262ff000019909216919091179055565b600954630100000090046001600160a01b03166117e061189a565b6001600160a01b0316146118065760405162461bcd60e51b81526004016106469061280a565b6001600160a01b03821661182c5760405162461bcd60e51b81526004016106469061289e565b6001600160a01b038216600081815260046020526040908190205490517f5cb6b338abc32929561a7c976045b80ae6af37304b361e7d9f5076e6cb4569e791611876918590612c6d565b60405180910390a26001600160a01b03909116600090815260046020526040902055565b3390565b6001600160a01b0383166118c45760405162461bcd60e51b81526004016106469061298f565b6001600160a01b0382166118ea5760405162461bcd60e51b8152600401610646906123a3565b6001600160a01b0380841660008181526007602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590611945908590612bf4565b60405180910390a3505050565b6001600160a01b0383166119785760405162461bcd60e51b8152600401610646906128fb565b6001600160a01b03821661199e5760405162461bcd60e51b8152600401610646906122b2565b6001600160a01b0383166000908152600360205260409020548111156119d65760405162461bcd60e51b8152600401610646906126e2565b600081116119f65760405162461bcd60e51b815260040161064690612435565b6001600160a01b03831660009081526002602052604090205460ff168015611a3657506001600160a01b03821660009081526002602052604090205460ff165b15611a535760405162461bcd60e51b8152600401610646906129ec565b6001600160a01b03831660009081526002602052604081205482919060ff1615156001148015611ab557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b031614155b8015611ade57506001600160a01b038416737a250d5630b4cf539739df2c5dacb4c659f2488d14155b15611b3657600954606490611af69060ff1685612ceb565b611b009190612ccb565b9050611b0c8184612d28565b30600090815260036020526040812080549294508392909190611b30908490612cb3565b90915550505b6001600160a01b03841660009081526002602052604090205460ff1615156001148015611b9557507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031614155b8015611bbe57506001600160a01b038516737a250d5630b4cf539739df2c5dacb4c659f2488d14155b15611c9857600954606490611bdb90610100900460ff1685612ceb565b611be59190612ccb565b9050611bf18184612d28565b30600090815260036020526040812080549294508392909190611c15908490612cb3565b90915550503060009081526003602052604090205464174876e800108015611c40575060005460ff16155b15611c9857306000908152600360205260409020546064611c62856028612ceb565b611c6c9190612ccb565b811115611c8d576064611c80856028612ceb565b611c8a9190612ccb565b90505b611c9681611d46565b505b6001600160a01b03841660009081526003602052604081208054849290611cc0908490612cb3565b90915550506001600160a01b03851660009081526003602052604081208054859290611ced908490612d28565b92505081905550836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611d379190612bf4565b60405180910390a35050505050565b6000805460ff1916600117815560408051600280825260608201835290916020830190803683370190505090503081600081518110611d9557634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600a54604080517fad5c46480000000000000000000000000000000000000000000000000000000081529051919093169263ad5c4648926004808301939192829003018186803b158015611e0257600080fd5b505afa158015611e16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3a919061206f565b81600181518110611e5b57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050611e9a30737a250d5630b4cf539739df2c5dacb4c659f2488d8461189e565b600a546040517f791ac9470000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063791ac94790611eec908590600090869030904290600401612bfd565b600060405180830381600087803b158015611f0657600080fd5b505af1158015611f1a573d6000803e3d6000fd5b505050506000471115611faa57600054610100900460ff1615611f8057600954600090606490611f539062010000900460ff1647612ceb565b611f5d9190612ccb565b9050611f7e81600960039054906101000a90046001600160a01b0316611fb8565b505b611faa477f0000000000000000000000000000000000000000000000000000000000000000611fb8565b50506000805460ff19169055565b600080826001600160a01b031684604051611fd29061221f565b60006040518083038185875af1925050503d806000811461200f576040519150601f19603f3d011682016040523d82523d6000602084013e612014565b606091505b5091509150816120365760405162461bcd60e51b8152600401610646906124a3565b50505050565b8035801515811461072957600080fd5b60006020828403121561205d578081fd5b813561206881612d55565b9392505050565b600060208284031215612080578081fd5b815161206881612d55565b6000806040838503121561209d578081fd5b82356120a881612d55565b915060208301356120b881612d55565b809150509250929050565b6000806000606084860312156120d7578081fd5b83356120e281612d55565b925060208401356120f281612d55565b929592945050506040919091013590565b60008060408385031215612115578182fd5b823561212081612d55565b946020939093013593505050565b60008060008060808587031215612143578081fd5b843561214e81612d55565b9350602085013592506121636040860161203c565b9396929550929360600135925050565b600080600080600060a0868803121561218a578081fd5b853561219581612d55565b945060208601359350604086013592506121b16060870161203c565b949793965091946080013592915050565b6000602082840312156121d3578081fd5b5035919050565b600080604083850312156121ec578182fd5b8235915060208301356120b881612d55565b60006020828403121561220f578081fd5b813560ff81168114612068578182fd5b90565b6001600160a01b0391909116815260200190565b901515815260200190565b6000602080835283518082850152825b8181101561226d57858101830151858201604001528201612251565b8181111561227e5783604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201527f6573730000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526029908201527f24574541504f4e3a206e6577207374616b652074696d652063616e6e6f74206260408201527f652073686f727465720000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f24574541504f4e3a2063616e6e6f74207374616b65203020746f6b656e730000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252818101527f24574541504f4e3a2063616e6e6f7420726564756365206c6f636b2074696d65604082015260600190565b6020808252601d908201527f24574541504f4e3a2063616e6e6f74207472616e73666572207a65726f000000604082015260600190565b6020808252601c908201527f24574541504f4e3a2072657761726473206d696e696d756d2032302500000000604082015260600190565b60208082526014908201527f4661696c656420746f2073656e64204574686572000000000000000000000000604082015260600190565b6020808252602b908201527f24574541504f4e3a206d696e696d756d207374616b652074696d65203233206860408201527f6f757273203535206d696e000000000000000000000000000000000000000000606082015260800190565b6020808252602e908201527f24574541504f4e3a206d75737420756e7374616b65207468726f75676820737460408201527f616b696e6720636f6e7472616374000000000000000000000000000000000000606082015260800190565b60208082526022908201527f24574541504f4e3a2063616e6e6f74207374616b65207a65726f20616464726560408201527f7373000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526015908201527f24574541504f4e3a207374696c6c2066726f7a656e0000000000000000000000604082015260600190565b60208082526026908201527f24574541504f4e3a207374616b696e672063757272656e746c79206e6f74206560408201527f6e61626c65640000000000000000000000000000000000000000000000000000606082015260800190565b60208082526027908201527f24574541504f4e3a20756e7374616b652065786365656473207374616b65642060408201527f62616c616e636500000000000000000000000000000000000000000000000000606082015260800190565b6020808252601f908201527f45524332303a207472616e7366657220657863656564732062616c616e636500604082015260600190565b6020808252601f908201527f24574541504f4e3a2063616e6e6f74206265207a65726f206164647265737300604082015260600190565b60208082526024908201527f24574541504f4e3a2063616e6e6f7420756e7374616b65207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e742065786365656473206160408201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000606082015260800190565b60208082526015908201527f24574541504f4e3a20756e617574686f72697a65640000000000000000000000604082015260600190565b60208082526024908201527f24574541504f4e3a207a65726f20616464726573732063616e6e6f742062652060408201527f706f6f6c00000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f24574541504f4e3a2063616e6e6f742073796e63207a65726f2061646472657360408201527f7300000000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460408201527f6472657373000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601e908201527f24574541504f4e3a207461782063616e6e6f7420657863656564203130250000604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460408201527f7265737300000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526025908201527f24574541504f4e3a2063616e6e6f74207472616e7366657220706f6f6c20746f60408201527f20706f6f6c000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252601d908201527f24574541504f4e3a2072657761726473206d6178696d756d2031303025000000604082015260600190565b60208082526028908201527f24574541504f4e3a207374616b65206578636565647320617661696c61626c6560408201527f2062616c616e6365000000000000000000000000000000000000000000000000606082015260800190565b60208082526023908201527f24574541504f4e3a2063616e6e6f7420756e7374616b65207a65726f20746f6b60408201527f656e730000000000000000000000000000000000000000000000000000000000606082015260800190565b60208082526021908201527f24574541504f4e3a207374616b696e6720636f6e7472616374206e6f7420736560408201527f7400000000000000000000000000000000000000000000000000000000000000606082015260800190565b6020808252602c908201527f24574541504f4e3a206d757374207374616b65207468726f756768207374616b60408201527f696e6720636f6e74726163740000000000000000000000000000000000000000606082015260800190565b90815260200190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b81811015612c4c5784516001600160a01b031683529383019391830191600101612c27565b50506001600160a01b03969096166060850152505050608001529392505050565b918252602082015260400190565b9283526020830191909152604082015260600190565b60ff91909116815260200190565b60ff92831681529116602082015260400190565b60008219821115612cc657612cc6612d3f565b500190565b600082612ce657634e487b7160e01b81526012600452602481fd5b500490565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d2357612d23612d3f565b500290565b600082821015612d3a57612d3a612d3f565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b0381168114612d6a57600080fd5b5056fea26469706673582212206579fe0f42afe3205b7deb200f9295bff0e1b426db0e8d69f9a4a73ca17db1a764736f6c63430008010033000000000000000000000000d8d1e6a874a4fda4136f11b57cc65f037ab2789300000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000d8d1e6a874a4fda4136f11b57cc65f037ab2789300000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb

-----Decoded View---------------
Arg [0] : vault (address): 0xd8D1E6A874a4FdA4136F11B57CC65f037aB27893
Arg [1] : multiSig (address): 0x11D4A4149226dD618a674ec07217AaC3AAF247bB

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000d8d1e6a874a4fda4136f11b57cc65f037ab27893
Arg [1] : 00000000000000000000000011d4a4149226dd618a674ec07217aac3aaf247bb


Deployed ByteCode Sourcemap

8985:13232:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11591:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12989:163;;;;;;;;;;-1:-1:-1;12989:163:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;21877:262::-;;;;;;;;;;;;;:::i;12212:137::-;;;;;;;;;;-1:-1:-1;12212:137:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;11973:102::-;;;;;;;;;;;;;:::i;9069:34::-;;;;;;;;;;;;;:::i;13160:376::-;;;;;;;;;;-1:-1:-1;13160:376:0;;;;;:::i;:::-;;:::i;11880:85::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;19121:295::-;;;;;;;;;;;;;:::i;20509:199::-;;;;;;;;;;-1:-1:-1;20509:199:0;;;;;:::i;:::-;;:::i;19982:206::-;;;;;;;;;;-1:-1:-1;19982:206:0;;;;;:::i;:::-;;:::i;11781:91::-;;;;;;;;;;;;;:::i;20720:97::-;;;;;;;;;;-1:-1:-1;20720:97:0;;;;;:::i;:::-;;:::i;19772:202::-;;;;;;;;;;-1:-1:-1;19772:202:0;;;;;:::i;:::-;;:::i;12083:121::-;;;;;;;;;;-1:-1:-1;12083:121:0;;;;;:::i;:::-;;:::i;12357:294::-;;;;;;;;;;-1:-1:-1;12357:294:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;:::i;19660:104::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;18251:255::-;;;;;;;;;;-1:-1:-1;18251:255:0;;;;;:::i;:::-;;:::i;9148:37::-;;;;;;;;;;;;;:::i;18768:345::-;;;;;;;;;;-1:-1:-1;18768:345:0;;;;;:::i;:::-;;:::i;11684:89::-;;;;;;;;;;;;;:::i;18514:245::-;;;;;;;;;;;;;:::i;19424:228::-;;;;;;;;;;-1:-1:-1;19424:228:0;;;;;:::i;:::-;;:::i;15348:1447::-;;;;;;;;;;-1:-1:-1;15348:1447:0;;;;;:::i;:::-;;:::i;12659:169::-;;;;;;;;;;-1:-1:-1;12659:169:0;;;;;:::i;:::-;;:::i;16803:1072::-;;;;;;;;;;-1:-1:-1;16803:1072:0;;;;;:::i;:::-;;:::i;21724:145::-;;;;;;;;;;-1:-1:-1;21724:145:0;;;;;:::i;:::-;;:::i;12836:::-;;;;;;;;;;-1:-1:-1;12836:145:0;;;;;:::i;:::-;;:::i;9112:29::-;;;;;;;;;;;;;:::i;20196:305::-;;;;;;;;;;-1:-1:-1;20196:305:0;;;;;:::i;:::-;;:::i;17883:360::-;;;;;;;;;;-1:-1:-1;17883:360:0;;;;;:::i;:::-;;:::i;11591:85::-;11663:5;;;;;;;;;;;;;;;;;11591:85;:::o;12989:163::-;13066:4;13083:39;13092:12;:10;:12::i;:::-;13106:7;13115:6;13083:8;:39::i;:::-;-1:-1:-1;13140:4:0;12989:163;;;;:::o;21877:262::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;;;;;;;;;21946:42:::1;21966:21;21946:42;;;;;;:::i;:::-;;;;;;;;22000:9;22011:17:::0;22032:12:::1;:10;:12::i;:::-;-1:-1:-1::0;;;;;22032:17:0::1;22057:21;22032:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21999:84;;;;22102:4;22094:37;;;;-1:-1:-1::0;;;22094:37:0::1;;;;;;;:::i;:::-;11473:1;;21877:262::o:0;12212:137::-;-1:-1:-1;;;;;12313:24:0;;12286:7;12313:24;;;:15;:24;;;;;;12212:137;;;;:::o;11973:102::-;12055:12;;11973:102;:::o;9069:34::-;;;;;;;;;:::o;13160:376::-;-1:-1:-1;;;;;13286:19:0;;13260:4;13286:19;;;:11;:19;;;;;13323:6;;13260:4;13306:12;:10;:12::i;:::-;-1:-1:-1;;;;;13286:33:0;-1:-1:-1;;;;;13286:33:0;;;;;;;;;;;;;:43;;13277:97;;;;-1:-1:-1;;;13277:97:0;;;;;;;:::i;:::-;13385:36;13395:6;13403:9;13414:6;13385:9;:36::i;:::-;13432:74;13441:6;13449:12;:10;:12::i;:::-;-1:-1:-1;;;;;13463:19:0;;;;;;:11;:19;;;;;13499:6;;13483:12;:10;:12::i;:::-;-1:-1:-1;;;;;13463:33:0;-1:-1:-1;;;;;13463:33:0;;;;;;;;;;;;;:42;;;;:::i;:::-;13432:8;:74::i;:::-;-1:-1:-1;13524:4:0;13160:376;;;;;:::o;11880:85::-;9793:1;11880:85;:::o;19121:295::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;19197:16:::1;::::0;;;::::1;-1:-1:-1::0;;;;;19197:16:0::1;19188:77;;;;-1:-1:-1::0;;;19188:77:0::1;;;;;;;:::i;:::-;19280:14;::::0;::::1;;::::0;;::::1;;:22;;:14;:22;19276:87;;;19321:5;19304:22:::0;;-1:-1:-1;;19304:22:0::1;::::0;;19276:87:::1;;;19342:14;:21:::0;;-1:-1:-1;;19342:21:0::1;;;::::0;;19276:87:::1;19379:29;19393:14;;;;;;;;;;;19379:29;;;;;;:::i;:::-;;;;;;;;19121:295::o:0;20509:199::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;20581:18:0;::::1;20573:67;;;;-1:-1:-1::0;;;20573:67:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;20651:13:0;::::1;;::::0;;;:7:::1;:13;::::0;;;;;;:20;;-1:-1:-1;;20651:20:0::1;20667:4;20651:20;::::0;;20687:13;::::1;::::0;::::1;::::0;20659:4;;20687:13:::1;:::i;:::-;;;;;;;;20509:199:::0;:::o;19982:206::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;20068:2:::1;20058:6;:12;;;;20049:56;;;;-1:-1:-1::0;;;20049:56:0::1;;;;;;;:::i;:::-;20121:31;20135:8;;;;;;;;;;;20145:6;20121:31;;;;;;;:::i;:::-;;;;;;;;20163:8;:17:::0;;::::1;::::0;;::::1;;;-1:-1:-1::0;;20163:17:0;;::::1;::::0;;;::::1;::::0;;19982:206::o;11781:91::-;11856:8;;;;;;;;;;;;;;;;;11781:91;:::o;20720:97::-;-1:-1:-1;;;;;20796:13:0;20773:4;20796:13;;;:7;:13;;;;;;;;;20720:97::o;19772:202::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;19857:2:::1;19847:6;:12;;;;19838:56;;;;-1:-1:-1::0;;;19838:56:0::1;;;;;;;:::i;:::-;19923:7;::::0;19910:29:::1;::::0;::::1;::::0;::::1;::::0;19923:7:::1;::::0;;::::1;::::0;19932:6;;19910:29:::1;:::i;:::-;;;;;;;;19950:7;:16:::0;;-1:-1:-1;;19950:16:0::1;;::::0;;;::::1;::::0;;;::::1;::::0;;19772:202::o;12083:121::-;-1:-1:-1;;;;;12178:18:0;12151:7;12178:18;;;:9;:18;;;;;;;12083:121::o;12357:294::-;12424:7;12466:14;;12424:7;;;;12466:14;;;;;:46;;;;-1:-1:-1;;;;;;12484:24:0;;12511:1;12484:24;;;:15;:24;;;;;;:28;;12466:46;12462:181;;;-1:-1:-1;;;;;;;;12535:24:0;;;;;;:15;:24;;;;;;;;;12561:15;:24;;;;;;12587:16;:25;;;;;;12527:86;;12462:181;-1:-1:-1;12637:1:0;;-1:-1:-1;12637:1:0;;-1:-1:-1;12637:1:0;12462:181;12357:294;;;;;:::o;19660:104::-;19740:16;;;;;-1:-1:-1;;;;;19740:16:0;;19660:104::o;18251:255::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;18344:12:::1;;18332:9;:24;18323:70;;;;-1:-1:-1::0;;;18323:70:0::1;;;;;;;:::i;:::-;18404:10;:17:::0;;-1:-1:-1;;18404:17:0::1;::::0;::::1;::::0;;18417:4:::1;18432:24:::0;;;18474::::1;::::0;::::1;::::0;::::1;::::0;18447:9;;18474:24:::1;:::i;9148:37::-:0;;;;:::o;18768:345::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;18877:12:::1;;18859:15;:30;:53;;;;-1:-1:-1::0;18893:10:0::1;::::0;;;::::1;;;:19;18859:53;18850:88;;;;-1:-1:-1::0;;;18850:88:0::1;;;;;;;:::i;:::-;18979:6;18964:12;;:21;;;;:::i;:::-;18949:12;:36:::0;-1:-1:-1;;;;;19019:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;:29:::1;::::0;19042:6;;19019:29:::1;:::i;:::-;-1:-1:-1::0;;;;;18996:20:0;::::1;;::::0;;;:9:::1;:20;::::0;;;;;:52;;;;19066:39;;18996:20;;;19066:39:::1;::::0;::::1;::::0;19098:6;;19066:39:::1;:::i;:::-;;;;;;;;18768:345:::0;;:::o;11684:89::-;11758:7;;;;;;;;;;;;;;;;;11684:89;:::o;18514:245::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;18595:12:::1;;18576:15;:31;;18567:66;;;;-1:-1:-1::0;;;18567:66:0::1;;;;;;;:::i;:::-;18657:5;18644:18:::0;;-1:-1:-1;;18644:18:0::1;::::0;;18688:23:::1;:15;18706:5;18688:23;:::i;:::-;18673:12;:38:::0;;;18729:22:::1;::::0;::::1;::::0;::::1;::::0;::::1;:::i;19424:228::-:0;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19507:18:0;::::1;19499:62;;;;-1:-1:-1::0;;;19499:62:0::1;;;;;;;:::i;:::-;19572:16;:32:::0;;;::::1;::::0;-1:-1:-1;;;;;19572:32:0;::::1;;;::::0;;19620:24:::1;::::0;::::1;::::0;::::1;::::0;19572:32;;19620:24:::1;:::i;15348:1447::-:0;15509:16;;;;;-1:-1:-1;;;;;15509:16:0;15493:12;:10;:12::i;:::-;-1:-1:-1;;;;;15493:32:0;;15484:90;;;;-1:-1:-1;;;15484:90:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;15594:21:0;;15585:69;;;;-1:-1:-1;;;15585:69:0;;;;;;;:::i;:::-;15674:14;;;;;;;15665:66;;;;-1:-1:-1;;;15665:66:0;;;;;;;:::i;:::-;15749:8;15745:251;;;-1:-1:-1;;;;;15788:24:0;;;;;;:15;:24;;;;;;:41;;15784:201;;-1:-1:-1;;;;;15854:56:0;;15870:24;;;;:15;:24;;;;;;;;15854:56;;;;;;15896:13;;15854:56;:::i;:::-;;;;;;;;-1:-1:-1;;;;;15929:24:0;;;;;;:15;:24;;;;;:40;;;15784:201;16032:23;:15;16050:5;16032:23;:::i;:::-;16017:11;:39;16008:95;;;;-1:-1:-1;;;16008:95:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16139:25:0;;;;;;:16;:25;;;;;;16124:40;;;16115:95;;;;-1:-1:-1;;;16115:95:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16230:18:0;;;;;;:9;:18;;;;;;:28;-1:-1:-1;16230:28:0;16221:82;;;;-1:-1:-1;;;16221:82:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16318:24:0;;;;;;:15;:24;;;;;;16314:89;;16367:1;16358:6;:10;16349:54;;;;-1:-1:-1;;;16349:54:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;16437:18:0;;;;;;:9;:18;;;;;;:27;;16458:6;;16437:27;:::i;:::-;-1:-1:-1;;;;;16416:18:0;;;;;;;:9;:18;;;;;;:48;;;;16515:16;;;;;;;;16505:27;;;;:36;;16535:6;;16505:36;:::i;:::-;16485:16;;-1:-1:-1;;;;;16485:16:0;;;;;;16475:27;;;;:9;:27;;;;;;;;:66;;;;16579:24;;;;;:15;:24;;;;;:33;;16606:6;;16579:33;:::i;:::-;-1:-1:-1;;;;;16552:24:0;;;;;;:15;:24;;;;;;;;:60;;;;16625:16;:25;;;;;:39;;;16675:15;:24;;;;;16702:15;16675:42;;;;16735:52;;16552:24;;16735:52;;;;16750:6;;16653:11;;16735:52;:::i;:::-;;;;;;;;15348:1447;;;;;:::o;12659:169::-;12739:4;12756:42;12766:12;:10;:12::i;:::-;12780:9;12791:6;12756:9;:42::i;16803:1072::-;16952:16;;;;;-1:-1:-1;;;;;16952:16:0;16936:12;:10;:12::i;:::-;-1:-1:-1;;;;;16936:32:0;;16927:92;;;;-1:-1:-1;;;16927:92:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17039:21:0;;17030:71;;;;-1:-1:-1;;;17030:71:0;;;;;;;:::i;:::-;17136:1;17120:13;:17;17112:65;;;;-1:-1:-1;;;17112:65:0;;;;;;;:::i;:::-;17194:8;17190:251;;;-1:-1:-1;;;;;17233:24:0;;;;;;:15;:24;;;;;;:41;;17229:201;;-1:-1:-1;;;;;17299:56:0;;17315:24;;;;:15;:24;;;;;;;;17299:56;;;;;;17341:13;;17299:56;:::i;:::-;;;;;;;;-1:-1:-1;;;;;17374:24:0;;;;;;:15;:24;;;;;:40;;;17229:201;-1:-1:-1;;;;;17478:24:0;;;;;;:15;:24;;;;;;17461:41;;;17453:93;;;;-1:-1:-1;;;17453:93:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;17594:24:0;;;;;;:15;:24;;;;;;:40;;17621:13;;17594:40;:::i;:::-;-1:-1:-1;;;;;17567:24:0;;;;;;:15;:24;;;;;;;;:67;;;;17666:9;:18;;;;:34;;17687:13;;17666:34;:::i;:::-;-1:-1:-1;;;;;17645:18:0;;;;;;;:9;:18;;;;;;:55;;;;17751:16;;;;;;;;17741:27;;;;:43;;17771:13;;17741:43;:::i;:::-;17721:16;;-1:-1:-1;;;;;17721:16:0;;;;;;17711:27;;;;:9;:27;;;;;;;;:73;;;;17810:57;;;17842:24;;;:15;:24;;;;;;;17810:57;;;;;;;;17827:13;;17810:57;:::i;:::-;;;;;;;;16803:1072;;;;:::o;21724:145::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;21800:20:::1;21813:6;21800:12;:20::i;:::-;21836:25;21854:6;21836:25;;;;;;:::i;12836:145::-:0;-1:-1:-1;;;;;12946:18:0;;;12919:7;12946:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;12836:145::o;9112:29::-;;;;;;;;;:::o;20196:305::-;11427:9;-1:-1:-1;;;;;11411:25:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;11411:25:0;;11402:60;;;;-1:-1:-1;;;11402:60:0;;;;;;;:::i;:::-;20290:2:::1;20276:10;:16;;;;20267:58;;;;-1:-1:-1::0;;;20267:58:0::1;;;;;;;:::i;:::-;20359:3;20345:10;:17;;;;20336:60;;;;-1:-1:-1::0;;;20336:60:0::1;;;;;;;:::i;:::-;20412:42;20426:15;;;;;;;;;;;20443:10;20412:42;;;;;;;:::i;:::-;;;;;;;;20465:15;:28:::0;;::::1;::::0;;::::1;::::0;::::1;-1:-1:-1::0;;20465:28:0;;::::1;::::0;;;::::1;::::0;;20196:305::o;17883:360::-;17991:16;;;;;-1:-1:-1;;;;;17991:16:0;17975:12;:10;:12::i;:::-;-1:-1:-1;;;;;17975:32:0;;17966:67;;;;-1:-1:-1;;;17966:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18053:21:0;;18044:68;;;;-1:-1:-1;;;18044:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18128:56:0;;18144:24;;;;:15;:24;;;;;;;;18128:56;;;;;;18170:13;;18128:56;:::i;:::-;;;;;;;;-1:-1:-1;;;;;18195:24:0;;;;;;;:15;:24;;;;;:40;17883:360::o;5462:98::-;5542:10;5462:98;:::o;13544:337::-;-1:-1:-1;;;;;13637:19:0;;13629:68;;;;-1:-1:-1;;;13629:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13716:21:0;;13708:68;;;;-1:-1:-1;;;13708:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13789:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;;:36;;;13841:32;;;;;13819:6;;13841:32;:::i;:::-;;;;;;;;13544:337;;;:::o;13889:1451::-;-1:-1:-1;;;;;13986:20:0;;13978:70;;;;-1:-1:-1;;;13978:70:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14067:23:0;;14059:71;;;;-1:-1:-1;;;14059:71:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14149:17:0;;;;;;:9;:17;;;;;;:27;-1:-1:-1;14149:27:0;14141:71;;;;-1:-1:-1;;;14141:71:0;;;;;;;:::i;:::-;14240:1;14231:6;:10;14223:52;;;;-1:-1:-1;;;14223:52:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14296:15:0;;;;;;:7;:15;;;;;;;;:37;;;;-1:-1:-1;;;;;;14315:18:0;;;;;;:7;:18;;;;;;;;14296:37;14294:40;14286:90;;;;-1:-1:-1;;;14286:90:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14464:15:0;;14389:19;14464:15;;;:7;:15;;;;;;14411:6;;14389:19;14464:15;;:23;;:15;:23;:43;;;;;14504:3;-1:-1:-1;;;;;14491:16:0;:9;-1:-1:-1;;;;;14491:16:0;;;14464:43;:70;;;;-1:-1:-1;;;;;;14511:23:0;;10129:42;14511:23;;14464:70;14460:218;;;14566:7;;14576:3;;14557:16;;14566:7;;14557:6;:16;:::i;:::-;:22;;;;:::i;:::-;14551:28;-1:-1:-1;14608:12:0;14551:28;14608:6;:12;:::i;:::-;14653:4;14635:24;;;;:9;:24;;;;;:31;;14594:26;;-1:-1:-1;14663:3:0;;14635:24;;;:31;;14663:3;;14635:31;:::i;:::-;;;;-1:-1:-1;;14460:218:0;-1:-1:-1;;;;;14692:18:0;;;;;;:7;:18;;;;;;;;:26;;:18;:26;:43;;;;;14732:3;-1:-1:-1;;;;;14722:13:0;:6;-1:-1:-1;;;;;14722:13:0;;;14692:43;:67;;;;-1:-1:-1;;;;;;14739:20:0;;10129:42;14739:20;;14692:67;14688:502;;;14791:8;;14802:3;;14782:17;;14791:8;;;;;14782:6;:17;:::i;:::-;:23;;;;:::i;:::-;14776:29;-1:-1:-1;14834:12:0;14776:29;14834:6;:12;:::i;:::-;14879:4;14861:24;;;;:9;:24;;;;;:31;;14820:26;;-1:-1:-1;14889:3:0;;14861:24;;;:31;;14889:3;;14861:31;:::i;:::-;;;;-1:-1:-1;;14931:4:0;14913:24;;;;:9;:24;;;;;;14940:11;-1:-1:-1;14913:52:0;;;;-1:-1:-1;14956:9:0;;;;14955:10;14913:52;14909:270;;;15026:4;14986:19;15008:24;;;:9;:24;;;;;;15083:3;15069:11;:6;15078:2;15069:11;:::i;:::-;:17;;;;:::i;:::-;15055:11;:31;15051:68;;;15116:3;15102:11;:6;15111:2;15102:11;:::i;:::-;:17;;;;:::i;:::-;15088:31;;15051:68;15138:25;15151:11;15138:12;:25::i;:::-;14909:270;;-1:-1:-1;;;;;15206:20:0;;;;;;:9;:20;;;;;:35;;15230:11;;15206:20;:35;;15230:11;;15206:35;:::i;:::-;;;;-1:-1:-1;;;;;;;15252:17:0;;;;;;:9;:17;;;;;:27;;15273:6;;15252:17;:27;;15273:6;;15252:27;:::i;:::-;;;;;;;;15314:9;-1:-1:-1;;;;;15297:35:0;15306:6;-1:-1:-1;;;;;15297:35:0;;15325:6;15297:35;;;;;;:::i;:::-;;;;;;;;13889:1451;;;;;:::o;21027:685::-;11519:9;:16;;-1:-1:-1;;11519:16:0;11531:4;11519:16;;;21117::::1;::::0;;21131:1:::1;21117:16:::0;;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;21117:16:0::1;21093:40;;21162:4;21144;21149:1;21144:7;;;;;;-1:-1:-1::0;;;21144:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;21144:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;21188:11:::1;::::0;:18:::1;::::0;;;;;;;:11;;;::::1;::::0;:16:::1;::::0;:18:::1;::::0;;::::1;::::0;21144:7;;21188:18;;;;;:11;:18;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21178:4;21183:1;21178:7;;;;;;-1:-1:-1::0;;;21178:7:0::1;;;;;;;;;;;;;;:28;-1:-1:-1::0;;;;;21178:28:0::1;;;-1:-1:-1::0;;;;;21178:28:0::1;;;::::0;::::1;21219:43;21236:4;10129:42;21255:6;21219:8;:43::i;:::-;21273:11;::::0;:111:::1;::::0;;;;-1:-1:-1;;;;;21273:11:0;;::::1;::::0;:62:::1;::::0;:111:::1;::::0;21336:6;;21273:11:::1;::::0;21347:4;;21361::::1;::::0;21368:15:::1;::::0;21273:111:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;21425:1;21401:21;:25;21397:308;;;21457:14;::::0;::::1;::::0;::::1;;;21453:183;;;21536:15;::::0;21492:17:::1;::::0;21554:3:::1;::::0;21512:39:::1;::::0;21536:15;;::::1;;;21512:21;:39;:::i;:::-;:45;;;;:::i;:::-;21492:65;;21576:44;21589:12;21603:16;;;;;;;;;-1:-1:-1::0;;;;;21603:16:0::1;21576:12;:44::i;:::-;21453:183;;21650:43;21663:21;21686:6;21650:12;:43::i;:::-;-1:-1:-1::0;;11570:5:0;11558:17;;-1:-1:-1;;11558:17:0;;;21027:685::o;20825:194::-;20904:9;20915:17;20936:3;-1:-1:-1;;;;;20936:8:0;20952:6;20936:27;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20903:60;;;;20982:4;20974:37;;;;-1:-1:-1;;;20974:37:0;;;;;;;:::i;:::-;20825:194;;;;:::o;14:162:1:-;81:20;;137:13;;130:21;120:32;;110:2;;166:1;163;156:12;181:259;;293:2;281:9;272:7;268:23;264:32;261:2;;;314:6;306;299:22;261:2;358:9;345:23;377:33;404:5;377:33;:::i;:::-;429:5;251:189;-1:-1:-1;;;251:189:1:o;445:263::-;;568:2;556:9;547:7;543:23;539:32;536:2;;;589:6;581;574:22;536:2;626:9;620:16;645:33;672:5;645:33;:::i;713:402::-;;;842:2;830:9;821:7;817:23;813:32;810:2;;;863:6;855;848:22;810:2;907:9;894:23;926:33;953:5;926:33;:::i;:::-;978:5;-1:-1:-1;1035:2:1;1020:18;;1007:32;1048:35;1007:32;1048:35;:::i;:::-;1102:7;1092:17;;;800:315;;;;;:::o;1120:470::-;;;;1266:2;1254:9;1245:7;1241:23;1237:32;1234:2;;;1287:6;1279;1272:22;1234:2;1331:9;1318:23;1350:33;1377:5;1350:33;:::i;:::-;1402:5;-1:-1:-1;1459:2:1;1444:18;;1431:32;1472:35;1431:32;1472:35;:::i;:::-;1224:366;;1526:7;;-1:-1:-1;;;1580:2:1;1565:18;;;;1552:32;;1224:366::o;1595:327::-;;;1724:2;1712:9;1703:7;1699:23;1695:32;1692:2;;;1745:6;1737;1730:22;1692:2;1789:9;1776:23;1808:33;1835:5;1808:33;:::i;:::-;1860:5;1912:2;1897:18;;;;1884:32;;-1:-1:-1;;;1682:240:1:o;1927:466::-;;;;;2087:3;2075:9;2066:7;2062:23;2058:33;2055:2;;;2109:6;2101;2094:22;2055:2;2153:9;2140:23;2172:33;2199:5;2172:33;:::i;:::-;2224:5;-1:-1:-1;2276:2:1;2261:18;;2248:32;;-1:-1:-1;2299:37:1;2332:2;2317:18;;2299:37;:::i;:::-;2045:348;;;;-1:-1:-1;2289:47:1;;2383:2;2368:18;2355:32;;-1:-1:-1;;2045:348:1:o;2398:535::-;;;;;;2575:3;2563:9;2554:7;2550:23;2546:33;2543:2;;;2597:6;2589;2582:22;2543:2;2641:9;2628:23;2660:33;2687:5;2660:33;:::i;:::-;2712:5;-1:-1:-1;2764:2:1;2749:18;;2736:32;;-1:-1:-1;2815:2:1;2800:18;;2787:32;;-1:-1:-1;2838:37:1;2871:2;2856:18;;2838:37;:::i;:::-;2533:400;;;;-1:-1:-1;2533:400:1;;2922:3;2907:19;2894:33;;2533:400;-1:-1:-1;;2533:400:1:o;2938:190::-;;3050:2;3038:9;3029:7;3025:23;3021:32;3018:2;;;3071:6;3063;3056:22;3018:2;-1:-1:-1;3099:23:1;;3008:120;-1:-1:-1;3008:120:1:o;3133:327::-;;;3262:2;3250:9;3241:7;3237:23;3233:32;3230:2;;;3283:6;3275;3268:22;3230:2;3324:9;3311:23;3301:33;;3384:2;3373:9;3369:18;3356:32;3397:33;3424:5;3397:33;:::i;3465:289::-;;3575:2;3563:9;3554:7;3550:23;3546:32;3543:2;;;3596:6;3588;3581:22;3543:2;3640:9;3627:23;3690:4;3683:5;3679:16;3672:5;3669:27;3659:2;;3715:6;3707;3700:22;3759:205;3959:3;3950:14::o;3969:226::-;-1:-1:-1;;;;;4133:55:1;;;;4115:74;;4103:2;4088:18;;4070:125::o;4200:187::-;4365:14;;4358:22;4340:41;;4328:2;4313:18;;4295:92::o;4392:662::-;;4533:2;4562;4551:9;4544:21;4594:6;4588:13;4637:6;4632:2;4621:9;4617:18;4610:34;4662:4;4675:140;4689:6;4686:1;4683:13;4675:140;;;4784:14;;;4780:23;;4774:30;4750:17;;;4769:2;4746:26;4739:66;4704:10;;4675:140;;;4833:6;4830:1;4827:13;4824:2;;;4903:4;4898:2;4889:6;4878:9;4874:22;4870:31;4863:45;4824:2;-1:-1:-1;4970:2:1;4958:15;4975:66;4954:88;4939:104;;;;5045:2;4935:113;;4513:541;-1:-1:-1;;;4513:541:1:o;5059:399::-;5261:2;5243:21;;;5300:2;5280:18;;;5273:30;5339:34;5334:2;5319:18;;5312:62;5410:5;5405:2;5390:18;;5383:33;5448:3;5433:19;;5233:225::o;5463:405::-;5665:2;5647:21;;;5704:2;5684:18;;;5677:30;5743:34;5738:2;5723:18;;5716:62;5814:11;5809:2;5794:18;;5787:39;5858:3;5843:19;;5637:231::o;5873:354::-;6075:2;6057:21;;;6114:2;6094:18;;;6087:30;6153:32;6148:2;6133:18;;6126:60;6218:2;6203:18;;6047:180::o;6232:398::-;6434:2;6416:21;;;6473:2;6453:18;;;6446:30;6512:34;6507:2;6492:18;;6485:62;6583:4;6578:2;6563:18;;6556:32;6620:3;6605:19;;6406:224::o;6635:356::-;6837:2;6819:21;;;6856:18;;;6849:30;6915:34;6910:2;6895:18;;6888:62;6982:2;6967:18;;6809:182::o;6996:353::-;7198:2;7180:21;;;7237:2;7217:18;;;7210:30;7276:31;7271:2;7256:18;;7249:59;7340:2;7325:18;;7170:179::o;7354:352::-;7556:2;7538:21;;;7595:2;7575:18;;;7568:30;7634;7629:2;7614:18;;7607:58;7697:2;7682:18;;7528:178::o;7711:344::-;7913:2;7895:21;;;7952:2;7932:18;;;7925:30;7991:22;7986:2;7971:18;;7964:50;8046:2;8031:18;;7885:170::o;8060:407::-;8262:2;8244:21;;;8301:2;8281:18;;;8274:30;8340:34;8335:2;8320:18;;8313:62;8411:13;8406:2;8391:18;;8384:41;8457:3;8442:19;;8234:233::o;8472:410::-;8674:2;8656:21;;;8713:2;8693:18;;;8686:30;8752:34;8747:2;8732:18;;8725:62;8823:16;8818:2;8803:18;;8796:44;8872:3;8857:19;;8646:236::o;8887:398::-;9089:2;9071:21;;;9128:2;9108:18;;;9101:30;9167:34;9162:2;9147:18;;9140:62;9238:4;9233:2;9218:18;;9211:32;9275:3;9260:19;;9061:224::o;9290:345::-;9492:2;9474:21;;;9531:2;9511:18;;;9504:30;9570:23;9565:2;9550:18;;9543:51;9626:2;9611:18;;9464:171::o;9640:402::-;9842:2;9824:21;;;9881:2;9861:18;;;9854:30;9920:34;9915:2;9900:18;;9893:62;9991:8;9986:2;9971:18;;9964:36;10032:3;10017:19;;9814:228::o;10047:403::-;10249:2;10231:21;;;10288:2;10268:18;;;10261:30;10327:34;10322:2;10307:18;;10300:62;10398:9;10393:2;10378:18;;10371:37;10440:3;10425:19;;10221:229::o;10455:355::-;10657:2;10639:21;;;10696:2;10676:18;;;10669:30;10735:33;10730:2;10715:18;;10708:61;10801:2;10786:18;;10629:181::o;10815:355::-;11017:2;10999:21;;;11056:2;11036:18;;;11029:30;11095:33;11090:2;11075:18;;11068:61;11161:2;11146:18;;10989:181::o;11175:400::-;11377:2;11359:21;;;11416:2;11396:18;;;11389:30;11455:34;11450:2;11435:18;;11428:62;11526:6;11521:2;11506:18;;11499:34;11565:3;11550:19;;11349:226::o;11580:404::-;11782:2;11764:21;;;11821:2;11801:18;;;11794:30;11860:34;11855:2;11840:18;;11833:62;11931:10;11926:2;11911:18;;11904:38;11974:3;11959:19;;11754:230::o;11989:345::-;12191:2;12173:21;;;12230:2;12210:18;;;12203:30;12269:23;12264:2;12249:18;;12242:51;12325:2;12310:18;;12163:171::o;12339:400::-;12541:2;12523:21;;;12580:2;12560:18;;;12553:30;12619:34;12614:2;12599:18;;12592:62;12690:6;12685:2;12670:18;;12663:34;12729:3;12714:19;;12513:226::o;12744:397::-;12946:2;12928:21;;;12985:2;12965:18;;;12958:30;13024:34;13019:2;13004:18;;12997:62;13095:3;13090:2;13075:18;;13068:31;13131:3;13116:19;;12918:223::o;13146:401::-;13348:2;13330:21;;;13387:2;13367:18;;;13360:30;13426:34;13421:2;13406:18;;13399:62;13497:7;13492:2;13477:18;;13470:35;13537:3;13522:19;;13320:227::o;13552:354::-;13754:2;13736:21;;;13793:2;13773:18;;;13766:30;13832:32;13827:2;13812:18;;13805:60;13897:2;13882:18;;13726:180::o;13911:400::-;14113:2;14095:21;;;14152:2;14132:18;;;14125:30;14191:34;14186:2;14171:18;;14164:62;14262:6;14257:2;14242:18;;14235:34;14301:3;14286:19;;14085:226::o;14316:401::-;14518:2;14500:21;;;14557:2;14537:18;;;14530:30;14596:34;14591:2;14576:18;;14569:62;14667:7;14662:2;14647:18;;14640:35;14707:3;14692:19;;14490:227::o;14722:353::-;14924:2;14906:21;;;14963:2;14943:18;;;14936:30;15002:31;14997:2;14982:18;;14975:59;15066:2;15051:18;;14896:179::o;15080:404::-;15282:2;15264:21;;;15321:2;15301:18;;;15294:30;15360:34;15355:2;15340:18;;15333:62;15431:10;15426:2;15411:18;;15404:38;15474:3;15459:19;;15254:230::o;15489:399::-;15691:2;15673:21;;;15730:2;15710:18;;;15703:30;15769:34;15764:2;15749:18;;15742:62;15840:5;15835:2;15820:18;;15813:33;15878:3;15863:19;;15663:225::o;15893:397::-;16095:2;16077:21;;;16134:2;16114:18;;;16107:30;16173:34;16168:2;16153:18;;16146:62;16244:3;16239:2;16224:18;;16217:31;16280:3;16265:19;;16067:223::o;16295:408::-;16497:2;16479:21;;;16536:2;16516:18;;;16509:30;16575:34;16570:2;16555:18;;16548:62;16646:14;16641:2;16626:18;;16619:42;16693:3;16678:19;;16469:234::o;16708:177::-;16854:25;;;16842:2;16827:18;;16809:76::o;16890:1029::-;;17200:3;17189:9;17185:19;17231:6;17220:9;17213:25;17257:2;17295:6;17290:2;17279:9;17275:18;17268:34;17338:3;17333:2;17322:9;17318:18;17311:31;17362:6;17397;17391:13;17428:6;17420;17413:22;17466:3;17455:9;17451:19;17444:26;;17505:2;17497:6;17493:15;17479:29;;17526:4;17539:218;17553:6;17550:1;17547:13;17539:218;;;17618:13;;-1:-1:-1;;;;;17614:62:1;17602:75;;17732:15;;;;17697:12;;;;17575:1;17568:9;17539:218;;;-1:-1:-1;;;;;;;17813:55:1;;;;17808:2;17793:18;;17786:83;-1:-1:-1;;;17900:3:1;17885:19;17878:35;17774:3;17161:758;-1:-1:-1;;;17161:758:1:o;17924:248::-;18098:25;;;18154:2;18139:18;;18132:34;18086:2;18071:18;;18053:119::o;18177:319::-;18379:25;;;18435:2;18420:18;;18413:34;;;;18478:2;18463:18;;18456:34;18367:2;18352:18;;18334:162::o;18501:184::-;18673:4;18661:17;;;;18643:36;;18631:2;18616:18;;18598:87::o;18690:266::-;18890:4;18878:17;;;18860:36;;18932:17;;18927:2;18912:18;;18905:45;18848:2;18833:18;;18815:141::o;18961:128::-;;19032:1;19028:6;19025:1;19022:13;19019:2;;;19038:18;;:::i;:::-;-1:-1:-1;19074:9:1;;19009:80::o;19094:274::-;;19160:1;19150:2;;-1:-1:-1;;;19192:1:1;19185:88;19296:4;19293:1;19286:15;19324:4;19321:1;19314:15;19150:2;-1:-1:-1;19353:9:1;;19140:228::o;19373:::-;;19539:1;19471:66;19467:74;19464:1;19461:81;19456:1;19449:9;19442:17;19438:105;19435:2;;;19546:18;;:::i;:::-;-1:-1:-1;19586:9:1;;19425:176::o;19606:125::-;;19674:1;19671;19668:8;19665:2;;;19679:18;;:::i;:::-;-1:-1:-1;19716:9:1;;19655:76::o;19736:184::-;-1:-1:-1;;;19785:1:1;19778:88;19885:4;19882:1;19875:15;19909:4;19906:1;19899:15;19925:156;-1:-1:-1;;;;;20006:5:1;20002:54;19995:5;19992:65;19982:2;;20071:1;20068;20061:12;19982:2;19972:109;:::o

Swarm Source

ipfs://6579fe0f42afe3205b7deb200f9295bff0e1b426db0e8d69f9a4a73ca17db1a7
Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

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.