Contract 0x5Dd05762b831A977B974Db8759772D41F3D5Ff0b

 

Contract Overview

NFTISMUS: NFM Token
Balance:
0 MATIC

MATIC Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0xa684df66cc1276a55c26eea5bedcec5ce8820cc77435530d9163fa0454cb1470Approve363356122022-12-02 13:07:5356 mins ago0xbd57103480a1edaf55188fe104a77b5c3456a91a IN  NFTISMUS: NFM Token0 MATIC0.005958964115 121.447929635
0x45e5e8adb2605b0371ac921825288073099588e19c17ed2c71236662fbe950d1Transfer363301472022-12-02 9:47:114 hrs 16 mins ago0xbb4b79541d86bc4d487f030325a460155964958f IN  NFTISMUS: NFM Token0 MATIC0.015828926649 94.398484329
0x0d5d18f857a402455ecd848407d21a6cbb0684268c65769b50a300a5cdc70b7bApprove363120682022-12-01 23:11:4614 hrs 52 mins ago0x40817fc12ded1518d898bf2538e696dd1e6d2db0 IN  NFTISMUS: NFM Token0 MATIC0.001471266913 30.000140964
0x2c753443673727d7f201929a907058d547e1e414f47ae6419bed1109f629aeb8Transfer363086692022-12-01 21:14:3316 hrs 49 mins ago0x9b495cc60844746f54a6c094378db12f621c50ed IN  NFTISMUS: NFM Token0 MATIC0.004947180106 30.000000646
0x63eb2439ee15694b9a9aa058c3380ebd1425ce09eeb5e74a400b95e2fe96bd3bApprove363086172022-12-01 21:12:4916 hrs 51 mins ago0x3be202e222cf95248ab10c98bfbb59b71e63ec2b IN  NFTISMUS: NFM Token0 MATIC0.001471260151 30.000003099
0x985af3328b3c3b1a14aa73173f78e11b6935d22af3d75376875555dba0a66043Approve362933722022-12-01 12:09:111 day 1 hr ago0x215af06b2e7ca0cb133b909da1e357b6d2c6a9a7 IN  NFTISMUS: NFM Token0 MATIC0.001472425795 30.009085638
0xcee98a9c7556236bbd973b5af1a8b7e312343f43217d546840bcaf37ff019eaaTransfer362818352022-12-01 5:25:201 day 8 hrs ago0x1582e55ed08bc94f6aae0b9a32680d1f6058b984 IN  NFTISMUS: NFM Token0 MATIC0.003907920002 30.000000023
0x4c69870c5d61c30606a55d578e98e5bc7091e0e9590808e0d5dffbe8052bd3e3Transfer362818062022-12-01 5:24:221 day 8 hrs ago0x1582e55ed08bc94f6aae0b9a32680d1f6058b984 IN  NFTISMUS: NFM Token0 MATIC0.003907920005 30.000000041
0xaf4a629d9fbbc0321a4220b3fcc29cfc7fe4bc2094ef2fccd1d004011e318254Transfer362817572022-12-01 5:22:401 day 8 hrs ago0x1582e55ed08bc94f6aae0b9a32680d1f6058b984 IN  NFTISMUS: NFM Token0 MATIC0.003907920015 30.000000118
0xe6b251e59cd8dad23f5825676850cb0b45a44089179f7fe7ac049a6f4ed9545cTransfer362817382022-12-01 5:22:021 day 8 hrs ago0x1582e55ed08bc94f6aae0b9a32680d1f6058b984 IN  NFTISMUS: NFM Token0 MATIC0.019243530089 30.00000014
0xcc3fb5864ee385eb4835f320ff6f4b914e4365c28460ecd93c4a39a90bdf7df1Approve362712362022-11-30 23:04:111 day 14 hrs ago0x3be202e222cf95248ab10c98bfbb59b71e63ec2b IN  NFTISMUS: NFM Token0 MATIC0.001471261064 30.000021712
0xe88318e5e5e33befaf319d7bc6f6c5bb3fdce9caa8a2ddc94d8cbcfe92b8c212Approve362664272022-11-30 20:17:291 day 17 hrs ago0x3be202e222cf95248ab10c98bfbb59b71e63ec2b IN  NFTISMUS: NFM Token0 MATIC0.002500942771 50.995937591
0x7323afb06cf7d21892c86b7b4d1a4bc7f7e050311d9bd903c5be6e1015b6f3b9Transfer362657972022-11-30 19:55:501 day 18 hrs ago0x9b495cc60844746f54a6c094378db12f621c50ed IN  NFTISMUS: NFM Token0 MATIC0.011720332146 69.886182644
0xf7e11fdcb79546fbd577f15004af3ce65b03e502665437370adc8d8ae7e991acTransfer362632562022-11-30 18:28:281 day 19 hrs ago0x1582e55ed08bc94f6aae0b9a32680d1f6058b984 IN  NFTISMUS: NFM Token0 MATIC0.00765806861 58.794249692
0x90981b1076dc91a238fd304ddad8bcccb5949b689f9ce18ac173fc2951657aa0Transfer362632392022-11-30 18:27:541 day 19 hrs ago0x1582e55ed08bc94f6aae0b9a32680d1f6058b984 IN  NFTISMUS: NFM Token0 MATIC0.007697705966 59.093118333
0x6d327b225228d3e49710c5de56debe93c02b4edb0c05e8e68708fc5afb790763Transfer362632012022-11-30 18:26:341 day 19 hrs ago0x1582e55ed08bc94f6aae0b9a32680d1f6058b984 IN  NFTISMUS: NFM Token0 MATIC0.007723302246 59.289613755
0xd688283e37f7e303686db3aff36671deeba64312c97198dce8b65ccdcb745cecTransfer362631872022-11-30 18:26:061 day 19 hrs ago0x1582e55ed08bc94f6aae0b9a32680d1f6058b984 IN  NFTISMUS: NFM Token0 MATIC0.007940331471 60.955685925
0x642dfec3527be8116febf1543f63849a12a61ef4a6824db920d53ffbefc6688dTransfer362631482022-11-30 18:24:441 day 19 hrs ago0x1582e55ed08bc94f6aae0b9a32680d1f6058b984 IN  NFTISMUS: NFM Token0 MATIC0.007897148401 60.624181675
0xaa03c66ee9554044dfc062ae4e9f4485fe3c3807e7d111d2f388b2390d86a8dfTransfer362631202022-11-30 18:23:481 day 19 hrs ago0x1582e55ed08bc94f6aae0b9a32680d1f6058b984 IN  NFTISMUS: NFM Token0 MATIC0.007920525501 60.80364108
0x11d3715c6e9154164a757610d02e9b5fda30dffcfaa60d326f7ba6f24ccf9d34Transfer362630662022-11-30 18:21:561 day 19 hrs ago0x1582e55ed08bc94f6aae0b9a32680d1f6058b984 IN  NFTISMUS: NFM Token0 MATIC0.025718366433 62.94403556
0x72a56fdc0996de0bc7a0f65381fe7179cc3bf3d15c85f3a624a0b67342e3ca0eApprove362596812022-11-30 16:21:161 day 21 hrs ago0xf629abe9a305d3efa70d1207c70f3fe7d3d15ff1 IN  NFTISMUS: NFM Token0 MATIC0.003696571786 75.357193837
0x44a7387d8b8f5405048afc4677de376612245195669be1167f94e02dd63ff3d4Approve362596132022-11-30 16:18:561 day 21 hrs ago0xf629abe9a305d3efa70d1207c70f3fe7d3d15ff1 IN  NFTISMUS: NFM Token0 MATIC0.003272771039 66.328301233
0x71f83e6ddfdc5ac880d0ee3d67e3154b363f5cd80f92603081bf03c6879c3d81Approve362291832022-11-29 22:13:222 days 15 hrs ago0x3be202e222cf95248ab10c98bfbb59b71e63ec2b IN  NFTISMUS: NFM Token0 MATIC0.00156340851 31.878971303
0xa750cb946a25da26c7287dd3ec89588ad054a59f593d3475c7879b713571e9deTransfer362288092022-11-29 21:59:502 days 16 hrs ago0x9b495cc60844746f54a6c094378db12f621c50ed IN  NFTISMUS: NFM Token0 MATIC0.005776229335 35.116417826
0x5c8e57824313a963cbe84a786b567809f8e393f5f4a6391b9dcf1479a4077309Approve362262032022-11-29 20:23:112 days 17 hrs ago0x3be202e222cf95248ab10c98bfbb59b71e63ec2b IN  NFTISMUS: NFM Token0 MATIC0.001068096789 33.438632186
[ Download CSV Export 

OVERVIEW

The vision is to open the way for NFTs to be listed, insured and traded on exchanges. The valuation of the NFTresults in a securitizable and salable value. The NFM is the main currency of the project.

Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NFM

Compiler Version
v0.8.13+commit.abaa5c0e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2022-07-28
*/

//SPDX-License-Identifier:MIT

pragma solidity ^0.8.13;

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// LIBRARIES
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// SAFEMATH its a Openzeppelin Lib. Check out for more info @ https://docs.openzeppelin.com/contracts/2.x/api/math
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INTERFACES
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INFMCONTROLLER
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
interface INfmController {
    function _checkWLSC(address Controller, address Client)
        external
        pure
        returns (bool);

    function _getController() external pure returns (address);

    function _getNFM() external pure returns (address);

    function _getTimer() external pure returns (address);

    function _getPad() external pure returns (address);

    function _getMinting() external pure returns (address);

    function _getBurning() external pure returns (address);

    function _getSwap() external pure returns (address);

    function _getLiquidity() external pure returns (address);

    function _getUV2Pool() external pure returns (address);

    function _getBonusBuyBack() external pure returns (address, address);

    function _getNFMStaking() external pure returns (address);

    function _getNFMStakingTreasuryERC20() external view returns (address);

    function _getTreasury() external view returns (address);

    function _getAirdrop() external view returns (address);
}

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INFMTIMER
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
interface INfmTimer {
    function _getStartTime() external pure returns (uint256);

    function _getEndMintTime() external pure returns (uint256);

    function _getDailyMintTime() external pure returns (uint256);

    function _getStartBurnTime() external pure returns (uint256);

    function _getUV2_LiquidityTime() external pure returns (uint256);

    function _getUV2_SwapTime() external pure returns (uint256);

    function _getExtraBonusAllTime() external view returns (uint256);

    function _getEndExtraBonusAllTime() external view returns (uint256);

    function _updateExtraBonusAll() external returns (bool);

    function _getLogicCountdown() external view returns (uint256);

    function _getStartBuyBackTime() external view returns (uint256);

    function _updateStartBuyBack() external returns (bool);

    function _getExtraBonusAirdropTime() external view returns (uint256);

    function _getEndExtraBonusAirdropTime() external view returns (uint256);

    function _getUV2_RemoveLiquidityTime() external view returns (uint256);

    function _updateExtraBonusAirdrop() external returns (bool);

    function _updateUV2_RemoveLiquidity_event() external returns (bool);
}

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INFMPAD
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
interface INfmPad {
    function balancePAD(address account) external pure returns (uint256);

    function _PADCHECK(address from, uint256 amount) external returns (bool);
}

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INFMMINTING
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
interface INfmMinting {
    function _minting(address sender) external returns (bool);

    function _updateBNFTAmount(address minter) external returns (bool);
}

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INFMSWAP
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
interface INfmSwap {
    function _LiquifyAndSwap() external returns (bool);
}

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INFMLIQUIDITY
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
interface INfmAddLiquidity {
    function _addLiquidity() external returns (bool);
}

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INFMBURNING
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
interface INfmBurning {
    function checkburn(uint256 amount)
        external
        view
        returns (
            bool state,
            bool typ,
            uint256 bfee,
            uint256 stakefee
        );
}

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INFMBUYBACK
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
interface INfmBuyBack {
    function _BuyBack() external returns (bool);
}

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INFMBUYBACK
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
interface INfmUV2Pool {
    function redeemLPToken() external returns (bool);
}

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INFMAIRDROP
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
interface INfmAirdrop {
    function _checkPayment(address sender) external view returns (uint256);

    function _getAirdrop(address Sender) external returns (bool);

    function _getWithdraw() external returns (bool);
}

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// INFMBONUS
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
interface INfmExtraBonus {
    function _getBonus(address winner) external returns (bool);

    function _returnPayoutRule() external view returns (uint256);

    function updateSchalter() external returns (bool);

    function _getWithdraw(
        address To,
        uint256 amount,
        bool percent
    ) external returns (bool);

    function updatePayoutRule() external returns (bool);
}

//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/// @title NFM.sol
/// @author Fernando Viktor Seidl E-mail: [email protected]
/// @notice ERC20 Token Standard Contract with special extensions in the "_transfer" functionality *** NFM ERC20 TOKEN ***
/// @dev This ERC20 contract includes all functionalities of an ERC20 standard. The only difference to the standard are the built-in
///            extensions in the _transfer function.
///            The following interfaces are required for the smooth functionality of the extensions:
///            -    Controller Interface
///            -    Timer Interface
///            -    PAD Interface
///            -    Minting Interface
///            -    Swap Interface
///            -    Liquidity Interface
///            -    Burning Interface
///            -    Bonus Interface
///            -    Airdrop Interface
///            -    Vault Interface
///            -    LP-Redemption Interface
///            -    BuyBack Interface
///
///            TOKEN DETAILS:
///            -    Inicial total supply 400,000,000 NFM
///            -    Final total supply 1,000,000,000 NFM
///            -    Token Decimals 18
///            -    Token Name: Nftismus
///            -    Token Symbol: NFM
///
///            TOKEN EXTENSIONS:
///            -    PAD (Pump and Dump security): Used to protect against pump and dump actions. All accounts have a daily
///                 transaction limit of 1 million NFM. Large investors can whitelist this up to 1.5 million for a fee of 10,000 NFM
///            -    Minting: 7,600,000,000 NFM are created by minting in 8 years. 60% of the amount can only be obtained via
///                 the staking pool. 15% is allocated to the Uniswap protocol. 5% goes to AFT Governance. 10% to the developers
///                 and 10% to the NFM Treasury for investments to generate profits for the Bonus Event.
///            -    Burning and Community: 7,000,000,000 NFM are destroyed by burning process starting after 4 years with a burning
///                 fee of 2%  and a Community Fee of 2%. The burning fee will be maintained until the total amount has shrunk back to
///                 1 billion. When this is done, the burning fee will be credited to the community. The community fee is a staking contribution.
///                 Since the staking pool is funded by the minting protocol, which is finite. An infinite interest system is created by the
///                 community fee, so that interest can still be generated in the stake even after minting.
///            -    Liquidity: extension implements Uniswapv2 Protocol and adds liquidity to different markets.
///            -    Swap: extension implements Uniswapv2 Protocol and exchanges the NFM for different currencies for the Liquidity extension
///                 10% of every realized swap goes into the Bonus Event.
///            -    Timer: controls the timing of all extensions of the protocol
///            -    Bonus: allows NFM owners to receive profit distributions of the protocol in other currencies such
///                 as WBTC,WBNB,WETH,WMATIC,DAI,... every 100 days
///            -    Airdrop: allows NFM owners to receive profit distributions of the protocol in other currencies from the IDO
///                 Launchpad or listed Airdrops from other projects... every 6 days
///            -    LP-Redemption: Redeem the locked LP tokens step by step. 20% goes to the NFM Community through the Bonus Event. The
///                 remaining 80% goes to NFM Treasury, AFT Governance and Developers on a 40/30/10 split
///            -    Vault Interface: Makes investments in different protocols like Aave, Uniswap,... to generate additional profits for the bonus payouts.
///            -    BuyBack: Buyback program will start after reaching the final total supply of 1 billion NFM. Buybacks are executed monthly (30 day interval)
///                 via the decentralized markets on UniswapV2.
///
///            TOKEN USE CASE:
///            -    The principal application of the NFM token is the creation of value. This should not only be borne by the token itself,
///                 but also by future projects in the art, real estate and financial sectors
///            -    We as founders have the idea of ​​creating something completely new, which not only refers to the digital values, but also
///                 includes the physical real value.
///            -    The token can be viewed as an auto-generating yield token. With the help of the extensions, the NFM receives a share
///                 of bonus payments and airdrops. These are distributed via the stake or via trading
///            -    Our vision is to add real products to the returns in the future.
//------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
contract NFM {
    //include SafeMath
    using SafeMath for uint256;
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    STANDARD ERC20 MAPPINGS:
    _balances(owner address, nfm amount)
    _allowances(owner address, spender address, nfm amount)
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    mapping(address => uint256) public _balances;
    mapping(address => mapping(address => uint256)) public _allowances;
    mapping(address => uint256) private _BonusTracker;
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    CONTRACT EVENTS
    STANDARD ERC20 EVENTS:
    Transfer(sender, receiver, amount);
    Approval(owner, spender, amount);
    SPECIAL EVENT:
    Burning(sender, receiver, BurningFee, Timestamp
    );
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
    event Burning(
        address indexed sender,
        address indexed receiver,
        uint256 BFee,
        uint256 Time
    );

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    ERC20 STANDARD ATTRIBUTES
    _TokenName           => Name of the Token (Nftismus)
    _TokenSymbol         => Symbol of the Token (NFM)
    _TokenDecimals      =>  Precision of the Token (18 Decimals)
    _TotalSupply            =>  Total Amount of Tokens (Inicial 400 Million NFM)
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    string private _TokenName;
    string private _TokenSymbol;
    uint256 private _TokenDecimals;
    uint256 private _TotalSupply;

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    SECURITY ATTRIBUTES
    _paused        => Pausing can only be commissioned by the Dao.
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    uint256 private _paused;
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    CONTROLLER
    OWNER = MSG.SENDER ownership will be handed over to dao
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    address private _Owner;
    INfmController public _Controller;
    address private _SController;

    constructor(
        string memory TokenName,
        string memory TokenSymbol,
        uint256 TokenDecimals,
        address Controller
    ) {
        _TokenName = TokenName;
        _TokenSymbol = TokenSymbol;
        _TokenDecimals = TokenDecimals;
        _TotalSupply = 400000000 * 10**TokenDecimals;
        _Owner = msg.sender;
        _SController = Controller;
        INfmController Cont = INfmController(Controller);
        _Controller = Cont;
        _balances[_Owner] = _TotalSupply;
        emit Transfer(address(0), _Owner, _TotalSupply);
        _paused = 0;
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @name() returns (string);
    Strandard ERC20 Function
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function name() public view returns (string memory) {
        return _TokenName;
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @symbol() returns (string);
    Strandard ERC20 Function
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function symbol() public view returns (string memory) {
        return _TokenSymbol;
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @decimals() returns (uint256);
    Strandard ERC20 Function
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function decimals() public view returns (uint256) {
        return _TokenDecimals;
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @totalSupply() returns (uint256);
    Strandard ERC20 Function
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function totalSupply() public view returns (uint256) {
        return _TotalSupply;
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @balanceOf(address account) returns (uint256);
    Strandard ERC20 Function
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function balanceOf(address account) public view returns (uint256) {
        return _balances[account];
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @bonusCheck(address account) returns (uint256, uint256, bool);
    Special Function for Bonus Extension
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function bonusCheck(address account) public view returns (uint256) {
        require(
            _Controller._checkWLSC(_SController, msg.sender) == true ||
                msg.sender == _Owner,
            "oO"
        );
        return _BonusTracker[account];
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @allowance(address owner, address spender) returns (uint256);
    Strandard ERC20 Function
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function allowance(address owner, address spender)
        public
        view
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @onOffNFM() returns (bool);
    This function can only be executed by the Dao and is used to pause the protocol
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function onOffNFM() public returns (bool) {
        require(msg.sender != address(0), "0A");
        require(
            _Controller._checkWLSC(_SController, msg.sender) == true ||
                msg.sender == _Owner,
            "oO"
        );
        if (_paused == 0) {
            _paused = 1;
        } else {
            _paused = 0;
        }
        return true;
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @transfer(address to, uint256 amount)  returns (bool);
    Strandard ERC20 Function 
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function transfer(address to, uint256 amount) public returns (bool) {
        address owner = msg.sender;
        _transfer(owner, to, amount);
        return true;
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @transferFrom(address from, address to, uint256 amount)   returns (bool);
    Strandard ERC20 Function
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public returns (bool) {
        address spender = msg.sender;
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @_transfer(address from, address to, uint256 amount)  returns (bool);
    Strandard ERC20 Function with implemented Extensions and ReentrancyGuard as safety mechanism
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "0A");
        require(to != address(0), "0A");
        require(_paused == 0, "_P");
        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "<B");
        //--------------------------------------------------------------------------------------------
        /**
        IF ADDRESS IS WHITELISTED
        THEN DON'T APPLY LOGIC SMART CONTRACT IS CALLING
        */
        //--------------------------------------------------------------------------------------------
        if (_Controller._checkWLSC(_SController, msg.sender) == true) {
            unchecked {
                _balances[from] = SafeMath.sub(fromBalance, amount);
            }
            if (
                block.timestamp <
                INfmTimer(address(_Controller._getTimer()))
                    ._getExtraBonusAllTime() &&
                block.timestamp <
                INfmTimer(address(_Controller._getTimer()))
                    ._getExtraBonusAirdropTime()
            ) {
                _BonusTracker[to] = _balances[to] + amount;
                _BonusTracker[from] = _balances[from];
            }

            _balances[to] += amount;

            emit Transfer(from, to, amount);
        } else {
            //--------------------------------------------------------------------------------------------
            /**
            IF ADDRESS IS NOT WHITELISTED 
            LOGIC MUST BE APPLIED
             */
            //--------------------------------------------------------------------------------------------

            //--------------------------------------------------------------------------------------------
            /**
            1 - )   APPLY PAD SECURITY
             */
            //--------------------------------------------------------------------------------------------
            require(
                INfmPad(_Controller._getPad())._PADCHECK(from, amount) == true,
                "PAD"
            );

            //--------------------------------------------------------------------------------------------
            /**
            INICIALIZE TIMER INTERFACE FOR ALL OTHER EXTENSION-CHECKS
             */
            //--------------------------------------------------------------------------------------------
            INfmTimer Timer = INfmTimer(_Controller._getTimer());

            //--------------------------------------------------------------------------------------------
            /**
            CHECK IF THE LOGIC OF THE PROTOCOL HAS BEEN INICIALIZED, IF NOT THEN
            NO EXTENSIONS  CAN BE APPLIED (TOKEN IS ALREADY ON
             */
            //--------------------------------------------------------------------------------------------
            if (
                Timer._getStartTime() > 0 &&
                Timer._getStartTime() < block.timestamp
            ) {
                //--------------------------------------------------------------------------------------------
                /**
                INICIALIZE TLOCKER VARIABLE
                (ALLOWS ONLY ONE EXTENSION TO BE EXECUTED AT A TIME)
                */
                //--------------------------------------------------------------------------------------------
                bool tlocker = false;

                //--------------------------------------------------------------------------------------------
                /**
                2 - )   MINTING EXTENSION 
                */
                //--------------------------------------------------------------------------------------------
                if (
                    block.timestamp <= Timer._getEndMintTime() &&
                    block.timestamp >= Timer._getDailyMintTime()
                ) {
                    INfmMinting Minter = INfmMinting(_Controller._getMinting());
                    if (Minter._minting(from) == true) {
                        tlocker = true;
                    }
                }
                //--------------------------------------------------------------------------------------------
                /**
                3 - )   LIQUIDITY EXTENSION 
                */
                //--------------------------------------------------------------------------------------------
                if (
                    tlocker == false &&
                    block.timestamp >= Timer._getUV2_LiquidityTime() &&
                    block.timestamp <= Timer._getEndMintTime()
                ) {
                    INfmAddLiquidity Liquidity = INfmAddLiquidity(
                        _Controller._getLiquidity()
                    );
                    if (Liquidity._addLiquidity() == true) {
                        INfmMinting(_Controller._getMinting())
                            ._updateBNFTAmount(msg.sender);
                        tlocker = true;
                    }
                }
                //--------------------------------------------------------------------------------------------
                /**
                4 - )   SWAP EXTENSION 
                */
                //--------------------------------------------------------------------------------------------
                if (
                    tlocker == false &&
                    block.timestamp >= Timer._getUV2_SwapTime() &&
                    block.timestamp <= Timer._getEndMintTime()
                ) {
                    //Start Swapping
                    INfmSwap Swapper = INfmSwap(_Controller._getSwap());
                    if (Swapper._LiquifyAndSwap() == true) {
                        INfmMinting(_Controller._getMinting())
                            ._updateBNFTAmount(msg.sender);
                        tlocker = true;
                    }
                }
                //--------------------------------------------------------------------------------------------
                /**
                7 - )   LP-TOKEN REDEMPTION 
                */
                //--------------------------------------------------------------------------------------------
                if (
                    tlocker == false &&
                    block.timestamp >= Timer._getUV2_RemoveLiquidityTime()
                ) {
                    //Start LP-Redemption
                    INfmUV2Pool UV2Pool = INfmUV2Pool(
                        _Controller._getUV2Pool()
                    );
                    if (UV2Pool.redeemLPToken() == true) {
                        tlocker = true;
                    }
                }
                //--------------------------------------------------------------------------------------------
                /**
                8 - )   BUYBACK EXTENSION 
                */
                //--------------------------------------------------------------------------------------------
                if (
                    tlocker == false &&
                    block.timestamp >= Timer._getStartBuyBackTime()
                ) {
                    //Start BuyBack
                    (, address BBack) = _Controller._getBonusBuyBack();
                    INfmBuyBack BuyBack = INfmBuyBack(BBack);
                    if (BuyBack._BuyBack() == true) {
                        tlocker = true;
                    }
                }
                //--------------------------------------------------------------------------------------------
                /**
                5 - )   BONUS EXTENSION 
                */
                //--------------------------------------------------------------------------------------------
                if (
                    tlocker == false &&
                    block.timestamp >= Timer._getExtraBonusAllTime() &&
                    _BonusTracker[from] >= 150 * 10**18
                ) {
                    if (block.timestamp >= Timer._getEndExtraBonusAllTime()) {
                        //bonus finalized
                        (address IBonus, ) = _Controller._getBonusBuyBack();
                        INfmExtraBonus Bonus = INfmExtraBonus(IBonus);
                        if (Bonus._returnPayoutRule() == 0) {
                            //Make Withdraw to Stake 50%
                            if (
                                Bonus._getWithdraw(
                                    address(
                                        _Controller
                                            ._getNFMStakingTreasuryERC20()
                                    ),
                                    50,
                                    true
                                ) == true
                            ) {
                                Bonus.updatePayoutRule();
                                tlocker = true;
                            }
                        } else if (Bonus._returnPayoutRule() == 1) {
                            //Make Withdraw to Treasury 50%
                            if (
                                Bonus._getWithdraw(
                                    address(_Controller._getTreasury()),
                                    0,
                                    false
                                ) == true
                            ) {
                                Bonus.updatePayoutRule();
                                tlocker = true;
                            }
                        } else {
                            Bonus.updatePayoutRule();
                            if (Bonus.updateSchalter() == true) {
                                Timer._updateExtraBonusAll();
                                tlocker = true;
                            }
                        }
                    } else {
                        //Bonus still going
                        (address IBonus, ) = _Controller._getBonusBuyBack();
                        INfmExtraBonus Bonus = INfmExtraBonus(IBonus);
                        if (Bonus._getBonus(from) == true) {
                            tlocker = true;
                        }
                    }
                }
                //--------------------------------------------------------------------------------------------
                /**
                6 - )   AIRDROP EXTENSION 
                */
                //--------------------------------------------------------------------------------------------
                if (
                    tlocker == false &&
                    block.timestamp >= Timer._getExtraBonusAirdropTime() &&
                    _BonusTracker[from] >= 150 * 10**18
                ) {
                    if (
                        block.timestamp >= Timer._getEndExtraBonusAirdropTime()
                    ) {
                        INfmAirdrop Airdrop = INfmAirdrop(
                            address(_Controller._getAirdrop())
                        );
                        if (Airdrop._getWithdraw() == true) {
                            tlocker = true;
                        }
                    } else {
                        //Airdrop already in place
                        INfmAirdrop Airdrop = INfmAirdrop(
                            address(_Controller._getAirdrop())
                        );
                        if (
                            Airdrop._checkPayment(from) !=
                            Timer._getEndExtraBonusAirdropTime()
                        ) {
                            if (Airdrop._getAirdrop(from) == true) {
                                tlocker = true;
                            }
                        }
                    }
                }
                //--------------------------------------------------------------------------------------------
                /**
                9 - )   BURNING EXTENSION 
                */
                //--------------------------------------------------------------------------------------------
                if (
                    tlocker == false &&
                    block.timestamp >= Timer._getStartBurnTime()
                ) {
                    //Start Burning

                    INfmBurning Burner = INfmBurning(_Controller._getBurning());
                    (
                        bool state,
                        bool typ,
                        uint256 bfee,
                        uint256 stakefee
                    ) = Burner.checkburn(amount);
                    if (state == true) {
                        tlocker = true;
                        if (typ == true) {
                            _burn(from, bfee);
                            fromBalance = _balances[from];
                            unchecked {
                                _balances[from] = SafeMath.sub(
                                    fromBalance,
                                    stakefee
                                );
                            }
                            _balances[
                                address(
                                    _Controller._getNFMStakingTreasuryERC20()
                                )
                            ] += stakefee;
                            emit Transfer(
                                from,
                                address(
                                    _Controller._getNFMStakingTreasuryERC20()
                                ),
                                stakefee
                            );
                            amount = SafeMath.sub(amount, (bfee + stakefee));
                        } else {
                            fromBalance = _balances[from];
                            unchecked {
                                _balances[from] = SafeMath.sub(
                                    fromBalance,
                                    stakefee * 2
                                );
                            }
                            _balances[
                                address(
                                    _Controller._getNFMStakingTreasuryERC20()
                                )
                            ] += stakefee * 2;
                            emit Transfer(
                                from,
                                address(
                                    _Controller._getNFMStakingTreasuryERC20()
                                ),
                                stakefee * 2
                            );
                            amount = SafeMath.sub(amount, stakefee * 2);
                        }
                    }
                }
            }
            fromBalance = _balances[from];
            unchecked {
                _balances[from] = SafeMath.sub(fromBalance, amount);
            }
            if (
                block.timestamp <
                INfmTimer(address(_Controller._getTimer()))
                    ._getExtraBonusAllTime() &&
                block.timestamp <
                INfmTimer(address(_Controller._getTimer()))
                    ._getExtraBonusAirdropTime()
            ) {
                _BonusTracker[to] = _balances[to] + amount;
                _BonusTracker[from] = _balances[from];
            }
            _balances[to] += amount;
            emit Transfer(from, to, amount);
        }
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @_spendAllowance(address owner, address spender, uint256 amount);
    Strandard ERC20 Function
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function _spendAllowance(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "<A");
            unchecked {
                _approve(
                    owner,
                    spender,
                    SafeMath.sub(currentAllowance, amount)
                );
            }
        }
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @_approve(address owner, address spender, uint256 amount);
    Strandard ERC20 Function
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "0A");
        require(spender != address(0), "0A");
        require(_paused == 0, "_P");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @approve(address spender, uint256 amount) return (bool);
    Strandard ERC20 Function
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function approve(address spender, uint256 amount) public returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @increaseAllowance(address spender, uint256 amount) return (bool);
    Strandard ERC20 Function
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        address owner = msg.sender;
        _approve(
            owner,
            spender,
            SafeMath.add(allowance(owner, spender), addedValue)
        );
        return true;
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @decreaseAllowance(address spender, uint256 amount) return (bool);
    Strandard ERC20 Function
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        address owner = msg.sender;
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "_D");
        unchecked {
            _approve(
                owner,
                spender,
                SafeMath.sub(currentAllowance, subtractedValue)
            );
        }
        return true;
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @_mint(address to, uint256 amount);
    Strandard ERC20 Function has been modified for the protocol
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function _mint(address to, uint256 amount) public virtual {
        require(msg.sender != address(0), "0A");
        require(to != address(0), "0A");
        require(_Controller._checkWLSC(_SController, msg.sender) == true, "oO");
        _TotalSupply += amount;
        _balances[to] += amount;
        _BonusTracker[to] = _balances[to];
        emit Transfer(address(0), to, amount);
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @_burn(address account, uint256 amount);
    Strandard ERC20 Function has been modified for the protocol
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "0A");
        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "A>B");
        unchecked {
            _balances[account] = SafeMath.sub(accountBalance, amount);
        }
        _BonusTracker[account] = _balances[account];
        _TotalSupply = SafeMath.sub(_TotalSupply, amount);
        emit Burning(account, address(0), amount, block.timestamp);
        emit Transfer(account, address(0), amount);
    }

    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    /*
    @_bridgeImp(address account, uint256 amount, uint256 amount) returns (bool);
    Bridge Implementation Function. This feature allows for future bridge implementations. Only allowed 
    addresses by the controller can call this function.
     */
    //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    function _bridgeImp(
        address sender,
        uint256 amount,
        uint256 typ
    ) public virtual returns (bool) {
        require(msg.sender != address(0), "0A");
        require(sender != address(0), "0A");
        require(_Controller._checkWLSC(_SController, msg.sender) == true, "oO");
        if (typ == 0) {
            //mint
            _mint(sender, amount);
            return true;
        } else {
            //burn
            _burn(sender, amount);
            return true;
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"TokenName","type":"string"},{"internalType":"string","name":"TokenSymbol","type":"string"},{"internalType":"uint256","name":"TokenDecimals","type":"uint256"},{"internalType":"address","name":"Controller","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"BFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"Time","type":"uint256"}],"name":"Burning","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_Controller","outputs":[{"internalType":"contract INfmController","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"_allowances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"typ","type":"uint256"}],"name":"_bridgeImp","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"_mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"bonusCheck","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"onOffNFM","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506040516200591e3803806200591e833981810160405281019062000037919062000551565b83600390805190602001906200004f92919062000264565b5082600490805190602001906200006892919062000264565b508160058190555081600a6200007f919062000784565b6317d78400620000909190620007d5565b60068190555033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600081905080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600654600080600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60065460405162000249919062000847565b60405180910390a360006007819055505050505050620008c8565b828054620002729062000893565b90600052602060002090601f016020900481019282620002965760008555620002e2565b82601f10620002b157805160ff1916838001178555620002e2565b82800160010185558215620002e2579182015b82811115620002e1578251825591602001919060010190620002c4565b5b509050620002f19190620002f5565b5090565b5b8082111562000310576000816000905550600101620002f6565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200037d8262000332565b810181811067ffffffffffffffff821117156200039f576200039e62000343565b5b80604052505050565b6000620003b462000314565b9050620003c2828262000372565b919050565b600067ffffffffffffffff821115620003e557620003e462000343565b5b620003f08262000332565b9050602081019050919050565b60005b838110156200041d57808201518184015260208101905062000400565b838111156200042d576000848401525b50505050565b60006200044a6200044484620003c7565b620003a8565b9050828152602081018484840111156200046957620004686200032d565b5b62000476848285620003fd565b509392505050565b600082601f83011262000496576200049562000328565b5b8151620004a884826020860162000433565b91505092915050565b6000819050919050565b620004c681620004b1565b8114620004d257600080fd5b50565b600081519050620004e681620004bb565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200051982620004ec565b9050919050565b6200052b816200050c565b81146200053757600080fd5b50565b6000815190506200054b8162000520565b92915050565b600080600080608085870312156200056e576200056d6200031e565b5b600085015167ffffffffffffffff8111156200058f576200058e62000323565b5b6200059d878288016200047e565b945050602085015167ffffffffffffffff811115620005c157620005c062000323565b5b620005cf878288016200047e565b9350506040620005e287828801620004d5565b9250506060620005f5878288016200053a565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200068f5780860481111562000667576200066662000601565b5b6001851615620006775780820291505b8081029050620006878562000630565b945062000647565b94509492505050565b600082620006aa57600190506200077d565b81620006ba57600090506200077d565b8160018114620006d35760028114620006de5762000714565b60019150506200077d565b60ff841115620006f357620006f262000601565b5b8360020a9150848211156200070d576200070c62000601565b5b506200077d565b5060208310610133831016604e8410600b84101617156200074e5782820a90508381111562000748576200074762000601565b5b6200077d565b6200075d84848460016200063d565b9250905081840481111562000777576200077662000601565b5b81810290505b9392505050565b60006200079182620004b1565b91506200079e83620004b1565b9250620007cd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000698565b905092915050565b6000620007e282620004b1565b9150620007ef83620004b1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200082b576200082a62000601565b5b828202905092915050565b6200084181620004b1565b82525050565b60006020820190506200085e600083018462000836565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008ac57607f821691505b602082108103620008c257620008c162000864565b5b50919050565b61504680620008d86000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80634e6ec247116100a25780639f760e82116100715780639f760e821461030b578063a457c2d71461033b578063a9059cbb1461036b578063c85ec3a51461039b578063dd62ed3e146103cb57610116565b80634e6ec247146102715780636ebcf6071461028d57806370a08231146102bd57806395d89b41146102ed57610116565b806318160ddd116100e957806318160ddd146101b75780631f4a68cc146101d557806323b872dd146101f3578063313ce56714610223578063395093511461024157610116565b8063024c2ddd1461011b57806302c5fdd61461014b57806306fdde0314610169578063095ea7b314610187575b600080fd5b610135600480360381019061013091906144a6565b6103fb565b60405161014291906144ff565b60405180910390f35b610153610420565b6040516101609190614535565b60405180910390f35b610171610615565b60405161017e91906145e9565b60405180910390f35b6101a1600480360381019061019c9190614637565b6106a7565b6040516101ae9190614535565b60405180910390f35b6101bf6106be565b6040516101cc91906144ff565b60405180910390f35b6101dd6106c8565b6040516101ea91906146d6565b60405180910390f35b61020d600480360381019061020891906146f1565b6106ee565b60405161021a9190614535565b60405180910390f35b61022b610716565b60405161023891906144ff565b60405180910390f35b61025b60048036038101906102569190614637565b610720565b6040516102689190614535565b60405180910390f35b61028b60048036038101906102869190614637565b61074e565b005b6102a760048036038101906102a29190614744565b610a8c565b6040516102b491906144ff565b60405180910390f35b6102d760048036038101906102d29190614744565b610aa4565b6040516102e491906144ff565b60405180910390f35b6102f5610aec565b60405161030291906145e9565b60405180910390f35b61032560048036038101906103209190614744565b610b7e565b60405161033291906144ff565b60405180910390f35b61035560048036038101906103509190614637565b610d25565b6040516103629190614535565b60405180910390f35b61038560048036038101906103809190614637565b610d9c565b6040516103929190614535565b60405180910390f35b6103b560048036038101906103b09190614771565b610db8565b6040516103c29190614535565b60405180910390f35b6103e560048036038101906103e091906144a6565b610fce565b6040516103f291906144ff565b60405180910390f35b6001602052816000526040600020602052806000526040600020600091509150505481565b60008073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048790614810565b60405180910390fd5b60011515600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638f40cbcd600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff1660e01b815260040161051392919061483f565b602060405180830381865afa158015610530573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105549190614894565b151514806105af5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e59061490d565b60405180910390fd5b60006007540361060557600160078190555061060e565b60006007819055505b6001905090565b6060600380546106249061495c565b80601f01602080910402602001604051908101604052809291908181526020018280546106509061495c565b801561069d5780601f106106725761010080835404028352916020019161069d565b820191906000526020600020905b81548152906001019060200180831161068057829003601f168201915b5050505050905090565b60006106b4338484611055565b6001905092915050565b6000600654905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000803390506106ff858285611263565b61070a8585856112f6565b60019150509392505050565b6000600554905090565b600080339050610743818561073e6107388589610fce565b8761408f565b611055565b600191505092915050565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16036107bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b490614810565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361082c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082390614810565b60405180910390fd5b60011515600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638f40cbcd600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff1660e01b81526004016108af92919061483f565b602060405180830381865afa1580156108cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f09190614894565b151514610932576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109299061490d565b60405180910390fd5b806006600082825461094491906149bc565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461099991906149bc565b925050819055506000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610a8091906144ff565b60405180910390a35050565b60006020528060005260406000206000915090505481565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060048054610afb9061495c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b279061495c565b8015610b745780601f10610b4957610100808354040283529160200191610b74565b820191906000526020600020905b815481529060010190602001808311610b5757829003601f168201915b5050505050905090565b600060011515600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638f40cbcd600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff1660e01b8152600401610c0392919061483f565b602060405180830381865afa158015610c20573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c449190614894565b15151480610c9f5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd59061490d565b60405180910390fd5b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000803390506000610d378286610fce565b905083811015610d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7390614a5e565b60405180910390fd5b610d908286610d8b84886140ed565b611055565b60019250505092915050565b600080339050610dad8185856112f6565b600191505092915050565b60008073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603610e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1f90614810565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e90614810565b60405180910390fd5b60011515600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638f40cbcd600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff1660e01b8152600401610f1a92919061483f565b602060405180830381865afa158015610f37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5b9190614894565b151514610f9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f949061490d565b60405180910390fd5b60008203610fb857610faf848461074e565b60019050610fc7565b610fc28484614137565b600190505b9392505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bb90614810565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112a90614810565b60405180910390fd5b600060075414611178576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116f90614aca565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161125691906144ff565b60405180910390a3505050565b600061126f8484610fce565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146112f057818110156112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d290614b36565b60405180910390fd5b6112ef84846112ea84866140ed565b611055565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611365576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135c90614810565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb90614810565b60405180910390fd5b600060075414611419576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141090614aca565b60405180910390fd5b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690614ba2565b60405180910390fd5b60011515600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638f40cbcd600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16336040518363ffffffff1660e01b815260040161152292919061483f565b602060405180830381865afa15801561153f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115639190614894565b1515036119945761157481836140ed565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663278abd2a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611623573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116479190614bd7565b73ffffffffffffffffffffffffffffffffffffffff166315929a1c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611691573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116b59190614c19565b421080156117c05750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663278abd2a6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561172b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174f9190614bd7565b73ffffffffffffffffffffffffffffffffffffffff1663a707d8ab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611799573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117bd9190614c19565b42105b156118d557816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461180f91906149bc565b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461192391906149bc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161198791906144ff565b60405180910390a3614089565b60011515600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c9a468ee6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a299190614bd7565b73ffffffffffffffffffffffffffffffffffffffff16636b2ab61f86856040518363ffffffff1660e01b8152600401611a63929190614c46565b6020604051808303816000875af1158015611a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa69190614894565b151514611ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf90614cbb565b60405180910390fd5b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663278abd2a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7b9190614bd7565b905060008173ffffffffffffffffffffffffffffffffffffffff166320bb75176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bee9190614c19565b118015611c685750428173ffffffffffffffffffffffffffffffffffffffff166320bb75176040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c669190614c19565b105b15613c215760008173ffffffffffffffffffffffffffffffffffffffff1663611bee096040518163ffffffff1660e01b8152600401602060405180830381865afa158015611cba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cde9190614c19565b4211158015611d5b57508173ffffffffffffffffffffffffffffffffffffffff1663c3b38b596040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d579190614c19565b4210155b15611e83576000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7d80f916040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611df39190614bd7565b9050600115158173ffffffffffffffffffffffffffffffffffffffff1663f086ebb5896040518263ffffffff1660e01b8152600401611e329190614cdb565b6020604051808303816000875af1158015611e51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e759190614894565b151503611e8157600191505b505b60001515811515148015611f0557508173ffffffffffffffffffffffffffffffffffffffff16631719254e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611edd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f019190614c19565b4210155b8015611f7f57508173ffffffffffffffffffffffffffffffffffffffff1663611bee096040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f7b9190614c19565b4211155b156121a9576000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166326dc53c86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ff3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120179190614bd7565b9050600115158173ffffffffffffffffffffffffffffffffffffffff1663395d33846040518163ffffffff1660e01b81526004016020604051808303816000875af115801561206a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061208e9190614894565b1515036121a757600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7d80f916040518163ffffffff1660e01b8152600401602060405180830381865afa158015612102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121269190614bd7565b73ffffffffffffffffffffffffffffffffffffffff16631f2c8a6c336040518263ffffffff1660e01b815260040161215e9190614cdb565b6020604051808303816000875af115801561217d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a19190614894565b50600191505b505b6000151581151514801561222b57508173ffffffffffffffffffffffffffffffffffffffff1663098176956040518163ffffffff1660e01b8152600401602060405180830381865afa158015612203573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122279190614c19565b4210155b80156122a557508173ffffffffffffffffffffffffffffffffffffffff1663611bee096040518163ffffffff1660e01b8152600401602060405180830381865afa15801561227d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a19190614c19565b4211155b156124cf576000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663476247af6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612319573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233d9190614bd7565b9050600115158173ffffffffffffffffffffffffffffffffffffffff16632e59fb656040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612390573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123b49190614894565b1515036124cd57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d7d80f916040518163ffffffff1660e01b8152600401602060405180830381865afa158015612428573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244c9190614bd7565b73ffffffffffffffffffffffffffffffffffffffff16631f2c8a6c336040518263ffffffff1660e01b81526004016124849190614cdb565b6020604051808303816000875af11580156124a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124c79190614894565b50600191505b505b6000151581151514801561255157508173ffffffffffffffffffffffffffffffffffffffff1663e2bee9016040518163ffffffff1660e01b8152600401602060405180830381865afa158015612529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254d9190614c19565b4210155b1561266e576000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630e02b73a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e99190614bd7565b9050600115158173ffffffffffffffffffffffffffffffffffffffff1663fdde317e6040518163ffffffff1660e01b81526004016020604051808303816000875af115801561263c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126609190614894565b15150361266c57600191505b505b600015158115151480156126f057508173ffffffffffffffffffffffffffffffffffffffff16639c0f0c296040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126ec9190614c19565b4210155b15612813576000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d8206e986040518163ffffffff1660e01b81526004016040805180830381865afa158015612763573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127879190614cf6565b9150506000819050600115158173ffffffffffffffffffffffffffffffffffffffff166384b5680c6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156127e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128049190614894565b15150361281057600192505b50505b6000151581151514801561289557508173ffffffffffffffffffffffffffffffffffffffff166315929a1c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561286d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128919190614c19565b4210155b80156128e95750680821ab0d4414980000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b156130b2578173ffffffffffffffffffffffffffffffffffffffff1663533f391d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612939573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295d9190614c19565b4210612f88576000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d8206e986040518163ffffffff1660e01b81526004016040805180830381865afa1580156129d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129f59190614cf6565b509050600081905060008173ffffffffffffffffffffffffffffffffffffffff16632441ca236040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a6e9190614c19565b03612c0c57600115158173ffffffffffffffffffffffffffffffffffffffff1663bb09edae600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166375e4ebcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b249190614bd7565b603260016040518463ffffffff1660e01b8152600401612b4693929190614d71565b6020604051808303816000875af1158015612b65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b899190614894565b151503612c07578073ffffffffffffffffffffffffffffffffffffffff1663280ae6a26040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612bdd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c019190614894565b50600192505b612f81565b60018173ffffffffffffffffffffffffffffffffffffffff16632441ca236040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c7d9190614c19565b03612e1a57600115158173ffffffffffffffffffffffffffffffffffffffff1663bb09edae600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dccf9d866040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d339190614bd7565b6000806040518463ffffffff1660e01b8152600401612d5493929190614de3565b6020604051808303816000875af1158015612d73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d979190614894565b151503612e15578073ffffffffffffffffffffffffffffffffffffffff1663280ae6a26040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612deb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e0f9190614894565b50600192505b612f80565b8073ffffffffffffffffffffffffffffffffffffffff1663280ae6a26040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612e67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8b9190614894565b50600115158173ffffffffffffffffffffffffffffffffffffffff166365058c186040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612edd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f019190614894565b151503612f7f578373ffffffffffffffffffffffffffffffffffffffff166398d350f16040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612f55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f799190614894565b50600192505b5b5b50506130b1565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d8206e986040518163ffffffff1660e01b81526004016040805180830381865afa158015612ff6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061301a9190614cf6565b5090506000819050600115158173ffffffffffffffffffffffffffffffffffffffff166302b23efd8a6040518263ffffffff1660e01b815260040161305f9190614cdb565b6020604051808303816000875af115801561307e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a29190614894565b1515036130ae57600192505b50505b5b6000151581151514801561313457508173ffffffffffffffffffffffffffffffffffffffff1663a707d8ab6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561310c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131309190614c19565b4210155b80156131885750680821ab0d4414980000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15613531578173ffffffffffffffffffffffffffffffffffffffff1663262fa37d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131fc9190614c19565b421061331e576000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663474193966040518163ffffffff1660e01b8152600401602060405180830381865afa158015613271573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132959190614bd7565b9050600115158173ffffffffffffffffffffffffffffffffffffffff16638878f99e6040518163ffffffff1660e01b81526004016020604051808303816000875af11580156132e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330c9190614894565b15150361331857600191505b50613530565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663474193966040518163ffffffff1660e01b8152600401602060405180830381865afa15801561338d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133b19190614bd7565b90508273ffffffffffffffffffffffffffffffffffffffff1663262fa37d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134229190614c19565b8173ffffffffffffffffffffffffffffffffffffffff166379c7869a896040518263ffffffff1660e01b815260040161345b9190614cdb565b602060405180830381865afa158015613478573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061349c9190614c19565b1461352e57600115158173ffffffffffffffffffffffffffffffffffffffff1663fd697d44896040518263ffffffff1660e01b81526004016134de9190614cdb565b6020604051808303816000875af11580156134fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135219190614894565b15150361352d57600191505b5b505b5b600015158115151480156135b357508173ffffffffffffffffffffffffffffffffffffffff1663cdf0f0656040518163ffffffff1660e01b8152600401602060405180830381865afa15801561358b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135af9190614c19565b4210155b15613c1f576000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16629c3f316040518163ffffffff1660e01b8152600401602060405180830381865afa158015613626573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061364a9190614bd7565b90506000806000808473ffffffffffffffffffffffffffffffffffffffff166373bf85f68a6040518263ffffffff1660e01b815260040161368b91906144ff565b608060405180830381865afa1580156136a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136cc9190614e1a565b93509350935093506001151584151503613c195760019550600115158315150361397d576136fa8b83614137565b6000808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054975061374588826140ed565b6000808d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600080600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166375e4ebcd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061381c9190614bd7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461386591906149bc565b92505081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166375e4ebcd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138fd9190614bd7565b73ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161395991906144ff565b60405180910390a361397689828461397191906149bc565b6140ed565b9850613c18565b6000808c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205497506139cb88600283026140ed565b6000808d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600281613a1a9190614e81565b600080600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166375e4ebcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aae9190614bd7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613af791906149bc565b92505081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166375e4ebcd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8f9190614bd7565b73ffffffffffffffffffffffffffffffffffffffff168b73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600284613bea9190614e81565b604051613bf791906144ff565b60405180910390a3613c1589600283613c109190614e81565b6140ed565b98505b5b50505050505b505b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549150613c6c82846140ed565b6000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663278abd2a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d3f9190614bd7565b73ffffffffffffffffffffffffffffffffffffffff166315929a1c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dad9190614c19565b42108015613eb85750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663278abd2a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e479190614bd7565b73ffffffffffffffffffffffffffffffffffffffff1663a707d8ab6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613e91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb59190614c19565b42105b15613fcd57826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054613f0791906149bc565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461401b91906149bc565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161407f91906144ff565b60405180910390a3505b50505050565b600080828461409e91906149bc565b9050838110156140e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016140da90614f27565b60405180910390fd5b8091505092915050565b600061412f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506143df565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036141a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161419d90614810565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561422c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161422390614f93565b60405180910390fd5b61423681836140ed565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614306600654836140ed565b600681905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167ff77158c6553fbad9c7c3e2f144cfd53961dd824a4953d83068340c3d3d18068b844260405161436c929190614fb3565b60405180910390a3600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516143d291906144ff565b60405180910390a3505050565b6000838311158290614427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161441e91906145e9565b60405180910390fd5b50600083856144369190614fdc565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061447382614448565b9050919050565b61448381614468565b811461448e57600080fd5b50565b6000813590506144a08161447a565b92915050565b600080604083850312156144bd576144bc614443565b5b60006144cb85828601614491565b92505060206144dc85828601614491565b9150509250929050565b6000819050919050565b6144f9816144e6565b82525050565b600060208201905061451460008301846144f0565b92915050565b60008115159050919050565b61452f8161451a565b82525050565b600060208201905061454a6000830184614526565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561458a57808201518184015260208101905061456f565b83811115614599576000848401525b50505050565b6000601f19601f8301169050919050565b60006145bb82614550565b6145c5818561455b565b93506145d581856020860161456c565b6145de8161459f565b840191505092915050565b6000602082019050818103600083015261460381846145b0565b905092915050565b614614816144e6565b811461461f57600080fd5b50565b6000813590506146318161460b565b92915050565b6000806040838503121561464e5761464d614443565b5b600061465c85828601614491565b925050602061466d85828601614622565b9150509250929050565b6000819050919050565b600061469c61469761469284614448565b614677565b614448565b9050919050565b60006146ae82614681565b9050919050565b60006146c0826146a3565b9050919050565b6146d0816146b5565b82525050565b60006020820190506146eb60008301846146c7565b92915050565b60008060006060848603121561470a57614709614443565b5b600061471886828701614491565b935050602061472986828701614491565b925050604061473a86828701614622565b9150509250925092565b60006020828403121561475a57614759614443565b5b600061476884828501614491565b91505092915050565b60008060006060848603121561478a57614789614443565b5b600061479886828701614491565b93505060206147a986828701614622565b92505060406147ba86828701614622565b9150509250925092565b7f3041000000000000000000000000000000000000000000000000000000000000600082015250565b60006147fa60028361455b565b9150614805826147c4565b602082019050919050565b60006020820190508181036000830152614829816147ed565b9050919050565b61483981614468565b82525050565b60006040820190506148546000830185614830565b6148616020830184614830565b9392505050565b6148718161451a565b811461487c57600080fd5b50565b60008151905061488e81614868565b92915050565b6000602082840312156148aa576148a9614443565b5b60006148b88482850161487f565b91505092915050565b7f6f4f000000000000000000000000000000000000000000000000000000000000600082015250565b60006148f760028361455b565b9150614902826148c1565b602082019050919050565b60006020820190508181036000830152614926816148ea565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061497457607f821691505b6020821081036149875761498661492d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006149c7826144e6565b91506149d2836144e6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614a0757614a0661498d565b5b828201905092915050565b7f5f44000000000000000000000000000000000000000000000000000000000000600082015250565b6000614a4860028361455b565b9150614a5382614a12565b602082019050919050565b60006020820190508181036000830152614a7781614a3b565b9050919050565b7f5f50000000000000000000000000000000000000000000000000000000000000600082015250565b6000614ab460028361455b565b9150614abf82614a7e565b602082019050919050565b60006020820190508181036000830152614ae381614aa7565b9050919050565b7f3c41000000000000000000000000000000000000000000000000000000000000600082015250565b6000614b2060028361455b565b9150614b2b82614aea565b602082019050919050565b60006020820190508181036000830152614b4f81614b13565b9050919050565b7f3c42000000000000000000000000000000000000000000000000000000000000600082015250565b6000614b8c60028361455b565b9150614b9782614b56565b602082019050919050565b60006020820190508181036000830152614bbb81614b7f565b9050919050565b600081519050614bd18161447a565b92915050565b600060208284031215614bed57614bec614443565b5b6000614bfb84828501614bc2565b91505092915050565b600081519050614c138161460b565b92915050565b600060208284031215614c2f57614c2e614443565b5b6000614c3d84828501614c04565b91505092915050565b6000604082019050614c5b6000830185614830565b614c6860208301846144f0565b9392505050565b7f5041440000000000000000000000000000000000000000000000000000000000600082015250565b6000614ca560038361455b565b9150614cb082614c6f565b602082019050919050565b60006020820190508181036000830152614cd481614c98565b9050919050565b6000602082019050614cf06000830184614830565b92915050565b60008060408385031215614d0d57614d0c614443565b5b6000614d1b85828601614bc2565b9250506020614d2c85828601614bc2565b9150509250929050565b6000819050919050565b6000614d5b614d56614d5184614d36565b614677565b6144e6565b9050919050565b614d6b81614d40565b82525050565b6000606082019050614d866000830186614830565b614d936020830185614d62565b614da06040830184614526565b949350505050565b6000819050919050565b6000614dcd614dc8614dc384614da8565b614677565b6144e6565b9050919050565b614ddd81614db2565b82525050565b6000606082019050614df86000830186614830565b614e056020830185614dd4565b614e126040830184614526565b949350505050565b60008060008060808587031215614e3457614e33614443565b5b6000614e428782880161487f565b9450506020614e538782880161487f565b9350506040614e6487828801614c04565b9250506060614e7587828801614c04565b91505092959194509250565b6000614e8c826144e6565b9150614e97836144e6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614ed057614ecf61498d565b5b828202905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614f11601b8361455b565b9150614f1c82614edb565b602082019050919050565b60006020820190508181036000830152614f4081614f04565b9050919050565b7f413e420000000000000000000000000000000000000000000000000000000000600082015250565b6000614f7d60038361455b565b9150614f8882614f47565b602082019050919050565b60006020820190508181036000830152614fac81614f70565b9050919050565b6000604082019050614fc860008301856144f0565b614fd560208301846144f0565b9392505050565b6000614fe7826144e6565b9150614ff2836144e6565b9250828210156150055761500461498d565b5b82820390509291505056fea2646970667358221220581abc9957424178eac13677ae8f5d6f1e44c6b6cbaf1583fef600bdfafd28fb64736f6c634300080d0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000f4dc0c3c0141477742078e4676c909650e29a71b00000000000000000000000000000000000000000000000000000000000000084e465449534d55530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004204e464d00000000000000000000000000000000000000000000000000000000

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

000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000f4dc0c3c0141477742078e4676c909650e29a71b00000000000000000000000000000000000000000000000000000000000000084e465449534d55530000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004204e464d00000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : TokenName (string): NFTISMUS
Arg [1] : TokenSymbol (string): NFM
Arg [2] : TokenDecimals (uint256): 18
Arg [3] : Controller (address): 0xf4dc0c3c0141477742078e4676c909650e29a71b

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000f4dc0c3c0141477742078e4676c909650e29a71b
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [5] : 4e465449534d5553000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [7] : 204e464d00000000000000000000000000000000000000000000000000000000


Deployed ByteCode Sourcemap

16448:34764:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17102:66;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25477:392;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21153:88;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46052:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22824:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20013:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27045:276;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22264:90;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;46705:331;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;48554:399;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17051:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23398:110;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21705:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24019:275;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;47539:508;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26361:174;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;50676:533;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24792:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17102:66;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;25477:392::-;25513:4;25560:1;25538:24;;:10;:24;;;25530:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;25654:4;25602:56;;:11;;;;;;;;;;;:22;;;25625:12;;;;;;;;;;;25639:10;25602:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;:97;;;;25693:6;;;;;;;;;;;25679:20;;:10;:20;;;25602:97;25580:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;25755:1;25744:7;;:12;25740:100;;25783:1;25773:7;:11;;;;25740:100;;;25827:1;25817:7;:11;;;;25740:100;25857:4;25850:11;;25477:392;:::o;21153:88::-;21190:13;21223:10;21216:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21153:88;:::o;46052:150::-;46118:4;46135:37;46144:10;46156:7;46165:6;46135:8;:37::i;:::-;46190:4;46183:11;;46052:150;;;;:::o;22824:91::-;22868:7;22895:12;;22888:19;;22824:91;:::o;20013:33::-;;;;;;;;;;;;;:::o;27045:276::-;27159:4;27176:15;27194:10;27176:28;;27215:38;27231:4;27237:7;27246:6;27215:15;:38::i;:::-;27264:27;27274:4;27280:2;27284:6;27264:9;:27::i;:::-;27309:4;27302:11;;;27045:276;;;;;:::o;22264:90::-;22305:7;22332:14;;22325:21;;22264:90;:::o;46705:331::-;46820:4;46842:13;46858:10;46842:26;;46879:127;46902:5;46922:7;46944:51;46957:25;46967:5;46974:7;46957:9;:25::i;:::-;46984:10;46944:12;:51::i;:::-;46879:8;:127::i;:::-;47024:4;47017:11;;;46705:331;;;;:::o;48554:399::-;48653:1;48631:24;;:10;:24;;;48623:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;48695:1;48681:16;;:2;:16;;;48673:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;48775:4;48723:56;;:11;;;;;;;;;;;:22;;;48746:12;;;;;;;;;;;48760:10;48723:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;48715:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;48813:6;48797:12;;:22;;;;;;;:::i;:::-;;;;;;;;48847:6;48830:9;:13;48840:2;48830:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;48884:9;:13;48894:2;48884:13;;;;;;;;;;;;;;;;48864;:17;48878:2;48864:17;;;;;;;;;;;;;;;:33;;;;48934:2;48913:32;;48930:1;48913:32;;;48938:6;48913:32;;;;;;:::i;:::-;;;;;;;;48554:399;;:::o;17051:44::-;;;;;;;;;;;;;;;;;:::o;23398:110::-;23455:7;23482:9;:18;23492:7;23482:18;;;;;;;;;;;;;;;;23475:25;;23398:110;;;:::o;21705:92::-;21744:13;21777:12;21770:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21705:92;:::o;24019:275::-;24077:7;24171:4;24119:56;;:11;;;;;;;;;;;:22;;;24142:12;;;;;;;;;;;24156:10;24119:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;:97;;;;24210:6;;;;;;;;;;;24196:20;;:10;:20;;;24119:97;24097:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;24264:13;:22;24278:7;24264:22;;;;;;;;;;;;;;;;24257:29;;24019:275;;;:::o;47539:508::-;47659:4;47681:13;47697:10;47681:26;;47718:24;47745:25;47755:5;47762:7;47745:9;:25::i;:::-;47718:52;;47809:15;47789:16;:35;;47781:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;47867:139;47894:5;47918:7;47944:47;47957:16;47975:15;47944:12;:47::i;:::-;47867:8;:139::i;:::-;48035:4;48028:11;;;;47539:508;;;;:::o;26361:174::-;26423:4;26440:13;26456:10;26440:26;;26477:28;26487:5;26494:2;26498:6;26477:9;:28::i;:::-;26523:4;26516:11;;;26361:174;;;;:::o;50676:533::-;50799:4;50846:1;50824:24;;:10;:24;;;50816:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;50892:1;50874:20;;:6;:20;;;50866:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;50972:4;50920:56;;:11;;;;;;;;;;;:22;;;50943:12;;;;;;;;;;;50957:10;50920:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;50912:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;51005:1;50998:3;:8;50994:208;;51043:21;51049:6;51057;51043:5;:21::i;:::-;51086:4;51079:11;;;;50994:208;51143:21;51149:6;51157;51143:5;:21::i;:::-;51186:4;51179:11;;50676:533;;;;;;:::o;24792:166::-;24891:7;24923:11;:18;24935:5;24923:18;;;;;;;;;;;;;;;:27;24942:7;24923:27;;;;;;;;;;;;;;;;24916:34;;24792:166;;;;:::o;45209:350::-;45362:1;45345:19;;:5;:19;;;45337:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;45409:1;45390:21;;:7;:21;;;45382:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;45448:1;45437:7;;:12;45429:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;45497:6;45467:11;:18;45479:5;45467:18;;;;;;;;;;;;;;;:27;45486:7;45467:27;;;;;;;;;;;;;;;:36;;;;45535:7;45519:32;;45528:5;45519:32;;;45544:6;45519:32;;;;;;:::i;:::-;;;;;;;;45209:350;;;:::o;44193:521::-;44328:24;44355:25;44365:5;44372:7;44355:9;:25::i;:::-;44328:52;;44415:17;44395:16;:37;44391:316;;44477:6;44457:16;:26;;44449:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;44534:146;44565:5;44593:7;44623:38;44636:16;44654:6;44623:12;:38::i;:::-;44534:8;:146::i;:::-;44391:316;44317:397;44193:521;;;:::o;27895:15796::-;28042:1;28026:18;;:4;:18;;;28018:33;;;;;;;;;;;;:::i;:::-;;;;;;;;;28084:1;28070:16;;:2;:16;;;28062:31;;;;;;;;;;;;:::i;:::-;;;;;;;;;28123:1;28112:7;;:12;28104:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;28142:19;28164:9;:15;28174:4;28164:15;;;;;;;;;;;;;;;;28142:37;;28213:6;28198:11;:21;;28190:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;28619:4;28567:56;;:11;;;;;;;;;;;:22;;;28590:12;;;;;;;;;;;28604:10;28567:48;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:56;;;28563:15121;;28687:33;28700:11;28713:6;28687:12;:33::i;:::-;28669:9;:15;28679:4;28669:15;;;;;;;;;;;;;;;:51;;;;28825:11;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28807:87;;;:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28772:15;:124;:273;;;;;28970:11;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28952:91;;;:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28917:15;:128;28772:273;28750:444;;;29116:6;29100:9;:13;29110:2;29100:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;29080:13;:17;29094:2;29080:17;;;;;;;;;;;;;;;:42;;;;29163:9;:15;29173:4;29163:15;;;;;;;;;;;;;;;;29141:13;:19;29155:4;29141:19;;;;;;;;;;;;;;;:37;;;;28750:444;29227:6;29210:9;:13;29220:2;29210:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;29270:2;29255:26;;29264:4;29255:26;;;29274:6;29255:26;;;;;;:::i;:::-;;;;;;;;28563:15121;;;30019:4;29961:62;;29969:11;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;29961:40;;;30002:4;30008:6;29961:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:62;;;29935:127;;;;;;;;;;;;:::i;:::-;;;;;;;;;30400:15;30428:11;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30400:52;;30911:1;30887:5;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:25;:85;;;;;30957:15;30933:5;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:39;30887:85;30865:12112;;;31387:12;31782:5;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31763:15;:42;;:111;;;;;31849:5;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31830:15;:44;;31763:111;31737:381;;;31917:18;31950:11;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31917:59;;32028:4;32003:29;;:6;:15;;;32019:4;32003:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;;;31999:100;;32071:4;32061:14;;31999:100;31894:224;31737:381;32484:5;32473:16;;:7;:16;;;:89;;;;;32533:5;:27;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32514:15;:48;;32473:89;:156;;;;;32606:5;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32587:15;:42;;32473:156;32447:618;;;32672:26;32744:11;;;;;;;;;;;:25;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32672:122;;32850:4;32821:33;;:9;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;;;32817:229;;32895:11;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;32883:86;;;32970:10;32883:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;33018:4;33008:14;;32817:229;32649:416;32447:618;33426:5;33415:16;;:7;:16;;;:84;;;;;33475:5;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33456:15;:43;;33415:84;:151;;;;;33543:5;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33524:15;:42;;33415:151;33389:580;;;33647:16;33675:11;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33647:51;;33754:4;33725:33;;:7;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;;;33721:229;;33799:11;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;33787:86;;;33874:10;33787:98;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;33922:4;33912:14;;33721:229;33586:383;33389:580;34335:5;34324:16;;:7;:16;;;:95;;;;;34384:5;:33;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;34365:15;:54;;34324:95;34298:459;;;34505:19;34565:11;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;34505:108;;34667:4;34640:31;;:7;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;;34636:102;;34710:4;34700:14;;34636:102;34439:318;34298:459;35121:5;35110:16;;:7;:16;;;:88;;;;;35170:5;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35151:15;:47;;35110:88;35084:446;;;35281:13;35298:11;;;;;;;;;;;:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35278:50;;;35351:19;35385:5;35351:40;;35440:4;35418:26;;:7;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:26;;;35414:97;;35483:4;35473:14;;35414:97;35218:312;;35084:446;35892:5;35881:16;;:7;:16;;;:89;;;;;35941:5;:27;;;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;35922:15;:48;;35881:89;:149;;;;;36018:12;35995:13;:19;36009:4;35995:19;;;;;;;;;;;;;;;;:35;;35881:149;35855:2507;;;36096:5;:30;;;:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36077:15;:51;36073:2270;;36201:14;36221:11;;;;;;;;;;;:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36200:51;;;36278:20;36316:6;36278:45;;36383:1;36354:5;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:30;36350:1611;;36869:4;36513:360;;:5;:18;;;36620:11;;;;;;;;;;;:85;;;:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;36785:2;36826:4;36513:352;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:360;;;36475:570;;36940:5;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;37009:4;36999:14;;36475:570;36350:1611;;;37111:1;37082:5;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:30;37078:883;;37459:4;37244:219;;:5;:18;;;37309:11;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;37375:1;37415:5;37244:211;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:219;;;37206:429;;37530:5;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;37599:4;37589:14;;37206:429;37078:883;;;37699:5;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;37784:4;37758:30;;:5;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:30;;;37754:180;;37825:5;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;37898:4;37888:14;;37754:180;37078:883;36350:1611;36130:1854;;36073:2270;;;38063:14;38083:11;;;;;;;;;;;:28;;;:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;38062:51;;;38140:20;38178:6;38140:45;;38241:4;38216:29;;:5;:15;;;38232:4;38216:21;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:29;;;38212:108;;38288:4;38278:14;;38212:108;37990:353;;36073:2270;35855:2507;38726:5;38715:16;;:7;:16;;;:93;;;;;38775:5;:31;;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;38756:15;:52;;38715:93;:153;;;;;38856:12;38833:13;:19;38847:4;38833:19;;;;;;;;;;;;;;;;:35;;38715:153;38689:1257;;;38960:5;:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;38941:15;:55;38911:1016;;39047:19;39119:11;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;39047:125;;39229:4;39203:30;;:7;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:30;;;39199:109;;39276:4;39266:14;;39199:109;39020:311;38911:1016;;;39416:19;39488:11;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;39416:125;;39662:5;:34;;;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;39602:7;:21;;;39624:4;39602:27;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:96;39568:336;;39790:4;39761:33;;:7;:19;;;39781:4;39761:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:33;;;39757:120;;39841:4;39831:14;;39757:120;39568:336;39337:590;38911:1016;38689:1257;40310:5;40299:16;;:7;:16;;;:85;;;;;40359:5;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;40340:15;:44;;40299:85;40273:2689;;;40466:18;40499:11;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;40466:59;;40575:10;40612:8;40647:12;40686:16;40728:6;:16;;;40745:6;40728:24;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;40548:204;;;;;;;;40788:4;40779:13;;:5;:13;;;40775:2168;;40831:4;40821:14;;40873:4;40866:11;;:3;:11;;;40862:2058;;40910:17;40916:4;40922;40910:5;:17::i;:::-;40972:9;:15;40982:4;40972:15;;;;;;;;;;;;;;;;40958:29;;41081:144;41132:11;41182:8;41081:12;:144::i;:::-;41063:9;:15;41073:4;41063:15;;;;;;;;;;;;;;;:162;;;;41488:8;41287:9;:197;41377:11;;;;;;;;;;;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;41287:197;;;;;;;;;;;;;;;;:209;;;;;;;:::i;:::-;;;;;;;;41660:11;;;;;;;;;;;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;41532:278;;41575:4;41532:278;;;41771:8;41532:278;;;;;;:::i;:::-;;;;;;;;41850:39;41863:6;41879:8;41872:4;:15;;;;:::i;:::-;41850:12;:39::i;:::-;41841:48;;40862:2058;;;41968:9;:15;41978:4;41968:15;;;;;;;;;;;;;;;;41954:29;;42077:148;42128:11;42189:1;42178:8;:12;42077;:148::i;:::-;42059:9;:15;42069:4;42059:15;;;;;;;;;;;;;;;:166;;;;42499:1;42488:8;:12;;;;:::i;:::-;42287:9;:197;42377:11;;;;;;;;;;;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;42287:197;;;;;;;;;;;;;;;;:213;;;;;;;:::i;:::-;;;;;;;;42664:11;;;;;;;;;;;:39;;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;42536:282;;42579:4;42536:282;;;42786:1;42775:8;:12;;;;:::i;:::-;42536:282;;;;;;:::i;:::-;;;;;;;;42858:34;42871:6;42890:1;42879:8;:12;;;;:::i;:::-;42858;:34::i;:::-;42849:43;;40862:2058;40775:2168;40404:2558;;;;;40273:2689;30988:11989;30865:12112;43005:9;:15;43015:4;43005:15;;;;;;;;;;;;;;;;42991:29;;43082:33;43095:11;43108:6;43082:12;:33::i;:::-;43064:9;:15;43074:4;43064:15;;;;;;;;;;;;;;;:51;;;;43220:11;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;43202:87;;;:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;43167:15;:124;:273;;;;;43365:11;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;43347:91;;;:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;43312:15;:128;43167:273;43145:444;;;43511:6;43495:9;:13;43505:2;43495:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;43475:13;:17;43489:2;43475:17;;;;;;;;;;;;;;;:42;;;;43558:9;:15;43568:4;43558:15;;;;;;;;;;;;;;;;43536:13;:19;43550:4;43536:19;;;;;;;;;;;;;;;:37;;;;43145:444;43620:6;43603:9;:13;43613:2;43603:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;43661:2;43646:26;;43655:4;43646:26;;;43665:6;43646:26;;;;;;:::i;:::-;;;;;;;;29299:14385;28563:15121;28007:15684;27895:15796;;;:::o;951:181::-;1009:7;1029:9;1045:1;1041;:5;;;;:::i;:::-;1029:17;;1070:1;1065;:6;;1057:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1123:1;1116:8;;;951:181;;;;:::o;1140:136::-;1198:7;1225:43;1229:1;1232;1225:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1218:50;;1140:136;;;;:::o;49465:565::-;49568:1;49549:21;;:7;:21;;;49541:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;49588:22;49613:9;:18;49623:7;49613:18;;;;;;;;;;;;;;;;49588:43;;49668:6;49650:14;:24;;49642:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;49739:36;49752:14;49768:6;49739:12;:36::i;:::-;49718:9;:18;49728:7;49718:18;;;;;;;;;;;;;;;:57;;;;49822:9;:18;49832:7;49822:18;;;;;;;;;;;;;;;;49797:13;:22;49811:7;49797:22;;;;;;;;;;;;;;;:43;;;;49866:34;49879:12;;49893:6;49866:12;:34::i;:::-;49851:12;:49;;;;49941:1;49916:53;;49924:7;49916:53;;;49945:6;49953:15;49916:53;;;;;;;:::i;:::-;;;;;;;;50011:1;49985:37;;49994:7;49985:37;;;50015:6;49985:37;;;;;;:::i;:::-;;;;;;;;49530:500;49465:565;;:::o;1284:226::-;1404:7;1437:1;1432;:6;;1440:12;1424:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1464:9;1480:1;1476;:5;;;;:::i;:::-;1464:17;;1501:1;1494:8;;;1284:226;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:474::-;909:6;917;966:2;954:9;945:7;941:23;937:32;934:119;;;972:79;;:::i;:::-;934:119;1092:1;1117:53;1162:7;1153:6;1142:9;1138:22;1117:53;:::i;:::-;1107:63;;1063:117;1219:2;1245:53;1290:7;1281:6;1270:9;1266:22;1245:53;:::i;:::-;1235:63;;1190:118;841:474;;;;;:::o;1321:77::-;1358:7;1387:5;1376:16;;1321:77;;;:::o;1404:118::-;1491:24;1509:5;1491:24;:::i;:::-;1486:3;1479:37;1404:118;;:::o;1528:222::-;1621:4;1659:2;1648:9;1644:18;1636:26;;1672:71;1740:1;1729:9;1725:17;1716:6;1672:71;:::i;:::-;1528:222;;;;:::o;1756:90::-;1790:7;1833:5;1826:13;1819:21;1808:32;;1756:90;;;:::o;1852:109::-;1933:21;1948:5;1933:21;:::i;:::-;1928:3;1921:34;1852:109;;:::o;1967:210::-;2054:4;2092:2;2081:9;2077:18;2069:26;;2105:65;2167:1;2156:9;2152:17;2143:6;2105:65;:::i;:::-;1967:210;;;;:::o;2183:99::-;2235:6;2269:5;2263:12;2253:22;;2183:99;;;:::o;2288:169::-;2372:11;2406:6;2401:3;2394:19;2446:4;2441:3;2437:14;2422:29;;2288:169;;;;:::o;2463:307::-;2531:1;2541:113;2555:6;2552:1;2549:13;2541:113;;;2640:1;2635:3;2631:11;2625:18;2621:1;2616:3;2612:11;2605:39;2577:2;2574:1;2570:10;2565:15;;2541:113;;;2672:6;2669:1;2666:13;2663:101;;;2752:1;2743:6;2738:3;2734:16;2727:27;2663:101;2512:258;2463:307;;;:::o;2776:102::-;2817:6;2868:2;2864:7;2859:2;2852:5;2848:14;2844:28;2834:38;;2776:102;;;:::o;2884:364::-;2972:3;3000:39;3033:5;3000:39;:::i;:::-;3055:71;3119:6;3114:3;3055:71;:::i;:::-;3048:78;;3135:52;3180:6;3175:3;3168:4;3161:5;3157:16;3135:52;:::i;:::-;3212:29;3234:6;3212:29;:::i;:::-;3207:3;3203:39;3196:46;;2976:272;2884:364;;;;:::o;3254:313::-;3367:4;3405:2;3394:9;3390:18;3382:26;;3454:9;3448:4;3444:20;3440:1;3429:9;3425:17;3418:47;3482:78;3555:4;3546:6;3482:78;:::i;:::-;3474:86;;3254:313;;;;:::o;3573:122::-;3646:24;3664:5;3646:24;:::i;:::-;3639:5;3636:35;3626:63;;3685:1;3682;3675:12;3626:63;3573:122;:::o;3701:139::-;3747:5;3785:6;3772:20;3763:29;;3801:33;3828:5;3801:33;:::i;:::-;3701:139;;;;:::o;3846:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:60::-;4354:3;4375:5;4368:12;;4326:60;;;:::o;4392:142::-;4442:9;4475:53;4493:34;4502:24;4520:5;4502:24;:::i;:::-;4493:34;:::i;:::-;4475:53;:::i;:::-;4462:66;;4392:142;;;:::o;4540:126::-;4590:9;4623:37;4654:5;4623:37;:::i;:::-;4610:50;;4540:126;;;:::o;4672:148::-;4744:9;4777:37;4808:5;4777:37;:::i;:::-;4764:50;;4672:148;;;:::o;4826:175::-;4935:59;4988:5;4935:59;:::i;:::-;4930:3;4923:72;4826:175;;:::o;5007:266::-;5122:4;5160:2;5149:9;5145:18;5137:26;;5173:93;5263:1;5252:9;5248:17;5239:6;5173:93;:::i;:::-;5007:266;;;;:::o;5279:619::-;5356:6;5364;5372;5421:2;5409:9;5400:7;5396:23;5392:32;5389:119;;;5427:79;;:::i;:::-;5389:119;5547:1;5572:53;5617:7;5608:6;5597:9;5593:22;5572:53;:::i;:::-;5562:63;;5518:117;5674:2;5700:53;5745:7;5736:6;5725:9;5721:22;5700:53;:::i;:::-;5690:63;;5645:118;5802:2;5828:53;5873:7;5864:6;5853:9;5849:22;5828:53;:::i;:::-;5818:63;;5773:118;5279:619;;;;;:::o;5904:329::-;5963:6;6012:2;6000:9;5991:7;5987:23;5983:32;5980:119;;;6018:79;;:::i;:::-;5980:119;6138:1;6163:53;6208:7;6199:6;6188:9;6184:22;6163:53;:::i;:::-;6153:63;;6109:117;5904:329;;;;:::o;6239:619::-;6316:6;6324;6332;6381:2;6369:9;6360:7;6356:23;6352:32;6349:119;;;6387:79;;:::i;:::-;6349:119;6507:1;6532:53;6577:7;6568:6;6557:9;6553:22;6532:53;:::i;:::-;6522:63;;6478:117;6634:2;6660:53;6705:7;6696:6;6685:9;6681:22;6660:53;:::i;:::-;6650:63;;6605:118;6762:2;6788:53;6833:7;6824:6;6813:9;6809:22;6788:53;:::i;:::-;6778:63;;6733:118;6239:619;;;;;:::o;6864:152::-;7004:4;7000:1;6992:6;6988:14;6981:28;6864:152;:::o;7022:365::-;7164:3;7185:66;7249:1;7244:3;7185:66;:::i;:::-;7178:73;;7260:93;7349:3;7260:93;:::i;:::-;7378:2;7373:3;7369:12;7362:19;;7022:365;;;:::o;7393:419::-;7559:4;7597:2;7586:9;7582:18;7574:26;;7646:9;7640:4;7636:20;7632:1;7621:9;7617:17;7610:47;7674:131;7800:4;7674:131;:::i;:::-;7666:139;;7393:419;;;:::o;7818:118::-;7905:24;7923:5;7905:24;:::i;:::-;7900:3;7893:37;7818:118;;:::o;7942:332::-;8063:4;8101:2;8090:9;8086:18;8078:26;;8114:71;8182:1;8171:9;8167:17;8158:6;8114:71;:::i;:::-;8195:72;8263:2;8252:9;8248:18;8239:6;8195:72;:::i;:::-;7942:332;;;;;:::o;8280:116::-;8350:21;8365:5;8350:21;:::i;:::-;8343:5;8340:32;8330:60;;8386:1;8383;8376:12;8330:60;8280:116;:::o;8402:137::-;8456:5;8487:6;8481:13;8472:22;;8503:30;8527:5;8503:30;:::i;:::-;8402:137;;;;:::o;8545:345::-;8612:6;8661:2;8649:9;8640:7;8636:23;8632:32;8629:119;;;8667:79;;:::i;:::-;8629:119;8787:1;8812:61;8865:7;8856:6;8845:9;8841:22;8812:61;:::i;:::-;8802:71;;8758:125;8545:345;;;;:::o;8896:152::-;9036:4;9032:1;9024:6;9020:14;9013:28;8896:152;:::o;9054:365::-;9196:3;9217:66;9281:1;9276:3;9217:66;:::i;:::-;9210:73;;9292:93;9381:3;9292:93;:::i;:::-;9410:2;9405:3;9401:12;9394:19;;9054:365;;;:::o;9425:419::-;9591:4;9629:2;9618:9;9614:18;9606:26;;9678:9;9672:4;9668:20;9664:1;9653:9;9649:17;9642:47;9706:131;9832:4;9706:131;:::i;:::-;9698:139;;9425:419;;;:::o;9850:180::-;9898:77;9895:1;9888:88;9995:4;9992:1;9985:15;10019:4;10016:1;10009:15;10036:320;10080:6;10117:1;10111:4;10107:12;10097:22;;10164:1;10158:4;10154:12;10185:18;10175:81;;10241:4;10233:6;10229:17;10219:27;;10175:81;10303:2;10295:6;10292:14;10272:18;10269:38;10266:84;;10322:18;;:::i;:::-;10266:84;10087:269;10036:320;;;:::o;10362:180::-;10410:77;10407:1;10400:88;10507:4;10504:1;10497:15;10531:4;10528:1;10521:15;10548:305;10588:3;10607:20;10625:1;10607:20;:::i;:::-;10602:25;;10641:20;10659:1;10641:20;:::i;:::-;10636:25;;10795:1;10727:66;10723:74;10720:1;10717:81;10714:107;;;10801:18;;:::i;:::-;10714:107;10845:1;10842;10838:9;10831:16;;10548:305;;;;:::o;10859:152::-;10999:4;10995:1;10987:6;10983:14;10976:28;10859:152;:::o;11017:365::-;11159:3;11180:66;11244:1;11239:3;11180:66;:::i;:::-;11173:73;;11255:93;11344:3;11255:93;:::i;:::-;11373:2;11368:3;11364:12;11357:19;;11017:365;;;:::o;11388:419::-;11554:4;11592:2;11581:9;11577:18;11569:26;;11641:9;11635:4;11631:20;11627:1;11616:9;11612:17;11605:47;11669:131;11795:4;11669:131;:::i;:::-;11661:139;;11388:419;;;:::o;11813:152::-;11953:4;11949:1;11941:6;11937:14;11930:28;11813:152;:::o;11971:365::-;12113:3;12134:66;12198:1;12193:3;12134:66;:::i;:::-;12127:73;;12209:93;12298:3;12209:93;:::i;:::-;12327:2;12322:3;12318:12;12311:19;;11971:365;;;:::o;12342:419::-;12508:4;12546:2;12535:9;12531:18;12523:26;;12595:9;12589:4;12585:20;12581:1;12570:9;12566:17;12559:47;12623:131;12749:4;12623:131;:::i;:::-;12615:139;;12342:419;;;:::o;12767:152::-;12907:4;12903:1;12895:6;12891:14;12884:28;12767:152;:::o;12925:365::-;13067:3;13088:66;13152:1;13147:3;13088:66;:::i;:::-;13081:73;;13163:93;13252:3;13163:93;:::i;:::-;13281:2;13276:3;13272:12;13265:19;;12925:365;;;:::o;13296:419::-;13462:4;13500:2;13489:9;13485:18;13477:26;;13549:9;13543:4;13539:20;13535:1;13524:9;13520:17;13513:47;13577:131;13703:4;13577:131;:::i;:::-;13569:139;;13296:419;;;:::o;13721:152::-;13861:4;13857:1;13849:6;13845:14;13838:28;13721:152;:::o;13879:365::-;14021:3;14042:66;14106:1;14101:3;14042:66;:::i;:::-;14035:73;;14117:93;14206:3;14117:93;:::i;:::-;14235:2;14230:3;14226:12;14219:19;;13879:365;;;:::o;14250:419::-;14416:4;14454:2;14443:9;14439:18;14431:26;;14503:9;14497:4;14493:20;14489:1;14478:9;14474:17;14467:47;14531:131;14657:4;14531:131;:::i;:::-;14523:139;;14250:419;;;:::o;14675:143::-;14732:5;14763:6;14757:13;14748:22;;14779:33;14806:5;14779:33;:::i;:::-;14675:143;;;;:::o;14824:351::-;14894:6;14943:2;14931:9;14922:7;14918:23;14914:32;14911:119;;;14949:79;;:::i;:::-;14911:119;15069:1;15094:64;15150:7;15141:6;15130:9;15126:22;15094:64;:::i;:::-;15084:74;;15040:128;14824:351;;;;:::o;15181:143::-;15238:5;15269:6;15263:13;15254:22;;15285:33;15312:5;15285:33;:::i;:::-;15181:143;;;;:::o;15330:351::-;15400:6;15449:2;15437:9;15428:7;15424:23;15420:32;15417:119;;;15455:79;;:::i;:::-;15417:119;15575:1;15600:64;15656:7;15647:6;15636:9;15632:22;15600:64;:::i;:::-;15590:74;;15546:128;15330:351;;;;:::o;15687:332::-;15808:4;15846:2;15835:9;15831:18;15823:26;;15859:71;15927:1;15916:9;15912:17;15903:6;15859:71;:::i;:::-;15940:72;16008:2;15997:9;15993:18;15984:6;15940:72;:::i;:::-;15687:332;;;;;:::o;16025:153::-;16165:5;16161:1;16153:6;16149:14;16142:29;16025:153;:::o;16184:365::-;16326:3;16347:66;16411:1;16406:3;16347:66;:::i;:::-;16340:73;;16422:93;16511:3;16422:93;:::i;:::-;16540:2;16535:3;16531:12;16524:19;;16184:365;;;:::o;16555:419::-;16721:4;16759:2;16748:9;16744:18;16736:26;;16808:9;16802:4;16798:20;16794:1;16783:9;16779:17;16772:47;16836:131;16962:4;16836:131;:::i;:::-;16828:139;;16555:419;;;:::o;16980:222::-;17073:4;17111:2;17100:9;17096:18;17088:26;;17124:71;17192:1;17181:9;17177:17;17168:6;17124:71;:::i;:::-;16980:222;;;;:::o;17208:507::-;17287:6;17295;17344:2;17332:9;17323:7;17319:23;17315:32;17312:119;;;17350:79;;:::i;:::-;17312:119;17470:1;17495:64;17551:7;17542:6;17531:9;17527:22;17495:64;:::i;:::-;17485:74;;17441:128;17608:2;17634:64;17690:7;17681:6;17670:9;17666:22;17634:64;:::i;:::-;17624:74;;17579:129;17208:507;;;;;:::o;17721:86::-;17767:7;17796:5;17785:16;;17721:86;;;:::o;17813:160::-;17872:9;17905:62;17923:43;17932:33;17959:5;17932:33;:::i;:::-;17923:43;:::i;:::-;17905:62;:::i;:::-;17892:75;;17813:160;;;:::o;17979:149::-;18075:46;18115:5;18075:46;:::i;:::-;18070:3;18063:59;17979:149;;:::o;18134:448::-;18286:4;18324:2;18313:9;18309:18;18301:26;;18337:71;18405:1;18394:9;18390:17;18381:6;18337:71;:::i;:::-;18418:81;18495:2;18484:9;18480:18;18471:6;18418:81;:::i;:::-;18509:66;18571:2;18560:9;18556:18;18547:6;18509:66;:::i;:::-;18134:448;;;;;;:::o;18588:85::-;18633:7;18662:5;18651:16;;18588:85;;;:::o;18679:158::-;18737:9;18770:61;18788:42;18797:32;18823:5;18797:32;:::i;:::-;18788:42;:::i;:::-;18770:61;:::i;:::-;18757:74;;18679:158;;;:::o;18843:147::-;18938:45;18977:5;18938:45;:::i;:::-;18933:3;18926:58;18843:147;;:::o;18996:446::-;19147:4;19185:2;19174:9;19170:18;19162:26;;19198:71;19266:1;19255:9;19251:17;19242:6;19198:71;:::i;:::-;19279:80;19355:2;19344:9;19340:18;19331:6;19279:80;:::i;:::-;19369:66;19431:2;19420:9;19416:18;19407:6;19369:66;:::i;:::-;18996:446;;;;;;:::o;19448:808::-;19539:6;19547;19555;19563;19612:3;19600:9;19591:7;19587:23;19583:33;19580:120;;;19619:79;;:::i;:::-;19580:120;19739:1;19764:61;19817:7;19808:6;19797:9;19793:22;19764:61;:::i;:::-;19754:71;;19710:125;19874:2;19900:61;19953:7;19944:6;19933:9;19929:22;19900:61;:::i;:::-;19890:71;;19845:126;20010:2;20036:64;20092:7;20083:6;20072:9;20068:22;20036:64;:::i;:::-;20026:74;;19981:129;20149:2;20175:64;20231:7;20222:6;20211:9;20207:22;20175:64;:::i;:::-;20165:74;;20120:129;19448:808;;;;;;;:::o;20262:348::-;20302:7;20325:20;20343:1;20325:20;:::i;:::-;20320:25;;20359:20;20377:1;20359:20;:::i;:::-;20354:25;;20547:1;20479:66;20475:74;20472:1;20469:81;20464:1;20457:9;20450:17;20446:105;20443:131;;;20554:18;;:::i;:::-;20443:131;20602:1;20599;20595:9;20584:20;;20262:348;;;;:::o;20616:177::-;20756:29;20752:1;20744:6;20740:14;20733:53;20616:177;:::o;20799:366::-;20941:3;20962:67;21026:2;21021:3;20962:67;:::i;:::-;20955:74;;21038:93;21127:3;21038:93;:::i;:::-;21156:2;21151:3;21147:12;21140:19;;20799:366;;;:::o;21171:419::-;21337:4;21375:2;21364:9;21360:18;21352:26;;21424:9;21418:4;21414:20;21410:1;21399:9;21395:17;21388:47;21452:131;21578:4;21452:131;:::i;:::-;21444:139;;21171:419;;;:::o;21596:153::-;21736:5;21732:1;21724:6;21720:14;21713:29;21596:153;:::o;21755:365::-;21897:3;21918:66;21982:1;21977:3;21918:66;:::i;:::-;21911:73;;21993:93;22082:3;21993:93;:::i;:::-;22111:2;22106:3;22102:12;22095:19;;21755:365;;;:::o;22126:419::-;22292:4;22330:2;22319:9;22315:18;22307:26;;22379:9;22373:4;22369:20;22365:1;22354:9;22350:17;22343:47;22407:131;22533:4;22407:131;:::i;:::-;22399:139;;22126:419;;;:::o;22551:332::-;22672:4;22710:2;22699:9;22695:18;22687:26;;22723:71;22791:1;22780:9;22776:17;22767:6;22723:71;:::i;:::-;22804:72;22872:2;22861:9;22857:18;22848:6;22804:72;:::i;:::-;22551:332;;;;;:::o;22889:191::-;22929:4;22949:20;22967:1;22949:20;:::i;:::-;22944:25;;22983:20;23001:1;22983:20;:::i;:::-;22978:25;;23022:1;23019;23016:8;23013:34;;;23027:18;;:::i;:::-;23013:34;23072:1;23069;23065:9;23057:17;;22889:191;;;;:::o

Swarm Source

ipfs://581abc9957424178eac13677ae8f5d6f1e44c6b6cbaf1583fef600bdfafd28fb
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
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.