Contract 0x98292750578aa741e1623E09dE3C5A1C8Fe82367

 

Contract Overview

Balance:
0 BNB

BNB Value:
$0.00

Token:
 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x59eef514c8024843b1c6bd9865270ec3be1c69d5c31d22588b9ea6569b25952fDraw127450392021-11-18 7:32:0915 days 9 mins agoTuringMachine Token: Deployer IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001363675
0xca1f21ddc854185e558ff498e21ffa295d6240a723cf7ad9d699f041ffa11927Withdraw121577222021-10-28 7:23:1036 days 18 mins ago0x8cdb32a8fe95a8c35c35542b9b74d2dad6618873 IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001972955
0xb01542f2e46935f428080bfe7a3b5e7400642df00a4a8efc815b8b0e1e30bffaDraw117962272021-10-15 14:34:0948 days 17 hrs agoTuringMachine Token: Deployer IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001614115
0x5bf83a09431299d02140d81a2e378c15383bd37a8e6130a0f5e6085ff4c3abe4Withdraw117647442021-10-14 12:15:4449 days 19 hrs ago0xa4251fe65a3431e77267896587caad0bd379e88e IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001905235
0xcd686c7f3d370f4fcc8863ae4d7d9af132c296b7f64381c204f79852c5ea40c5Harvest117647402021-10-14 12:15:3249 days 19 hrs ago0xa4251fe65a3431e77267896587caad0bd379e88e IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.00131938
0x00014610207e0ee8ef9ccc6f39369401a6999fcfe32013cb2115a4e4764b182dHarvest113739832021-09-30 20:13:0463 days 11 hrs ago0x9ae3329ca194a863454096f0c3fe7e63e333356d IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001574965
0x4b1a4cc24400b6847a7033d25d693e831b7b9b99033a3c4b334087ee61ffbae1Draw112843262021-09-27 16:42:3766 days 14 hrs agoTuringMachine Token: Deployer IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001648315
0x27898582f428cc3638936a4b4495acc79372b21b95365023fcd66fab21d706cbWithdraw111512522021-09-23 1:03:5871 days 6 hrs ago0xb5e95469ca5c34d76adcb75ba265eabca1947786 IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.00204264
0xd2c3655d3d7317a7241e445285ff3c60355b53587a72496771b63915d60f6ed5Withdraw110847552021-09-20 17:18:2673 days 14 hrs ago0xbda0251f51b2cdcfc3cca41cdb9ed252bc0d89d7 IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.00197738
0xd5c3ecba075376ec359c04aadece1c30377b2c399bf0d1e1c6e23234753d757fDraw110740402021-09-20 8:20:1973 days 23 hrs agoTuringMachine Token: Deployer IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001346575
0x39f5648117438268d936a92526a3938b41ac52750a7afea39d535a443e58b5bdDeposit109610982021-09-16 9:50:2277 days 21 hrs ago0x8cdb32a8fe95a8c35c35542b9b74d2dad6618873 IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.002290865
0x21ae053075dda605ab1d2a55b0b7b9c90a1d856b00e560c4c07ee0f5d02fbedfDraw108714682021-09-13 6:55:1581 days 46 mins agoTuringMachine Token: Deployer IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001601045
0x7009e153b15136d0a92f22e4b185a5318786e941b3a550f22969973d3e218f65Deposit108169872021-09-11 9:20:3782 days 22 hrs ago0x8cdb32a8fe95a8c35c35542b9b74d2dad6618873 IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.002542575
0x597b2ab47e5957490c7e4b1d25f1c341e47ab5a9b4415519555c9c17afa2f831Deposit107799322021-09-10 2:05:1384 days 5 hrs ago0xbda0251f51b2cdcfc3cca41cdb9ed252bc0d89d7 IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.002467695
0x2de036c96dc893aab0f71afef3da1f19bf7fd4538536cfbc977dd0bec60719edWithdraw107134312021-09-07 18:03:2286 days 13 hrs ago0xbda0251f51b2cdcfc3cca41cdb9ed252bc0d89d7 IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001801945
0x5ea7212244fc36d1631d640b187ae12c1e6839aeb75979d5031fbb934de87f3fDraw106512542021-09-05 13:39:1488 days 18 hrs agoTuringMachine Token: Deployer IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001576015
0xbb6eb7aa9b2be9a41dc185eda7242901d3afeee180f7c7a6280590ff152d0009Deposit104925662021-08-30 23:59:3294 days 7 hrs ago0xbda0251f51b2cdcfc3cca41cdb9ed252bc0d89d7 IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.00214636
0x9872c347d3fe3e9f957a1dd0cfb90c458503905031102b7cffa308ae2bbb4a6dWithdraw104430592021-08-29 6:15:0696 days 1 hr ago0xbda0251f51b2cdcfc3cca41cdb9ed252bc0d89d7 IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.00222564
0x120213255e1a8795c14e821af588036bf76b5f200bf3b2987dc495b51e7915fcDraw104430032021-08-29 6:12:1896 days 1 hr ago0xbda0251f51b2cdcfc3cca41cdb9ed252bc0d89d7 IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001325575
0x984ff48424f51c78871fec6097b64b10de4f4cf95a9f7e52e2918f03992fea6cDraw104424582021-08-29 5:45:0396 days 1 hr ago0xbda0251f51b2cdcfc3cca41cdb9ed252bc0d89d7 IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001459675
0x7426a774a9633d13e1eddf9232ac2df218b59a27024e2a623df3210f5dd503b2Deposit103517982021-08-26 0:55:2299 days 6 hrs ago0xbda0251f51b2cdcfc3cca41cdb9ed252bc0d89d7 IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001890715
0xc57b9fa424782ba9028d17e98c9ccbfa32b7886ff7a6148ff47399f4b837f225Draw102410882021-08-22 4:13:02103 days 3 hrs agoTuringMachine Token: Deployer IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001631215
0xca12b51ece10ebc32c4288ae2962f51c5f82a748eff96aa1372a411f3a128580Draw100114802021-08-14 3:53:32111 days 3 hrs agoTuringMachine Token: Deployer IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001363675
0x5ebd0cadbe2f8af65e52e6b2257e0961e9933436c70bfde2e1057ffbb560ad34Draw97898782021-08-06 6:21:44119 days 1 hr agoTuringMachine Token: Deployer IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001652345
0x882d43ee56c6e78622b63e9f05f460961f0a5b932e6bd5b81bfb1262132866a5Withdraw97041852021-08-03 4:09:52122 days 3 hrs ago0x9ae3329ca194a863454096f0c3fe7e63e333356d IN  0x98292750578aa741e1623e09de3c5a1c8fe823670 BNB0.001905355
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TuringNoLossLotteryCake

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-04-15
*/

// SPDX-License-Identifier: MIT
pragma solidity >=0.6.12;

interface IBEP20 {
    function mint(address account, uint256 amount) external;
    function burn(address account, uint256 amount) external;
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

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

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

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

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

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

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

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
contract IPancakeMasterChef { 
    mapping (uint256 => mapping (address => UserInfo)) public userInfo;
    // Info of each user.
    struct UserInfo {
        uint256 amount;     // How many LP tokens the user has provided.
        uint256 rewardDebt; // Reward debt. See explanation below.
        //
        // We do some fancy math here. Basically, any point in time, the amount of CAKEs
        // entitled to a user but is pending to be distributed is:
        //
        //   pending reward = (user.amount * pool.accCakePerShare) - user.rewardDebt
        //
        // Whenever a user deposits or withdraws LP tokens to a pool. Here's what happens:
        //   1. The pool's `accCakePerShare` (and `lastRewardBlock`) gets updated.
        //   2. User receives the pending reward sent to his/her address.
        //   3. User's `amount` gets updated.
        //   4. User's `rewardDebt` gets updated.
    }

    // Deposit LP tokens to MasterChef for CAKE allocation.
    function deposit(uint256 _pid, uint256 _amount) external {}
    // Withdraw LP tokens from MasterChef.
    function withdraw(uint256 _pid, uint256 _amount) external {}
    // Stake CAKE tokens to MasterChef
    function enterStaking(uint256 _amount) external {}
    // Withdraw CAKE tokens from STAKING.
    function leaveStaking(uint256 _amount) external {}
    // Withdraw without caring about rewards. EMERGENCY ONLY.
    function emergencyWithdraw(uint256 _pid) external {}
    // View function to see pending CAKEs on frontend.
    function pendingCake(uint256 _pid, address _user) external view returns (uint256) {}
}
interface IPancakeSwapRouter {
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapTokensForExactTokens(
        uint amountOut,
        uint amountInMax,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
    function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
        external
        returns (uint[] memory amounts);

    function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) 
        external
        returns (uint[] memory amounts);
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
        external
        payable
        returns (uint[] memory amounts);
    function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
    function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IMiningMachine {
	function burn(address account, uint256 amount) external;
	function harvest(uint256 _pid, address _user) external returns(uint256 _pendingTur, uint256 _bonus);
    function updateUser(uint256 _pid, address _user) external returns(bool); 
    
	function getMiningSpeedOf(uint256 _pid) external view returns(uint256);
	function getTotalMintPerDayOf(uint256 _pid) external view returns(uint256);
	function getUserInfo(uint256 _pid, address _user) external view returns (uint256 _pendingTur, uint256 _rewardDebt, uint256 _userShare);
	function getTurAddr() external view returns(address); 
}
contract Ownable {
    address public owner;

    modifier onlyOwner()
    {
        require(msg.sender == owner, 'INVALID_PERMISTION');
        _;
    }

    constructor() public {
        owner = msg.sender;
    }
}
library SafeMath {
  /**
  * @dev Multiplies two numbers, throws on overflow.
  */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    if (a == 0) {
      return 0;
    }
    uint256 c = a * b;
    require(c / a == b, 'INVALID_MUL');
    return c;
  }

  /**
  * @dev Integer division of two numbers, truncating the quotient.
  */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b > 0, 'INVALID_DIV'); // Solidity automatically throws when dividing by 0
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold
    return c;
  }

  /**
  * @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
  */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a, 'INVALID_SUB');
    return a - b;
  }

  /**
  * @dev Adds two numbers, throws on overflow.
  */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a, 'INVALID_ADD');
    return c;
  }
}
abstract contract ReentrancyGuard {
    // Booleans are more expensive than uint256 or any type that takes up a full
    // word because each write operation emits an extra SLOAD to first read the
    // slot's contents, replace the bits taken up by the boolean, and then write
    // back. This is the compiler's defense against contract upgrades and
    // pointer aliasing, and it cannot be disabled.

    // The values being non-zero value makes deployment a bit more expensive,
    // but in exchange the refund on every call to nonReentrant will be lower in
    // amount. Since refunds are capped to a percentage of the total
    // transaction's gas, it is best to keep them low in cases like this one, to
    // increase the likelihood of the full refund coming into effect.
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() internal {
        _status = _NOT_ENTERED;
    }

    /**
     * @dev Prevents a contract from calling itself, directly or indirectly.
     * Calling a `nonReentrant` function from another `nonReentrant`
     * function is not supported. It is possible to prevent this from happening
     * by making the `nonReentrant` function external, and make it call a
     * `private` function that does the actual work.
     */
    modifier nonReentrant() {
        // On the first call to nonReentrant, _notEntered will be true
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");

        // Any calls to nonReentrant after this point will fail
        _status = _ENTERED;

        _;

        // By storing the original value once again, a refund is triggered (see
        // https://eips.ethereum.org/EIPS/eip-2200)
        _status = _NOT_ENTERED;
    }
}
library SortitionSumTreeFactory {
    /* Structs */

    struct SortitionSumTree {
        uint K; // The maximum number of childs per node.
        // We use this to keep track of vacant positions in the tree after removing a leaf. This is for keeping the tree as balanced as possible without spending gas on moving nodes around.
        uint[] stack;
        uint[] nodes;
        // Two-way mapping of IDs to node indexes. Note that node index 0 is reserved for the root node, and means the ID does not have a node.
        mapping(bytes32 => uint) IDsToNodeIndexes;
        mapping(uint => bytes32) nodeIndexesToIDs;
    }

    /* Storage */

    struct SortitionSumTrees {
        mapping(bytes32 => SortitionSumTree) sortitionSumTrees;
    }

    /* internal */

    /**
     *  @dev Create a sortition sum tree at the specified key.
     *  @param _key The key of the new tree.
     *  @param _K The number of children each node in the tree should have.
     */
    function createTree(SortitionSumTrees storage self, bytes32 _key, uint _K) internal {
        SortitionSumTree storage tree = self.sortitionSumTrees[_key];
        require(tree.K == 0, "Tree already exists.");
        require(_K > 1, "K must be greater than one.");
        tree.K = _K;
        tree.stack = new uint[](0);
        tree.nodes = new uint[](0);
        tree.nodes.push(0);
    }

    /**
     *  @dev Set a value of a tree.
     *  @param _key The key of the tree.
     *  @param _value The new value.
     *  @param _ID The ID of the value.
     *  `O(log_k(n))` where
     *  `k` is the maximum number of childs per node in the tree,
     *   and `n` is the maximum number of nodes ever appended.
     */
    function set(SortitionSumTrees storage self, bytes32 _key, uint _value, bytes32 _ID) internal {
        SortitionSumTree storage tree = self.sortitionSumTrees[_key];
        uint treeIndex = tree.IDsToNodeIndexes[_ID];

        if (treeIndex == 0) { // No existing node.
            if (_value != 0) { // Non zero value.
                // Append.
                // Add node.
                if (tree.stack.length == 0) { // No vacant spots.
                    // Get the index and append the value.
                    treeIndex = tree.nodes.length;
                    tree.nodes.push(_value);

                    // Potentially append a new node and make the parent a sum node.
                    if (treeIndex != 1 && (treeIndex - 1) % tree.K == 0) { // Is first child.
                        uint parentIndex = treeIndex / tree.K;
                        bytes32 parentID = tree.nodeIndexesToIDs[parentIndex];
                        uint newIndex = treeIndex + 1;
                        tree.nodes.push(tree.nodes[parentIndex]);
                        delete tree.nodeIndexesToIDs[parentIndex];
                        tree.IDsToNodeIndexes[parentID] = newIndex;
                        tree.nodeIndexesToIDs[newIndex] = parentID;
                    }
                } else { // Some vacant spot.
                    // Pop the stack and append the value.
                    treeIndex = tree.stack[tree.stack.length - 1];
                    tree.stack.pop();
                    tree.nodes[treeIndex] = _value;
                }

                // Add label.
                tree.IDsToNodeIndexes[_ID] = treeIndex;
                tree.nodeIndexesToIDs[treeIndex] = _ID;

                updateParents(self, _key, treeIndex, true, _value);
            }
        } else { // Existing node.
            if (_value == 0) { // Zero value.
                // Remove.
                // Remember value and set to 0.
                uint value = tree.nodes[treeIndex];
                tree.nodes[treeIndex] = 0;

                // Push to stack.
                tree.stack.push(treeIndex);

                // Clear label.
                delete tree.IDsToNodeIndexes[_ID];
                delete tree.nodeIndexesToIDs[treeIndex];

                updateParents(self, _key, treeIndex, false, value);
            } else if (_value != tree.nodes[treeIndex]) { // New, non zero value.
                // Set.
                bool plusOrMinus = tree.nodes[treeIndex] <= _value;
                uint plusOrMinusValue = plusOrMinus ? _value - tree.nodes[treeIndex] : tree.nodes[treeIndex] - _value;
                tree.nodes[treeIndex] = _value;

                updateParents(self, _key, treeIndex, plusOrMinus, plusOrMinusValue);
            }
        }
    }

    /* internal Views */

    /**
     *  @dev Query the leaves of a tree. Note that if `startIndex == 0`, the tree is empty and the root node will be returned.
     *  @param _key The key of the tree to get the leaves from.
     *  @param _cursor The pagination cursor.
     *  @param _count The number of items to return.
     *  @return startIndex The index at which leaves start
     *  @return values The values of the returned leaves
     *  @return hasMore Whether there are more for pagination.
     *  `O(n)` where
     *  `n` is the maximum number of nodes ever appended.
     */
    function queryLeafs(
        SortitionSumTrees storage self,
        bytes32 _key,
        uint _cursor,
        uint _count
    ) internal view returns(uint startIndex, uint[] memory values, bool hasMore) {
        SortitionSumTree storage tree = self.sortitionSumTrees[_key];

        // Find the start index.
        for (uint i = 0; i < tree.nodes.length; i++) {
            if ((tree.K * i) + 1 >= tree.nodes.length) {
                startIndex = i;
                break;
            }
        }

        // Get the values.
        uint loopStartIndex = startIndex + _cursor;
        values = new uint[](loopStartIndex + _count > tree.nodes.length ? tree.nodes.length - loopStartIndex : _count);
        uint valuesIndex = 0;
        for (uint j = loopStartIndex; j < tree.nodes.length; j++) {
            if (valuesIndex < _count) {
                values[valuesIndex] = tree.nodes[j];
                valuesIndex++;
            } else {
                hasMore = true;
                break;
            }
        }
    }

    /**
     *  @dev Draw an ID from a tree using a number. Note that this function reverts if the sum of all values in the tree is 0.
     *  @param _key The key of the tree.
     *  @param _drawnNumber The drawn number.
     *  @return ID The drawn ID.
     *  `O(k * log_k(n))` where
     *  `k` is the maximum number of childs per node in the tree,
     *   and `n` is the maximum number of nodes ever appended.
     */
    function draw(SortitionSumTrees storage self, bytes32 _key, uint _drawnNumber) internal view returns(bytes32 ID) {
        SortitionSumTree storage tree = self.sortitionSumTrees[_key];
        uint treeIndex = 0;
        uint currentDrawnNumber = _drawnNumber % tree.nodes[0];

        while ((tree.K * treeIndex) + 1 < tree.nodes.length)  // While it still has children.
            for (uint i = 1; i <= tree.K; i++) { // Loop over children.
                uint nodeIndex = (tree.K * treeIndex) + i;
                uint nodeValue = tree.nodes[nodeIndex];

                if (currentDrawnNumber >= nodeValue) currentDrawnNumber -= nodeValue; // Go to the next child.
                else { // Pick this child.
                    treeIndex = nodeIndex;
                    break;
                }
            }
        
        ID = tree.nodeIndexesToIDs[treeIndex];
    }

    /** @dev Gets a specified ID's associated value.
     *  @param _key The key of the tree.
     *  @param _ID The ID of the value.
     *  @return value The associated value.
     */
    function stakeOf(SortitionSumTrees storage self, bytes32 _key, bytes32 _ID) internal view returns(uint value) {
        SortitionSumTree storage tree = self.sortitionSumTrees[_key];
        uint treeIndex = tree.IDsToNodeIndexes[_ID];

        if (treeIndex == 0) value = 0;
        else value = tree.nodes[treeIndex];
    }

    function total(SortitionSumTrees storage self, bytes32 _key) internal view returns (uint) {
        SortitionSumTree storage tree = self.sortitionSumTrees[_key];
        if (tree.nodes.length == 0) {
            return 0;
        } else {
            return tree.nodes[0];
        }
    }

    /* Private */

    /**
     *  @dev Update all the parents of a node.
     *  @param _key The key of the tree to update.
     *  @param _treeIndex The index of the node to start from.
     *  @param _plusOrMinus Wether to add (true) or substract (false).
     *  @param _value The value to add or substract.
     *  `O(log_k(n))` where
     *  `k` is the maximum number of childs per node in the tree,
     *   and `n` is the maximum number of nodes ever appended.
     */
    function updateParents(SortitionSumTrees storage self, bytes32 _key, uint _treeIndex, bool _plusOrMinus, uint _value) private {
        SortitionSumTree storage tree = self.sortitionSumTrees[_key];

        uint parentIndex = _treeIndex;
        while (parentIndex != 0) {
            parentIndex = (parentIndex - 1) / tree.K;
            tree.nodes[parentIndex] = _plusOrMinus ? tree.nodes[parentIndex] + _value : tree.nodes[parentIndex] - _value;
        }
    }
}

contract TuringNoLossLotteryCake is ReentrancyGuard, Ownable {

    using SafeMath for uint256;
    uint256 public version = 100;
    bytes32 TREE_KEY;
    uint256 constant MAX_TREE_LEAVES = 5;
    uint256 public pidOfMining;
    IBEP20 public want; // CAKE
    IBEP20 public TURING; // TURING
    address public wbnb; // TURING
    address public busd; // TURING

    using SortitionSumTreeFactory for SortitionSumTreeFactory.SortitionSumTrees;

    SortitionSumTreeFactory.SortitionSumTrees sumTreeFactory;

    IPancakeSwapRouter public pancakeSwap;
    IPancakeMasterChef public pankaceMasterChef;
    IMiningMachine public miningMachine;

    uint256 public totalShare = 0;
    uint256 public totalPlayer = 0;

    mapping(address => uint256) public shareOf;
    mapping(address => uint256) public lastDepositTimeOf;

    uint256 public halftime = 7 days;
    uint256 public endLoteryTime;

    address public performanceMachine; // the contract will use fee to Buy tUR on pankace swap , then burn the turs token
    address public controllerMachine;

    uint256 public rateOfPerformanceFee = 500; // 5 % on profit.
    uint256 public rateOfControllerFee = 50; // 0.5 % on profit.
    uint256 public rateFeeOfWithdrawEarly = 50; // Max 0.5 %
    uint256 public pendingTimeOfWithdraw = 3 * 24 * 60 * 60;

    uint256 public totalHistory = 5;
    uint256 public lastHistory = 0;
    uint256 public totalRandom = 0;

    mapping(bytes32 => TimeLock) public timeLockOf;

    uint public constant GRACE_PERIOD = 30 days;
    uint public constant MINIMUM_DELAY = 2 days;
    uint public constant MAXIMUM_DELAY = 30 days;
    uint public delay;

    struct TimeLock {
        bool queuedTransactions;
        uint256 timeOfExecute;
        mapping(bytes32 => address) addressOf;
        mapping(bytes32 => uint256) uintOf;
    }

    mapping(uint256 => History) public historyList;

    struct History {
        uint256 time;
        uint256 tiketsWin;
        uint256 totalTickets;
        address winner;
        uint256 wonAmt;
        uint256 performanceFee;
        uint256 controllerFee;
    }


    event onDraw(uint256 _index, address _user, uint256 _amount, uint256 _performanceFee, uint256 _controllerFee);
    event onDeposit(address _user, uint256 _amount);
    event onWithdraw(address _user, uint256 _amount, uint256 _fee);

    event onQueuedTransactionsChangeAddress(string _functionName, string _fieldName, address _value);
    event onQueuedTransactionsChangeUint(string _functionName, string _fieldName, uint256 _value);
    event onCancelTransactions(string _functionName);

    constructor(
        IPancakeSwapRouter _pancakeSwap,
        IMiningMachine _miningMachine,
        IPancakeMasterChef _pancakeMasterChef,
        IBEP20 _cake,
        IBEP20 _turing,
        address _wbnb,
        address _busd,
        uint256 _pidOfMining
        ) public {
        pidOfMining   = _pidOfMining;
        miningMachine = _miningMachine;
        pancakeSwap = _pancakeSwap;
        want = _cake;
        TURING = _turing;

        wbnb = _wbnb;
        busd = _busd;

        pankaceMasterChef = _pancakeMasterChef;

        endLoteryTime = halftime.add(block.timestamp);

        TREE_KEY = keccak256(abi.encodePacked("TuringNoLossCake", block.timestamp, address(this), msg.sender));
        sumTreeFactory.createTree(TREE_KEY, MAX_TREE_LEAVES);

        approveConnectToPancake();
    }

    receive() external payable {
        
    }

    function setDelay(uint delay_) public onlyOwner {
        require(delay_ >= MINIMUM_DELAY, "Timelock::setDelay: Delay must exceed minimum delay.");
        require(delay_ <= MAXIMUM_DELAY, "Timelock::setDelay: Delay must not exceed maximum delay.");

        delay = delay_;
    }

    function cancelTransactions(string memory _functionName) public onlyOwner {

        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode(_functionName))];
        _timelock.queuedTransactions = false;

        emit onCancelTransactions(_functionName);
    }

    function queuedTransactionsChangeAddress(string memory _functionName, string memory _fieldName, address _newAddr) public onlyOwner 
    {
        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode(_functionName))];

        _timelock.addressOf[keccak256(abi.encode(_fieldName))] = _newAddr;
        _timelock.queuedTransactions = true;
        _timelock.timeOfExecute = block.timestamp.add(delay);

        emit onQueuedTransactionsChangeAddress(_functionName, _fieldName, _newAddr);
    }

    function queuedTransactionsChangeUint(string memory _functionName, string memory _fieldName, uint256 _value) public onlyOwner 
    {
        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode(_functionName))];

        _timelock.uintOf[keccak256(abi.encode(_fieldName))] = _value;
        _timelock.queuedTransactions = true;
        _timelock.timeOfExecute = block.timestamp.add(delay);

        emit onQueuedTransactionsChangeUint(_functionName, _fieldName, _value);
    }

    function transferOwnership() public onlyOwner {

        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('transferOwnership'))];

        _validateTimelock(_timelock);
        require(_timelock.addressOf[keccak256(abi.encode('owner'))] != address(0), "INVALID_ADDRESS");

        owner = _timelock.addressOf[keccak256(abi.encode('owner'))];
        delete _timelock.addressOf[keccak256(abi.encode('owner'))];
        _timelock.queuedTransactions = false;
    }

    function setMiningMachine() public onlyOwner 
     {
        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('setMiningMachine'))];
        _validateTimelock(_timelock);
        require(_timelock.addressOf[keccak256(abi.encode('miningMachine'))] != address(0), "INVALID_ADDRESS");
        miningMachine = IMiningMachine(_timelock.addressOf[keccak256(abi.encode('miningMachine'))]);

        delete _timelock.addressOf[keccak256(abi.encode('miningMachine'))];
        _timelock.queuedTransactions = false;
    }

    function setPerformanceMachine() public onlyOwner {

        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('setPerformanceMachine'))];

        _validateTimelock(_timelock);
        require(_timelock.addressOf[keccak256(abi.encode('performanceMachine'))] != address(0), "INVALID_ADDRESS");

        performanceMachine = _timelock.addressOf[keccak256(abi.encode('performanceMachine'))];
        delete _timelock.addressOf[keccak256(abi.encode('performanceMachine'))];
        _timelock.queuedTransactions = false;
    }

    function setPancakeSwapContract() public onlyOwner {

        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('setPancakeSwapContract'))];

        _validateTimelock(_timelock);
        require(_timelock.addressOf[keccak256(abi.encode('pancakeSwap'))] != address(0), "INVALID_ADDRESS");

        pancakeSwap = IPancakeSwapRouter(_timelock.addressOf[keccak256(abi.encode('pancakeSwap'))]);
        delete _timelock.addressOf[keccak256(abi.encode('pancakeSwap'))];
        _timelock.queuedTransactions = false;
    }

    function setPancakeMasterChefContract() public onlyOwner {

        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('setPancakeMasterChefContract'))];

        _validateTimelock(_timelock);
        require(_timelock.addressOf[keccak256(abi.encode('pankaceMasterChef'))] != address(0), "INVALID_ADDRESS");

        pankaceMasterChef = IPancakeMasterChef(_timelock.addressOf[keccak256(abi.encode('pankaceMasterChef'))]);
        delete _timelock.addressOf[keccak256(abi.encode('pankaceMasterChef'))];
        _timelock.queuedTransactions = false;
    }

    function approveConnectToPancake() public {
        want.approve(address(pankaceMasterChef), uint256(-1));
    }

    function changeHalftime() public onlyOwner {

        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('changeHalftime'))];

        _validateTimelock(_timelock);
        require(_timelock.uintOf[keccak256(abi.encode('halftime'))] > 0, "INVALID_AMOUNT");

        halftime = _timelock.uintOf[keccak256(abi.encode('halftime'))];
        delete _timelock.uintOf[keccak256(abi.encode('halftime'))];
        _timelock.queuedTransactions = false;
    } 

    function changeEndLoteryTime() public onlyOwner {

        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('changeEndLoteryTime'))];

        _validateTimelock(_timelock);
        require(_timelock.uintOf[keccak256(abi.encode('endLoteryTime'))] > 0, "INVALID_AMOUNT");

        endLoteryTime = _timelock.uintOf[keccak256(abi.encode('endLoteryTime'))];
        delete _timelock.uintOf[keccak256(abi.encode('endLoteryTime'))];
        _timelock.queuedTransactions = false;
    }

    function setRateOfPerformanceFee() public onlyOwner {
        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('setRateOfPerformanceFee'))];

        _validateTimelock(_timelock);
        require(_timelock.uintOf[keccak256(abi.encode('rateOfPerformanceFee'))] > 0, "INVALID_AMOUNT");

        rateOfPerformanceFee = _timelock.uintOf[keccak256(abi.encode('rateOfPerformanceFee'))];
        delete _timelock.uintOf[keccak256(abi.encode('rateOfPerformanceFee'))];
        _timelock.queuedTransactions = false;
    }

    function setPendingTimeOfWithdraw() public onlyOwner {
        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('setPendingTimeOfWithdraw'))];

        _validateTimelock(_timelock);
        require(_timelock.uintOf[keccak256(abi.encode('pendingTimeOfWithdraw'))] > 0, "INVALID_AMOUNT");

        pendingTimeOfWithdraw = _timelock.uintOf[keccak256(abi.encode('pendingTimeOfWithdraw'))];
        delete _timelock.uintOf[keccak256(abi.encode('pendingTimeOfWithdraw'))];
        _timelock.queuedTransactions = false;
    }

    function setRatefeeOfWithdrawEarly() public onlyOwner {
        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('setRatefeeOfWithdrawEarly'))];

        _validateTimelock(_timelock);
        require(_timelock.uintOf[keccak256(abi.encode('rateFeeOfWithdrawEarly'))] > 0, "INVALID_AMOUNT");

        rateFeeOfWithdrawEarly = _timelock.uintOf[keccak256(abi.encode('rateFeeOfWithdrawEarly'))];
        delete _timelock.uintOf[keccak256(abi.encode('rateFeeOfWithdrawEarly'))];
        _timelock.queuedTransactions = false;
    }

    function setControllerMachine() public onlyOwner {

        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('setControllerMachine'))];

        _validateTimelock(_timelock);
        require(_timelock.addressOf[keccak256(abi.encode('controllerMachine'))] != address(0), "INVALID_ADDRESS");

        controllerMachine = _timelock.addressOf[keccak256(abi.encode('controllerMachine'))];
        delete _timelock.addressOf[keccak256(abi.encode('controllerMachine'))];
        _timelock.queuedTransactions = false;
    }

    function setRateOfControllerFee() public onlyOwner {

        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('setRateOfControllerFee'))];

        _validateTimelock(_timelock);
        require(_timelock.uintOf[keccak256(abi.encode('rateOfControllerFee'))] > 0, "INVALID_AMOUNT");

        rateOfControllerFee = _timelock.uintOf[keccak256(abi.encode('rateOfControllerFee'))];
        delete _timelock.uintOf[keccak256(abi.encode('rateOfControllerFee'))];
        _timelock.queuedTransactions = false;
    }

    function setPidOfMining() public onlyOwner {

        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('setPidOfMining'))];

        _validateTimelock(_timelock);
        require(_timelock.uintOf[keccak256(abi.encode('pidOfMining'))] > 0, "INVALID_AMOUNT");

        pidOfMining = _timelock.uintOf[keccak256(abi.encode('pidOfMining'))];
        delete _timelock.uintOf[keccak256(abi.encode('pidOfMining'))];
        _timelock.queuedTransactions = false;
    }

    function changeTokenAddress() public onlyOwner
    {
        TimeLock storage _timelock = timeLockOf[keccak256(abi.encode('changeTokenAddress'))];

        _validateTimelock(_timelock);
    
        if (_timelock.addressOf[keccak256(abi.encode('want'))] != address(0)) {
            want = IBEP20(_timelock.addressOf[keccak256(abi.encode('want'))]);
            delete _timelock.addressOf[keccak256(abi.encode('want'))];
        } 
        if (_timelock.addressOf[keccak256(abi.encode('TURING'))] != address(0)) {
            TURING = IBEP20(_timelock.addressOf[keccak256(abi.encode('TURING'))]);
            delete _timelock.addressOf[keccak256(abi.encode('TURING'))];
        } 
        if (_timelock.addressOf[keccak256(abi.encode('wbnb'))] != address(0)) {
            wbnb = _timelock.addressOf[keccak256(abi.encode('wbnb'))];
            delete _timelock.addressOf[keccak256(abi.encode('wbnb'))];
        } 
        if (_timelock.addressOf[keccak256(abi.encode('busd'))] != address(0)) {
            busd = _timelock.addressOf[keccak256(abi.encode('busd'))];
            delete _timelock.addressOf[keccak256(abi.encode('busd'))];
        } 
        _timelock.queuedTransactions = false;
    }


    function _validateTimelock(TimeLock memory _timelock) private view {
        require(_timelock.queuedTransactions == true, "Transaction hasn't been queued.");
        require(_timelock.timeOfExecute <= block.timestamp, "Transaction hasn't surpassed time lock.");
        require(_timelock.timeOfExecute.add(GRACE_PERIOD) >= block.timestamp, "Transaction is stale.");
    }

    function deposit(uint256 _wantAmt) external nonReentrant {

        require(_wantAmt > 0, 'INVALID_INPUT');
        require(want.balanceOf(msg.sender) >= _wantAmt, 'INVALID_INPUT');

        if (shareOf[msg.sender] <= 0) {
            totalPlayer = totalPlayer.add(1);
        }

        harvest(msg.sender);
        want.transferFrom(msg.sender, address(this), _wantAmt);
        // update total principal
        shareOf[msg.sender] = shareOf[msg.sender].add(_wantAmt);
        totalShare = totalShare.add(_wantAmt);
        // mint tickit
        sumTreeFactory.set(TREE_KEY, shareOf[msg.sender], bytes32(uint256(address(msg.sender))));

        lastDepositTimeOf[msg.sender] = block.timestamp;

        pankaceMasterChef.enterStaking(_wantAmt);
        
        miningMachine.updateUser(pidOfMining, msg.sender);

        emit onDeposit(msg.sender, _wantAmt);
    }
    function withdraw(uint256 _wantAmt) external nonReentrant {

        require(_wantAmt > 0, 'INVALID_INPUT');
        harvest(msg.sender);

        if (_wantAmt > shareOf[msg.sender]) {
            _wantAmt = shareOf[msg.sender];
        }

        pankaceMasterChef.leaveStaking(_wantAmt);
        uint256 _cakeBalance = want.balanceOf(address(this));
        if (_wantAmt > _cakeBalance) {
            _wantAmt = _cakeBalance;
        }
        uint256 _fee = getFeeOfWithdrawEarly(msg.sender, _wantAmt);
        require(shareOf[msg.sender].sub(_fee) >= _wantAmt, 'INVALID_AMOUNT_WITHDRAW');
        // update total principal
        shareOf[msg.sender] = shareOf[msg.sender].sub(_fee).sub(_wantAmt);
        totalShare = totalShare.sub(_fee).sub(_wantAmt);
        // burn ticket
        sumTreeFactory.set(TREE_KEY, shareOf[msg.sender], bytes32(uint256(address(msg.sender))));

        want.transfer(msg.sender, _wantAmt);

        if (shareOf[msg.sender] <= 0) {
            totalPlayer = totalPlayer.sub(1);
        }

        miningMachine.updateUser(pidOfMining, msg.sender);

        emit onWithdraw(msg.sender, _wantAmt, _fee);
    }

    function harvest(address _user) public {
        pankaceMasterChef.leaveStaking(0);
        uint256 _cakeBalance = want.balanceOf(address(this));
        if (_cakeBalance > 0) {
            pankaceMasterChef.enterStaking(_cakeBalance);
        }
        miningMachine.harvest(pidOfMining, _user);
    }

    function draw() public {

        require(endLoteryTime <= block.timestamp, 'INVALID_TIME');
        require(msg.sender == tx.origin, 'INVALID_PERMISSION');

        uint256 _tiketsWin = _random(); 

        address _userLucky = getOwnerOfToken(_tiketsWin);
       
        require(_userLucky != address(0), 'INVALID_USER_LUCKY');

        (uint256 _cakeStaked, ) = pankaceMasterChef.userInfo(0, address(this));

        pankaceMasterChef.leaveStaking(_cakeStaked);

        uint256 _cakeBalance = want.balanceOf(address(this));

        require(_cakeBalance > totalShare, 'INVALID_CAKE_BALANCE');

        uint256 _wonAmt = _cakeBalance.sub(totalShare);

        uint256 _performanceFee = _wonAmt.mul(rateOfPerformanceFee).div(10000);
        uint256 _controllerFee  = _wonAmt.mul(rateOfControllerFee).div(10000);

        want.transfer(performanceMachine, _performanceFee);
        want.transfer(controllerMachine, _controllerFee);

        _wonAmt = _wonAmt.sub(_performanceFee).sub(_controllerFee);

        shareOf[_userLucky] = shareOf[_userLucky].add(_wonAmt);
        totalShare = totalShare.add(_wonAmt);

        pankaceMasterChef.enterStaking(_cakeBalance.sub(_performanceFee).sub(_controllerFee));

        endLoteryTime = halftime.add(block.timestamp);

        // UPdate history
        if (lastHistory >= 5) {
            lastHistory = 0;
        }
        History storage _h = historyList[lastHistory];

        _h.time = block.timestamp;
        _h.tiketsWin = _tiketsWin;
        _h.totalTickets = totalShare;
        _h.winner = _userLucky;
        _h.wonAmt = _wonAmt;
        _h.performanceFee = _performanceFee;
        _h.controllerFee = _controllerFee;

        lastHistory = lastHistory.add(1);

        emit onDraw(_tiketsWin, _userLucky, _wonAmt, _performanceFee, _controllerFee);
    }
    function _random() private returns (uint256) {

        if (totalShare <= 0) {
            return 0;
        }
        totalRandom += 1;
        uint256 randomHash = uint256(keccak256(abi.encodePacked(block.difficulty, block.timestamp, totalRandom, totalShare)));

        return randomHash % totalShare;
    }

    function getOwnerOfToken(uint256 _token) public view returns (address) {
      return address(uint256(sumTreeFactory.draw(TREE_KEY, _token)));
    } 
    /**
        data_[0] uint256 miningSpeed_, 
        data_[1] uint256 userWant_, 
        data_[2] uint256 userTickets_, 
        data_[3] uint256 userWantCanWithdraw_, // cake 
        data_[4] uint256 userTuringPending_, 
        data_[5] uint256 userTuringBal_, 
        data_[6] uint256 userBNBBal_, 
        data_[7] uint256 prize_, 
        data_[8] uint256 turingRewardAPY_, 
        data_[9] uint256 totalTickets_, 
        data_[10] uint256 wantPrice_, 
        data_[11] uint256 turingPrice_, 
        data_[12] uint256 endLoteryTime_, 
        data_[13] uint256 tvl_,
        data_[14] uint256 userWantBal
        data_[15] uint256 totalPlayer
    */
    function getData(
        address _user
    ) 
    public 
    view 
    returns(
        uint256[16] memory data_
    ) {
        
        data_[0] = miningMachine.getMiningSpeedOf(pidOfMining);
        data_[1] = shareOf[_user];
        data_[2] = shareOf[_user];
        data_[3] = shareOf[_user].sub(getFeeOfWithdrawEarly(_user, shareOf[_user]));
        data_[5] = TURING.balanceOf(_user);
        data_[6] = address(_user).balance;
        data_[9] = totalShare;
        (data_[4], , ) = miningMachine.getUserInfo(pidOfMining, _user);
        uint256 _totalMintPerDay = miningMachine.getTotalMintPerDayOf(pidOfMining);
        // get token price by busd
        data_[10] = getWantPrice();
        data_[11] = getTuringPrice();
        data_[12] = endLoteryTime;
        data_[13] = totalShare;
        data_[7] = getTotalReward();

        if (data_[13] > 0) {
            data_[8] = _totalMintPerDay.mul(365).mul(data_[11]).mul(10000).div(data_[13].mul(data_[10]));
        }

        data_[14] = want.balanceOf(_user);
        data_[15] = totalPlayer;
    }   

    function getFeeOfWithdrawEarly(address _user, uint256 _amount) public view returns(uint256) {
        uint256 _distance = block.timestamp.sub(lastDepositTimeOf[_user]);
        if (pendingTimeOfWithdraw <= _distance) {
            return 0;
        } 
        uint256 _fee = _amount.mul(rateFeeOfWithdrawEarly).div(10000);
        _fee = _fee.sub(_fee.mul(_distance).div(pendingTimeOfWithdraw));
        return _fee;
    }

    function getTotalReward() public view returns(uint256) {
        uint256 _pendingCake = pankaceMasterChef.pendingCake(0, address(this));
        (uint256 _cakeStaked, ) = pankaceMasterChef.userInfo(0, address(this));
        uint256 _totalCake = _cakeStaked.add(_pendingCake);
        uint256 _totalReward = 0;

        if (_totalCake > totalShare) {
            _totalReward = _totalCake.sub(totalShare);
        }
        return _totalReward;
    }

    function getTuringPrice() public view returns(uint256) {
        address[] memory path = new address[](3);

        path[0] = address(TURING);
        path[1] = wbnb;
        path[2] = busd;
        uint256 _price;
        try pancakeSwap.getAmountsOut(1e18, path) returns(uint[] memory amounts) {
            _price = amounts[2];
        } catch {
            _price = 0;   
        }
        return _price;
    }

    function getWantPrice() public view returns(uint256) {
        address[] memory path = new address[](3);

        path[0] = address(want);
        path[1] = wbnb;
        path[2] = busd;
        uint256 _price;
        try pancakeSwap.getAmountsOut(1e18, path) returns(uint[] memory amounts) {
            _price = amounts[2];
        } catch {
            _price = 0;   
        }
        return _price;
    }

    function getAddressChangeOnTimeLock(string memory _functionName, string memory _fieldName) public view returns(address) {
        return timeLockOf[keccak256(abi.encode(_functionName))].addressOf[keccak256(abi.encode(_fieldName))];
    }

    function getUintChangeOnTimeLock(string memory _functionName, string memory _fieldName) public view returns(uint256) {
        return timeLockOf[keccak256(abi.encode(_functionName))].uintOf[keccak256(abi.encode(_fieldName))];
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IPancakeSwapRouter","name":"_pancakeSwap","type":"address"},{"internalType":"contract IMiningMachine","name":"_miningMachine","type":"address"},{"internalType":"contract IPancakeMasterChef","name":"_pancakeMasterChef","type":"address"},{"internalType":"contract IBEP20","name":"_cake","type":"address"},{"internalType":"contract IBEP20","name":"_turing","type":"address"},{"internalType":"address","name":"_wbnb","type":"address"},{"internalType":"address","name":"_busd","type":"address"},{"internalType":"uint256","name":"_pidOfMining","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_functionName","type":"string"}],"name":"onCancelTransactions","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"onDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_index","type":"uint256"},{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_performanceFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_controllerFee","type":"uint256"}],"name":"onDraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_functionName","type":"string"},{"indexed":false,"internalType":"string","name":"_fieldName","type":"string"},{"indexed":false,"internalType":"address","name":"_value","type":"address"}],"name":"onQueuedTransactionsChangeAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_functionName","type":"string"},{"indexed":false,"internalType":"string","name":"_fieldName","type":"string"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"onQueuedTransactionsChangeUint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_user","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"onWithdraw","type":"event"},{"inputs":[],"name":"GRACE_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAXIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MINIMUM_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TURING","outputs":[{"internalType":"contract IBEP20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"approveConnectToPancake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"busd","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_functionName","type":"string"}],"name":"cancelTransactions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"changeEndLoteryTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"changeHalftime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"changeTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"controllerMachine","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"delay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_wantAmt","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"draw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"endLoteryTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_functionName","type":"string"},{"internalType":"string","name":"_fieldName","type":"string"}],"name":"getAddressChangeOnTimeLock","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"getData","outputs":[{"internalType":"uint256[16]","name":"data_","type":"uint256[16]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"getFeeOfWithdrawEarly","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_token","type":"uint256"}],"name":"getOwnerOfToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTuringPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_functionName","type":"string"},{"internalType":"string","name":"_fieldName","type":"string"}],"name":"getUintChangeOnTimeLock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWantPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"halftime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"name":"harvest","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"historyList","outputs":[{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"tiketsWin","type":"uint256"},{"internalType":"uint256","name":"totalTickets","type":"uint256"},{"internalType":"address","name":"winner","type":"address"},{"internalType":"uint256","name":"wonAmt","type":"uint256"},{"internalType":"uint256","name":"performanceFee","type":"uint256"},{"internalType":"uint256","name":"controllerFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastDepositTimeOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastHistory","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"miningMachine","outputs":[{"internalType":"contract IMiningMachine","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pancakeSwap","outputs":[{"internalType":"contract IPancakeSwapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pankaceMasterChef","outputs":[{"internalType":"contract IPancakeMasterChef","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingTimeOfWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"performanceMachine","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pidOfMining","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_functionName","type":"string"},{"internalType":"string","name":"_fieldName","type":"string"},{"internalType":"address","name":"_newAddr","type":"address"}],"name":"queuedTransactionsChangeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_functionName","type":"string"},{"internalType":"string","name":"_fieldName","type":"string"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"queuedTransactionsChangeUint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rateFeeOfWithdrawEarly","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateOfControllerFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateOfPerformanceFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"setControllerMachine","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"delay_","type":"uint256"}],"name":"setDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setMiningMachine","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setPancakeMasterChefContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setPancakeSwapContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setPendingTimeOfWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setPerformanceMachine","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setPidOfMining","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setRateOfControllerFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setRateOfPerformanceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setRatefeeOfWithdrawEarly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"shareOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"timeLockOf","outputs":[{"internalType":"bool","name":"queuedTransactions","type":"bool"},{"internalType":"uint256","name":"timeOfExecute","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalHistory","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalPlayer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalRandom","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"want","outputs":[{"internalType":"contract IBEP20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"wbnb","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_wantAmt","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260646002556000600d556000600e5562093a806011556101f4601555603260165560326017556203f48060185560056019556000601a556000601b553480156200004d57600080fd5b50604051620060ac380380620060ac83398181016040526101008110156200007457600080fd5b50805160208083015160408401516060850151608086015160a087015160c088015160e090980151600160008190558054336001600160a01b0319918216179091556004829055600c805482166001600160a01b03808a1691909117909155600a80548316828c16179055600580548316828816179055600680548316828716179055600780548316828616179055600880548316828d16179055600b8054909216908716179055601154979895979496939592949193909162000143914290620001d0811b6200530717901c565b601255604080516f547572696e674e6f4c6f737343616b6560801b60208083019190915242603083015230606090811b605084015233901b60648301528251605881840301815260789092019092528051908201206003819055620001b891600991906005906200535662000220821b17901c565b620001c26200033b565b50505050505050506200042d565b60008282018381101562000219576040805162461bcd60e51b815260206004820152600b60248201526a1253959053125117d0511160aa1b604482015290519081900360640190fd5b9392505050565b600082815260208490526040902080541562000283576040805162461bcd60e51b815260206004820152601460248201527f5472656520616c7265616479206578697374732e000000000000000000000000604482015290519081900360640190fd5b60018211620002d9576040805162461bcd60e51b815260206004820152601b60248201527f4b206d7573742062652067726561746572207468616e206f6e652e0000000000604482015290519081900360640190fd5b8181556040805160008152602081019182905251620002fd916001840191620003c6565b5060408051600081526020810191829052516200031f916002840191620003c6565b5060020180546001810182556000918252602082200155505050565b600554600b546040805163095ea7b360e01b81526001600160a01b03928316600482015260001960248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156200039657600080fd5b505af1158015620003ab573d6000803e3d6000fd5b505050506040513d6020811015620003c257600080fd5b5050565b82805482825590600052602060002090810192821562000404579160200282015b8281111562000404578251825591602001919060010190620003e7565b506200041292915062000416565b5090565b5b8082111562000412576000815560010162000417565b615c6f806200043d6000396000f3fe6080604052600436106103b15760003560e01c80637f1dd80b116101e7578063b6b55f251161010d578063d3e7184e116100a0578063e4598aa91161006f578063e4598aa914610f75578063e91dc71314610f8a578063f47a396f14610f9f578063feb87d1714610fb4576103b8565b8063d3e7184e14610f0c578063d77e795614610f21578063dda86d7214610f36578063e177246e14610f4b576103b8565b8063c1a287e2116100dc578063c1a287e2146109a6578063c494a08014610ecd578063c850a95e14610ee2578063d1b8a3b514610ef7576103b8565b8063b6b55f2514610d43578063bce645db14610d6d578063bd0c5a9d14610d82578063bf886c5c14610eb8576103b8565b80639312dc5f11610185578063a4f6bb4711610154578063a4f6bb4714610ccb578063a6425bae14610ce0578063ac5db7d114610cf5578063b1b43ae514610d2e576103b8565b80639312dc5f14610b5457806396c8ee5c14610c8c5780639d492faf14610ca15780639ebff55b14610cb6576103b8565b80638cac8f03116101c15780638cac8f0314610a645780638d72647e14610b155780638da5cb5b14610b2a5780638ecc676f14610b3f576103b8565b80637f1dd80b146109bb578063880ad0af146109e557806389275b18146109fa576103b8565b8063375ba378116102d7578063637a74141161026a578063725968731161023957806372596873146108465780637bc2127d1461097c5780637d1fcbfa146109915780637d645fab146109a6576103b8565b8063637a7414146107c25780636a42b8f8146107d75780636e9322b3146107ec5780636edc28fd14610801576103b8565b806354fd4d50116102a657806354fd4d50146107505780635dd84ea7146107655780635f36b2db1461077a5780635f7b73531461078f576103b8565b8063375ba378146106a557806338266b22146106ba5780633ca5b2341461072657806342553fca1461073b576103b8565b80631a0770f51161034f57806321e5e2c41161031e57806321e5e2c41461061e5780632e1a7d4d1461065157806332009eda1461067b5780633529da4e14610690576103b8565b80631a0770f5146105ca5780631b99b1c1146105df5780631f1fcd51146105f457806321c1df4214610609576103b8565b80630eecae211161038b5780630eecae211461042e57806312518dc31461044357806314ca81ed1461047457806316de220a146105b5576103b8565b8063026c4207146103bd57806307e3bbc1146103e45780630e5c011e146103f9576103b8565b366103b857005b600080fd5b3480156103c957600080fd5b506103d2610fc9565b60408051918252519081900360200190f35b3480156103f057600080fd5b506103d2610fcf565b34801561040557600080fd5b5061042c6004803603602081101561041c57600080fd5b50356001600160a01b0316610fd5565b005b34801561043a57600080fd5b5061042c6111a5565b34801561044f57600080fd5b5061045861176a565b604080516001600160a01b039092168252519081900360200190f35b34801561048057600080fd5b5061042c6004803603606081101561049757600080fd5b810190602081018135600160201b8111156104b157600080fd5b8201836020820111156104c357600080fd5b803590602001918460018302840111600160201b831117156104e457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561053657600080fd5b82018360208201111561054857600080fd5b803590602001918460018302840111600160201b8311171561056957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b031691506117799050565b3480156105c157600080fd5b50610458611a59565b3480156105d657600080fd5b506103d2611a68565b3480156105eb57600080fd5b506103d2611a6e565b34801561060057600080fd5b50610458611a74565b34801561061557600080fd5b506103d2611a83565b34801561062a57600080fd5b506103d26004803603602081101561064157600080fd5b50356001600160a01b0316611a89565b34801561065d57600080fd5b5061042c6004803603602081101561067457600080fd5b5035611a9b565b34801561068757600080fd5b5061042c611eb1565b34801561069c57600080fd5b506103d261239e565b3480156106b157600080fd5b506104586123a4565b3480156106c657600080fd5b506106ed600480360360208110156106dd57600080fd5b50356001600160a01b03166123b3565b604051808261020080838360005b838110156107135781810151838201526020016106fb565b5050505090500191505060405180910390f35b34801561073257600080fd5b50610458612747565b34801561074757600080fd5b506103d2612756565b34801561075c57600080fd5b506103d261275c565b34801561077157600080fd5b5061042c612762565b34801561078657600080fd5b506103d26129a0565b34801561079b57600080fd5b506103d2600480360360208110156107b257600080fd5b50356001600160a01b03166129a6565b3480156107ce57600080fd5b506103d26129b8565b3480156107e357600080fd5b506103d26129be565b3480156107f857600080fd5b5061042c6129c4565b34801561080d57600080fd5b5061082b6004803603602081101561082457600080fd5b5035612bfc565b60408051921515835260208301919091528051918290030190f35b34801561085257600080fd5b506103d26004803603604081101561086957600080fd5b810190602081018135600160201b81111561088357600080fd5b82018360208201111561089557600080fd5b803590602001918460018302840111600160201b831117156108b657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561090857600080fd5b82018360208201111561091a57600080fd5b803590602001918460018302840111600160201b8311171561093b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550612c1b945050505050565b34801561098857600080fd5b5061042c612d5e565b34801561099d57600080fd5b506103d2612f74565b3480156109b257600080fd5b506103d26130ae565b3480156109c757600080fd5b50610458600480360360208110156109de57600080fd5b50356130b5565b3480156109f157600080fd5b5061042c6130c8565b348015610a0657600080fd5b50610a2460048036036020811015610a1d57600080fd5b50356132e2565b604080519788526020880196909652868601949094526001600160a01b039092166060860152608085015260a084015260c0830152519081900360e00190f35b348015610a7057600080fd5b5061042c60048036036020811015610a8757600080fd5b810190602081018135600160201b811115610aa157600080fd5b820183602082011115610ab357600080fd5b803590602001918460018302840111600160201b83111715610ad457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550613329945050505050565b348015610b2157600080fd5b506104586134ba565b348015610b3657600080fd5b506104586134c9565b348015610b4b57600080fd5b5061042c6134d8565b348015610b6057600080fd5b5061042c60048036036060811015610b7757600080fd5b810190602081018135600160201b811115610b9157600080fd5b820183602082011115610ba357600080fd5b803590602001918460018302840111600160201b83111715610bc457600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610c1657600080fd5b820183602082011115610c2857600080fd5b803590602001918460018302840111600160201b83111715610c4957600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250613701915050565b348015610c9857600080fd5b50610458613914565b348015610cad57600080fd5b5061042c613923565b348015610cc257600080fd5b5061042c613b3b565b348015610cd757600080fd5b5061042c613d37565b348015610cec57600080fd5b5061042c613f24565b348015610d0157600080fd5b506103d260048036036040811015610d1857600080fd5b506001600160a01b03813516906020013561414f565b348015610d3a57600080fd5b506103d26141d5565b348015610d4f57600080fd5b5061042c60048036036020811015610d6657600080fd5b50356141dc565b348015610d7957600080fd5b5061045861457c565b348015610d8e57600080fd5b5061045860048036036040811015610da557600080fd5b810190602081018135600160201b811115610dbf57600080fd5b820183602082011115610dd157600080fd5b803590602001918460018302840111600160201b83111715610df257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610e4457600080fd5b820183602082011115610e5657600080fd5b803590602001918460018302840111600160201b83111715610e7757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061458b945050505050565b348015610ec457600080fd5b5061042c6146d5565b348015610ed957600080fd5b506103d26148e9565b348015610eee57600080fd5b506103d26148ef565b348015610f0357600080fd5b5061042c614b1b565b348015610f1857600080fd5b506103d2614d0e565b348015610f2d57600080fd5b5061042c614d4e565b348015610f4257600080fd5b506103d2614f59565b348015610f5757600080fd5b5061042c60048036036020811015610f6e57600080fd5b5035614f5f565b348015610f8157600080fd5b50610458615035565b348015610f9657600080fd5b5061042c615044565b348015610fab57600080fd5b506103d2615279565b348015610fc057600080fd5b5061042c61527f565b600d5481565b60115481565b600b5460408051631058d28160e01b815260006004820181905291516001600160a01b0390931692631058d2819260248084019391929182900301818387803b15801561102157600080fd5b505af1158015611035573d6000803e3d6000fd5b5050600554604080516370a0823160e01b81523060048201529051600094506001600160a01b0390921692506370a08231916024808301926020929190829003018186803b15801561108657600080fd5b505afa15801561109a573d6000803e3d6000fd5b505050506040513d60208110156110b057600080fd5b50519050801561112057600b54604080516341441d3b60e01b81526004810184905290516001600160a01b03909216916341441d3b9160248082019260009290919082900301818387803b15801561110757600080fd5b505af115801561111b573d6000803e3d6000fd5b505050505b600c546004805460408051630c7e663b60e11b8152928301919091526001600160a01b03858116602484015281519316926318fccc769260448082019392918290030181600087803b15801561117557600080fd5b505af1158015611189573d6000803e3d6000fd5b505050506040513d604081101561119f57600080fd5b50505050565b4260125411156111eb576040805162461bcd60e51b815260206004820152600c60248201526b494e56414c49445f54494d4560a01b604482015290519081900360640190fd5b333214611234576040805162461bcd60e51b815260206004820152601260248201527124a72b20a624a22fa822a926a4a9a9a4a7a760711b604482015290519081900360640190fd5b600061123e615462565b9050600061124b826130b5565b90506001600160a01b03811661129d576040805162461bcd60e51b8152602060048201526012602482015271494e56414c49445f555345525f4c55434b5960701b604482015290519081900360640190fd5b600b54604080516393f1a40b60e01b8152600060048201819052306024830152825190936001600160a01b0316926393f1a40b9260448082019391829003018186803b1580156112ec57600080fd5b505afa158015611300573d6000803e3d6000fd5b505050506040513d604081101561131657600080fd5b5051600b5460408051631058d28160e01b81526004810184905290519293506001600160a01b0390911691631058d2819160248082019260009290919082900301818387803b15801561136857600080fd5b505af115801561137c573d6000803e3d6000fd5b5050600554604080516370a0823160e01b81523060048201529051600094506001600160a01b0390921692506370a08231916024808301926020929190829003018186803b1580156113cd57600080fd5b505afa1580156113e1573d6000803e3d6000fd5b505050506040513d60208110156113f757600080fd5b5051600d549091508111611449576040805162461bcd60e51b8152602060048201526014602482015273494e56414c49445f43414b455f42414c414e434560601b604482015290519081900360640190fd5b6000611460600d54836154d090919063ffffffff16565b9050600061148561271061147f6015548561551b90919063ffffffff16565b90615578565b905060006114a461271061147f6016548661551b90919063ffffffff16565b6005546013546040805163a9059cbb60e01b81526001600160a01b03928316600482015260248101879052905193945091169163a9059cbb916044808201926020929091908290030181600087803b1580156114ff57600080fd5b505af1158015611513573d6000803e3d6000fd5b505050506040513d602081101561152957600080fd5b50506005546014546040805163a9059cbb60e01b81526001600160a01b039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561158457600080fd5b505af1158015611598573d6000803e3d6000fd5b505050506040513d60208110156115ae57600080fd5b506115c59050816115bf85856154d0565b906154d0565b6001600160a01b0387166000908152600f60205260409020549093506115eb9084615307565b6001600160a01b0387166000908152600f6020526040902055600d546116119084615307565b600d55600b546001600160a01b03166341441d3b611633836115bf88876154d0565b6040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561166957600080fd5b505af115801561167d573d6000803e3d6000fd5b505060115461168f9250905042615307565b601255601a546005116116a2576000601a555b601a80546000908152601e6020526040902042815560018082018a9055600d5460028301556003820180546001600160a01b0319166001600160a01b038b16179055600482018690556005820185905560068201849055915490916117079190615307565b601a55604080518981526001600160a01b0389166020820152808201869052606081018590526080810184905290517ffa9fbbf3c935984485dc4d3992196ba49e4cf1246cdd892b69355d2ede7c0b249181900360a00190a15050505050505050565b6006546001600160a01b031681565b6001546001600160a01b031633146117c6576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b6000601c6000856040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561180d5781810151838201526020016117f5565b50505050905090810190601f16801561183a5780820380516001836020036101000a031916815260200191505b5092505050604051602081830303815290604052805190602001208152602001908152602001600020905081816002016000856040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156118ad578181015183820152602001611895565b50505050905090810190601f1680156118da5780820380516001836020036101000a031916815260200191505b5060408051808303601f1901815291815281516020928301208652908501959095525050500160002080546001600160a01b0319166001600160a01b0392909216919091179055805460ff19166001178155601d5461193a904290615307565b81600101819055507f1bd33efd68d2824f5f0f2519ce7c9ca0ddff6234523468e89077a0dca7b73970848484604051808060200180602001846001600160a01b03168152602001838103835286818151815260200191508051906020019080838360005b838110156119b657818101518382015260200161199e565b50505050905090810190601f1680156119e35780820380516001836020036101000a031916815260200191505b50838103825285518152855160209182019187019080838360005b83811015611a165781810151838201526020016119fe565b50505050905090810190601f168015611a435780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a150505050565b6013546001600160a01b031681565b60185481565b60165481565b6005546001600160a01b031681565b601b5481565b600f6020526000908152604090205481565b60026000541415611af3576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600260005580611b3a576040805162461bcd60e51b815260206004820152600d60248201526c1253959053125117d253941555609a1b604482015290519081900360640190fd5b611b4333610fd5565b336000908152600f6020526040902054811115611b6c5750336000908152600f60205260409020545b600b5460408051631058d28160e01b81526004810184905290516001600160a01b0390921691631058d2819160248082019260009290919082900301818387803b158015611bb957600080fd5b505af1158015611bcd573d6000803e3d6000fd5b5050600554604080516370a0823160e01b81523060048201529051600094506001600160a01b0390921692506370a08231916024808301926020929190829003018186803b158015611c1e57600080fd5b505afa158015611c32573d6000803e3d6000fd5b505050506040513d6020811015611c4857600080fd5b5051905080821115611c58578091505b6000611c64338461414f565b336000908152600f60205260409020549091508390611c8390836154d0565b1015611cd6576040805162461bcd60e51b815260206004820152601760248201527f494e56414c49445f414d4f554e545f5749544844524157000000000000000000604482015290519081900360640190fd5b336000908152600f6020526040902054611cf69084906115bf90846154d0565b336000908152600f6020526040902055600d54611d199084906115bf90846154d0565b600d55600354336000818152600f6020526040902054611d3e926009929091906155d0565b6005546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b158015611d9257600080fd5b505af1158015611da6573d6000803e3d6000fd5b505050506040513d6020811015611dbc57600080fd5b5050336000908152600f6020526040902054611de457600e54611de09060016154d0565b600e555b600c546004805460408051638fb4e1cd60e01b815292830191909152336024830152516001600160a01b0390921691638fb4e1cd916044808201926020929091908290030181600087803b158015611e3b57600080fd5b505af1158015611e4f573d6000803e3d6000fd5b505050506040513d6020811015611e6557600080fd5b5050604080513381526020810185905280820183905290517f1b091269e929df55d64d6ea7e9cadbe4fb38dce5ccdc995767bc515030dbfbbf9181900360600190a15050600160005550565b6001546001600160a01b03163314611efe576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b604080516020808201819052601282840152716368616e6765546f6b656e4164647265737360701b60608084019190915283518084039091018152608083018085528151918301919091206000908152601c9092529083902060c08301909352825460ff1615158152600183015460a090920191909152611f7e906158b4565b604080516020808201819052600482840152631dd85b9d60e21b606080840191909152835180840390910181526080909201835281519181019190912060009081526002840190915220546001600160a01b031615612083576040805160208082018190526004828401819052631dd85b9d60e21b60608085018290528551808603909101815260808501865280519084012060009081526002870180855286822054600580546001600160a01b039092166001600160a01b031992831617905560a0870186905260c087019490945260e080870193909352865180870390930183526101009095018652815191840191909120815292909152919020805490911690555b60408051602080820181905260068284015265545552494e4760d01b606080840191909152835180840390910181526080909201835281519181019190912060009081526002840190915220546001600160a01b03161561218a57604080516020808201819052600682840181905265545552494e4760d01b6060808501829052855180860390910181526080850186528051908401206000908152600287018085528682205484546001600160a01b039091166001600160a01b031991821617855560a0870186905260c087019490945260e080870193909352865180870390930183526101009095018652815191840191909120815292909152919020805490911690555b604080516020808201819052600482840152633bb1373160e11b606080840191909152835180840390910181526080909201835281519181019190912060009081526002840190915220546001600160a01b03161561228f576040805160208082018190526004828401819052633bb1373160e11b60608085018290528551808603909101815260808501865280519084012060009081526002870180855286822054600780546001600160a01b039092166001600160a01b031992831617905560a0870186905260c087019490945260e080870193909352865180870390930183526101009095018652815191840191909120815292909152919020805490911690555b60408051602080820181905260048284015263189d5cd960e21b606080840191909152835180840390910181526080909201835281519181019190912060009081526002840190915220546001600160a01b03161561239457604080516020808201819052600482840181905263189d5cd960e21b60608085018290528551808603909101815260808501865280519084012060009081526002870180855286822054600880546001600160a01b039092166001600160a01b031992831617905560a0870186905260c087019490945260e080870193909352865180870390930183526101009095018652815191840191909120815292909152919020805490911690555b805460ff19169055565b601a5481565b600a546001600160a01b031681565b6123bb615b07565b600c5460048054604080516324aa7cc560e11b815292830191909152516001600160a01b0390921691634954f98a91602480820192602092909190829003018186803b15801561240a57600080fd5b505afa15801561241e573d6000803e3d6000fd5b505050506040513d602081101561243457600080fd5b505181526001600160a01b0382166000818152600f60208181526040808420548287018190529086018190529390925290526124949061247590849061414f565b6001600160a01b0384166000908152600f6020526040902054906154d0565b6060820152600654604080516370a0823160e01b81526001600160a01b038581166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156124e657600080fd5b505afa1580156124fa573d6000803e3d6000fd5b505050506040513d602081101561251057600080fd5b505160a08201526001600160a01b03828116803160c0840152600d54610120840152600c546004805460408051631069f3b560e01b81529283019190915260248201939093529151921691631069f3b591604480820192606092909190829003018186803b15801561258157600080fd5b505afa158015612595573d6000803e3d6000fd5b505050506040513d60608110156125ab57600080fd5b50516080820152600c546004805460408051635e86cd9560e01b815292830191909152516000926001600160a01b031691635e86cd95916024808301926020929190829003018186803b15801561260157600080fd5b505afa158015612615573d6000803e3d6000fd5b505050506040513d602081101561262b57600080fd5b50519050612637614d0e565b6101408301526126456148ef565b610160830152601254610180830152600d546101a0830152612665612f74565b60e08301526101a0820151156126b9576101408201516101a08301516126b29161268f919061551b565b61147f6127106126ac86600b60200201516126ac8761016d61551b565b9061551b565b6101008301525b600554604080516370a0823160e01b81526001600160a01b038681166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561270657600080fd5b505afa15801561271a573d6000803e3d6000fd5b505050506040513d602081101561273057600080fd5b50516101c083015250600e546101e0820152919050565b6008546001600160a01b031681565b60125481565b60025481565b6001546001600160a01b031633146127af576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b604080516020808201819052601c8284018190527f73657450616e63616b654d617374657243686566436f6e747261637400000000606080850191909152845180850390910181526080840180865281519184019190912060009081529190925283902060c08301909352825460ff1615158152600183015460a09092019190915261283a906158b4565b604080516020808201819052601182840152703830b735b0b1b2a6b0b9ba32b921b432b360791b606080840191909152835180840390910181526080909201835281519181019190912060009081526002840190915220546001600160a01b03166128de576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b6040805160208082018190526011828401819052703830b735b0b1b2a6b0b9ba32b921b432b360791b60608085018290528551808603909101815260808501865280519084012060009081526002870180855286822054600b80546001600160a01b039092166001600160a01b031992831617905560a0870186905260c087019490945260e08087019390935286518087039093018352610100909501865281519184019190912081529290915291902080549091169055805460ff19169055565b60195481565b60106020526000908152604090205481565b60175481565b601d5481565b6001546001600160a01b03163314612a11576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b60408051602080820181905260158284015274736574506572666f726d616e63654d616368696e6560581b60608084019190915283518084039091018152608083018085528151918301919091206000908152601c9092529083902060c08301909352825460ff1615158152600183015460a090920191909152612a94906158b4565b60408051602080820181905260128284015271706572666f726d616e63654d616368696e6560701b606080840191909152835180840390910181526080909201835281519181019190912060009081526002840190915220546001600160a01b0316612b39576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b604080516020808201819052601282840181905271706572666f726d616e63654d616368696e6560701b60608085018290528551808603909101815260808501865280519084012060009081526002870180855286822054601380546001600160a01b039092166001600160a01b031992831617905560a0870186905260c087019490945260e08087019390935286518087039093018352610100909501865281519184019190912081529290915291902080549091169055805460ff19169055565b601c602052600090815260409020805460019091015460ff9091169082565b6000601c6000846040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015612c62578181015183820152602001612c4a565b50505050905090810190601f168015612c8f5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012081526020019081526020016000206003016000836040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015612cfe578181015183820152602001612ce6565b50505050905090810190601f168015612d2b5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012081526020019081526020016000205490505b92915050565b6001546001600160a01b03163314612dab576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b6040805160208082018190526018828401527f73657450656e64696e6754696d654f665769746864726177000000000000000060608084019190915283518084039091018152608083018085528151918301919091206000908152601c9092529083902060c08301909352825460ff1615158152600183015460a090920191909152612e36906158b4565b6040805160208082018190526015828401527470656e64696e6754696d654f66576974686472617760581b60608084019190915283518084039091018152608090920183528151918101919091206000908152600384019091522054612ed4576040805162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b604482015290519081900360640190fd5b60408051602080820181905260158284018190527470656e64696e6754696d654f66576974686472617760581b6060808501829052855180860390910181526080850186528051908401206000908152600387018085528682205460185560a0860185905260c086019390935260e0808601929092528551808603909201825261010090940185528051908301208352905290812055805460ff19169055565b600b5460408051631175a1dd60e01b81526000600482018190523060248301529151919283926001600160a01b0390911691631175a1dd916044808301926020929190829003018186803b158015612fcb57600080fd5b505afa158015612fdf573d6000803e3d6000fd5b505050506040513d6020811015612ff557600080fd5b5051600b54604080516393f1a40b60e01b81526000600482018190523060248301528251949550936001600160a01b03909316926393f1a40b92604480840193919291829003018186803b15801561304c57600080fd5b505afa158015613060573d6000803e3d6000fd5b505050506040513d604081101561307657600080fd5b5051905060006130868284615307565b90506000600d548211156130a557600d546130a29083906154d0565b90505b93505050505b90565b62278d0081565b600354600090612d5890600990846159b1565b6001546001600160a01b03163314613115576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b6040805160208082018190526011828401527007472616e736665724f776e65727368697607c1b60608084019190915283518084039091018152608083018085528151918301919091206000908152601c9092529083902060c08301909352825460ff1615158152600183015460a090920191909152613194906158b4565b6040805160208082018190526005828401526437bbb732b960d91b606080840191909152835180840390910181526080909201835281519181019190912060009081526002840190915220546001600160a01b031661322c576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b60408051602080820181905260058284018190526437bbb732b960d91b60608085018290528551808603909101815260808501865280519084012060009081526002870180855286822054600180546001600160a01b039092166001600160a01b031992831617905560a0870186905260c087019490945260e08087019390935286518087039093018352610100909501865281519184019190912081529290915291902080549091169055805460ff19169055565b601e6020526000908152604090208054600182015460028301546003840154600485015460058601546006909601549495939492936001600160a01b039092169290919087565b6001546001600160a01b03163314613376576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b6000601c6000836040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156133bd5781810151838201526020016133a5565b50505050905090810190601f1680156133ea5780820380516001836020036101000a031916815260200191505b5060408051601f1981840301815291815281516020928301208652858201969096529385016000908120805460ff19168155865186815289518188015289519198507fce369f91d52b663114643c430217b52530c2cc7318cac7a3e9d46241cbc354a8978a97919650869550850193508601918190849084905b8381101561347c578181015183820152602001613464565b50505050905090810190601f1680156134a95780820380516001836020036101000a031916815260200191505b509250505060405180910390a15050565b6007546001600160a01b031681565b6001546001600160a01b031681565b6001546001600160a01b03163314613525576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b6040805160208082018190526010828401526f7365744d696e696e674d616368696e6560801b60608084019190915283518084039091018152608083018085528151918301919091206000908152601c9092529083902060c08301909352825460ff1615158152600183015460a0909201919091526135a3906158b4565b604080516020808201819052600d828401526c6d696e696e674d616368696e6560981b606080840191909152835180840390910181526080909201835281519181019190912060009081526002840190915220546001600160a01b0316613643576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b604080516020808201819052600d8284018190526c6d696e696e674d616368696e6560981b60608085018290528551808603909101815260808501865280519084012060009081526002870180855286822054600c80546001600160a01b039092166001600160a01b031992831617905560a0870186905260c087019490945260e08087019390935286518087039093018352610100909501865281519184019190912081529290915291902080549091169055805460ff19169055565b6001546001600160a01b0316331461374e576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b6000601c6000856040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561379557818101518382015260200161377d565b50505050905090810190601f1680156137c25780820380516001836020036101000a031916815260200191505b5092505050604051602081830303815290604052805190602001208152602001908152602001600020905081816003016000856040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561383557818101518382015260200161381d565b50505050905090810190601f1680156138625780820380516001836020036101000a031916815260200191505b5060408051601f1981840301815291815281516020928301208652908501959095525050500160002055805460ff19166001178155601d546138a5904290615307565b600182015560408051908101839052606080825285519082015284517f860699cc7b0f3cb3d034fd31cdfe0816887a9f55d10993224d77c359c3d555519186918691869181906020808301916080840191880190808383600083156119b657818101518382015260200161199e565b600b546001600160a01b031681565b6001546001600160a01b03163314613970576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b6040805160208082018190526019828401527f736574526174656665654f6657697468647261774561726c790000000000000060608084019190915283518084039091018152608083018085528151918301919091206000908152601c9092529083902060c08301909352825460ff1615158152600183015460a0909201919091526139fb906158b4565b60408051602080820181905260168284015275726174654665654f6657697468647261774561726c7960501b60608084019190915283518084039091018152608090920183528151918101919091206000908152600384019091522054613a9a576040805162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b604482015290519081900360640190fd5b604080516020808201819052601682840181905275726174654665654f6657697468647261774561726c7960501b6060808501829052855180860390910181526080850186528051908401206000908152600387018085528682205460175560a0860185905260c086019390935260e0808601929092528551808603909201825261010090940185528051908301208352905290812055805460ff19169055565b6001546001600160a01b03163314613b88576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b604080516020808201819052601382840152726368616e6765456e644c6f7465727954696d6560681b60608084019190915283518084039091018152608083018085528151918301919091206000908152601c9092529083902060c08301909352825460ff1615158152600183015460a090920191909152613c09906158b4565b604080516020808201819052600d828401526c656e644c6f7465727954696d6560981b60608084019190915283518084039091018152608090920183528151918101919091206000908152600384019091522054613c9f576040805162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b604482015290519081900360640190fd5b604080516020808201819052600d8284018190526c656e644c6f7465727954696d6560981b6060808501829052855180860390910181526080850186528051908401206000908152600387018085528682205460125560a0860185905260c086019390935260e0808601929092528551808603909201825261010090940185528051908301208352905290812055805460ff19169055565b6001546001600160a01b03163314613d84576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b604080516020808201819052600e828401526d6368616e676548616c6674696d6560901b60608084019190915283518084039091018152608083018085528151918301919091206000908152601c9092529083902060c08301909352825460ff1615158152600183015460a090920191909152613e00906158b4565b6040805160208082018190526008828401526768616c6674696d6560c01b60608084019190915283518084039091018152608090920183528151918101919091206000908152600384019091522054613e91576040805162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b604482015290519081900360640190fd5b60408051602080820181905260088284018190526768616c6674696d6560c01b6060808501829052855180860390910181526080850186528051908401206000908152600387018085528682205460115560a0860185905260c086019390935260e0808601929092528551808603909201825261010090940185528051908301208352905290812055805460ff19169055565b6001546001600160a01b03163314613f71576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b604080516020808201819052601682840152751cd95d14185b98d85ad954ddd85c10dbdb9d1c9858dd60521b60608084019190915283518084039091018152608083018085528151918301919091206000908152601c9092529083902060c08301909352825460ff1615158152600183015460a090920191909152613ff5906158b4565b604080516020808201819052600b828401526a070616e63616b65537761760ac1b606080840191909152835180840390910181526080909201835281519181019190912060009081526002840190915220546001600160a01b0316614093576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b604080516020808201819052600b8284018190526a070616e63616b65537761760ac1b60608085018290528551808603909101815260808501865280519084012060009081526002870180855286822054600a80546001600160a01b039092166001600160a01b031992831617905560a0870186905260c087019490945260e08087019390935286518087039093018352610100909501865281519184019190912081529290915291902080549091169055805460ff19169055565b6001600160a01b03821660009081526010602052604081205481906141759042906154d0565b9050806018541161418a576000915050612d58565b60006141a761271061147f6017548761551b90919063ffffffff16565b90506141cc6141c560185461147f858561551b90919063ffffffff16565b82906154d0565b95945050505050565b6202a30081565b60026000541415614234576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b60026000558061427b576040805162461bcd60e51b815260206004820152600d60248201526c1253959053125117d253941555609a1b604482015290519081900360640190fd5b600554604080516370a0823160e01b8152336004820152905183926001600160a01b0316916370a08231916024808301926020929190829003018186803b1580156142c557600080fd5b505afa1580156142d9573d6000803e3d6000fd5b505050506040513d60208110156142ef57600080fd5b50511015614334576040805162461bcd60e51b815260206004820152600d60248201526c1253959053125117d253941555609a1b604482015290519081900360640190fd5b336000908152600f602052604090205461435a57600e54614356906001615307565b600e555b61436333610fd5565b600554604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b1580156143bd57600080fd5b505af11580156143d1573d6000803e3d6000fd5b505050506040513d60208110156143e757600080fd5b5050336000908152600f60205260409020546144039082615307565b336000908152600f6020526040902055600d546144209082615307565b600d55600354336000818152600f6020526040902054614445926009929091906155d0565b33600090815260106020526040808220429055600b5481516341441d3b60e01b81526004810185905291516001600160a01b03909116926341441d3b926024808201939182900301818387803b15801561449e57600080fd5b505af11580156144b2573d6000803e3d6000fd5b5050600c546004805460408051638fb4e1cd60e01b815292830191909152336024830152516001600160a01b039092169350638fb4e1cd92506044808201926020929091908290030181600087803b15801561450d57600080fd5b505af1158015614521573d6000803e3d6000fd5b505050506040513d602081101561453757600080fd5b5050604080513381526020810183905281517f2bf9518c65eff7d1f3ee4106bf0dc41267ccde0924dbfa4ab476ed5c0f45da98929181900390910190a1506001600055565b600c546001600160a01b031681565b6000601c6000846040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156145d25781810151838201526020016145ba565b50505050905090810190601f1680156145ff5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012081526020019081526020016000206002016000836040516020018080602001828103825283818151815260200191508051906020019080838360005b8381101561466e578181015183820152602001614656565b50505050905090810190601f16801561469b5780820380516001836020036101000a031916815260200191505b5060408051808303601f19018152918152815160209283012086529085019590955250505001600020546001600160a01b03169392505050565b6001546001600160a01b03163314614722576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b6040805160208082018190526017828401527f736574526174654f66506572666f726d616e636546656500000000000000000060608084019190915283518084039091018152608083018085528151918301919091206000908152601c9092529083902060c08301909352825460ff1615158152600183015460a0909201919091526147ad906158b4565b60408051602080820181905260148284015273726174654f66506572666f726d616e636546656560601b6060808401919091528351808403909101815260809092018352815191810191909120600090815260038401909152205461484a576040805162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b604482015290519081900360640190fd5b604080516020808201819052601482840181905273726174654f66506572666f726d616e636546656560601b6060808501829052855180860390910181526080850186528051908401206000908152600387018085528682205460155560a0860185905260c086019390935260e0808601929092528551808603909201825261010090940185528051908301208352905290812055805460ff19169055565b600e5481565b6040805160038082526080820190925260009160609190602082018380368337505060065482519293506001600160a01b03169183915060009061492f57fe5b6001600160a01b03928316602091820292909201015260075482519116908290600190811061495a57fe5b6001600160a01b03928316602091820292909201015260085482519116908290600290811061498557fe5b6001600160a01b03928316602091820292909201810191909152600a546040805163d06ca61f60e01b8152670de0b6b3a76400006004820181815260248301938452875160448401528751600097959095169563d06ca61f9592948994929390926064019185810191028083838c5b83811015614a0c5781810151838201526020016149f4565b50505050905001935050505060006040518083038186803b158015614a3057600080fd5b505afa925050508015614af057506040513d6000823e601f3d908101601f191682016040526020811015614a6357600080fd5b8101908080516040519392919084600160201b821115614a8257600080fd5b908301906020820185811115614a9757600080fd5b82518660208202830111600160201b82111715614ab357600080fd5b82525081516020918201928201910280838360005b83811015614ae0578181015183820152602001614ac8565b5050505090500160405250505060015b614afc57506000614b15565b80600281518110614b0957fe5b60200260200101519150505b91505090565b6001546001600160a01b03163314614b68576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b604080516020808201819052600e828401526d7365745069644f664d696e696e6760901b60608084019190915283518084039091018152608083018085528151918301919091206000908152601c9092529083902060c08301909352825460ff1615158152600183015460a090920191909152614be4906158b4565b604080516020808201819052600b828401526a7069644f664d696e696e6760a81b60608084019190915283518084039091018152608090920183528151918101919091206000908152600384019091522054614c78576040805162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b604482015290519081900360640190fd5b604080516020808201819052600b8284018190526a7069644f664d696e696e6760a81b6060808501829052855180860390910181526080850186528051908401206000908152600387018085528682205460045560a0860185905260c086019390935260e0808601929092528551808603909201825261010090940185528051908301208352905290812055805460ff19169055565b6040805160038082526080820190925260009160609190602082018380368337505060055482519293506001600160a01b03169183915060009061492f57fe5b6001546001600160a01b03163314614d9b576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b60408051602080820181905260168284015275736574526174654f66436f6e74726f6c6c657246656560501b60608084019190915283518084039091018152608083018085528151918301919091206000908152601c9092529083902060c08301909352825460ff1615158152600183015460a090920191909152614e1f906158b4565b60408051602080820181905260138284015272726174654f66436f6e74726f6c6c657246656560681b60608084019190915283518084039091018152608090920183528151918101919091206000908152600384019091522054614ebb576040805162461bcd60e51b815260206004820152600e60248201526d1253959053125117d05353d5539560921b604482015290519081900360640190fd5b604080516020808201819052601382840181905272726174654f66436f6e74726f6c6c657246656560681b6060808501829052855180860390910181526080850186528051908401206000908152600387018085528682205460165560a0860185905260c086019390935260e0808601929092528551808603909201825261010090940185528051908301208352905290812055805460ff19169055565b60155481565b6001546001600160a01b03163314614fac576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b6202a300811015614fee5760405162461bcd60e51b8152600401808060200182810382526034815260200180615ba76034913960400191505060405180910390fd5b62278d008111156150305760405162461bcd60e51b8152600401808060200182810382526038815260200180615bdb6038913960400191505060405180910390fd5b601d55565b6014546001600160a01b031681565b6001546001600160a01b03163314615091576040805162461bcd60e51b81526020600482015260126024820152600080516020615b87833981519152604482015290519081900360640190fd5b60408051602080820181905260148284015273736574436f6e74726f6c6c65724d616368696e6560601b60608084019190915283518084039091018152608083018085528151918301919091206000908152601c9092529083902060c08301909352825460ff1615158152600183015460a090920191909152615113906158b4565b60408051602080820181905260118284015270636f6e74726f6c6c65724d616368696e6560781b606080840191909152835180840390910181526080909201835281519181019190912060009081526002840190915220546001600160a01b03166151b7576040805162461bcd60e51b815260206004820152600f60248201526e494e56414c49445f4144445245535360881b604482015290519081900360640190fd5b604080516020808201819052601182840181905270636f6e74726f6c6c65724d616368696e6560781b60608085018290528551808603909101815260808501865280519084012060009081526002870180855286822054601480546001600160a01b039092166001600160a01b031992831617905560a0870186905260c087019490945260e08087019390935286518087039093018352610100909501865281519184019190912081529290915291902080549091169055805460ff19169055565b60045481565b600554600b546040805163095ea7b360e01b81526001600160a01b03928316600482015260001960248201529051919092169163095ea7b39160448083019260209291908290030181600087803b1580156152d957600080fd5b505af11580156152ed573d6000803e3d6000fd5b505050506040513d602081101561530357600080fd5b5050565b60008282018381101561534f576040805162461bcd60e51b815260206004820152600b60248201526a1253959053125117d0511160aa1b604482015290519081900360640190fd5b9392505050565b60008281526020849052604090208054156153af576040805162461bcd60e51b81526020600482015260146024820152732a3932b29030b63932b0b23c9032bc34b9ba399760611b604482015290519081900360640190fd5b60018211615404576040805162461bcd60e51b815260206004820152601b60248201527f4b206d7573742062652067726561746572207468616e206f6e652e0000000000604482015290519081900360640190fd5b8181556040805160008152602081019182905251615426916001840191615b26565b506040805160008152602081019182905251615446916002840191615b26565b5060020180546001810182556000918252602082200155505050565b600080600d5411615475575060006130ab565b601b805460010190819055600d5460408051446020808301919091524282840152606082019490945260808082018490528251808303909101815260a090910190915280519201919091209081816154c957fe5b0691505090565b600082821115615515576040805162461bcd60e51b815260206004820152600b60248201526a24a72b20a624a22fa9aaa160a91b604482015290519081900360640190fd5b50900390565b60008261552a57506000612d58565b8282028284828161553757fe5b041461534f576040805162461bcd60e51b815260206004820152600b60248201526a1253959053125117d3555360aa1b604482015290519081900360640190fd5b60008082116155bc576040805162461bcd60e51b815260206004820152600b60248201526a24a72b20a624a22fa224ab60a91b604482015290519081900360640190fd5b60008284816155c757fe5b04949350505050565b6000838152602085815260408083208484526003810190925290912054806157675783156157625760018201546156ce57506002810180546001808201835560009283526020909220810185905590811480159061563a5750815460001982018161563757fe5b06155b156156c9578154600090828161564c57fe5b046000818152600485016020526040902054600285018054929350909160018501919081908590811061567b57fe5b60009182526020808320909101548354600181018555938352818320909301929092559384526004860180825260408086208690558486526003880183528086208490559285529052909120555b61572f565b60018201805460001981019081106156e257fe5b90600052602060002001549050816001018054806156fc57fe5b600190038181906000526020600020016000905590558382600201828154811061572257fe5b6000918252602090912001555b60008381526003830160209081526040808320849055838352600485019091529020839055615762868683600188615a74565b6158ac565b836157f857600082600201828154811061577d57fe5b90600052602060002001549050600083600201838154811061579b57fe5b60009182526020808320909101929092556001808601805491820181558252828220018490558581526003850182526040808220829055848252600486019092529081208190556157f29088908890859085615a74565b506158ac565b81600201818154811061580757fe5b906000526020600020015484146158ac5760008483600201838154811061582a57fe5b906000526020600020015411159050600081615861578584600201848154811061585057fe5b90600052602060002001540361587e565b83600201838154811061587057fe5b906000526020600020015486035b90508584600201848154811061589057fe5b6000918252602090912001556158a98888858585615a74565b50505b505050505050565b8051151560011461590c576040805162461bcd60e51b815260206004820152601f60248201527f5472616e73616374696f6e206861736e2774206265656e207175657565642e00604482015290519081900360640190fd5b428160200151111561594f5760405162461bcd60e51b8152600401808060200182810382526027815260200180615c136027913960400191505060405180910390fd5b602081015142906159639062278d00615307565b10156159ae576040805162461bcd60e51b81526020600482015260156024820152742a3930b739b0b1ba34b7b71034b99039ba30b6329760591b604482015290519081900360640190fd5b50565b60008281526020849052604081206002810180548391829182906159d157fe5b906000526020600020015485816159e457fe5b0690505b6002830154835483026001011015615a595760015b83548111615a5357600081848660000154020190506000856002018281548110615a2357fe5b90600052602060002001549050808410615a41578084039350615a49565b509250615a53565b50506001016159fd565b506159e8565b50600090815260049091016020526040902054949350505050565b6000848152602086905260409020835b8015615afe578154600019820181615a9857fe5b04905083615ac15782826002018281548110615ab057fe5b906000526020600020015403615ade565b82826002018281548110615ad157fe5b9060005260206000200154015b826002018281548110615aed57fe5b600091825260209091200155615a84565b50505050505050565b6040518061020001604052806010906020820280368337509192915050565b828054828255906000526020600020908101928215615b61579160200282015b82811115615b61578251825591602001919060010190615b46565b50615b6d929150615b71565b5090565b5b80821115615b6d5760008155600101615b7256fe494e56414c49445f5045524d495354494f4e000000000000000000000000000054696d656c6f636b3a3a73657444656c61793a2044656c6179206d75737420657863656564206d696e696d756d2064656c61792e54696d656c6f636b3a3a73657444656c61793a2044656c6179206d757374206e6f7420657863656564206d6178696d756d2064656c61792e5472616e73616374696f6e206861736e2774207375727061737365642074696d65206c6f636b2ea2646970667358221220834ed29343c2a374325724328ebd2563b633f70a0cc4d92c5c3248e00acca68564736f6c634300060c003300000000000000000000000005ff2b0db69458a0750badebc4f9e13add608c7f000000000000000000000000ac562367df01c76d7429c03a6656b79fe006d88e00000000000000000000000073feaa1ee314f8c655e354234017be2193c9e24e0000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce8200000000000000000000000076ed05fa250e8e993275e6e78b470b4d70ed120b000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d560000000000000000000000000000000000000000000000000000000000000004

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

00000000000000000000000005ff2b0db69458a0750badebc4f9e13add608c7f000000000000000000000000ac562367df01c76d7429c03a6656b79fe006d88e00000000000000000000000073feaa1ee314f8c655e354234017be2193c9e24e0000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce8200000000000000000000000076ed05fa250e8e993275e6e78b470b4d70ed120b000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d560000000000000000000000000000000000000000000000000000000000000004

-----Decoded View---------------
Arg [0] : _pancakeSwap (address): 0x05ff2b0db69458a0750badebc4f9e13add608c7f
Arg [1] : _miningMachine (address): 0xac562367df01c76d7429c03a6656b79fe006d88e
Arg [2] : _pancakeMasterChef (address): 0x73feaa1ee314f8c655e354234017be2193c9e24e
Arg [3] : _cake (address): 0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82
Arg [4] : _turing (address): 0x76ed05fa250e8e993275e6e78b470b4d70ed120b
Arg [5] : _wbnb (address): 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c
Arg [6] : _busd (address): 0xe9e7cea3dedca5984780bafc599bd69add087d56
Arg [7] : _pidOfMining (uint256): 4

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 00000000000000000000000005ff2b0db69458a0750badebc4f9e13add608c7f
Arg [1] : 000000000000000000000000ac562367df01c76d7429c03a6656b79fe006d88e
Arg [2] : 00000000000000000000000073feaa1ee314f8c655e354234017be2193c9e24e
Arg [3] : 0000000000000000000000000e09fabb73bd3ade0a17ecc321fd13a19e81ce82
Arg [4] : 00000000000000000000000076ed05fa250e8e993275e6e78b470b4d70ed120b
Arg [5] : 000000000000000000000000bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c
Arg [6] : 000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d56
Arg [7] : 0000000000000000000000000000000000000000000000000000000000000004


Deployed ByteCode Sourcemap

19436:22601:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20104:29;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;20289:32;;;;;;;;;;;;;:::i;35318:309::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35318:309:0;-1:-1:-1;;;;;35318:309:0;;:::i;:::-;;35635:1866;;;;;;;;;;;;;:::i;19706:20::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;19706:20:0;;;;;;;;;;;;;;23579:508;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23579:508:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23579:508:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23579:508:0;;;;;;;;-1:-1:-1;23579:508:0;;-1:-1:-1;;;;;23579:508:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23579:508:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23579:508:0;;-1:-1:-1;;;23579:508:0;;-1:-1:-1;;;;;23579:508:0;;-1:-1:-1;23579:508:0;;-1:-1:-1;23579:508:0:i;20365:33::-;;;;;;;;;;;;;:::i;20723:55::-;;;;;;;;;;;;;:::i;20595:39::-;;;;;;;;;;;;;:::i;19673:18::-;;;;;;;;;;;;;:::i;20862:30::-;;;;;;;;;;;;;:::i;20179:42::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20179:42:0;-1:-1:-1;;;;;20179:42:0;;:::i;34137:1173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;34137:1173:0;;:::i;31623:1221::-;;;;;;;;;;;;;:::i;20825:30::-;;;;;;;;;;;;;:::i;19966:37::-;;;;;;;;;;;;;:::i;38674:1097::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;38674:1097:0;-1:-1:-1;;;;;38674:1097:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19779:19;;;;;;;;;;;;;:::i;20328:28::-;;;;;;;;;;;;;:::i;19539:::-;;;;;;;;;;;;;:::i;26723:573::-;;;;;;;;;;;;;:::i;20787:31::-;;;;;;;;;;;;;:::i;20228:52::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20228:52:0;-1:-1:-1;;;;;20228:52:0;;:::i;20661:42::-;;;;;;;;;;;;;:::i;21107:17::-;;;;;;;;;;;;;:::i;25627:543::-;;;;;;;;;;;;;:::i;20901:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20901:46:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;41801:233;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;41801:233:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;41801:233:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;41801:233:0;;;;;;;;-1:-1:-1;41801:233:0;;-1:-1:-1;;;;;41801:233:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;41801:233:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;41801:233:0;;-1:-1:-1;41801:233:0;;-1:-1:-1;;;;;41801:233:0:i;28952:539::-;;;;;;;;;;;;;:::i;40220:460::-;;;;;;;;;;;;;:::i;21056:44::-;;;;;;;;;;;;;:::i;37834:150::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;37834:150:0;;:::i;24596:483::-;;;;;;;;;;;;;:::i;21324:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21324:46:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21324:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;23299:272;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23299:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23299:272:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23299:272:0;;-1:-1:-1;23299:272:0;;-1:-1:-1;;;;;23299:272:0:i;19743:19::-;;;;;;;;;;;;;:::i;6885:20::-;;;;;;;;;;;;;:::i;25087:532::-;;;;;;;;;;;;;:::i;24095:493::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;24095:493:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;24095:493:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24095:493:0;;;;;;;;-1:-1:-1;24095:493:0;;-1:-1:-1;;;;;24095:493:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;24095:493:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24095:493:0;;-1:-1:-1;;24095:493:0;;;-1:-1:-1;24095:493:0;;-1:-1:-1;;24095:493:0:i;20010:43::-;;;;;;;;;;;;;:::i;29499:545::-;;;;;;;;;;;;;:::i;27904:499::-;;;;;;;;;;;;;:::i;27426:469::-;;;;;;;;;;;;;:::i;26178:537::-;;;;;;;;;;;;;:::i;39782:430::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;39782:430:0;;;;;;;;:::i;21006:43::-;;;;;;;;;;;;;:::i;33238:893::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;33238:893:0;;:::i;20060:35::-;;;;;;;;;;;;;:::i;41554:239::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;41554:239:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;41554:239:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;41554:239:0;;;;;;;;-1:-1:-1;41554:239:0;;-1:-1:-1;;;;;41554:239:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;41554:239:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;41554:239:0;;-1:-1:-1;41554:239:0;;-1:-1:-1;;;;;41554:239:0:i;28411:533::-;;;;;;;;;;;;;:::i;20140:30::-;;;;;;;;;;;;;:::i;40688:427::-;;;;;;;;;;;;;:::i;31134:481::-;;;;;;;;;;;;;:::i;41123:423::-;;;;;;;;;;;;;:::i;30597:529::-;;;;;;;;;;;;;:::i;20529:41::-;;;;;;;;;;;;;:::i;23006:285::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23006:285:0;;:::i;20488:32::-;;;;;;;;;;;;;:::i;30052:537::-;;;;;;;;;;;;;:::i;19640:26::-;;;;;;;;;;;;;:::i;27304:114::-;;;;;;;;;;;;;:::i;20104:29::-;;;;:::o;20289:32::-;;;;:::o;35318:309::-;35368:17;;:33;;;-1:-1:-1;;;35368:33:0;;:17;:33;;;;;;;;-1:-1:-1;;;;;35368:17:0;;;;:30;;:33;;;;;:17;;:33;;;;;;:17;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;35435:4:0;;:29;;;-1:-1:-1;;;35435:29:0;;35458:4;35435:29;;;;;;35412:20;;-1:-1:-1;;;;;;35435:4:0;;;;-1:-1:-1;35435:14:0;;:29;;;;;;;;;;;;;;:4;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;35435:29:0;;-1:-1:-1;35479:16:0;;35475:93;;35512:17;;:44;;;-1:-1:-1;;;35512:44:0;;;;;;;;;;-1:-1:-1;;;;;35512:17:0;;;;:30;;:44;;;;;:17;;:44;;;;;;;;:17;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35475:93;35578:13;;35600:11;;;35578:41;;;-1:-1:-1;;;35578:41:0;;;;;;;;;-1:-1:-1;;;;;35578:41:0;;;;;;;;;:13;;;:21;;:41;;;;;;;;;;;;:13;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;35318:309:0:o;35635:1866::-;35696:15;35679:13;;:32;;35671:57;;;;;-1:-1:-1;;;35671:57:0;;;;;;;;;;;;-1:-1:-1;;;35671:57:0;;;;;;;;;;;;;;;35747:10;35761:9;35747:23;35739:54;;;;;-1:-1:-1;;;35739:54:0;;;;;;;;;;;;-1:-1:-1;;;35739:54:0;;;;;;;;;;;;;;;35806:18;35827:9;:7;:9::i;:::-;35806:30;;35850:18;35871:27;35887:10;35871:15;:27::i;:::-;35850:48;-1:-1:-1;;;;;;35926:24:0;;35918:55;;;;;-1:-1:-1;;;35918:55:0;;;;;;;;;;;;-1:-1:-1;;;35918:55:0;;;;;;;;;;;;;;;36012:17;;:44;;;-1:-1:-1;;;36012:44:0;;35987:19;36012:44;;;;;;36050:4;36012:44;;;;;;35987:19;;-1:-1:-1;;;;;36012:17:0;;:26;;:44;;;;;;;;;;;:17;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;36012:44:0;36069:17;;36012:44;36069:43;;-1:-1:-1;;;36069:43:0;;;;;;;;;;36012:44;;-1:-1:-1;;;;;;36069:17:0;;;;:30;;:43;;;;;:17;;:43;;;;;;;;:17;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;36148:4:0;;:29;;;-1:-1:-1;;;36148:29:0;;36171:4;36148:29;;;;;;36125:20;;-1:-1:-1;;;;;;36148:4:0;;;;-1:-1:-1;36148:14:0;;:29;;;;;;;;;;;;;;:4;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;36148:29:0;36213:10;;36148:29;;-1:-1:-1;36198:25:0;;36190:58;;;;;-1:-1:-1;;;36190:58:0;;;;;;;;;;;;-1:-1:-1;;;36190:58:0;;;;;;;;;;;;;;;36261:15;36279:28;36296:10;;36279:12;:16;;:28;;;;:::i;:::-;36261:46;;36320:23;36346:44;36384:5;36346:33;36358:20;;36346:7;:11;;:33;;;;:::i;:::-;:37;;:44::i;:::-;36320:70;;36401:22;36427:43;36464:5;36427:32;36439:19;;36427:7;:11;;:32;;;;:::i;:43::-;36483:4;;36497:18;;36483:50;;;-1:-1:-1;;;36483:50:0;;-1:-1:-1;;;;;36497:18:0;;;36483:50;;;;;;;;;;;;36401:69;;-1:-1:-1;36483:4:0;;;:13;;:50;;;;;;;;;;;;;;;:4;;:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;36544:4:0;;36558:17;;36544:48;;;-1:-1:-1;;;36544:48:0;;-1:-1:-1;;;;;36558:17:0;;;36544:48;;;;;;;;;;;;:4;;;;;:13;;:48;;;;;36483:50;;36544:48;;;;;;;:4;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;36615:48:0;;-1:-1:-1;36648:14:0;36615:28;:7;36627:15;36615:11;:28::i;:::-;:32;;:48::i;:::-;-1:-1:-1;;;;;36698:19:0;;;;;;:7;:19;;;;;;36605:58;;-1:-1:-1;36698:32:0;;36605:58;36698:23;:32::i;:::-;-1:-1:-1;;;;;36676:19:0;;;;;;:7;:19;;;;;:54;36754:10;;:23;;36769:7;36754:14;:23::i;:::-;36741:10;:36;36790:17;;-1:-1:-1;;;;;36790:17:0;:30;36821:53;36859:14;36821:33;:12;36838:15;36821:16;:33::i;:53::-;36790:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;36904:8:0;;:29;;-1:-1:-1;36904:8:0;-1:-1:-1;36917:15:0;36904:12;:29::i;:::-;36888:13;:45;36977:11;;36992:1;-1:-1:-1;36973:64:0;;37024:1;37010:11;:15;36973:64;37080:11;;;37047:18;37068:24;;;:11;:24;;;;;37115:15;37105:25;;37141:12;;;;:25;;;37195:10;;37177:15;;;:28;37216:9;;;:22;;-1:-1:-1;;;;;;37216:22:0;-1:-1:-1;;;;;37216:22:0;;;;;37249:9;;;:19;;;37279:17;;;:35;;;37325:16;;;:33;;;37385:11;;37068:24;;37385:18;;:11;:15;:18::i;:::-;37371:11;:32;37421:72;;;;;;-1:-1:-1;;;;;37421:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;35635:1866;;;;;;;;:::o;19706:20::-;;;-1:-1:-1;;;;;19706:20:0;;:::o;23579:508::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;23727:26:::1;23756:10;:48;23788:13;23777:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23767:36;;;;;;23756:48;;;;;;;;;;;23727:77;;23874:8;23817:9;:19;;:54;23858:10;23847:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;23847:22:0::1;::::0;;;;::::1;-1:-1:-1::0;;23847:22:0;;;;;;23837:33;;23847:22:::1;23837:33:::0;;::::1;::::0;23817:54;;;;::::1;::::0;;;;-1:-1:-1;;;23817:54:0;-1:-1:-1;23817:54:0;:65;;-1:-1:-1;;;;;;23817:65:0::1;-1:-1:-1::0;;;;;23817:65:0;;;::::1;::::0;;;::::1;::::0;;23893:35;;-1:-1:-1;;23893:35:0::1;-1:-1:-1::0;23893:35:0::1;::::0;;23985:5:::1;::::0;23965:26:::1;::::0;:15:::1;::::0;:19:::1;:26::i;:::-;23939:9;:23;;:52;;;;24009:70;24043:13;24058:10;24070:8;24009:70;;;;;;;;;;-1:-1:-1::0;;;;;24009:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;24009:70:0;;::::1;::::0;;;;;;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;::::1;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7012:1;23579:508:::0;;;:::o;20365:33::-;;;-1:-1:-1;;;;;20365:33:0;;:::o;20723:55::-;;;;:::o;20595:39::-;;;;:::o;19673:18::-;;;-1:-1:-1;;;;;19673:18:0;;:::o;20862:30::-;;;;:::o;20179:42::-;;;;;;;;;;;;;:::o;34137:1173::-;9099:1;9704:7;;:19;;9696:63;;;;;-1:-1:-1;;;9696:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9099:1;9837:7;:18;34216:12;34208:38:::1;;;::::0;;-1:-1:-1;;;34208:38:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;34208:38:0;;;;;;;;;;;;;::::1;;34257:19;34265:10;34257:7;:19::i;:::-;34312:10;34304:19;::::0;;;:7:::1;:19;::::0;;;;;34293:30;::::1;34289:93;;;-1:-1:-1::0;34359:10:0::1;34351:19;::::0;;;:7:::1;:19;::::0;;;;;34289:93:::1;34394:17;::::0;:40:::1;::::0;;-1:-1:-1;;;34394:40:0;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;34394:17:0;;::::1;::::0;:30:::1;::::0;:40;;;;;:17:::1;::::0;:40;;;;;;;;:17;;:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;34468:4:0::1;::::0;:29:::1;::::0;;-1:-1:-1;;;34468:29:0;;34491:4:::1;34468:29;::::0;::::1;::::0;;;34445:20:::1;::::0;-1:-1:-1;;;;;;34468:4:0;;::::1;::::0;-1:-1:-1;34468:14:0::1;::::0;:29;;;;;::::1;::::0;;;;;;;;:4;:29;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;34468:29:0;;-1:-1:-1;34512:23:0;;::::1;34508:79;;;34563:12;34552:23;;34508:79;34597:12;34612:43;34634:10;34646:8;34612:21;:43::i;:::-;34682:10;34674:19;::::0;;;:7:::1;:19;::::0;;;;;34597:58;;-1:-1:-1;34707:8:0;;34674:29:::1;::::0;34597:58;34674:23:::1;:29::i;:::-;:41;;34666:77;;;::::0;;-1:-1:-1;;;34666:77:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;34819:10;34811:19;::::0;;;:7:::1;:19;::::0;;;;;:43:::1;::::0;34845:8;;34811:29:::1;::::0;34835:4;34811:23:::1;:29::i;:43::-;34797:10;34789:19;::::0;;;:7:::1;:19;::::0;;;;:65;34878:10:::1;::::0;:34:::1;::::0;34903:8;;34878:20:::1;::::0;34893:4;34878:14:::1;:20::i;:34::-;34865:10;:47:::0;34966:8:::1;::::0;34984:10:::1;34976:19;::::0;;;:7:::1;:19;::::0;;;;;34947:88:::1;::::0;:14:::1;::::0;34966:8;;34976:19;34947:18:::1;:88::i;:::-;35048:4;::::0;:35:::1;::::0;;-1:-1:-1;;;35048:35:0;;35062:10:::1;35048:35;::::0;::::1;::::0;;;;;;;;;-1:-1:-1;;;;;35048:4:0;;::::1;::::0;:13:::1;::::0;:35;;;;;::::1;::::0;;;;;;;;;:4:::1;::::0;:35;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;35108:10:0::1;35123:1;35100:19:::0;;;:7:::1;35048:35;35100:19:::0;;;;;35096:89:::1;;35155:11;::::0;:18:::1;::::0;35171:1:::1;35155:15;:18::i;:::-;35141:11;:32:::0;35096:89:::1;35197:13;::::0;35222:11:::1;::::0;;35197:49:::1;::::0;;-1:-1:-1;;;35197:49:0;;;;::::1;::::0;;;;35235:10:::1;35197:49:::0;;;;;-1:-1:-1;;;;;35197:13:0;;::::1;::::0;:24:::1;::::0;:49;;;;;::::1;::::0;;;;;;;;;:13:::1;::::0;:49;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;35264:38:0::1;::::0;;35275:10:::1;35264:38:::0;;35197:49:::1;35264:38:::0;::::1;::::0;;;;;;;;;;;::::1;::::0;;;;;;;::::1;-1:-1:-1::0;;9055:1:0;10016:7;:22;-1:-1:-1;34137:1173:0:o;31623:1221::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;31736:32:::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;31736:32:0;;;;;;;;;;;;;;;;;;;;;;;;31726:43;;;;::::1;::::0;;;;31686:26:::1;31715:55:::0;;;:10:::1;:55:::0;;;;;;;31783:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;31862:18;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;31862:18:0;;;;;;;;;;;;;;;;;;;;;;;;31852:29;;;;::::1;::::0;;;;31894:1:::1;31832:50:::0;;;:19:::1;::::0;::::1;:50:::0;;;;;-1:-1:-1;;;;;31832:50:0::1;:64:::0;31828:234:::1;;31957:18;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;31957:18:0;;;;;;;;;;;;;;;;;;;;;;31947:29;;;;::::1;::::0;-1:-1:-1;31927:50:0;;;:19:::1;::::0;::::1;:50:::0;;;;;;;31913:4:::1;:65:::0;;-1:-1:-1;;;;;31927:50:0;;::::1;-1:-1:-1::0;;;;;;31913:65:0;;::::1;;::::0;;32030:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31927:50:::1;32030:18:::0;;;;;32020:29;;;;::::1;::::0;;;;32000:50;;;;;;;;;31993:57;;;;::::1;::::0;;31828:234:::1;32107:20;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;32107:20:0;;;;;;;;;;;;;;;;;;;;;;;;32097:31;;;;::::1;::::0;;;;32141:1:::1;32077:52:::0;;;:19:::1;::::0;::::1;:52:::0;;;;;-1:-1:-1;;;;;32077:52:0::1;:66:::0;32073:242:::1;;32206:20;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;32206:20:0;;;;;;;;;;;;;;;;;;;;;;32196:31;;;;::::1;::::0;-1:-1:-1;32176:52:0;;;:19:::1;::::0;::::1;:52:::0;;;;;;;32160:69;;-1:-1:-1;;;;;32176:52:0;;::::1;-1:-1:-1::0;;;;;;32160:69:0;;::::1;;::::0;;32281:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32176:52:::1;32281:20:::0;;;;;32271:31;;;;::::1;::::0;;;;32251:52;;;;;;;;;32244:59;;;;::::1;::::0;;32073:242:::1;32360:18;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;32360:18:0;;;;;;;;;;;;;;;;;;;;;;;;32350:29;;;;::::1;::::0;;;;32392:1:::1;32330:50:::0;;;:19:::1;::::0;::::1;:50:::0;;;;;-1:-1:-1;;;;;32330:50:0::1;:64:::0;32326:226:::1;;32448:18;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;32448:18:0;;;;;;;;;;;;;;;;;;;;;;32438:29;;;;::::1;::::0;-1:-1:-1;32418:50:0;;;:19:::1;::::0;::::1;:50:::0;;;;;;;32411:4:::1;:57:::0;;-1:-1:-1;;;;;32418:50:0;;::::1;-1:-1:-1::0;;;;;;32411:57:0;;::::1;;::::0;;32520:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32418:50:::1;32520:18:::0;;;;;32510:29;;;;::::1;::::0;;;;32490:50;;;;;;;;;32483:57;;;;::::1;::::0;;32326:226:::1;32597:18;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;32597:18:0;;;;;;;;;;;;;;;;;;;;;;;;32587:29;;;;::::1;::::0;;;;32629:1:::1;32567:50:::0;;;:19:::1;::::0;::::1;:50:::0;;;;;-1:-1:-1;;;;;32567:50:0::1;:64:::0;32563:226:::1;;32685:18;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;32685:18:0;;;;;;;;;;;;;;;;;;;;;;32675:29;;;;::::1;::::0;-1:-1:-1;32655:50:0;;;:19:::1;::::0;::::1;:50:::0;;;;;;;32648:4:::1;:57:::0;;-1:-1:-1;;;;;32655:50:0;;::::1;-1:-1:-1::0;;;;;;32648:57:0;;::::1;;::::0;;32757:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32655:50:::1;32757:18:::0;;;;;32747:29;;;;::::1;::::0;;;;32727:50;;;;;;;;;32720:57;;;;::::1;::::0;;32563:226:::1;32800:36:::0;;-1:-1:-1;;32800:36:0::1;::::0;;31623:1221::o;20825:30::-;;;;:::o;19966:37::-;;;-1:-1:-1;;;;;19966:37:0;;:::o;38674:1097::-;38770:24;;:::i;:::-;38834:13;;38865:11;;;38834:43;;;-1:-1:-1;;;38834:43:0;;;;;;;;;;-1:-1:-1;;;;;38834:13:0;;;;:30;;:43;;;;;;;;;;;;;;;:13;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;38834:43:0;38823:54;;-1:-1:-1;;;;;38899:14:0;;38829:1;38899:14;;;:7;38823:8;38899:14;;;;;;;;38888:8;;;:25;;;38924:8;;;:25;;;39019:14;;;;;;38971:64;;38990:44;;38899:14;;38990:21;:44::i;:::-;-1:-1:-1;;;;;38971:14:0;;;;;;:7;:14;;;;;;;:18;:64::i;:::-;38960:8;;;:75;39057:6;;:23;;;-1:-1:-1;;;39057:23:0;;-1:-1:-1;;;;;39057:23:0;;;;;;;;;:6;;;;;:16;;:23;;;;;38960:8;;39057:23;;;;;;;:6;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;39057:23:0;39046:8;;;:34;-1:-1:-1;;;;;39102:22:0;;;;;39091:8;;;:33;39146:10;;39135:8;;;:21;39184:13;;39210:11;;;39184:45;;;-1:-1:-1;;;39184:45:0;;;;;;;;;;;;;;;;;;:13;;;:25;;:45;;;;;;;;;;;;;;;:13;:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;39184:45:0;39168:8;;;39167:62;39267:13;;39174:1;39302:11;;39267:47;;;-1:-1:-1;;;39267:47:0;;;;;;;;;;-1:-1:-1;;;;;;;39267:13:0;;:34;;:47;;;;;39168:8;;39267:47;;;;;;;:13;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;39267:47:0;;-1:-1:-1;39373:14:0;:12;:14::i;:::-;39361:9;;;:26;39410:16;:14;:16::i;:::-;39398:9;;;:28;39449:13;;39437:9;;;:25;39485:10;;39473:9;;;:22;39517:16;:14;:16::i;:::-;39506:8;;;:27;39550:9;;;;:13;39546:138;;39661:9;;;;39647;;;;39591:81;;39647:24;;:9;:13;:24::i;:::-;39591:51;39636:5;39591:40;39621:5;39627:2;39621:9;;;;39591:25;:16;39612:3;39591:20;:25::i;:::-;:29;;:40::i;:81::-;39580:8;;;:92;39546:138;39708:4;;:21;;;-1:-1:-1;;;39708:21:0;;-1:-1:-1;;;;;39708:21:0;;;;;;;;;:4;;;;;:14;;:21;;;;;;;;;;;;;;:4;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;39708:21:0;39696:9;;;:33;-1:-1:-1;39702:2:0;39752:11;39740:9;;;:23;39696:5;38674:1097;-1:-1:-1;38674:1097:0:o;19779:19::-;;;-1:-1:-1;;;;;19779:19:0;;:::o;20328:28::-;;;;:::o;19539:::-;;;;:::o;26723:573::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;26843:42:::1;::::0;;::::1;::::0;;::::1;::::0;;;26822:10:::1;26843:42:::0;;;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;26833:53;;;;::::1;::::0;;;;26793:26:::1;26822:65:::0;;;;;;;;;;26900:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;26977:31;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;26977:31:0;;;;;;;;;;;;;;;;;;;;;;;;26967:42;;;;::::1;::::0;;;;27022:1:::1;26947:63:::0;;;:19:::1;::::0;::::1;:63:::0;;;;;-1:-1:-1;;;;;26947:63:0::1;26939:105;;;::::0;;-1:-1:-1;;;26939:105:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;26939:105:0;;;;;;;;;;;;;::::1;;27126:31;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;27126:31:0;;;;;;;;;;;;;;;;;;;;;;27116:42;;;;::::1;::::0;-1:-1:-1;27096:63:0;;;:19:::1;::::0;::::1;:63:::0;;;;;;;27057:17:::1;:103:::0;;-1:-1:-1;;;;;27096:63:0;;::::1;-1:-1:-1::0;;;;;;27057:103:0;;::::1;;::::0;;27208:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27096:63:::1;27208:31:::0;;;;;27198:42;;;;::::1;::::0;;;;27178:63;;;;;;;;;27171:70;;;;::::1;::::0;;27252:36;;-1:-1:-1;;27252:36:0::1;::::0;;26723:573::o;20787:31::-;;;;:::o;20228:52::-;;;;;;;;;;;;;:::o;20661:42::-;;;;:::o;21107:17::-;;;;:::o;25627:543::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;25740:35:::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;25740:35:0;;;;;;;;;;;;;;;;;;;;;;;;25730:46;;;;::::1;::::0;;;;25690:26:::1;25719:58:::0;;;:10:::1;:58:::0;;;;;;;25790:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;25867:32;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;25867:32:0;;;;;;;;;;;;;;;;;;;;;;;;25857:43;;;;::::1;::::0;;;;25913:1:::1;25837:64:::0;;;:19:::1;::::0;::::1;:64:::0;;;;;-1:-1:-1;;;;;25837:64:0::1;25829:106;;;::::0;;-1:-1:-1;;;25829:106:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;25829:106:0;;;;;;;;;;;;;::::1;;25999:32;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;25999:32:0;;;;;;;;;;;;;;;;;;;;;;25989:43;;;;::::1;::::0;-1:-1:-1;25969:64:0;;;:19:::1;::::0;::::1;:64:::0;;;;;;;25948:18:::1;:85:::0;;-1:-1:-1;;;;;25969:64:0;;::::1;-1:-1:-1::0;;;;;;25948:85:0;;::::1;;::::0;;26081:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25969:64:::1;26081:32:::0;;;;;26071:43;;;;::::1;::::0;;;;26051:64;;;;;;;;;26044:71;;;;::::1;::::0;;26126:36;;-1:-1:-1;;26126:36:0::1;::::0;;25627:543::o;20901:46::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;41801:233::-;41909:7;41936:10;:48;41968:13;41957:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41947:36;;;;;;41936:48;;;;;;;;;;;:55;;:90;42013:10;42002:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41992:33;;;;;;41936:90;;;;;;;;;;;;41929:97;;41801:233;;;;;:::o;28952:539::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;29066:38:::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;29056:49;;;;::::1;::::0;;;;29016:26:::1;29045:61:::0;;;:10:::1;:61:::0;;;;;;;29119:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;29193:35;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;29193:35:0;;;;;;;;;;;;;;;;;;;;;;;;29183:46;;;;::::1;::::0;;;;29233:1:::1;29166:64:::0;;;:16:::1;::::0;::::1;:64:::0;;;;;29158:95:::1;;;::::0;;-1:-1:-1;;;29158:95:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;29158:95:0;;;;;;;;;;;;;::::1;;29317:35;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;29317:35:0;;;;;;;;;;;;;;;;;;;;;;29307:46;;;;::::1;::::0;29290:64:::1;::::0;;;:16:::1;::::0;::::1;:64:::0;;;;;;;29266:21:::1;:88:::0;29399:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29389:46;;;;::::1;::::0;29372:64;;;;;;;29365:71;29447:36;;-1:-1:-1;;29447:36:0::1;::::0;;28952:539::o;40220:460::-;40309:17;;:47;;;-1:-1:-1;;;40309:47:0;;40266:7;40309:47;;;;;;40350:4;40309:47;;;;;;40266:7;;;;-1:-1:-1;;;;;40309:17:0;;;;:29;;:47;;;;;;;;;;;;;;:17;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;40309:47:0;40393:17;;:44;;;-1:-1:-1;;;40393:44:0;;40368:19;40393:44;;;;;;40431:4;40393:44;;;;;;40309:47;;-1:-1:-1;40368:19:0;-1:-1:-1;;;;;40393:17:0;;;;:26;;:44;;;;;;;;;;;;;:17;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;40393:44:0;;-1:-1:-1;40448:18:0;40469:29;40393:44;40485:12;40469:15;:29::i;:::-;40448:50;;40509:20;40563:10;;40550;:23;40546:97;;;40620:10;;40605:26;;:10;;:14;:26::i;:::-;40590:41;;40546:97;40660:12;-1:-1:-1;;;;40220:460:0;;:::o;21056:44::-;21093:7;21056:44;:::o;37834:150::-;37957:8;;37896:7;;37937:37;;:14;;37967:6;37937:19;:37::i;24596:483::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;24705:31:::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;24705:31:0;;;;;;;;;;;;;;;;;;;;;;;;24695:42;;;;::::1;::::0;;;;24655:26:::1;24684:54:::0;;;:10:::1;:54:::0;;;;;;;24751:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;24828:19;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;24828:19:0;;;;;;;;;;;;;;;;;;;;;;;;24818:30;;;;::::1;::::0;;;;24861:1:::1;24798:51:::0;;;:19:::1;::::0;::::1;:51:::0;;;;;-1:-1:-1;;;;;24798:51:0::1;24790:93;;;::::0;;-1:-1:-1;;;24790:93:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;24790:93:0;;;;;;;;;;;;;::::1;;24934:19;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;24934:19:0;;;;;;;;;;;;;;;;;;;;;;24924:30;;;;::::1;::::0;-1:-1:-1;24904:51:0;;;:19:::1;::::0;::::1;:51:::0;;;;;;;;24896:59;;-1:-1:-1;;;;;24904:51:0;;::::1;-1:-1:-1::0;;;;;;24896:59:0;;::::1;;::::0;;25003:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24904:51:::1;25003:19:::0;;;;;24993:30;;;;::::1;::::0;;;;24973:51;;;;;;;;;24966:58;;;;::::1;::::0;;25035:36;;-1:-1:-1;;25035:36:0::1;::::0;;24596:483::o;21324:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21324:46:0;;;;;;;;:::o;23299:272::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;23386:26:::1;23415:10;:48;23447:13;23436:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;23436:25:0::1;::::0;;-1:-1:-1;;23436:25:0;;::::1;::::0;;;;;;23426:36;;23436:25:::1;23426:36:::0;;::::1;::::0;23415:48;;;;::::1;::::0;;;;;;;-1:-1:-1;23415:48:0;;;23474:36;;-1:-1:-1;;23474:36:0::1;::::0;;23528:35;;;;;;;;;::::1;::::0;;;23415:48;;-1:-1:-1;23528:35:0::1;::::0;23549:13;;23528:35;;-1:-1:-1;23528:35:0;;-1:-1:-1;23528:35:0;;;-1:-1:-1;23528:35:0;::::1;::::0;;;;;;;::::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7012:1;23299:272:::0;:::o;19743:19::-;;;-1:-1:-1;;;;;19743:19:0;;:::o;6885:20::-;;;-1:-1:-1;;;;;6885:20:0;;:::o;25087:532::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;25200:30:::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;25200:30:0;;;;;;;;;;;;;;;;;;;;;;;;25190:41;;;;::::1;::::0;;;;25150:26:::1;25179:53:::0;;;:10:::1;:53:::0;;;;;;;25243:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;25320:27;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;25320:27:0;;;;;;;;;;;;;;;;;;;;;;;;25310:38;;;;::::1;::::0;;;;25361:1:::1;25290:59:::0;;;:19:::1;::::0;::::1;:59:::0;;;;;-1:-1:-1;;;;;25290:59:0::1;25282:101;;;::::0;;-1:-1:-1;;;25282:101:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;25282:101:0;;;;;;;;;;;;;::::1;;25455:27;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;25455:27:0;;;;;;;;;;;;;;;;;;;;;;25445:38;;;;::::1;::::0;-1:-1:-1;25425:59:0;;;:19:::1;::::0;::::1;:59:::0;;;;;;;25394:13:::1;:91:::0;;-1:-1:-1;;;;;25425:59:0;;::::1;-1:-1:-1::0;;;;;;25394:91:0;;::::1;;::::0;;25535:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25425:59:::1;25535:27:::0;;;;;25525:38;;;;::::1;::::0;;;;25505:59;;;;;;;;;25498:66;;;;::::1;::::0;;25575:36;;-1:-1:-1;;25575:36:0::1;::::0;;25087:532::o;24095:493::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;24238:26:::1;24267:10;:48;24299:13;24288:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24278:36;;;;;;24267:48;;;;;;;;;;;24238:77;;24382:6;24328:9;:16;;:51;24366:10;24355:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;24355:22:0::1;::::0;;-1:-1:-1;;24355:22:0;;::::1;::::0;;;;;;24345:33;;24355:22:::1;24345:33:::0;;::::1;::::0;24328:51;;;;::::1;::::0;;;;-1:-1:-1;;;24328:51:0;-1:-1:-1;24328:51:0;:60;24399:35;;-1:-1:-1;;24399:35:0::1;24430:4;24399:35;::::0;;24491:5:::1;::::0;24471:26:::1;::::0;:15:::1;::::0;:19:::1;:26::i;:::-;24445:23;::::0;::::1;:52:::0;24515:65:::1;::::0;;;;;;;;;;;;;;;;;;;;::::1;::::0;24546:13;;24561:10;;24573:6;;24515:65;;::::1;::::0;;::::1;::::0;;;;;;::::1;::::0;;;;;;;::::1;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;20010:43:::0;;;-1:-1:-1;;;;;20010:43:0;;:::o;29499:545::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;29614:39:::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;29604:50;;;;::::1;::::0;;;;29564:26:::1;29593:62:::0;;;:10:::1;:62:::0;;;;;;;29668:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;29742:36;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;29742:36:0;;;;;;;;;;;;;;;;;;;;;;;;29732:47;;;;::::1;::::0;;;;29783:1:::1;29715:65:::0;;;:16:::1;::::0;::::1;:65:::0;;;;;29707:96:::1;;;::::0;;-1:-1:-1;;;29707:96:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;29707:96:0;;;;;;;;;;;;;::::1;;29868:36;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;29868:36:0;;;;;;;;;;;;;;;;;;;;;;29858:47;;;;::::1;::::0;29841:65:::1;::::0;;;:16:::1;::::0;::::1;:65:::0;;;;;;;29816:22:::1;:90:::0;29951:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29941:47;;;;::::1;::::0;29924:65;;;;;;;29917:72;30000:36;;-1:-1:-1;;30000:36:0::1;::::0;;29499:545::o;27904:499::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;28015:33:::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;28015:33:0;;;;;;;;;;;;;;;;;;;;;;;;28005:44;;;;::::1;::::0;;;;27965:26:::1;27994:56:::0;;;:10:::1;:56:::0;;;;;;;28063:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;28137:27;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;28137:27:0;;;;;;;;;;;;;;;;;;;;;;;;28127:38;;;;::::1;::::0;;;;28169:1:::1;28110:56:::0;;;:16:::1;::::0;::::1;:56:::0;;;;;28102:87:::1;;;::::0;;-1:-1:-1;;;28102:87:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;28102:87:0;;;;;;;;;;;;;::::1;;28245:27;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;28245:27:0;;;;;;;;;;;;;;;;;;;;;;28235:38;;;;::::1;::::0;28218:56:::1;::::0;;;:16:::1;::::0;::::1;:56:::0;;;;;;;28202:13:::1;:72:::0;28319:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28309:38;;;;::::1;::::0;28292:56;;;;;;;28285:63;28359:36;;-1:-1:-1;;28359:36:0::1;::::0;;27904:499::o;27426:469::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;27532:28:::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;27532:28:0;;;;;;;;;;;;;;;;;;;;;;;;27522:39;;;;::::1;::::0;;;;27482:26:::1;27511:51:::0;;;:10:::1;:51:::0;;;;;;;27575:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;27649:22;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;27649:22:0;;;;;;;;;;;;;;;;;;;;;;;;27639:33;;;;::::1;::::0;;;;27676:1:::1;27622:51:::0;;;:16:::1;::::0;::::1;:51:::0;;;;;27614:82:::1;;;::::0;;-1:-1:-1;;;27614:82:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;27614:82:0;;;;;;;;;;;;;::::1;;27747:22;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;27747:22:0;;;;;;;;;;;;;;;;;;;;;;27737:33;;;;::::1;::::0;27720:51:::1;::::0;;;:16:::1;::::0;::::1;:51:::0;;;;;;;27709:8:::1;:62:::0;27816:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27806:33;;;;::::1;::::0;27789:51;;;;;;;27782:58;27851:36;;-1:-1:-1;;27851:36:0::1;::::0;;27426:469::o;26178:537::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;26292:36:::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;26292:36:0;;;;;;;;;;;;;;;;;;;;;;;;26282:47;;;;::::1;::::0;;;;26242:26:::1;26271:59:::0;;;:10:::1;:59:::0;;;;;;;26343:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;26420:25;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;26420:25:0;;;;;;;;;;;;;;;;;;;;;;;;26410:36;;;;::::1;::::0;;;;26459:1:::1;26390:57:::0;;;:19:::1;::::0;::::1;:57:::0;;;;;-1:-1:-1;;;;;26390:57:0::1;26382:99;;;::::0;;-1:-1:-1;;;26382:99:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;26382:99:0;;;;;;;;;;;;;::::1;;26557:25;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;26557:25:0;;;;;;;;;;;;;;;;;;;;;;26547:36;;;;::::1;::::0;-1:-1:-1;26527:57:0;;;:19:::1;::::0;::::1;:57:::0;;;;;;;26494:11:::1;:91:::0;;-1:-1:-1;;;;;26527:57:0;;::::1;-1:-1:-1::0;;;;;;26494:91:0;;::::1;;::::0;;26633:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26527:57:::1;26633:25:::0;;;;;26623:36;;;;::::1;::::0;;;;26603:57;;;;;;;;;26596:64;;;;::::1;::::0;;26671:36;;-1:-1:-1;;26671:36:0::1;::::0;;26178:537::o;39782:430::-;-1:-1:-1;;;;;39925:24:0;;39865:7;39925:24;;;:17;:24;;;;;;39865:7;;39905:45;;:15;;:19;:45::i;:::-;39885:65;;39990:9;39965:21;;:34;39961:75;;40023:1;40016:8;;;;;39961:75;40047:12;40062:46;40102:5;40062:35;40074:22;;40062:7;:11;;:35;;;;:::i;:46::-;40047:61;;40126:56;40135:46;40159:21;;40135:19;40144:9;40135:4;:8;;:19;;;;:::i;:46::-;40126:4;;:8;:56::i;:::-;40119:63;39782:430;-1:-1:-1;;;;;39782:430:0:o;21006:43::-;21043:6;21006:43;:::o;33238:893::-;9099:1;9704:7;;:19;;9696:63;;;;;-1:-1:-1;;;9696:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9099:1;9837:7;:18;33316:12;33308:38:::1;;;::::0;;-1:-1:-1;;;33308:38:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;33308:38:0;;;;;;;;;;;;;::::1;;33365:4;::::0;:26:::1;::::0;;-1:-1:-1;;;33365:26:0;;33380:10:::1;33365:26;::::0;::::1;::::0;;;33395:8;;-1:-1:-1;;;;;33365:4:0::1;::::0;:14:::1;::::0;:26;;;;;::::1;::::0;;;;;;;;:4;:26;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;33365:26:0;:38:::1;;33357:64;;;::::0;;-1:-1:-1;;;33357:64:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;33357:64:0;;;;;;;;;;;;;::::1;;33446:10;33461:1;33438:19:::0;;;:7:::1;:19;::::0;;;;;33434:89:::1;;33493:11;::::0;:18:::1;::::0;33509:1:::1;33493:15;:18::i;:::-;33479:11;:32:::0;33434:89:::1;33535:19;33543:10;33535:7;:19::i;:::-;33565:4;::::0;:54:::1;::::0;;-1:-1:-1;;;33565:54:0;;33583:10:::1;33565:54;::::0;::::1;::::0;33603:4:::1;33565:54:::0;;;;;;;;;;;;-1:-1:-1;;;;;33565:4:0;;::::1;::::0;:17:::1;::::0;:54;;;;;::::1;::::0;;;;;;;;;:4:::1;::::0;:54;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;33695:10:0::1;33687:19;::::0;;;:7:::1;33565:54;33687:19:::0;;;;;:33:::1;::::0;33711:8;33687:23:::1;:33::i;:::-;33673:10;33665:19;::::0;;;:7:::1;:19;::::0;;;;:55;33744:10:::1;::::0;:24:::1;::::0;33759:8;33744:14:::1;:24::i;:::-;33731:10;:37:::0;33822:8:::1;::::0;33840:10:::1;33832:19;::::0;;;:7:::1;:19;::::0;;;;;33803:88:::1;::::0;:14:::1;::::0;33822:8;;33832:19;33803:18:::1;:88::i;:::-;33922:10;33904:29;::::0;;;:17:::1;:29;::::0;;;;;33936:15:::1;33904:47:::0;;33964:17:::1;::::0;:40;;-1:-1:-1;;;33964:40:0;;::::1;::::0;::::1;::::0;;;;;-1:-1:-1;;;;;33964:17:0;;::::1;::::0;:30:::1;::::0;:40;;;;;;;;;;;33904:29;33964:17;:40;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;34025:13:0::1;::::0;34050:11:::1;::::0;;34025:49:::1;::::0;;-1:-1:-1;;;34025:49:0;;;;::::1;::::0;;;;34063:10:::1;34025:49:::0;;;;;-1:-1:-1;;;;;34025:13:0;;::::1;::::0;-1:-1:-1;34025:24:0::1;::::0;-1:-1:-1;34025:49:0;;;;;::::1;::::0;;;;;;;;;:13:::1;::::0;:49;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;34092:31:0::1;::::0;;34102:10:::1;34092:31:::0;;34025:49:::1;34092:31:::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;-1:-1:-1::0;9055:1:0;10016:7;:22;33238:893::o;20060:35::-;;;-1:-1:-1;;;;;20060:35:0;;:::o;41554:239::-;41665:7;41692:10;:48;41724:13;41713:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41703:36;;;;;;41692:48;;;;;;;;;;;:58;;:93;41772:10;41761:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;41761:22:0;;;;;;-1:-1:-1;;41761:22:0;;;;;;41751:33;;41761:22;41751:33;;;;41692:93;;;;;;;;;-1:-1:-1;;;41692:93:0;-1:-1:-1;41692:93:0;;-1:-1:-1;;;;;41692:93:0;;41554:239;-1:-1:-1;;;41554:239:0:o;28411:533::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;28524:37:::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;28514:48;;;;::::1;::::0;;;;28474:26:::1;28503:60:::0;;;:10:::1;:60:::0;;;;;;;28576:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;28650:34;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;28650:34:0;;;;;;;;;;;;;;;;;;;;;;;;28640:45;;;;::::1;::::0;;;;28689:1:::1;28623:63:::0;;;:16:::1;::::0;::::1;:63:::0;;;;;28615:94:::1;;;::::0;;-1:-1:-1;;;28615:94:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;28615:94:0;;;;;;;;;;;;;::::1;;28772:34;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;28772:34:0;;;;;;;;;;;;;;;;;;;;;;28762:45;;;;::::1;::::0;28745:63:::1;::::0;;;:16:::1;::::0;::::1;:63:::0;;;;;;;28722:20:::1;:86:::0;28853:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28843:45;;;;::::1;::::0;28826:63;;;;;;;28819:70;28900:36;;-1:-1:-1;;28900:36:0::1;::::0;;28411:533::o;20140:30::-;;;;:::o;40688:427::-;40778:16;;;40792:1;40778:16;;;;;;;;;40734:7;;40754:21;;40778:16;;;;40754:21;;40778:16;;;-1:-1:-1;;40825:6:0;;40807:7;;;;-1:-1:-1;;;;;;40825:6:0;;40807:7;;-1:-1:-1;40825:6:0;;40807:7;;;;-1:-1:-1;;;;;40807:25:0;;;:7;;;;;;;;;:25;40853:4;;40843:7;;40853:4;;;40843;;40853;;40843:7;;;;;;-1:-1:-1;;;;;40843:14:0;;;:7;;;;;;;;;:14;40878:4;;40868:7;;40878:4;;;40868;;40873:1;;40868:7;;;;;;-1:-1:-1;;;;;40868:14:0;;;:7;;;;;;;;;;:14;;;;40922:11;;:37;;;-1:-1:-1;;;40922:37:0;;40948:4;40922:37;;;;;;;;;;;;;;;;;;;;40893:14;;40922:11;;;;;:25;;40948:4;;40954;;40922:37;;;;;;;;;;;;;;;40893:14;40922:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;40922:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;40922:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;40922:37:0;;;;;;;;;;;;-1:-1:-1;40922:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40918:166;;-1:-1:-1;41068:1:0;40918:166;;;41015:7;41023:1;41015:10;;;;;;;;;;;;;;41006:19;;40960:77;40918:166;41101:6;-1:-1:-1;;40688:427:0;:::o;31134:481::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;31240:28:::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;31240:28:0;;;;;;;;;;;;;;;;;;;;;;;;31230:39;;;;::::1;::::0;;;;31190:26:::1;31219:51:::0;;;:10:::1;:51:::0;;;;;;;31283:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;31357:25;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;31357:25:0;;;;;;;;;;;;;;;;;;;;;;;;31347:36;;;;::::1;::::0;;;;31387:1:::1;31330:54:::0;;;:16:::1;::::0;::::1;:54:::0;;;;;31322:85:::1;;;::::0;;-1:-1:-1;;;31322:85:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;31322:85:0;;;;;;;;;;;;;::::1;;31461:25;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;31461:25:0;;;;;;;;;;;;;;;;;;;;;;31451:36;;;;::::1;::::0;31434:54:::1;::::0;;;:16:::1;::::0;::::1;:54:::0;;;;;;;31420:11:::1;:68:::0;31533:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31523:36;;;;::::1;::::0;31506:54;;;;;;;31499:61;31571:36;;-1:-1:-1;;31571:36:0::1;::::0;;31134:481::o;41123:423::-;41211:16;;;41225:1;41211:16;;;;;;;;;41167:7;;41187:21;;41211:16;;;;41187:21;;41211:16;;;-1:-1:-1;;41258:4:0;;41240:7;;;;-1:-1:-1;;;;;;41258:4:0;;41240:7;;-1:-1:-1;41258:4:0;;41240:7;;;30597:529;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;30711:36:::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;30711:36:0;;;;;;;;;;;;;;;;;;;;;;;;30701:47;;;;::::1;::::0;;;;30661:26:::1;30690:59:::0;;;:10:::1;:59:::0;;;;;;;30762:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;30836:33;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;30836:33:0;;;;;;;;;;;;;;;;;;;;;;;;30826:44;;;;::::1;::::0;;;;30874:1:::1;30809:62:::0;;;:16:::1;::::0;::::1;:62:::0;;;;;30801:93:::1;;;::::0;;-1:-1:-1;;;30801:93:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;30801:93:0;;;;;;;;;;;;;::::1;;30956:33;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;30956:33:0;;;;;;;;;;;;;;;;;;;;;;30946:44;;;;::::1;::::0;30929:62:::1;::::0;;;:16:::1;::::0;::::1;:62:::0;;;;;;;30907:19:::1;:84:::0;31036:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31026:44;;;;::::1;::::0;31009:62;;;;;;;31002:69;31082:36;;-1:-1:-1;;31082:36:0::1;::::0;;30597:529::o;20529:41::-;;;;:::o;23006:285::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;21043:6:::1;23073;:23;;23065:88;;;;-1:-1:-1::0;;;23065:88:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21093:7;23172:6;:23;;23164:92;;;;-1:-1:-1::0;;;23164:92:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23269:5;:14:::0;23006:285::o;20488:32::-;;;-1:-1:-1;;;;;20488:32:0;;:::o;30052:537::-;6973:5;;-1:-1:-1;;;;;6973:5:0;6959:10;:19;6951:50;;;;;-1:-1:-1;;;6951:50:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;6951:50:0;;;;;;;;;;;;;;;30164:34:::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;30164:34:0;;;;;;;;;;;;;;;;;;;;;;;;30154:45;;;;::::1;::::0;;;;30114:26:::1;30143:57:::0;;;:10:::1;:57:::0;;;;;;;30213:28;;;;;;;;::::1;;;;::::0;;;;::::1;::::0;;;;;;;;;::::1;::::0;:17:::1;:28::i;:::-;30290:31;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;-1:-1:-1;;;30290:31:0;;;;;;;;;;;;;;;;;;;;;;;;30280:42;;;;::::1;::::0;;;;30335:1:::1;30260:63:::0;;;:19:::1;::::0;::::1;:63:::0;;;;;-1:-1:-1;;;;;30260:63:0::1;30252:105;;;::::0;;-1:-1:-1;;;30252:105:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;30252:105:0;;;;;;;;;;;;;::::1;;30420:31;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;;;30420:31:0;;;;;;;;;;;;;;;;;;;;;;30410:42;;;;::::1;::::0;-1:-1:-1;30390:63:0;;;:19:::1;::::0;::::1;:63:::0;;;;;;;30370:17:::1;:83:::0;;-1:-1:-1;;;;;30390:63:0;;::::1;-1:-1:-1::0;;;;;;30370:83:0;;::::1;;::::0;;30501:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30390:63:::1;30501:31:::0;;;;;30491:42;;;;::::1;::::0;;;;30471:63;;;;;;;;;30464:70;;;;::::1;::::0;;30545:36;;-1:-1:-1;;30545:36:0::1;::::0;;30052:537::o;19640:26::-;;;;:::o;27304:114::-;27357:4;;27378:17;;27357:53;;;-1:-1:-1;;;27357:53:0;;-1:-1:-1;;;;;27378:17:0;;;27357:53;;;;-1:-1:-1;;27357:53:0;;;;;;:4;;;;;:12;;:53;;;;;;;;;;;;;;:4;;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;27304:114:0:o;8061:149::-;8119:7;8147:5;;;8167:6;;;;8159:30;;;;;-1:-1:-1;;;8159:30:0;;;;;;;;;;;;-1:-1:-1;;;8159:30:0;;;;;;;;;;;;;;;8203:1;8061:149;-1:-1:-1;;;8061:149:0:o;11050:400::-;11145:29;11177:28;;;;;;;;;;11224:6;;:11;11216:44;;;;;-1:-1:-1;;;11216:44:0;;;;;;;;;;;;-1:-1:-1;;;11216:44:0;;;;;;;;;;;;;;;11284:1;11279:2;:6;11271:46;;;;;-1:-1:-1;;;11271:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11328:11;;;11363:13;;;11328:6;11363:13;;;;;;;;;11350:26;;;:10;;;;:26;:::i;:::-;-1:-1:-1;11400:13:0;;;11411:1;11400:13;;;;;;;;;11387:26;;;:10;;;;:26;:::i;:::-;-1:-1:-1;11424:10:0;;:18;;;;;;;11440:1;11424:18;;;;;;;;-1:-1:-1;;;11050:400:0:o;37507:319::-;37543:7;37583:1;37569:10;;:15;37565:56;;-1:-1:-1;37608:1:0;37601:8;;37565:56;37631:11;:16;;37646:1;37631:16;;;;;37762:10;;37697:76;;;37714:16;37697:76;;;;;;;;37732:15;37697:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37687:87;;;;;;;;;;37762:10;37795:23;;;;;37788:30;;;37507:319;:::o;7865:129::-;7923:7;7952:1;7947;:6;;7939:30;;;;;-1:-1:-1;;;7939:30:0;;;;;;;;;;;;-1:-1:-1;;;7939:30:0;;;;;;;;;;;;;;;-1:-1:-1;7983:5:0;;;7865:129::o;7181:196::-;7239:7;7259:6;7255:37;;-1:-1:-1;7283:1:0;7276:8;;7255:37;7310:5;;;7314:1;7310;:5;:1;7330:5;;;;;:10;7322:34;;;;;-1:-1:-1;;;7322:34:0;;;;;;;;;;;;-1:-1:-1;;;7322:34:0;;;;;;;;;;;;;;7464:283;7522:7;7550:1;7546;:5;7538:29;;;;;-1:-1:-1;;;7538:29:0;;;;;;;;;;;;-1:-1:-1;;;7538:29:0;;;;;;;;;;;;;;;7626:9;7642:1;7638;:5;;;;;;;7464:283;-1:-1:-1;;;;7464:283:0:o;11794:2828::-;11899:29;11931:28;;;;;;;;;;;11987:26;;;:21;;;:26;;;;;;;12030:14;12026:2589;;12086:11;;12082:1518;;12199:10;;;:17;12195:1172;;-1:-1:-1;12338:10:0;;;:17;;12378:23;;;;;;-1:-1:-1;12378:23:0;;;;;;;;;;;;12338:17;12516:14;;;;;:47;;-1:-1:-1;12552:6:0;;-1:-1:-1;;12535:13:0;;12552:6;12534:24;;;;;:29;12516:47;12512:569;;;12642:6;;12611:16;;12630:9;12642:6;12630:18;;;;;12675:16;12694:34;;;:21;;;:34;;;;;;12811:10;;;12827:23;;12630:18;;-1:-1:-1;12694:34:0;;12783:1;12771:13;;;12811:10;;;12630:18;;12827:23;;;;;;;;;;;;;;;;;;12811:40;;;;;;;;;;;;;;;;;;;;12885:34;;;:21;;;:34;;;;;;;12878:41;;;12946:31;;;:21;;;:31;;;;;:42;;;13015:31;;;;;;;;:42;12512:569;12195:1172;;;13222:10;;;13233:17;;-1:-1:-1;;13233:21:0;;;13222:33;;;;;;;;;;;;;;13210:45;;13278:4;:10;;:16;;;;;;;;;;;;;;;;;;;;;;;;13341:6;13317:4;:10;;13328:9;13317:21;;;;;;;;;;;;;;;;;:30;12195:1172;13418:26;;;;:21;;;:26;;;;;;;;:38;;;13475:32;;;:21;;;:32;;;;;:38;;;13534:50;13548:4;13554;13447:9;13571:4;13577:6;13534:13;:50::i;:::-;12026:2589;;;13654:11;13650:954;;13778:10;13791:4;:10;;13802:9;13791:21;;;;;;;;;;;;;;;;13778:34;;13855:1;13831:4;:10;;13842:9;13831:21;;;;;;;;;;;;;;;;;;;:25;;;;13912:10;;;;:26;;;;;;;;;;;;;;;;13999;;;:21;;;:26;;;;;;13992:33;;;14051:32;;;:21;;;:32;;;;;;14044:39;;;14104:50;;14118:4;;14124;;13928:9;;14148:5;14104:13;:50::i;:::-;13650:954;;;;14190:4;:10;;14201:9;14190:21;;;;;;;;;;;;;;;;14180:6;:31;14176:428;;14281:16;14325:6;14300:4;:10;;14311:9;14300:21;;;;;;;;;;;;;;;;:31;;14281:50;;14350:21;14374:11;:77;;14445:6;14421:4;:10;;14432:9;14421:21;;;;;;;;;;;;;;;;:30;14374:77;;;14397:4;:10;;14408:9;14397:21;;;;;;;;;;;;;;;;14388:6;:30;14374:77;14350:101;;14494:6;14470:4;:10;;14481:9;14470:21;;;;;;;;;;;;;;;;;:30;14521:67;14535:4;14541;14547:9;14558:11;14571:16;14521:13;:67::i;:::-;14176:428;;;11794:2828;;;;;;:::o;32854:376::-;32940:28;;:36;;32972:4;32940:36;32932:80;;;;;-1:-1:-1;;;32932:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;33058:15;33031:9;:23;;;:42;;33023:94;;;;-1:-1:-1;;;33023:94:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33136:23;;;;33181:15;;33136:41;;20992:7;33136:27;:41::i;:::-;:60;;33128:94;;;;;-1:-1:-1;;;33128:94:0;;;;;;;;;;;;-1:-1:-1;;;33128:94:0;;;;;;;;;;;;;;;32854:376;:::o;16733:895::-;16834:10;16889:28;;;;;;;;;;16998:10;;;:13;;16834:10;;;;;;16998:13;;;;;;;;;;;;16983:12;:28;;;;;;16957:54;;17024:539;17058:10;;;:17;17032:6;;:18;;17054:1;17031:24;:44;17024:539;;;17137:1;17123:440;17145:6;;17140:11;;17123:440;;17200:14;17240:1;17227:9;17218:4;:6;;;:18;17217:24;17200:41;;17260:14;17277:4;:10;;17288:9;17277:21;;;;;;;;;;;;;;;;17260:38;;17345:9;17323:18;:31;17319:229;;17378:9;17356:31;;;;17319:229;;;-1:-1:-1;17491:9:0;-1:-1:-1;17523:5:0;;17319:229;-1:-1:-1;;17153:3:0;;17123:440;;;;17024:539;;;-1:-1:-1;17588:32:0;;;;:21;;;;:32;;;;;;;16733:895;-1:-1:-1;;;;16733:895:0:o;18957:472::-;19094:29;19126:28;;;;;;;;;;19186:10;19207:215;19214:16;;19207:215;;19281:6;;-1:-1:-1;;19262:15:0;;19281:6;19261:26;;;;;19247:40;;19328:12;:82;;19404:6;19378:4;:10;;19389:11;19378:23;;;;;;;;;;;;;;;;:32;19328:82;;;19369:6;19343:4;:10;;19354:11;19343:23;;;;;;;;;;;;;;;;:32;19328:82;19302:4;:10;;19313:11;19302:23;;;;;;;;;;;;;;;;;:108;19207:215;;;18957:472;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;

Swarm Source

ipfs://834ed29343c2a374325724328ebd2563b633f70a0cc4d92c5c3248e00acca685
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.