Contract 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e5 2

 

Contract Overview

Balance:
160 MATIC

MATIC Value:
$123.34 (@ $0.77/MATIC)

Token:
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0x17bedfbbda4d7d0fa94bee59f876d8efe43c4cfa01436a9936ed79bb68c23a2aTrigger421721672023-05-01 10:07:1837 days 22 hrs ago0x94845900ae3081886c49e0e0833d3ed143506256 IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50 MATIC0.0451503 900
0x269cd1af4fd7dd6b8080f69bd58df903df8a3a61290d8f3a41852785dec258bcMake Trade421721612023-05-01 10:07:0637 days 22 hrs ago0xc68c7a33c0b49ed356b33567f391bccde860c2bf IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e515 MATIC0.082737475988 265.700289628
0xe4fd86704c914b80d32b9de52e1fe85fd0ff6b3edfcc0f2490d698b2391bb36bMake Trade421721592023-05-01 10:07:0037 days 22 hrs ago0x1970f8bd997170520185feaa056215023beed56a IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e525 MATIC0.076276640096 287.313791883
0xa2603ec8ff60826b2ac4f2b0f29490952e70eab4b42859ea584948a716d830b0Make Trade421721572023-05-01 10:06:5637 days 22 hrs ago0xff291447b5a4fa8c9314444916173f39a9250a8d IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e525 MATIC0.079260307847 298.579465857
0xf0169cef06063950ed275d01c29d13c6af44b67547fcb0ad76b9fc3b6d60d575Make Trade421721542023-05-01 10:06:5037 days 22 hrs ago0xc84c149aa228a9981734d1de82c79afde35d7ee1 IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e510 MATIC0.082686958517 265.538059557
0x321e848390cdc49b4308feddb61746294f3e24a6af81e4e8dab3893ba47fbbc2Make Trade421721462023-05-01 10:06:3437 days 22 hrs ago0x27f9adb7b5daf6071ee1cbe4532e835c1bb13d49 IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e510 MATIC0.078429149747 295.448431571
0xac53df1ef5ed8deac8b4d442bae43c7a11a99630648fe02647e5b2ea31ddb254Make Trade421721442023-05-01 10:06:3037 days 22 hrs ago0x66b74d1195fe8ea6db0dd600d4a4db51aa8b7d3b IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e520 MATIC0.076029448579 286.382687261
0x440a8ce569e4e733ff66fe99dfc1d1d4b9e4d7f06c2d8d45f3ac8225048cf732Make Trade421721422023-05-01 10:06:2437 days 22 hrs ago0x36dbed20f61ba77af62064a2d01ed2821406033b IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e535 MATIC0.10371617824 281.793027839
0xb7aca4cd4f61032a88997d37e69a68ef05b82e0e9821532885508b9f6442403aMake Trade421721422023-05-01 10:06:2437 days 22 hrs ago0x98a3c37c321bd61d26d6a0953cdbcbac08591ffa IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e510 MATIC0.108528067742 294.847527839
0x85492e004359ebd11075a58e8409f7acb0981b2dafa61bf6d32817332a49e922Trigger421721392023-05-01 10:06:1837 days 22 hrs ago0x94845900ae3081886c49e0e0833d3ed143506256 IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50 MATIC0.3875256 900
0x795ea1fa463737a262263debb32756a3e3072fe02ee00d1733e51ec6d4733158Trigger421721112023-05-01 10:05:1837 days 22 hrs ago0x94845900ae3081886c49e0e0833d3ed143506256 IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50 MATIC0.0451395 900
0xd21791308fe6282bc9d534403640617c299ce500acabc4a88b16f0835d965965Make Trade421721042023-05-01 10:05:0437 days 22 hrs ago0xff291447b5a4fa8c9314444916173f39a9250a8d IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e525 MATIC0.076599103327 288.554510799
0x7cdbd74a2804b651056c381f6f52e17ed0adaf56811bf02b97b4326c4de94a86Make Trade421721032023-05-01 10:05:0237 days 22 hrs ago0x1970f8bd997170520185feaa056215023beed56a IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e525 MATIC0.076520083159 288.230777076
0x0a821ce533b6c9f317597ae5dddbfa44c0b8a2c669de7f93d24dd79661b7d36aMake Trade421720942023-05-01 10:04:4237 days 22 hrs ago0xc68c7a33c0b49ed356b33567f391bccde860c2bf IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e515 MATIC0.087641947496 281.461187532
0xd06a8aa754ddee6063d5bf393ae9c8fbc9f203c13a17b242f35b3086099f55aeMake Trade421720892023-05-01 10:04:3237 days 22 hrs ago0x27f9adb7b5daf6071ee1cbe4532e835c1bb13d49 IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e510 MATIC0.079936082576 301.125159448
0x3bc9045ac19dacb4bb4e87fe2af8f186189bcb2412bb0d2aaf95ee8962f1e279Make Trade421720862023-05-01 10:04:2637 days 22 hrs ago0x98a3c37c321bd61d26d6a0953cdbcbac08591ffa IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e510 MATIC0.077048280972 290.220357587
0x09f679baa4bb28d268e9659f5318d12102ca3781fa8d499f2cb5c1c0b1d94597Make Trade421720862023-05-01 10:04:2637 days 22 hrs ago0x66b74d1195fe8ea6db0dd600d4a4db51aa8b7d3b IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e520 MATIC0.107189217224 291.210157587
0xc4115acf3cdf43efd21b9f0bacef139350c068a9cc4f46d74c0dfa1e67b73de3Make Trade421720852023-05-01 10:04:2437 days 22 hrs ago0x36dbed20f61ba77af62064a2d01ed2821406033b IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e525 MATIC0.109835980587 298.420304918
0xffa5493493a40936bf5ea746e1ee541351ed6eda448f8f5b5a0a93c5ebcc73b8Trigger421720812023-05-01 10:04:1637 days 22 hrs ago0x94845900ae3081886c49e0e0833d3ed143506256 IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50 MATIC0.3450555 900
0x4b3b4e134b27c3dbd34e06efa89a32740e04d6e636f502ea0bf822c110651e9bTrigger421720542023-05-01 10:03:1837 days 22 hrs ago0x94845900ae3081886c49e0e0833d3ed143506256 IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50 MATIC0.0451395 900
0xd9f47797d52ccee3f05e5ccfc7d9ce85a8e4e1f768857f09c90422dc35286956Make Trade421720482023-05-01 10:03:0637 days 22 hrs ago0xc68c7a33c0b49ed356b33567f391bccde860c2bf IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e530 MATIC0.093693858467 300.896835614
0xa61b23a292a4c07a51c06165be13769925c522012f28508cf1b678a31715e55aMake Trade421720472023-05-01 10:03:0237 days 22 hrs ago0x1970f8bd997170520185feaa056215023beed56a IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e525 MATIC0.086519277478 325.895079436
0x2fe1c81baa8edc54e2c6ad3b2cf584fbf4927d0c8c23e3c0aae9ba388b1d4852Make Trade421720412023-05-01 10:02:5037 days 22 hrs ago0xff291447b5a4fa8c9314444916173f39a9250a8d IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e525 MATIC0.081507576681 307.045094446
0x5fa84642149689886f5506408c9ea2f4a67940be58a71f904d344769c876fef2Make Trade421720322023-05-01 10:02:3237 days 22 hrs ago0x66b74d1195fe8ea6db0dd600d4a4db51aa8b7d3b IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e520 MATIC0.095513301319 359.773172265
0x9bafeaef39ecb3480f062daae655b4bd88cac39a001b20db161d323121a989d2Make Trade421720302023-05-01 10:02:2637 days 22 hrs ago0x36dbed20f61ba77af62064a2d01ed2821406033b IN  0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e530 MATIC0.129029532058 350.56847578
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x85492e004359ebd11075a58e8409f7acb0981b2dafa61bf6d32817332a49e922421721392023-05-01 10:06:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x4a2f121b456a41b6f2491b81765bacb56fdf97785.4505 MATIC
0x85492e004359ebd11075a58e8409f7acb0981b2dafa61bf6d32817332a49e922421721392023-05-01 10:06:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50xff291447b5a4fa8c9314444916173f39a9250a8d41.5165 MATIC
0x85492e004359ebd11075a58e8409f7acb0981b2dafa61bf6d32817332a49e922421721392023-05-01 10:06:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50xc68c7a33c0b49ed356b33567f391bccde860c2bf25.01 MATIC
0x85492e004359ebd11075a58e8409f7acb0981b2dafa61bf6d32817332a49e922421721392023-05-01 10:06:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x27f9adb7b5daf6071ee1cbe4532e835c1bb13d4916.5065 MATIC
0x85492e004359ebd11075a58e8409f7acb0981b2dafa61bf6d32817332a49e922421721392023-05-01 10:06:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x36dbed20f61ba77af62064a2d01ed2821406033b41.5165 MATIC
0xffa5493493a40936bf5ea746e1ee541351ed6eda448f8f5b5a0a93c5ebcc73b8421720812023-05-01 10:04:1637 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x4a2f121b456a41b6f2491b81765bacb56fdf97785.4505 MATIC
0xffa5493493a40936bf5ea746e1ee541351ed6eda448f8f5b5a0a93c5ebcc73b8421720812023-05-01 10:04:1637 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50xc68c7a33c0b49ed356b33567f391bccde860c2bf47.5175 MATIC
0xffa5493493a40936bf5ea746e1ee541351ed6eda448f8f5b5a0a93c5ebcc73b8421720812023-05-01 10:04:1637 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50xff291447b5a4fa8c9314444916173f39a9250a8d39.5145 MATIC
0xffa5493493a40936bf5ea746e1ee541351ed6eda448f8f5b5a0a93c5ebcc73b8421720812023-05-01 10:04:1637 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x36dbed20f61ba77af62064a2d01ed2821406033b47.5175 MATIC
0x779aa0579cf33060797404077e2fbf54671cd41be9947aa87394bed1431a9bb9421720252023-05-01 10:02:1637 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x4a2f121b456a41b6f2491b81765bacb56fdf97788.919 MATIC
0x779aa0579cf33060797404077e2fbf54671cd41be9947aa87394bed1431a9bb9421720252023-05-01 10:02:1637 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x1970f8bd997170520185feaa056215023beed56a70.045 MATIC
0x779aa0579cf33060797404077e2fbf54671cd41be9947aa87394bed1431a9bb9421720252023-05-01 10:02:1637 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x66b74d1195fe8ea6db0dd600d4a4db51aa8b7d3b56.036 MATIC
0x4b571bbc4db79b7444824229f499cdb214ae07f95cc3d3e706e46d0cab04c749421719692023-05-01 10:00:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x4a2f121b456a41b6f2491b81765bacb56fdf97786.4415 MATIC
0x4b571bbc4db79b7444824229f499cdb214ae07f95cc3d3e706e46d0cab04c749421719692023-05-01 10:00:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x1970f8bd997170520185feaa056215023beed56a57.5325 MATIC
0x4b571bbc4db79b7444824229f499cdb214ae07f95cc3d3e706e46d0cab04c749421719692023-05-01 10:00:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x66b74d1195fe8ea6db0dd600d4a4db51aa8b7d3b46.026 MATIC
0x068bc9318c85c0f39ddd5ccd5a23e0e4862c105c5fe4ca65d26b2ed396ec94b2421719132023-05-01 9:58:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x4a2f121b456a41b6f2491b81765bacb56fdf97786.4415 MATIC
0x068bc9318c85c0f39ddd5ccd5a23e0e4862c105c5fe4ca65d26b2ed396ec94b2421719132023-05-01 9:58:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50xff291447b5a4fa8c9314444916173f39a9250a8d45.7025 MATIC
0x068bc9318c85c0f39ddd5ccd5a23e0e4862c105c5fe4ca65d26b2ed396ec94b2421719132023-05-01 9:58:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50xc84c149aa228a9981734d1de82c79afde35d7ee118.281 MATIC
0x068bc9318c85c0f39ddd5ccd5a23e0e4862c105c5fe4ca65d26b2ed396ec94b2421719132023-05-01 9:58:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x36dbed20f61ba77af62064a2d01ed2821406033b64.575 MATIC
0xe0111f625ce69a29028604b66c10fc3e5ff0bcea4152897201a0c47d2d38655f421718562023-05-01 9:56:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x4a2f121b456a41b6f2491b81765bacb56fdf97787.033 MATIC
0xe0111f625ce69a29028604b66c10fc3e5ff0bcea4152897201a0c47d2d38655f421718562023-05-01 9:56:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50xff291447b5a4fa8c9314444916173f39a9250a8d43.3365 MATIC
0xe0111f625ce69a29028604b66c10fc3e5ff0bcea4152897201a0c47d2d38655f421718562023-05-01 9:56:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50xc84c149aa228a9981734d1de82c79afde35d7ee117.098 MATIC
0xe0111f625ce69a29028604b66c10fc3e5ff0bcea4152897201a0c47d2d38655f421718562023-05-01 9:56:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x27f9adb7b5daf6071ee1cbe4532e835c1bb13d4917.098 MATIC
0xe0111f625ce69a29028604b66c10fc3e5ff0bcea4152897201a0c47d2d38655f421718562023-05-01 9:56:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x36dbed20f61ba77af62064a2d01ed2821406033b60.4345 MATIC
0xbed901f0f832b6e65eac4fe3f03b4331af1476271ef069cc60266b40538d092a421718002023-05-01 9:54:1837 days 22 hrs ago 0xe887e7bbcee83a7b4cb03347e9f9e66adbe738e50x4a2f121b456a41b6f2491b81765bacb56fdf97786.75 MATIC
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
UpVsDownGameV1

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at polygonscan.com on 2023-03-21
*/

// File: @openzeppelin/contracts/utils/Context.sol

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

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

// File: @openzeppelin/contracts/access/Ownable.sol

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// File: contracts/UpVsDownGameV1.sol

pragma solidity >=0.4.22 <0.9.0;

contract UpVsDownGameV1 is Ownable {

  struct BetGroup {
    uint256[] bets;
    address[] addresses;
    string[] avatars;
    string[] countries;
    string[] whiteLabelIds;
    uint256 total;
    uint256 distributedCount;
    uint256 totalDistributed;
  }

  struct Round {
    bool created;
    int32 startPrice;
    int32 endPrice;
    uint256 minBetAmount;
    uint256 maxBetAmount;
    uint256 poolBetsLimit;
    BetGroup upBetGroup;
    BetGroup downBetGroup;
    int64 roundStartTime;
  }

  struct Distribution {
    uint256 fee;
    uint256 totalMinusFee;
    uint256 pending;
  }

  address public gameController;
  mapping(bytes => Round) public pools;
  uint8 public feePercentage = 5;
  address public feeAddress = msg.sender;
  bool public isRunning;
  bytes public notRunningReason;

  // Errors

  error PendingDistributions();

  // Events

  event RoundStarted(bytes poolId, int64 timestamp, int32 price, uint256 minTradeAmount, uint256 maxTradeAmount, uint256 poolTradesLimit, bytes indexed indexedPoolId);
  event RoundEnded(bytes poolId, int64 timestamp, int32 startPrice, int32 endPrice, bytes indexed indexedPoolId);
  event TradePlaced(bytes poolId, address sender, uint256 amount, string prediction, uint256 newTotal, bytes indexed indexedPoolId, address indexed indexedSender, string avatarUrl, string countryCode, int64 roundStartTime, string whiteLabelId);
  event TradeReturned(bytes poolId, address sender, uint256 amount, string whiteLabelId);
  event GameStopped(bytes reason);
  event GameStarted();
  event RoundDistributed(bytes poolId, uint totalWinners, uint from, uint to, int64 timestamp);
  event TradeWinningsSent(bytes poolId, address sender, uint256 tradeAmount, uint256 winningsAmount, address indexed indexedSender, string whiteLabelId);

  // Modifiers

  modifier onlyGameController () {
    require(msg.sender == gameController, 'Only game controller can do this');
    _;
  }

  modifier onlyOpenPool (bytes calldata poolId) {
    require(isPoolOpen(poolId), 'This pool has a round in progress');
    _;
  }

  modifier onlyGameRunning () {
    require(isRunning, 'The game is not running');
    _;
  }

  modifier onlyPoolExists (bytes calldata poolId) {
    require(pools[poolId].created == true, 'Pool does not exist');
    _;
  }

  constructor(address newGameController) {
    gameController = newGameController;
  }

  // Methods

  function changeGameControllerAddress(address newGameController) public onlyOwner {
    gameController = newGameController;
  }

  function changeGameFeePercentage(uint8 newFeePercentage) public onlyOwner {
    feePercentage = newFeePercentage;
  }

  function changeGameFeeAddress(address newFeeAddress) public onlyOwner {
    feeAddress = newFeeAddress;
  }

  function stopGame(bytes calldata reason) public onlyOwner {
    isRunning = false;
    notRunningReason = reason;
    emit GameStopped(reason);
  }

  function startGame() public onlyOwner {
    isRunning = true;
    notRunningReason = '';
    emit GameStarted();
  }

  function createPool(bytes calldata poolId, uint256 minBetAmount , uint256 maxBetAmount, uint256 poolBetsLimit) public onlyGameController {
    pools[poolId].created = true;
    pools[poolId].minBetAmount = minBetAmount;
    pools[poolId].maxBetAmount = maxBetAmount;
    pools[poolId].poolBetsLimit = poolBetsLimit;
  }

  function trigger(
    bytes calldata poolId,
    int64 timeMS,
    int32 price,
    uint32 batchSize
  ) public onlyGameController onlyPoolExists(poolId) {
    Round storage currentRound = pools[poolId];

    if(isPoolOpen(poolId)) {
      require(isRunning, 'The game is not running, rounds can only be ended at this point');
      currentRound.startPrice = price;
      currentRound.roundStartTime = timeMS;
    
      emit RoundStarted(poolId, timeMS, currentRound.startPrice, currentRound.minBetAmount, currentRound.maxBetAmount, currentRound.poolBetsLimit, poolId);
    } else if (currentRound.endPrice == 0) {
      currentRound.endPrice = price;

      emit RoundEnded(poolId, timeMS, currentRound.startPrice, currentRound.endPrice, poolId);

      distribute(poolId, batchSize, timeMS);
    } else {
      revert PendingDistributions();
    }
  }

  function returnBets (
    bytes calldata poolId,
    BetGroup storage group,
    uint32 batchSize
  ) private {
    uint256 pending = group.bets.length - group.distributedCount;
    uint256 limit = pending > batchSize ? batchSize : pending;
    uint256 to = group.distributedCount + limit;

    for (uint i = group.distributedCount; i < to; i ++) {
      sendEther(group.addresses[i], group.bets[i]);
      emit TradeReturned(poolId, group.addresses[i], group.bets[i], group.whiteLabelIds[i]);
    }

    group.distributedCount = to;
  }

  function distribute (
    bytes calldata poolId,
    uint32 batchSize,
    int64 timeMS
  ) public onlyGameController onlyPoolExists(poolId) {
    Round storage round = pools[poolId];

    if (round.upBetGroup.bets.length == 0 || round.downBetGroup.bets.length == 0) {
      BetGroup storage returnGroup = round.downBetGroup.bets.length == 0 ? round.upBetGroup : round.downBetGroup;

      uint fromReturn = returnGroup.distributedCount;
      returnBets(poolId, returnGroup, batchSize);
      emit RoundDistributed(poolId, returnGroup.bets.length, fromReturn, returnGroup.distributedCount,timeMS);

      if (returnGroup.distributedCount == returnGroup.bets.length) {
        clearPool(poolId);
      }
      return;
    }


    BetGroup storage winners = round.downBetGroup;
    BetGroup storage losers = round.upBetGroup;

    if (round.startPrice < round.endPrice) {
      winners = round.upBetGroup;
      losers = round.downBetGroup;
    }

    Distribution memory dist = calculateDistribution(winners, losers);
    uint256 limit = dist.pending > batchSize ? batchSize : dist.pending;
    uint256 to = winners.distributedCount + limit;

    for (uint i = winners.distributedCount; i < to; i++) {
      uint256 winnings = ((winners.bets[i] * 100 / winners.total) * dist.totalMinusFee / 100);
      sendEther(winners.addresses[i], winnings + winners.bets[i]);
      emit TradeWinningsSent(poolId, winners.addresses[i], winners.bets[i], winnings, winners.addresses[i], winners.whiteLabelIds[i]);
      winners.totalDistributed = winners.totalDistributed + winnings;
    }

    emit RoundDistributed(poolId, winners.bets.length, winners.distributedCount, to, timeMS);

    winners.distributedCount = to;
    if (winners.distributedCount == winners.bets.length) {
      sendEther(feeAddress, dist.fee + dist.totalMinusFee - winners.totalDistributed);
      clearPool(poolId);
    }
  }

  function calculateDistribution (
    BetGroup storage winners,
    BetGroup storage losers
  ) private view returns (Distribution memory) {
    uint256 fee = feePercentage * losers.total / 100;
    uint256 pending = winners.bets.length - winners.distributedCount;
    return Distribution({
      fee: fee,
      totalMinusFee: losers.total - fee,
      pending: pending
    });
  }

  function clearPool (
    bytes calldata poolId
  ) private {
    delete pools[poolId].upBetGroup;
    delete pools[poolId].downBetGroup;
    delete pools[poolId].startPrice;
    delete pools[poolId].endPrice;
  }

  function hasPendingDistributions(
    bytes calldata poolId
  ) public view returns (bool) {
    return (pools[poolId].upBetGroup.bets.length + pools[poolId].downBetGroup.bets.length) > 0;
  }

  function isPoolOpen(
    bytes calldata poolId
  ) public view returns (bool) {
    return pools[poolId].startPrice == 0;
  }

  function addBet (
    BetGroup storage betGroup,
    uint256 amount,
    string calldata avatar,
    string calldata countryCode,
    string calldata whiteLabelId
  ) private returns (uint256) {
    betGroup.bets.push(amount);
    betGroup.addresses.push(msg.sender);
    betGroup.avatars.push(avatar);
    betGroup.countries.push(countryCode);
    betGroup.whiteLabelIds.push(whiteLabelId);
    betGroup.total += amount;
    return betGroup.total;
  }

  struct makeTradeStruct{
    bytes poolId;
    string avatarUrl;
    string countryCode;
    bool upOrDown;
    string whiteLabelId;
  }

  struct userDataStruct{
      string avatar;
      string countryCode;
      string whiteLabelId;
      int64 roundStartTime;
    }

  function makeTrade(
    makeTradeStruct calldata userTrade
  ) public payable onlyOpenPool(userTrade.poolId) onlyGameRunning onlyPoolExists(userTrade.poolId) {
    require(msg.value > 0, "Needs to send Matic to trade");
    require(msg.value >= pools[userTrade.poolId].minBetAmount, "Trade amount should be higher than the minimum");
    require(msg.value <= pools[userTrade.poolId].maxBetAmount, "Trade amount should be lower than the maximum");
    uint256 newTotal;

    if (userTrade.upOrDown) {
      require(pools[userTrade.poolId].upBetGroup.bets.length <= pools[userTrade.poolId].poolBetsLimit-1,"Pool is full, wait for next round");
      newTotal = addBet(pools[userTrade.poolId].upBetGroup, msg.value, userTrade.avatarUrl, userTrade.countryCode, userTrade.whiteLabelId);
    } else {
      require(pools[userTrade.poolId].downBetGroup.bets.length <= pools[userTrade.poolId].poolBetsLimit-1,"Pool is full, wait for next round");
      newTotal = addBet(pools[userTrade.poolId].downBetGroup, msg.value, userTrade.avatarUrl, userTrade.countryCode, userTrade.whiteLabelId);
    }

    userDataStruct memory userTradeData;
    userTradeData.avatar = userTrade.avatarUrl;
    userTradeData.countryCode = userTrade.countryCode;
    userTradeData.whiteLabelId = userTrade.whiteLabelId;
    userTradeData.roundStartTime = pools[userTrade.poolId].roundStartTime;
    
    emit TradePlaced(userTrade.poolId, msg.sender, msg.value, (userTrade.upOrDown) ? "UP":"DOWN", newTotal, 
    userTrade.poolId, msg.sender, userTradeData.avatar, userTradeData.countryCode, 
    userTradeData.roundStartTime, userTradeData.whiteLabelId);
  }

  function sendEther (
    address to, 
    uint256 amount
  ) private {
    (bool sent, bytes memory data) = payable(to).call{gas: 0, value: amount}("");
    require(sent, "Couldn't send ether");
  } 
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"newGameController","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"PendingDistributions","type":"error"},{"anonymous":false,"inputs":[],"name":"GameStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"reason","type":"bytes"}],"name":"GameStopped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"poolId","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"totalWinners","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"from","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"to","type":"uint256"},{"indexed":false,"internalType":"int64","name":"timestamp","type":"int64"}],"name":"RoundDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"poolId","type":"bytes"},{"indexed":false,"internalType":"int64","name":"timestamp","type":"int64"},{"indexed":false,"internalType":"int32","name":"startPrice","type":"int32"},{"indexed":false,"internalType":"int32","name":"endPrice","type":"int32"},{"indexed":true,"internalType":"bytes","name":"indexedPoolId","type":"bytes"}],"name":"RoundEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"poolId","type":"bytes"},{"indexed":false,"internalType":"int64","name":"timestamp","type":"int64"},{"indexed":false,"internalType":"int32","name":"price","type":"int32"},{"indexed":false,"internalType":"uint256","name":"minTradeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maxTradeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"poolTradesLimit","type":"uint256"},{"indexed":true,"internalType":"bytes","name":"indexedPoolId","type":"bytes"}],"name":"RoundStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"poolId","type":"bytes"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"prediction","type":"string"},{"indexed":false,"internalType":"uint256","name":"newTotal","type":"uint256"},{"indexed":true,"internalType":"bytes","name":"indexedPoolId","type":"bytes"},{"indexed":true,"internalType":"address","name":"indexedSender","type":"address"},{"indexed":false,"internalType":"string","name":"avatarUrl","type":"string"},{"indexed":false,"internalType":"string","name":"countryCode","type":"string"},{"indexed":false,"internalType":"int64","name":"roundStartTime","type":"int64"},{"indexed":false,"internalType":"string","name":"whiteLabelId","type":"string"}],"name":"TradePlaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"poolId","type":"bytes"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"whiteLabelId","type":"string"}],"name":"TradeReturned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"poolId","type":"bytes"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tradeAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"winningsAmount","type":"uint256"},{"indexed":true,"internalType":"address","name":"indexedSender","type":"address"},{"indexed":false,"internalType":"string","name":"whiteLabelId","type":"string"}],"name":"TradeWinningsSent","type":"event"},{"inputs":[{"internalType":"address","name":"newGameController","type":"address"}],"name":"changeGameControllerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newFeeAddress","type":"address"}],"name":"changeGameFeeAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newFeePercentage","type":"uint8"}],"name":"changeGameFeePercentage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"},{"internalType":"uint256","name":"minBetAmount","type":"uint256"},{"internalType":"uint256","name":"maxBetAmount","type":"uint256"},{"internalType":"uint256","name":"poolBetsLimit","type":"uint256"}],"name":"createPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"},{"internalType":"uint32","name":"batchSize","type":"uint32"},{"internalType":"int64","name":"timeMS","type":"int64"}],"name":"distribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feePercentage","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gameController","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"}],"name":"hasPendingDistributions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"}],"name":"isPoolOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isRunning","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"poolId","type":"bytes"},{"internalType":"string","name":"avatarUrl","type":"string"},{"internalType":"string","name":"countryCode","type":"string"},{"internalType":"bool","name":"upOrDown","type":"bool"},{"internalType":"string","name":"whiteLabelId","type":"string"}],"internalType":"struct UpVsDownGameV1.makeTradeStruct","name":"userTrade","type":"tuple"}],"name":"makeTrade","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"notRunningReason","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"","type":"bytes"}],"name":"pools","outputs":[{"internalType":"bool","name":"created","type":"bool"},{"internalType":"int32","name":"startPrice","type":"int32"},{"internalType":"int32","name":"endPrice","type":"int32"},{"internalType":"uint256","name":"minBetAmount","type":"uint256"},{"internalType":"uint256","name":"maxBetAmount","type":"uint256"},{"internalType":"uint256","name":"poolBetsLimit","type":"uint256"},{"components":[{"internalType":"uint256[]","name":"bets","type":"uint256[]"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"string[]","name":"avatars","type":"string[]"},{"internalType":"string[]","name":"countries","type":"string[]"},{"internalType":"string[]","name":"whiteLabelIds","type":"string[]"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"distributedCount","type":"uint256"},{"internalType":"uint256","name":"totalDistributed","type":"uint256"}],"internalType":"struct UpVsDownGameV1.BetGroup","name":"upBetGroup","type":"tuple"},{"components":[{"internalType":"uint256[]","name":"bets","type":"uint256[]"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"string[]","name":"avatars","type":"string[]"},{"internalType":"string[]","name":"countries","type":"string[]"},{"internalType":"string[]","name":"whiteLabelIds","type":"string[]"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"distributedCount","type":"uint256"},{"internalType":"uint256","name":"totalDistributed","type":"uint256"}],"internalType":"struct UpVsDownGameV1.BetGroup","name":"downBetGroup","type":"tuple"},{"internalType":"int64","name":"roundStartTime","type":"int64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"reason","type":"bytes"}],"name":"stopGame","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"poolId","type":"bytes"},{"internalType":"int64","name":"timeMS","type":"int64"},{"internalType":"int32","name":"price","type":"int32"},{"internalType":"uint32","name":"batchSize","type":"uint32"}],"name":"trigger","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526005600360006101000a81548160ff021916908360ff16021790555033600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006e57600080fd5b5060405162004a5e38038062004a5e833981810160405281019062000094919062000232565b620000b4620000a8620000fc60201b60201c565b6200010460201b60201c565b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000264565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620001fa82620001cd565b9050919050565b6200020c81620001ed565b81146200021857600080fd5b50565b6000815190506200022c8162000201565b92915050565b6000602082840312156200024b576200024a620001c8565b5b60006200025b848285016200021b565b91505092915050565b6147ea80620002746000396000f3fe60806040526004361061011f5760003560e01c80638da5cb5b116100a0578063d65ab5f211610064578063d65ab5f2146103ba578063e4709969146103d1578063eab79b7d146103fa578063f2fde38b14610423578063f68256a81461044c5761011f565b80638da5cb5b146102e9578063a001ecdd14610314578063a7c3324d1461033f578063a9b99af514610368578063d4c770cf146103915761011f565b806341275358116100e75780634127535814610237578063595dc897146102625780636518a0a91461028b578063715018a6146102b657806381196ae2146102cd5761011f565b80630c2f915e146101245780631d0d625b146101615780632014e5d11461018a57806330efabd4146101b55780633fafac92146101f2575b600080fd5b34801561013057600080fd5b5061014b60048036038101906101469190612f1c565b610477565b6040516101589190612f84565b60405180910390f35b34801561016d57600080fd5b5061018860048036038101906101839190612ffd565b6104e1565b005b34801561019657600080fd5b5061019f6105a1565b6040516101ac9190612f84565b60405180910390f35b3480156101c157600080fd5b506101dc60048036038101906101d79190612f1c565b6105b4565b6040516101e99190612f84565b60405180910390f35b3480156101fe57600080fd5b506102196004803603810190610214919061316b565b6105f4565b60405161022e99989796959493929190613597565b60405180910390f35b34801561024357600080fd5b5061024c610dc0565b6040516102599190613641565b60405180910390f35b34801561026e57600080fd5b5061028960048036038101906102849190612ffd565b610de6565b005b34801561029757600080fd5b506102a0610ea6565b6040516102ad91906136b1565b60405180910390f35b3480156102c257600080fd5b506102cb610f34565b005b6102e760048036038101906102e291906136f7565b610fbc565b005b3480156102f557600080fd5b506102fe61171a565b60405161030b9190613641565b60405180910390f35b34801561032057600080fd5b50610329611743565b604051610336919061375c565b60405180910390f35b34801561034b57600080fd5b50610366600480360381019061036191906137df565b611756565b005b34801561037457600080fd5b5061038f600480360381019061038a919061387f565b611ce1565b005b34801561039d57600080fd5b506103b860048036038101906103b39190613933565b612047565b005b3480156103c657600080fd5b506103cf6120e1565b005b3480156103dd57600080fd5b506103f860048036038101906103f3919061398c565b6121cc565b005b34801561040657600080fd5b50610421600480360381019061041c9190612f1c565b612317565b005b34801561042f57600080fd5b5061044a60048036038101906104459190612ffd565b6123fd565b005b34801561045857600080fd5b506104616124f5565b60405161046e9190613641565b60405180910390f35b6000806002848460405161048c929190613a44565b9081526020016040518091039020600c0160000180549050600285856040516104b6929190613a44565b9081526020016040518091039020600401600001805490506104d89190613a8c565b11905092915050565b6104e961251b565b73ffffffffffffffffffffffffffffffffffffffff1661050761171a565b73ffffffffffffffffffffffffffffffffffffffff161461055d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055490613b3f565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360159054906101000a900460ff1681565b600080600284846040516105c9929190613a44565b908152602001604051809103902060000160019054906101000a900460030b60030b14905092915050565b6002818051602081018201805184825260208301602085012081835280955050505050506000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460030b908060000160059054906101000a900460030b908060010154908060020154908060030154908060040160405180610100016040529081600082018054806020026020016040519081016040528092919081815260200182805480156106c857602002820191906000526020600020905b8154815260200190600101908083116106b4575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561075657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161070c575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b828210156108305783829060005260206000200180546107a390613b8e565b80601f01602080910402602001604051908101604052809291908181526020018280546107cf90613b8e565b801561081c5780601f106107f15761010080835404028352916020019161081c565b820191906000526020600020905b8154815290600101906020018083116107ff57829003601f168201915b505050505081526020019060010190610784565b50505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b8282101561090957838290600052602060002001805461087c90613b8e565b80601f01602080910402602001604051908101604052809291908181526020018280546108a890613b8e565b80156108f55780601f106108ca576101008083540402835291602001916108f5565b820191906000526020600020905b8154815290600101906020018083116108d857829003601f168201915b50505050508152602001906001019061085d565b50505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b828210156109e257838290600052602060002001805461095590613b8e565b80601f016020809104026020016040519081016040528092919081815260200182805461098190613b8e565b80156109ce5780601f106109a3576101008083540402835291602001916109ce565b820191906000526020600020905b8154815290600101906020018083116109b157829003601f168201915b505050505081526020019060010190610936565b50505050815260200160058201548152602001600682015481526020016007820154815250509080600c016040518061010001604052908160008201805480602002602001604051908101604052809291908181526020018280548015610a6857602002820191906000526020600020905b815481526020019060010190808311610a54575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015610af657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610aac575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020016000905b82821015610bd0578382906000526020600020018054610b4390613b8e565b80601f0160208091040260200160405190810160405280929190818152602001828054610b6f90613b8e565b8015610bbc5780601f10610b9157610100808354040283529160200191610bbc565b820191906000526020600020905b815481529060010190602001808311610b9f57829003601f168201915b505050505081526020019060010190610b24565b50505050815260200160038201805480602002602001604051908101604052809291908181526020016000905b82821015610ca9578382906000526020600020018054610c1c90613b8e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4890613b8e565b8015610c955780601f10610c6a57610100808354040283529160200191610c95565b820191906000526020600020905b815481529060010190602001808311610c7857829003601f168201915b505050505081526020019060010190610bfd565b50505050815260200160048201805480602002602001604051908101604052809291908181526020016000905b82821015610d82578382906000526020600020018054610cf590613b8e565b80601f0160208091040260200160405190810160405280929190818152602001828054610d2190613b8e565b8015610d6e5780601f10610d4357610100808354040283529160200191610d6e565b820191906000526020600020905b815481529060010190602001808311610d5157829003601f168201915b505050505081526020019060010190610cd6565b5050505081526020016005820154815260200160068201548152602001600782015481525050908060140160009054906101000a900460070b905089565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dee61251b565b73ffffffffffffffffffffffffffffffffffffffff16610e0c61171a565b73ffffffffffffffffffffffffffffffffffffffff1614610e62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5990613b3f565b60405180910390fd5b80600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60048054610eb390613b8e565b80601f0160208091040260200160405190810160405280929190818152602001828054610edf90613b8e565b8015610f2c5780601f10610f0157610100808354040283529160200191610f2c565b820191906000526020600020905b815481529060010190602001808311610f0f57829003601f168201915b505050505081565b610f3c61251b565b73ffffffffffffffffffffffffffffffffffffffff16610f5a61171a565b73ffffffffffffffffffffffffffffffffffffffff1614610fb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa790613b3f565b60405180910390fd5b610fba6000612523565b565b808060000190610fcc9190613bcf565b610fd682826105b4565b611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90613ca4565b60405180910390fd5b600360159054906101000a900460ff16611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b90613d10565b60405180910390fd5b8280600001906110749190613bcf565b600115156002838360405161108a929190613a44565b908152602001604051809103902060000160009054906101000a900460ff161515146110eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e290613d7c565b60405180910390fd5b6000341161112e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112590613de8565b60405180910390fd5b60028580600001906111409190613bcf565b60405161114e929190613a44565b9081526020016040518091039020600101543410156111a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119990613e7a565b60405180910390fd5b60028580600001906111b49190613bcf565b6040516111c2929190613a44565b908152602001604051809103902060020154341115611216576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120d90613f0c565b60405180910390fd5b600085606001602081019061122b9190613f58565b1561135857600160028780600001906112449190613bcf565b604051611252929190613a44565b90815260200160405180910390206003015461126e9190613f85565b60028780600001906112809190613bcf565b60405161128e929190613a44565b90815260200160405180910390206004016000018054905011156112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de9061402b565b60405180910390fd5b61135160028780600001906112fc9190613bcf565b60405161130a929190613a44565b90815260200160405180910390206004013488806020019061132c919061404b565b8a806040019061133c919061404b565b8c806080019061134c919061404b565b6125e7565b905061147c565b6001600287806000019061136c9190613bcf565b60405161137a929190613a44565b9081526020016040518091039020600301546113969190613f85565b60028780600001906113a89190613bcf565b6040516113b6929190613a44565b9081526020016040518091039020600c0160000180549050111561140f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114069061402b565b60405180910390fd5b61147960028780600001906114249190613bcf565b604051611432929190613a44565b9081526020016040518091039020600c0134888060200190611454919061404b565b8a8060400190611464919061404b565b8c8060800190611474919061404b565b6125e7565b90505b611484612be1565b868060200190611494919061404b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505081600001819052508680604001906114ef919061404b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050816020018190525086806080019061154a919061404b565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050816040018190525060028780600001906115a79190613bcf565b6040516115b5929190613a44565b908152602001604051809103902060140160009054906101000a900460070b816060019060070b908160070b815250503373ffffffffffffffffffffffffffffffffffffffff1687806000019061160c9190613bcf565b60405161161a929190613a44565b60405180910390207f68f6fc9b4292a4019c38f766d951dada112bf514a9fa2245e113dd0d72f286158980600001906116539190613bcf565b33348d60600160208101906116689190613f58565b6116a7576040518060400160405280600481526020017f444f574e000000000000000000000000000000000000000000000000000000008152506116de565b6040518060400160405280600281526020017f55500000000000000000000000000000000000000000000000000000000000008152505b8989600001518a602001518b606001518c604001516040516117099a99989796959493929190614114565b60405180910390a350505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900460ff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dd90614212565b60405180910390fd5b838360011515600283836040516117fe929190613a44565b908152602001604051809103902060000160009054906101000a900460ff1615151461185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185690613d7c565b60405180910390fd5b600060028787604051611873929190613a44565b908152602001604051809103902090506000816004016000018054905014806118a65750600081600c0160000180549050145b156119555760008082600c0160000180549050146118c75781600c016118cc565b816004015b90506000816006015490506118e38989848a612767565b7fd86802201c3bf5d79ef71027c49cdfdee99fa298848917618ba148d098f15f74898984600001805490508486600601548b60405161192796959493929190614232565b60405180910390a181600001805490508260060154141561194d5761194c8989612915565b5b505050611cd9565b600081600c01905060008260040190508260000160059054906101000a900460030b60030b8360000160019054906101000a900460030b60030b12156119a25782600401915082600c0190505b60006119ae8383612aa1565b905060008863ffffffff168260400151116119cd5781604001516119d5565b8863ffffffff165b905060008185600601546119e99190613a8c565b90506000856006015490505b81811015611c1057600060648560200151886005015460648a6000018681548110611a2357611a2261428e565b5b9060005260206000200154611a3891906142bd565b611a429190614346565b611a4c91906142bd565b611a569190614346565b9050611acd876001018381548110611a7157611a7061428e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886000018481548110611ab257611ab161428e565b5b906000526020600020015483611ac89190613a8c565b612b2a565b866001018281548110611ae357611ae261428e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff31160dbe9f89c709f800e64e885259133c3a7a81d5997e727a35a9bc0896dca8f8f8a6001018681548110611b5d57611b5c61428e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168b6000018781548110611b9e57611b9d61428e565b5b9060005260206000200154868d6004018981548110611bc057611bbf61428e565b5b90600052602060002001604051611bdc9695949392919061440c565b60405180910390a2808760070154611bf49190613a8c565b8760070181905550508080611c089061446f565b9150506119f5565b507fd86802201c3bf5d79ef71027c49cdfdee99fa298848917618ba148d098f15f748c8c87600001805490508860060154858e604051611c5596959493929190614232565b60405180910390a1808560060181905550846000018054905085600601541415611cd257611cc7600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866007015485602001518660000151611cb89190613a8c565b611cc29190613f85565b612b2a565b611cd18c8c612915565b5b5050505050505b505050505050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6890614212565b60405180910390fd5b84846001151560028383604051611d89929190613a44565b908152602001604051809103902060000160009054906101000a900460ff16151514611dea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de190613d7c565b60405180910390fd5b600060028888604051611dfe929190613a44565b90815260200160405180910390209050611e1888886105b4565b15611f3d57600360159054906101000a900460ff16611e6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e639061452a565b60405180910390fd5b848160000160016101000a81548163ffffffff021916908360030b63ffffffff160217905550858160140160006101000a81548167ffffffffffffffff021916908360070b67ffffffffffffffff1602179055508787604051611ed0929190613a44565b60405180910390207f977f157300bb4d69d09b3e083fb55a17a0c02f978e5b220c08173c63de9665aa8989898560000160019054906101000a900460030b866001015487600201548860030154604051611f30979695949392919061454a565b60405180910390a261203d565b60008160000160059054906101000a900460030b60030b141561200a57848160000160056101000a81548163ffffffff021916908360030b63ffffffff1602179055508787604051611f90929190613a44565b60405180910390207fe097bf610f5827ffcdd36eb07b790e6ee02dd498f911ab45664208cfad9323b08989898560000160019054906101000a900460030b8660000160059054906101000a900460030b604051611ff19594939291906145b4565b60405180910390a261200588888689611756565b61203c565b6040517fd56be5db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b5050505050505050565b61204f61251b565b73ffffffffffffffffffffffffffffffffffffffff1661206d61171a565b73ffffffffffffffffffffffffffffffffffffffff16146120c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ba90613b3f565b60405180910390fd5b80600360006101000a81548160ff021916908360ff16021790555050565b6120e961251b565b73ffffffffffffffffffffffffffffffffffffffff1661210761171a565b73ffffffffffffffffffffffffffffffffffffffff161461215d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215490613b3f565b60405180910390fd5b6001600360156101000a81548160ff021916908315150217905550604051806020016040528060008152506004908051906020019061219d929190612c0c565b507f762f260439bb4be3ef6e4dc2786e2e7bd187d3d80b79057d7a424fe98563e33560405160405180910390a1565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461225c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225390614212565b60405180910390fd5b600160028686604051612270929190613a44565b908152602001604051809103902060000160006101000a81548160ff02191690831515021790555082600286866040516122ab929190613a44565b90815260200160405180910390206001018190555081600286866040516122d3929190613a44565b90815260200160405180910390206002018190555080600286866040516122fb929190613a44565b9081526020016040518091039020600301819055505050505050565b61231f61251b565b73ffffffffffffffffffffffffffffffffffffffff1661233d61171a565b73ffffffffffffffffffffffffffffffffffffffff1614612393576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238a90613b3f565b60405180910390fd5b6000600360156101000a81548160ff0219169083151502179055508181600491906123bf929190612c92565b507fbbed56c796999ec9481de9169e54d6f193c57a335189c8b82053d80e263fdbd682826040516123f1929190614602565b60405180910390a15050565b61240561251b565b73ffffffffffffffffffffffffffffffffffffffff1661242361171a565b73ffffffffffffffffffffffffffffffffffffffff1614612479576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247090613b3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156124e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e090614698565b60405180910390fd5b6124f281612523565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008860000188908060018154018082558091505060019003906000526020600020016000909190919091505588600101339080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550886002018787909180600181540180825580915050600190039060005260206000200160009091929091929091929091925091906126b8929190612d18565b50886003018585909180600181540180825580915050600190039060005260206000200160009091929091929091929091925091906126f8929190612d18565b5088600401838390918060018154018082558091505060019003906000526020600020016000909192909192909192909192509190612738929190612d18565b508789600501600082825461274d9190613a8c565b925050819055508860050154905098975050505050505050565b6000826006015483600001805490506127809190613f85565b905060008263ffffffff168211612797578161279f565b8263ffffffff165b905060008185600601546127b39190613a8c565b90506000856006015490505b81811015612902576128318660010182815481106127e0576127df61428e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168760000183815481106128215761282061428e565b5b9060005260206000200154612b2a565b7fb9b3cf88e16ddd6b941ffa04b763047af17bafd3cdecef4d26d46f43e64c1205888888600101848154811061286a5761286961428e565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168960000185815481106128ab576128aa61428e565b5b90600052602060002001548a60040186815481106128cc576128cb61428e565b5b906000526020600020016040516128e79594939291906146b8565b60405180910390a180806128fa9061446f565b9150506127bf565b5080856006018190555050505050505050565b60028282604051612927929190613a44565b9081526020016040518091039020600401600080820160006129499190612d9e565b6001820160006129599190612dbf565b6002820160006129699190612de0565b6003820160006129799190612de0565b6004820160006129899190612de0565b6005820160009055600682016000905560078201600090555050600282826040516129b5929190613a44565b9081526020016040518091039020600c01600080820160006129d79190612d9e565b6001820160006129e79190612dbf565b6002820160006129f79190612de0565b600382016000612a079190612de0565b600482016000612a179190612de0565b600582016000905560068201600090556007820160009055505060028282604051612a43929190613a44565b908152602001604051809103902060000160016101000a81549063ffffffff021916905560028282604051612a79929190613a44565b908152602001604051809103902060000160056101000a81549063ffffffff02191690555050565b612aa9612e01565b600060648360050154600360009054906101000a900460ff1660ff16612acf91906142bd565b612ad99190614346565b9050600084600601548560000180549050612af49190613f85565b90506040518060600160405280838152602001838660050154612b179190613f85565b8152602001828152509250505092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff16600084604051612b5390614733565b600060405180830381858888f193505050503d8060008114612b91576040519150601f19603f3d011682016040523d82523d6000602084013e612b96565b606091505b509150915081612bdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bd290614794565b60405180910390fd5b50505050565b6040518060800160405280606081526020016060815260200160608152602001600060070b81525090565b828054612c1890613b8e565b90600052602060002090601f016020900481019282612c3a5760008555612c81565b82601f10612c5357805160ff1916838001178555612c81565b82800160010185558215612c81579182015b82811115612c80578251825591602001919060010190612c65565b5b509050612c8e9190612e22565b5090565b828054612c9e90613b8e565b90600052602060002090601f016020900481019282612cc05760008555612d07565b82601f10612cd957803560ff1916838001178555612d07565b82800160010185558215612d07579182015b82811115612d06578235825591602001919060010190612ceb565b5b509050612d149190612e22565b5090565b828054612d2490613b8e565b90600052602060002090601f016020900481019282612d465760008555612d8d565b82601f10612d5f57803560ff1916838001178555612d8d565b82800160010185558215612d8d579182015b82811115612d8c578235825591602001919060010190612d71565b5b509050612d9a9190612e22565b5090565b5080546000825590600052602060002090810190612dbc9190612e22565b50565b5080546000825590600052602060002090810190612ddd9190612e22565b50565b5080546000825590600052602060002090810190612dfe9190612e3f565b50565b60405180606001604052806000815260200160008152602001600081525090565b5b80821115612e3b576000816000905550600101612e23565b5090565b5b80821115612e5f5760008181612e569190612e63565b50600101612e40565b5090565b508054612e6f90613b8e565b6000825580601f10612e815750612ea0565b601f016020900490600052602060002090810190612e9f9190612e22565b5b50565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112612edc57612edb612eb7565b5b8235905067ffffffffffffffff811115612ef957612ef8612ebc565b5b602083019150836001820283011115612f1557612f14612ec1565b5b9250929050565b60008060208385031215612f3357612f32612ead565b5b600083013567ffffffffffffffff811115612f5157612f50612eb2565b5b612f5d85828601612ec6565b92509250509250929050565b60008115159050919050565b612f7e81612f69565b82525050565b6000602082019050612f996000830184612f75565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fca82612f9f565b9050919050565b612fda81612fbf565b8114612fe557600080fd5b50565b600081359050612ff781612fd1565b92915050565b60006020828403121561301357613012612ead565b5b600061302184828501612fe8565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130788261302f565b810181811067ffffffffffffffff8211171561309757613096613040565b5b80604052505050565b60006130aa612ea3565b90506130b6828261306f565b919050565b600067ffffffffffffffff8211156130d6576130d5613040565b5b6130df8261302f565b9050602081019050919050565b82818337600083830152505050565b600061310e613109846130bb565b6130a0565b90508281526020810184848401111561312a5761312961302a565b5b6131358482856130ec565b509392505050565b600082601f83011261315257613151612eb7565b5b81356131628482602086016130fb565b91505092915050565b60006020828403121561318157613180612ead565b5b600082013567ffffffffffffffff81111561319f5761319e612eb2565b5b6131ab8482850161313d565b91505092915050565b60008160030b9050919050565b6131ca816131b4565b82525050565b6000819050919050565b6131e3816131d0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61321e816131d0565b82525050565b60006132308383613215565b60208301905092915050565b6000602082019050919050565b6000613254826131e9565b61325e81856131f4565b935061326983613205565b8060005b8381101561329a5781516132818882613224565b975061328c8361323c565b92505060018101905061326d565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132dc81612fbf565b82525050565b60006132ee83836132d3565b60208301905092915050565b6000602082019050919050565b6000613312826132a7565b61331c81856132b2565b9350613327836132c3565b8060005b8381101561335857815161333f88826132e2565b975061334a836132fa565b92505060018101905061332b565b5085935050505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600081519050919050565b600082825260208201905092915050565b60005b838110156133cb5780820151818401526020810190506133b0565b838111156133da576000848401525b50505050565b60006133eb82613391565b6133f5818561339c565b93506134058185602086016133ad565b61340e8161302f565b840191505092915050565b600061342583836133e0565b905092915050565b6000602082019050919050565b600061344582613365565b61344f8185613370565b93508360208202850161346185613381565b8060005b8581101561349d578484038952815161347e8582613419565b94506134898361342d565b925060208a01995050600181019050613465565b50829750879550505050505092915050565b60006101008301600083015184820360008601526134cd8282613249565b915050602083015184820360208601526134e78282613307565b91505060408301518482036040860152613501828261343a565b9150506060830151848203606086015261351b828261343a565b91505060808301518482036080860152613535828261343a565b91505060a083015161354a60a0860182613215565b5060c083015161355d60c0860182613215565b5060e083015161357060e0860182613215565b508091505092915050565b60008160070b9050919050565b6135918161357b565b82525050565b6000610120820190506135ad600083018c612f75565b6135ba602083018b6131c1565b6135c7604083018a6131c1565b6135d460608301896131da565b6135e160808301886131da565b6135ee60a08301876131da565b81810360c083015261360081866134af565b905081810360e083015261361481856134af565b9050613624610100830184613588565b9a9950505050505050505050565b61363b81612fbf565b82525050565b60006020820190506136566000830184613632565b92915050565b600081519050919050565b600082825260208201905092915050565b60006136838261365c565b61368d8185613667565b935061369d8185602086016133ad565b6136a68161302f565b840191505092915050565b600060208201905081810360008301526136cb8184613678565b905092915050565b600080fd5b600060a082840312156136ee576136ed6136d3565b5b81905092915050565b60006020828403121561370d5761370c612ead565b5b600082013567ffffffffffffffff81111561372b5761372a612eb2565b5b613737848285016136d8565b91505092915050565b600060ff82169050919050565b61375681613740565b82525050565b6000602082019050613771600083018461374d565b92915050565b600063ffffffff82169050919050565b61379081613777565b811461379b57600080fd5b50565b6000813590506137ad81613787565b92915050565b6137bc8161357b565b81146137c757600080fd5b50565b6000813590506137d9816137b3565b92915050565b600080600080606085870312156137f9576137f8612ead565b5b600085013567ffffffffffffffff81111561381757613816612eb2565b5b61382387828801612ec6565b945094505060206138368782880161379e565b9250506040613847878288016137ca565b91505092959194509250565b61385c816131b4565b811461386757600080fd5b50565b60008135905061387981613853565b92915050565b60008060008060006080868803121561389b5761389a612ead565b5b600086013567ffffffffffffffff8111156138b9576138b8612eb2565b5b6138c588828901612ec6565b955095505060206138d8888289016137ca565b93505060406138e98882890161386a565b92505060606138fa8882890161379e565b9150509295509295909350565b61391081613740565b811461391b57600080fd5b50565b60008135905061392d81613907565b92915050565b60006020828403121561394957613948612ead565b5b60006139578482850161391e565b91505092915050565b613969816131d0565b811461397457600080fd5b50565b60008135905061398681613960565b92915050565b6000806000806000608086880312156139a8576139a7612ead565b5b600086013567ffffffffffffffff8111156139c6576139c5612eb2565b5b6139d288828901612ec6565b955095505060206139e588828901613977565b93505060406139f688828901613977565b9250506060613a0788828901613977565b9150509295509295909350565b600081905092915050565b6000613a2b8385613a14565b9350613a388385846130ec565b82840190509392505050565b6000613a51828486613a1f565b91508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a97826131d0565b9150613aa2836131d0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613ad757613ad6613a5d565b5b828201905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b29602083613ae2565b9150613b3482613af3565b602082019050919050565b60006020820190508181036000830152613b5881613b1c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613ba657607f821691505b60208210811415613bba57613bb9613b5f565b5b50919050565b600080fd5b600080fd5b600080fd5b60008083356001602003843603038112613bec57613beb613bc0565b5b80840192508235915067ffffffffffffffff821115613c0e57613c0d613bc5565b5b602083019250600182023603831315613c2a57613c29613bca565b5b509250929050565b7f5468697320706f6f6c20686173206120726f756e6420696e2070726f6772657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613c8e602183613ae2565b9150613c9982613c32565b604082019050919050565b60006020820190508181036000830152613cbd81613c81565b9050919050565b7f5468652067616d65206973206e6f742072756e6e696e67000000000000000000600082015250565b6000613cfa601783613ae2565b9150613d0582613cc4565b602082019050919050565b60006020820190508181036000830152613d2981613ced565b9050919050565b7f506f6f6c20646f6573206e6f7420657869737400000000000000000000000000600082015250565b6000613d66601383613ae2565b9150613d7182613d30565b602082019050919050565b60006020820190508181036000830152613d9581613d59565b9050919050565b7f4e6565647320746f2073656e64204d6174696320746f20747261646500000000600082015250565b6000613dd2601c83613ae2565b9150613ddd82613d9c565b602082019050919050565b60006020820190508181036000830152613e0181613dc5565b9050919050565b7f547261646520616d6f756e742073686f756c642062652068696768657220746860008201527f616e20746865206d696e696d756d000000000000000000000000000000000000602082015250565b6000613e64602e83613ae2565b9150613e6f82613e08565b604082019050919050565b60006020820190508181036000830152613e9381613e57565b9050919050565b7f547261646520616d6f756e742073686f756c64206265206c6f7765722074686160008201527f6e20746865206d6178696d756d00000000000000000000000000000000000000602082015250565b6000613ef6602d83613ae2565b9150613f0182613e9a565b604082019050919050565b60006020820190508181036000830152613f2581613ee9565b9050919050565b613f3581612f69565b8114613f4057600080fd5b50565b600081359050613f5281613f2c565b92915050565b600060208284031215613f6e57613f6d612ead565b5b6000613f7c84828501613f43565b91505092915050565b6000613f90826131d0565b9150613f9b836131d0565b925082821015613fae57613fad613a5d565b5b828203905092915050565b7f506f6f6c2069732066756c6c2c207761697420666f72206e65787420726f756e60008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000614015602183613ae2565b915061402082613fb9565b604082019050919050565b6000602082019050818103600083015261404481614008565b9050919050565b6000808335600160200384360303811261406857614067613bc0565b5b80840192508235915067ffffffffffffffff82111561408a57614089613bc5565b5b6020830192506001820236038313156140a6576140a5613bca565b5b509250929050565b60006140ba8385613667565b93506140c78385846130ec565b6140d08361302f565b840190509392505050565b60006140e682613391565b6140f08185613ae2565b93506141008185602086016133ad565b6141098161302f565b840191505092915050565b6000610120820190508181036000830152614130818c8e6140ae565b905061413f602083018b613632565b61414c604083018a6131da565b818103606083015261415e81896140db565b905061416d60808301886131da565b81810360a083015261417f81876140db565b905081810360c083015261419381866140db565b90506141a260e0830185613588565b8181036101008301526141b581846140db565b90509b9a5050505050505050505050565b7f4f6e6c792067616d6520636f6e74726f6c6c65722063616e20646f2074686973600082015250565b60006141fc602083613ae2565b9150614207826141c6565b602082019050919050565b6000602082019050818103600083015261422b816141ef565b9050919050565b600060a082019050818103600083015261424d81888a6140ae565b905061425c60208301876131da565b61426960408301866131da565b61427660608301856131da565b6142836080830184613588565b979650505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006142c8826131d0565b91506142d3836131d0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561430c5761430b613a5d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614351826131d0565b915061435c836131d0565b92508261436c5761436b614317565b5b828204905092915050565b60008190508160005260206000209050919050565b6000815461439981613b8e565b6143a38186613ae2565b945060018216600081146143be57600181146143d057614403565b60ff1983168652602086019350614403565b6143d985614377565b60005b838110156143fb578154818901526001820191506020810190506143dc565b808801955050505b50505092915050565b600060a082019050818103600083015261442781888a6140ae565b90506144366020830187613632565b61444360408301866131da565b61445060608301856131da565b8181036080830152614462818461438c565b9050979650505050505050565b600061447a826131d0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156144ad576144ac613a5d565b5b600182019050919050565b7f5468652067616d65206973206e6f742072756e6e696e672c20726f756e64732060008201527f63616e206f6e6c7920626520656e646564206174207468697320706f696e7400602082015250565b6000614514603f83613ae2565b915061451f826144b8565b604082019050919050565b6000602082019050818103600083015261454381614507565b9050919050565b600060c082019050818103600083015261456581898b6140ae565b90506145746020830188613588565b61458160408301876131c1565b61458e60608301866131da565b61459b60808301856131da565b6145a860a08301846131da565b98975050505050505050565b600060808201905081810360008301526145cf8187896140ae565b90506145de6020830186613588565b6145eb60408301856131c1565b6145f860608301846131c1565b9695505050505050565b6000602082019050818103600083015261461d8184866140ae565b90509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614682602683613ae2565b915061468d82614626565b604082019050919050565b600060208201905081810360008301526146b181614675565b9050919050565b600060808201905081810360008301526146d38187896140ae565b90506146e26020830186613632565b6146ef60408301856131da565b8181036060830152614701818461438c565b90509695505050505050565b50565b600061471d600083613a14565b91506147288261470d565b600082019050919050565b600061473e82614710565b9150819050919050565b7f436f756c646e27742073656e6420657468657200000000000000000000000000600082015250565b600061477e601383613ae2565b915061478982614748565b602082019050919050565b600060208201905081810360008301526147ad81614771565b905091905056fea2646970667358221220c79a6db9b505dd3c92257c140defabe36b3969913fa2a0f9fe58862b8885df8764736f6c634300080a003300000000000000000000000094845900ae3081886c49e0e0833d3ed143506256

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

00000000000000000000000094845900ae3081886c49e0e0833d3ed143506256

-----Decoded View---------------
Arg [0] : newGameController (address): 0x94845900ae3081886c49e0e0833d3ed143506256

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000094845900ae3081886c49e0e0833d3ed143506256


Deployed ByteCode Sourcemap

3219:10426:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10681:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5691:128;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3999:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10883:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3880:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;3956:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5950:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4025:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2513:94;;;;;;;;;;;;;:::i;:::-;;11778:1653;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1862:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3921:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8119:1933;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6678:877;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5825:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6222:120;;;;;;;;;;;;;:::i;:::-;;6348:324;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6065:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2762:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3846:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10681:196;10768:4;10870:1;10828:5;10834:6;;10828:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:26;;:31;;:38;;;;10789:5;10795:6;;10789:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:24;;:29;;:36;;;;:77;;;;:::i;:::-;10788:83;10781:90;;10681:196;;;;:::o;5691:128::-;2093:12;:10;:12::i;:::-;2082:23;;:7;:5;:7::i;:::-;:23;;;2074:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5796:17:::1;5779:14;;:34;;;;;;;;;;;;;;;;;;5691:128:::0;:::o;3999:21::-;;;;;;;;;;;;;:::o;10883:129::-;10957:4;11005:1;10977:5;10983:6;;10977:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:24;;;;;;;;;;;;:29;;;10970:36;;10883:129;;;;:::o;3880:36::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3956:38::-;;;;;;;;;;;;;:::o;5950:109::-;2093:12;:10;:12::i;:::-;2082:23;;:7;:5;:7::i;:::-;:23;;;2074:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6040:13:::1;6027:10;;:26;;;;;;;;;;;;;;;;;;5950:109:::0;:::o;4025:29::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2513:94::-;2093:12;:10;:12::i;:::-;2082:23;;:7;:5;:7::i;:::-;:23;;;2074:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2578:21:::1;2596:1;2578:9;:21::i;:::-;2513:94::o:0;11778:1653::-;11871:9;:16;;;;;;;;:::i;:::-;5271:18;5282:6;;5271:10;:18::i;:::-;5263:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5390:9:::1;;;;;;;;;;;5382:45;;;;;;;;;;;;:::i;:::-;;;;;;;;;11920:9:::2;:16;;;;;;;;:::i;:::-;5535:4;5510:29;;:5;5516:6;;5510:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:21;;;;;;;;;;;;:29;;;5502:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;11965:1:::3;11953:9;:13;11945:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;12027:5;12033:9;:16;;;;;;;;:::i;:::-;12027:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:36;;;12014:9;:49;;12006:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;12142:5;12148:9;:16;;;;;;;;:::i;:::-;12142:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:36;;;12129:9;:49;;12121:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;12235:16;12264:9;:18;;;;;;;;;;:::i;:::-;12260:618;;;12389:1;12351:5;12357:9;:16;;;;;;;;:::i;:::-;12351:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:37;;;:39;;;;:::i;:::-;12301:5;12307:9;:16;;;;;;;;:::i;:::-;12301:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:34;;:39;;:46;;;;:89;;12293:134;;;;;;;;;;;;:::i;:::-;;;;;;;;;12447:121;12454:5;12460:9;:16;;;;;;;;:::i;:::-;12454:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:34;;12490:9;12501;:19;;;;;;;;:::i;:::-;12522:9;:21;;;;;;;;:::i;:::-;12545:9;:22;;;;;;;;:::i;:::-;12447:6;:121::i;:::-;12436:132;;12260:618;;;12689:1;12651:5;12657:9;:16;;;;;;;;:::i;:::-;12651:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:37;;;:39;;;;:::i;:::-;12599:5;12605:9;:16;;;;;;;;:::i;:::-;12599:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:36;;:41;;:48;;;;:91;;12591:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;12747:123;12754:5;12760:9;:16;;;;;;;;:::i;:::-;12754:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:36;;12792:9;12803;:19;;;;;;;;:::i;:::-;12824:9;:21;;;;;;;;:::i;:::-;12847:9;:22;;;;;;;;:::i;:::-;12747:6;:123::i;:::-;12736:134;;12260:618;12886:35;;:::i;:::-;12951:9;:19;;;;;;;;:::i;:::-;12928:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:20;;:42;;;;13005:9;:21;;;;;;;;:::i;:::-;12977:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:25;;:49;;;;13062:9;:22;;;;;;;;:::i;:::-;13033:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:13;:26;;:51;;;;13122:5;13128:9;:16;;;;;;;;:::i;:::-;13122:23;;;;;;;:::i;:::-;;;;;;;;;;;;;:38;;;;;;;;;;;;13091:13;:28;;:69;;;;;;;;;::::0;::::3;13301:10;13178:247;;13283:9;:16;;;;;;;;:::i;:::-;13178:247;;;;;;;:::i;:::-;;;;;;;;;13190:9;:16;;;;;;;;:::i;:::-;13208:10;13220:9;13232;:18;;;;;;;;;;:::i;:::-;13231:34;;;;;;;;;;;;;;;;;;::::0;::::3;;;;;;;;;;;;;;;;;;;::::0;::::3;13267:8;13313:13;:20;;;13335:13;:25;;;13368:13;:28;;;13398:13;:26;;;13178:247;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;11938:1493;;5434:1:::2;;11778:1653:::0;;;:::o;1862:87::-;1908:7;1935:6;;;;;;;;;;;1928:13;;1862:87;:::o;3921:30::-;;;;;;;;;;;;;:::o;8119:1933::-;5139:14;;;;;;;;;;;5125:28;;:10;:28;;;5117:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8256:6:::1;;5535:4;5510:29;;:5;5516:6;;5510:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:21;;;;;;;;;;;;:29;;;5502:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8271:19:::2;8293:5;8299:6;;8293:13;;;;;;;:::i;:::-;;;;;;;;;;;;;8271:35;;8351:1;8319:5;:16;;:21;;:28;;;;:33;:72;;;;8390:1;8356:5;:18;;:23;;:30;;;;:35;8319:72;8315:545;;;8402:28;8467:1:::0;8433:5:::2;:18;;:23;;:30;;;;:35;:75;;8490:5;:18;;8433:75;;;8471:5;:16;;8433:75;8402:106;;8519:15;8537:11;:28;;;8519:46;;8574:42;8585:6;;8593:11;8606:9;8574:10;:42::i;:::-;8630:98;8647:6;;8655:11;:16;;:23;;;;8680:10;8692:11;:28;;;8721:6;8630:98;;;;;;;;;;;:::i;:::-;;;;;;;;8775:11;:16;;:23;;;;8743:11;:28;;;:55;8739:99;;;8811:17;8821:6;;8811:9;:17::i;:::-;8739:99;8846:7;;;;;8315:545;8870:24;8897:5;:18;;8870:45;;8922:23;8948:5;:16;;8922:42;;8996:5;:14;;;;;;;;;;;;8977:33;;:5;:16;;;;;;;;;;;;:33;;;8973:118;;;9031:5;:16;;9021:26;;9065:5;:18;;9056:27;;8973:118;9099:24;9126:38;9148:7;9157:6;9126:21;:38::i;:::-;9099:65;;9171:13;9202:9;9187:24;;:4;:12;;;:24;:51;;9226:4;:12;;;9187:51;;;9214:9;9187:51;;;9171:67;;9245:10;9285:5;9258:7;:24;;;:32;;;;:::i;:::-;9245:45;;9304:6;9313:7;:24;;;9304:33;;9299:432;9343:2;9339:1;:6;9299:432;;;9361:16;9444:3;9423:4;:18;;;9406:7;:13;;;9400:3;9382:7;:12;;9395:1;9382:15;;;;;;;;:::i;:::-;;;;;;;;;;:21;;;;:::i;:::-;:37;;;;:::i;:::-;9381:60;;;;:::i;:::-;:66;;;;:::i;:::-;9361:87;;9457:59;9467:7;:17;;9485:1;9467:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9500:7;:12;;9513:1;9500:15;;;;;;;;:::i;:::-;;;;;;;;;;9489:8;:26;;;;:::i;:::-;9457:9;:59::i;:::-;9605:7;:17;;9623:1;9605:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9530:122;;;9548:6;;9556:7;:17;;9574:1;9556:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9578:7;:12;;9591:1;9578:15;;;;;;;;:::i;:::-;;;;;;;;;;9595:8;9627:7;:21;;9649:1;9627:24;;;;;;;;:::i;:::-;;;;;;;;;9530:122;;;;;;;;;;;:::i;:::-;;;;;;;;9715:8;9688:7;:24;;;:35;;;;:::i;:::-;9661:7;:24;;:62;;;;9352:379;9347:3;;;;;:::i;:::-;;;;9299:432;;;;9744:83;9761:6;;9769:7;:12;;:19;;;;9790:7;:24;;;9816:2;9820:6;9744:83;;;;;;;;;;;:::i;:::-;;;;;;;;9863:2;9836:7;:24;;:29;;;;9904:7;:12;;:19;;;;9876:7;:24;;;:47;9872:175;;;9934:79;9944:10;;;;;;;;;;;9988:7;:24;;;9967:4;:18;;;9956:4;:8;;;:29;;;;:::i;:::-;:56;;;;:::i;:::-;9934:9;:79::i;:::-;10022:17;10032:6;;10022:9;:17::i;:::-;9872:175;8264:1788;;;;;;5570:1;5197::::1;;8119:1933:::0;;;;:::o;6678:877::-;5139:14;;;;;;;;;;;5125:28;;:10;:28;;;5117:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6829:6:::1;;5535:4;5510:29;;:5;5516:6;;5510:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:21;;;;;;;;;;;;:29;;;5502:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6844:26:::2;6873:5;6879:6;;6873:13;;;;;;;:::i;:::-;;;;;;;;;;;;;6844:42;;6898:18;6909:6;;6898:10;:18::i;:::-;6895:655;;;6935:9;;;;;;;;;;;6927:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7047:5;7021:12;:23;;;:31;;;;;;;;;;;;;;;;;;;;7091:6;7061:12;:27;;;:36;;;;;;;;;;;;;;;;;;;;7253:6;;7117:143;;;;;;;:::i;:::-;;;;;;;;;7130:6;;7138;7146:12;:23;;;;;;;;;;;;7171:12;:25;;;7198:12;:25;;;7225:12;:26;;;7117:143;;;;;;;;;;;;:::i;:::-;;;;;;;;6895:655;;;7303:1;7278:12;:21;;;;;;;;;;;;:26;;;7274:276;;;7339:5;7315:12;:21;;;:29;;;;;;;;;;;;;;;;;;;;7435:6;;7360:82;;;;;;;:::i;:::-;;;;;;;;;7371:6;;7379;7387:12;:23;;;;;;;;;;;;7412:12;:21;;;;;;;;;;;;7360:82;;;;;;;;;;:::i;:::-;;;;;;;;7453:37;7464:6;;7472:9;7483:6;7453:10;:37::i;:::-;7274:276;;;7520:22;;;;;;;;;;;;;;7274:276;6895:655;6837:718;5197:1:::1;;6678:877:::0;;;;;:::o;5825:119::-;2093:12;:10;:12::i;:::-;2082:23;;:7;:5;:7::i;:::-;:23;;;2074:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5922:16:::1;5906:13;;:32;;;;;;;;;;;;;;;;;;5825:119:::0;:::o;6222:120::-;2093:12;:10;:12::i;:::-;2082:23;;:7;:5;:7::i;:::-;:23;;;2074:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6279:4:::1;6267:9;;:16;;;;;;;;;;;;;;;;;;6290:21;;;;;;;;;;;::::0;:16:::1;:21;;;;;;;;;;;;:::i;:::-;;6323:13;;;;;;;;;;6222:120::o:0;6348:324::-;5139:14;;;;;;;;;;;5125:28;;:10;:28;;;5117:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;6516:4:::1;6492:5;6498:6;;6492:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:21;;;:28;;;;;;;;;;;;;;;;;;6556:12;6527:5;6533:6;;6527:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:26;;:41;;;;6604:12;6575:5;6581:6;;6575:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:26;;:41;;;;6653:13;6623:5;6629:6;;6623:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:27;;:43;;;;6348:324:::0;;;;;:::o;6065:151::-;2093:12;:10;:12::i;:::-;2082:23;;:7;:5;:7::i;:::-;:23;;;2074:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6142:5:::1;6130:9;;:17;;;;;;;;;;;;;;;;;;6173:6;;6154:16;:25;;;;;;;:::i;:::-;;6191:19;6203:6;;6191:19;;;;;;;:::i;:::-;;;;;;;;6065:151:::0;;:::o;2762:192::-;2093:12;:10;:12::i;:::-;2082:23;;:7;:5;:7::i;:::-;:23;;;2074:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2871:1:::1;2851:22;;:8;:22;;;;2843:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;2927:19;2937:8;2927:9;:19::i;:::-;2762:192:::0;:::o;3846:29::-;;;;;;;;;;;;;:::o;656:98::-;709:7;736:10;729:17;;656:98;:::o;2962:173::-;3018:16;3037:6;;;;;;;;;;;3018:25;;3063:8;3054:6;;:17;;;;;;;;;;;;;;;;;;3118:8;3087:40;;3108:8;3087:40;;;;;;;;;;;;3007:128;2962:173;:::o;11018:466::-;11208:7;11224:8;:13;;11243:6;11224:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11257:8;:18;;11281:10;11257:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11299:8;:16;;11321:6;;11299:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11335:8;:18;;11359:11;;11335:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11378:8;:22;;11406:12;;11378:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11444:6;11426:8;:14;;;:24;;;;;;;:::i;:::-;;;;;;;;11464:8;:14;;;11457:21;;11018:466;;;;;;;;;;:::o;7561:552::-;7682:15;7720:5;:22;;;7700:5;:10;;:17;;;;:42;;;;:::i;:::-;7682:60;;7749:13;7775:9;7765:19;;:7;:19;:41;;7799:7;7765:41;;;7787:9;7765:41;;;7749:57;;7813:10;7851:5;7826;:22;;;:30;;;;:::i;:::-;7813:43;;7870:6;7879:5;:22;;;7870:31;;7865:207;7907:2;7903:1;:6;7865:207;;;7926:44;7936:5;:15;;7952:1;7936:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7956:5;:10;;7967:1;7956:13;;;;;;;;:::i;:::-;;;;;;;;;;7926:9;:44::i;:::-;7984:80;7998:6;;8006:5;:15;;8022:1;8006:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8026:5;:10;;8037:1;8026:13;;;;;;;;:::i;:::-;;;;;;;;;;8041:5;:19;;8061:1;8041:22;;;;;;;;:::i;:::-;;;;;;;;;7984:80;;;;;;;;;;:::i;:::-;;;;;;;;7911:4;;;;;:::i;:::-;;;;7865:207;;;;8105:2;8080:5;:22;;:27;;;;7675:438;;;7561:552;;;;:::o;10456:219::-;10531:5;10537:6;;10531:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:24;;;10524:31;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10569:5;10575:6;;10569:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:26;;;10562:33;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;10609:5;10615:6;;10609:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:24;;;10602:31;;;;;;;;;;;10647:5;10653:6;;10647:13;;;;;;;:::i;:::-;;;;;;;;;;;;;:22;;;10640:29;;;;;;;;;;;10456:219;;:::o;10058:392::-;10178:19;;:::i;:::-;10206:11;10251:3;10236:6;:12;;;10220:13;;;;;;;;;;;:28;;;;;;:::i;:::-;:34;;;;:::i;:::-;10206:48;;10261:15;10301:7;:24;;;10279:7;:12;;:19;;;;:46;;;;:::i;:::-;10261:64;;10339:105;;;;;;;;10366:3;10339:105;;;;10408:3;10393:6;:12;;;:18;;;;:::i;:::-;10339:105;;;;10429:7;10339:105;;;10332:112;;;;10058:392;;;;:::o;13437:204::-;13517:9;13528:17;13557:2;13549:16;;13571:1;13581:6;13549:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13516:76;;;;13607:4;13599:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;13509:132;;13437:204;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:117;566:1;563;556:12;580:117;689:1;686;679:12;716:552;773:8;783:6;833:3;826:4;818:6;814:17;810:27;800:122;;841:79;;:::i;:::-;800:122;954:6;941:20;931:30;;984:18;976:6;973:30;970:117;;;1006:79;;:::i;:::-;970:117;1120:4;1112:6;1108:17;1096:29;;1174:3;1166:4;1158:6;1154:17;1144:8;1140:32;1137:41;1134:128;;;1181:79;;:::i;:::-;1134:128;716:552;;;;;:::o;1274:527::-;1344:6;1352;1401:2;1389:9;1380:7;1376:23;1372:32;1369:119;;;1407:79;;:::i;:::-;1369:119;1555:1;1544:9;1540:17;1527:31;1585:18;1577:6;1574:30;1571:117;;;1607:79;;:::i;:::-;1571:117;1720:64;1776:7;1767:6;1756:9;1752:22;1720:64;:::i;:::-;1702:82;;;;1498:296;1274:527;;;;;:::o;1807:90::-;1841:7;1884:5;1877:13;1870:21;1859:32;;1807:90;;;:::o;1903:109::-;1984:21;1999:5;1984:21;:::i;:::-;1979:3;1972:34;1903:109;;:::o;2018:210::-;2105:4;2143:2;2132:9;2128:18;2120:26;;2156:65;2218:1;2207:9;2203:17;2194:6;2156:65;:::i;:::-;2018:210;;;;:::o;2234:126::-;2271:7;2311:42;2304:5;2300:54;2289:65;;2234:126;;;:::o;2366:96::-;2403:7;2432:24;2450:5;2432:24;:::i;:::-;2421:35;;2366:96;;;:::o;2468:122::-;2541:24;2559:5;2541:24;:::i;:::-;2534:5;2531:35;2521:63;;2580:1;2577;2570:12;2521:63;2468:122;:::o;2596:139::-;2642:5;2680:6;2667:20;2658:29;;2696:33;2723:5;2696:33;:::i;:::-;2596:139;;;;:::o;2741:329::-;2800:6;2849:2;2837:9;2828:7;2824:23;2820:32;2817:119;;;2855:79;;:::i;:::-;2817:119;2975:1;3000:53;3045:7;3036:6;3025:9;3021:22;3000:53;:::i;:::-;2990:63;;2946:117;2741:329;;;;:::o;3076:117::-;3185:1;3182;3175:12;3199:102;3240:6;3291:2;3287:7;3282:2;3275:5;3271:14;3267:28;3257:38;;3199:102;;;:::o;3307:180::-;3355:77;3352:1;3345:88;3452:4;3449:1;3442:15;3476:4;3473:1;3466:15;3493:281;3576:27;3598:4;3576:27;:::i;:::-;3568:6;3564:40;3706:6;3694:10;3691:22;3670:18;3658:10;3655:34;3652:62;3649:88;;;3717:18;;:::i;:::-;3649:88;3757:10;3753:2;3746:22;3536:238;3493:281;;:::o;3780:129::-;3814:6;3841:20;;:::i;:::-;3831:30;;3870:33;3898:4;3890:6;3870:33;:::i;:::-;3780:129;;;:::o;3915:307::-;3976:4;4066:18;4058:6;4055:30;4052:56;;;4088:18;;:::i;:::-;4052:56;4126:29;4148:6;4126:29;:::i;:::-;4118:37;;4210:4;4204;4200:15;4192:23;;3915:307;;;:::o;4228:154::-;4312:6;4307:3;4302;4289:30;4374:1;4365:6;4360:3;4356:16;4349:27;4228:154;;;:::o;4388:410::-;4465:5;4490:65;4506:48;4547:6;4506:48;:::i;:::-;4490:65;:::i;:::-;4481:74;;4578:6;4571:5;4564:21;4616:4;4609:5;4605:16;4654:3;4645:6;4640:3;4636:16;4633:25;4630:112;;;4661:79;;:::i;:::-;4630:112;4751:41;4785:6;4780:3;4775;4751:41;:::i;:::-;4471:327;4388:410;;;;;:::o;4817:338::-;4872:5;4921:3;4914:4;4906:6;4902:17;4898:27;4888:122;;4929:79;;:::i;:::-;4888:122;5046:6;5033:20;5071:78;5145:3;5137:6;5130:4;5122:6;5118:17;5071:78;:::i;:::-;5062:87;;4878:277;4817:338;;;;:::o;5161:507::-;5229:6;5278:2;5266:9;5257:7;5253:23;5249:32;5246:119;;;5284:79;;:::i;:::-;5246:119;5432:1;5421:9;5417:17;5404:31;5462:18;5454:6;5451:30;5448:117;;;5484:79;;:::i;:::-;5448:117;5589:62;5643:7;5634:6;5623:9;5619:22;5589:62;:::i;:::-;5579:72;;5375:286;5161:507;;;;:::o;5674:90::-;5709:7;5752:5;5749:1;5738:20;5727:31;;5674:90;;;:::o;5770:112::-;5853:22;5869:5;5853:22;:::i;:::-;5848:3;5841:35;5770:112;;:::o;5888:77::-;5925:7;5954:5;5943:16;;5888:77;;;:::o;5971:118::-;6058:24;6076:5;6058:24;:::i;:::-;6053:3;6046:37;5971:118;;:::o;6095:114::-;6162:6;6196:5;6190:12;6180:22;;6095:114;;;:::o;6215:174::-;6304:11;6338:6;6333:3;6326:19;6378:4;6373:3;6369:14;6354:29;;6215:174;;;;:::o;6395:132::-;6462:4;6485:3;6477:11;;6515:4;6510:3;6506:14;6498:22;;6395:132;;;:::o;6533:108::-;6610:24;6628:5;6610:24;:::i;:::-;6605:3;6598:37;6533:108;;:::o;6647:179::-;6716:10;6737:46;6779:3;6771:6;6737:46;:::i;:::-;6815:4;6810:3;6806:14;6792:28;;6647:179;;;;:::o;6832:113::-;6902:4;6934;6929:3;6925:14;6917:22;;6832:113;;;:::o;6981:712::-;7090:3;7119:54;7167:5;7119:54;:::i;:::-;7189:76;7258:6;7253:3;7189:76;:::i;:::-;7182:83;;7289:56;7339:5;7289:56;:::i;:::-;7368:7;7399:1;7384:284;7409:6;7406:1;7403:13;7384:284;;;7485:6;7479:13;7512:63;7571:3;7556:13;7512:63;:::i;:::-;7505:70;;7598:60;7651:6;7598:60;:::i;:::-;7588:70;;7444:224;7431:1;7428;7424:9;7419:14;;7384:284;;;7388:14;7684:3;7677:10;;7095:598;;;6981:712;;;;:::o;7699:114::-;7766:6;7800:5;7794:12;7784:22;;7699:114;;;:::o;7819:174::-;7908:11;7942:6;7937:3;7930:19;7982:4;7977:3;7973:14;7958:29;;7819:174;;;;:::o;7999:132::-;8066:4;8089:3;8081:11;;8119:4;8114:3;8110:14;8102:22;;7999:132;;;:::o;8137:108::-;8214:24;8232:5;8214:24;:::i;:::-;8209:3;8202:37;8137:108;;:::o;8251:179::-;8320:10;8341:46;8383:3;8375:6;8341:46;:::i;:::-;8419:4;8414:3;8410:14;8396:28;;8251:179;;;;:::o;8436:113::-;8506:4;8538;8533:3;8529:14;8521:22;;8436:113;;;:::o;8585:712::-;8694:3;8723:54;8771:5;8723:54;:::i;:::-;8793:76;8862:6;8857:3;8793:76;:::i;:::-;8786:83;;8893:56;8943:5;8893:56;:::i;:::-;8972:7;9003:1;8988:284;9013:6;9010:1;9007:13;8988:284;;;9089:6;9083:13;9116:63;9175:3;9160:13;9116:63;:::i;:::-;9109:70;;9202:60;9255:6;9202:60;:::i;:::-;9192:70;;9048:224;9035:1;9032;9028:9;9023:14;;8988:284;;;8992:14;9288:3;9281:10;;8699:598;;;8585:712;;;;:::o;9303:124::-;9380:6;9414:5;9408:12;9398:22;;9303:124;;;:::o;9433:184::-;9532:11;9566:6;9561:3;9554:19;9606:4;9601:3;9597:14;9582:29;;9433:184;;;;:::o;9623:142::-;9700:4;9723:3;9715:11;;9753:4;9748:3;9744:14;9736:22;;9623:142;;;:::o;9771:99::-;9823:6;9857:5;9851:12;9841:22;;9771:99;;;:::o;9876:159::-;9950:11;9984:6;9979:3;9972:19;10024:4;10019:3;10015:14;10000:29;;9876:159;;;;:::o;10041:307::-;10109:1;10119:113;10133:6;10130:1;10127:13;10119:113;;;10218:1;10213:3;10209:11;10203:18;10199:1;10194:3;10190:11;10183:39;10155:2;10152:1;10148:10;10143:15;;10119:113;;;10250:6;10247:1;10244:13;10241:101;;;10330:1;10321:6;10316:3;10312:16;10305:27;10241:101;10090:258;10041:307;;;:::o;10354:344::-;10432:3;10460:39;10493:5;10460:39;:::i;:::-;10515:61;10569:6;10564:3;10515:61;:::i;:::-;10508:68;;10585:52;10630:6;10625:3;10618:4;10611:5;10607:16;10585:52;:::i;:::-;10662:29;10684:6;10662:29;:::i;:::-;10657:3;10653:39;10646:46;;10436:262;10354:344;;;;:::o;10704:196::-;10793:10;10828:66;10890:3;10882:6;10828:66;:::i;:::-;10814:80;;10704:196;;;;:::o;10906:123::-;10986:4;11018;11013:3;11009:14;11001:22;;10906:123;;;:::o;11063:971::-;11192:3;11221:64;11279:5;11221:64;:::i;:::-;11301:86;11380:6;11375:3;11301:86;:::i;:::-;11294:93;;11413:3;11458:4;11450:6;11446:17;11441:3;11437:27;11488:66;11548:5;11488:66;:::i;:::-;11577:7;11608:1;11593:396;11618:6;11615:1;11612:13;11593:396;;;11689:9;11683:4;11679:20;11674:3;11667:33;11740:6;11734:13;11768:84;11847:4;11832:13;11768:84;:::i;:::-;11760:92;;11875:70;11938:6;11875:70;:::i;:::-;11865:80;;11974:4;11969:3;11965:14;11958:21;;11653:336;11640:1;11637;11633:9;11628:14;;11593:396;;;11597:14;12005:4;11998:11;;12025:3;12018:10;;11197:837;;;;;11063:971;;;;:::o;12112:2193::-;12231:3;12267:6;12262:3;12258:16;12356:4;12349:5;12345:16;12339:23;12409:3;12403:4;12399:14;12392:4;12387:3;12383:14;12376:38;12435:103;12533:4;12519:12;12435:103;:::i;:::-;12427:111;;12284:265;12636:4;12629:5;12625:16;12619:23;12689:3;12683:4;12679:14;12672:4;12667:3;12663:14;12656:38;12715:103;12813:4;12799:12;12715:103;:::i;:::-;12707:111;;12559:270;12914:4;12907:5;12903:16;12897:23;12967:3;12961:4;12957:14;12950:4;12945:3;12941:14;12934:38;12993:123;13111:4;13097:12;12993:123;:::i;:::-;12985:131;;12839:288;13214:4;13207:5;13203:16;13197:23;13267:3;13261:4;13257:14;13250:4;13245:3;13241:14;13234:38;13293:123;13411:4;13397:12;13293:123;:::i;:::-;13285:131;;13137:290;13518:4;13511:5;13507:16;13501:23;13571:3;13565:4;13561:14;13554:4;13549:3;13545:14;13538:38;13597:123;13715:4;13701:12;13597:123;:::i;:::-;13589:131;;13437:294;13814:4;13807:5;13803:16;13797:23;13833:63;13890:4;13885:3;13881:14;13867:12;13833:63;:::i;:::-;13741:165;14000:4;13993:5;13989:16;13983:23;14019:63;14076:4;14071:3;14067:14;14053:12;14019:63;:::i;:::-;13916:176;14186:4;14179:5;14175:16;14169:23;14205:63;14262:4;14257:3;14253:14;14239:12;14205:63;:::i;:::-;14102:176;14295:4;14288:11;;12236:2069;12112:2193;;;;:::o;14311:90::-;14346:7;14389:5;14386:1;14375:20;14364:31;;14311:90;;;:::o;14407:112::-;14490:22;14506:5;14490:22;:::i;:::-;14485:3;14478:35;14407:112;;:::o;14525:1374::-;14924:4;14962:3;14951:9;14947:19;14939:27;;14976:65;15038:1;15027:9;15023:17;15014:6;14976:65;:::i;:::-;15051:68;15115:2;15104:9;15100:18;15091:6;15051:68;:::i;:::-;15129;15193:2;15182:9;15178:18;15169:6;15129:68;:::i;:::-;15207:72;15275:2;15264:9;15260:18;15251:6;15207:72;:::i;:::-;15289:73;15357:3;15346:9;15342:19;15333:6;15289:73;:::i;:::-;15372;15440:3;15429:9;15425:19;15416:6;15372:73;:::i;:::-;15493:9;15487:4;15483:20;15477:3;15466:9;15462:19;15455:49;15521:108;15624:4;15615:6;15521:108;:::i;:::-;15513:116;;15677:9;15671:4;15667:20;15661:3;15650:9;15646:19;15639:49;15705:108;15808:4;15799:6;15705:108;:::i;:::-;15697:116;;15823:69;15887:3;15876:9;15872:19;15863:6;15823:69;:::i;:::-;14525:1374;;;;;;;;;;;;:::o;15905:118::-;15992:24;16010:5;15992:24;:::i;:::-;15987:3;15980:37;15905:118;;:::o;16029:222::-;16122:4;16160:2;16149:9;16145:18;16137:26;;16173:71;16241:1;16230:9;16226:17;16217:6;16173:71;:::i;:::-;16029:222;;;;:::o;16257:98::-;16308:6;16342:5;16336:12;16326:22;;16257:98;;;:::o;16361:168::-;16444:11;16478:6;16473:3;16466:19;16518:4;16513:3;16509:14;16494:29;;16361:168;;;;:::o;16535:360::-;16621:3;16649:38;16681:5;16649:38;:::i;:::-;16703:70;16766:6;16761:3;16703:70;:::i;:::-;16696:77;;16782:52;16827:6;16822:3;16815:4;16808:5;16804:16;16782:52;:::i;:::-;16859:29;16881:6;16859:29;:::i;:::-;16854:3;16850:39;16843:46;;16625:270;16535:360;;;;:::o;16901:309::-;17012:4;17050:2;17039:9;17035:18;17027:26;;17099:9;17093:4;17089:20;17085:1;17074:9;17070:17;17063:47;17127:76;17198:4;17189:6;17127:76;:::i;:::-;17119:84;;16901:309;;;;:::o;17216:117::-;17325:1;17322;17315:12;17384:240;17465:5;17506:3;17497:6;17492:3;17488:16;17484:26;17481:113;;;17513:79;;:::i;:::-;17481:113;17612:6;17603:15;;17384:240;;;;:::o;17630:559::-;17724:6;17773:2;17761:9;17752:7;17748:23;17744:32;17741:119;;;17779:79;;:::i;:::-;17741:119;17927:1;17916:9;17912:17;17899:31;17957:18;17949:6;17946:30;17943:117;;;17979:79;;:::i;:::-;17943:117;18084:88;18164:7;18155:6;18144:9;18140:22;18084:88;:::i;:::-;18074:98;;17870:312;17630:559;;;;:::o;18195:86::-;18230:7;18270:4;18263:5;18259:16;18248:27;;18195:86;;;:::o;18287:112::-;18370:22;18386:5;18370:22;:::i;:::-;18365:3;18358:35;18287:112;;:::o;18405:214::-;18494:4;18532:2;18521:9;18517:18;18509:26;;18545:67;18609:1;18598:9;18594:17;18585:6;18545:67;:::i;:::-;18405:214;;;;:::o;18625:93::-;18661:7;18701:10;18694:5;18690:22;18679:33;;18625:93;;;:::o;18724:120::-;18796:23;18813:5;18796:23;:::i;:::-;18789:5;18786:34;18776:62;;18834:1;18831;18824:12;18776:62;18724:120;:::o;18850:137::-;18895:5;18933:6;18920:20;18911:29;;18949:32;18975:5;18949:32;:::i;:::-;18850:137;;;;:::o;18993:118::-;19064:22;19080:5;19064:22;:::i;:::-;19057:5;19054:33;19044:61;;19101:1;19098;19091:12;19044:61;18993:118;:::o;19117:135::-;19161:5;19199:6;19186:20;19177:29;;19215:31;19240:5;19215:31;:::i;:::-;19117:135;;;;:::o;19258:811::-;19343:6;19351;19359;19367;19416:2;19404:9;19395:7;19391:23;19387:32;19384:119;;;19422:79;;:::i;:::-;19384:119;19570:1;19559:9;19555:17;19542:31;19600:18;19592:6;19589:30;19586:117;;;19622:79;;:::i;:::-;19586:117;19735:64;19791:7;19782:6;19771:9;19767:22;19735:64;:::i;:::-;19717:82;;;;19513:296;19848:2;19874:52;19918:7;19909:6;19898:9;19894:22;19874:52;:::i;:::-;19864:62;;19819:117;19975:2;20001:51;20044:7;20035:6;20024:9;20020:22;20001:51;:::i;:::-;19991:61;;19946:116;19258:811;;;;;;;:::o;20075:118::-;20146:22;20162:5;20146:22;:::i;:::-;20139:5;20136:33;20126:61;;20183:1;20180;20173:12;20126:61;20075:118;:::o;20199:135::-;20243:5;20281:6;20268:20;20259:29;;20297:31;20322:5;20297:31;:::i;:::-;20199:135;;;;:::o;20340:953::-;20432:6;20440;20448;20456;20464;20513:3;20501:9;20492:7;20488:23;20484:33;20481:120;;;20520:79;;:::i;:::-;20481:120;20668:1;20657:9;20653:17;20640:31;20698:18;20690:6;20687:30;20684:117;;;20720:79;;:::i;:::-;20684:117;20833:64;20889:7;20880:6;20869:9;20865:22;20833:64;:::i;:::-;20815:82;;;;20611:296;20946:2;20972:51;21015:7;21006:6;20995:9;20991:22;20972:51;:::i;:::-;20962:61;;20917:116;21072:2;21098:51;21141:7;21132:6;21121:9;21117:22;21098:51;:::i;:::-;21088:61;;21043:116;21198:2;21224:52;21268:7;21259:6;21248:9;21244:22;21224:52;:::i;:::-;21214:62;;21169:117;20340:953;;;;;;;;:::o;21299:118::-;21370:22;21386:5;21370:22;:::i;:::-;21363:5;21360:33;21350:61;;21407:1;21404;21397:12;21350:61;21299:118;:::o;21423:135::-;21467:5;21505:6;21492:20;21483:29;;21521:31;21546:5;21521:31;:::i;:::-;21423:135;;;;:::o;21564:325::-;21621:6;21670:2;21658:9;21649:7;21645:23;21641:32;21638:119;;;21676:79;;:::i;:::-;21638:119;21796:1;21821:51;21864:7;21855:6;21844:9;21840:22;21821:51;:::i;:::-;21811:61;;21767:115;21564:325;;;;:::o;21895:122::-;21968:24;21986:5;21968:24;:::i;:::-;21961:5;21958:35;21948:63;;22007:1;22004;21997:12;21948:63;21895:122;:::o;22023:139::-;22069:5;22107:6;22094:20;22085:29;;22123:33;22150:5;22123:33;:::i;:::-;22023:139;;;;:::o;22168:963::-;22265:6;22273;22281;22289;22297;22346:3;22334:9;22325:7;22321:23;22317:33;22314:120;;;22353:79;;:::i;:::-;22314:120;22501:1;22490:9;22486:17;22473:31;22531:18;22523:6;22520:30;22517:117;;;22553:79;;:::i;:::-;22517:117;22666:64;22722:7;22713:6;22702:9;22698:22;22666:64;:::i;:::-;22648:82;;;;22444:296;22779:2;22805:53;22850:7;22841:6;22830:9;22826:22;22805:53;:::i;:::-;22795:63;;22750:118;22907:2;22933:53;22978:7;22969:6;22958:9;22954:22;22933:53;:::i;:::-;22923:63;;22878:118;23035:2;23061:53;23106:7;23097:6;23086:9;23082:22;23061:53;:::i;:::-;23051:63;;23006:118;22168:963;;;;;;;;:::o;23137:147::-;23238:11;23275:3;23260:18;;23137:147;;;;:::o;23312:314::-;23426:3;23447:88;23528:6;23523:3;23447:88;:::i;:::-;23440:95;;23545:43;23581:6;23576:3;23569:5;23545:43;:::i;:::-;23613:6;23608:3;23604:16;23597:23;;23312:314;;;;;:::o;23632:291::-;23772:3;23794:103;23893:3;23884:6;23876;23794:103;:::i;:::-;23787:110;;23914:3;23907:10;;23632:291;;;;;:::o;23929:180::-;23977:77;23974:1;23967:88;24074:4;24071:1;24064:15;24098:4;24095:1;24088:15;24115:305;24155:3;24174:20;24192:1;24174:20;:::i;:::-;24169:25;;24208:20;24226:1;24208:20;:::i;:::-;24203:25;;24362:1;24294:66;24290:74;24287:1;24284:81;24281:107;;;24368:18;;:::i;:::-;24281:107;24412:1;24409;24405:9;24398:16;;24115:305;;;;:::o;24426:169::-;24510:11;24544:6;24539:3;24532:19;24584:4;24579:3;24575:14;24560:29;;24426:169;;;;:::o;24601:182::-;24741:34;24737:1;24729:6;24725:14;24718:58;24601:182;:::o;24789:366::-;24931:3;24952:67;25016:2;25011:3;24952:67;:::i;:::-;24945:74;;25028:93;25117:3;25028:93;:::i;:::-;25146:2;25141:3;25137:12;25130:19;;24789:366;;;:::o;25161:419::-;25327:4;25365:2;25354:9;25350:18;25342:26;;25414:9;25408:4;25404:20;25400:1;25389:9;25385:17;25378:47;25442:131;25568:4;25442:131;:::i;:::-;25434:139;;25161:419;;;:::o;25586:180::-;25634:77;25631:1;25624:88;25731:4;25728:1;25721:15;25755:4;25752:1;25745:15;25772:320;25816:6;25853:1;25847:4;25843:12;25833:22;;25900:1;25894:4;25890:12;25921:18;25911:81;;25977:4;25969:6;25965:17;25955:27;;25911:81;26039:2;26031:6;26028:14;26008:18;26005:38;26002:84;;;26058:18;;:::i;:::-;26002:84;25823:269;25772:320;;;:::o;26098:117::-;26207:1;26204;26197:12;26221:117;26330:1;26327;26320:12;26344:117;26453:1;26450;26443:12;26467:724;26544:4;26550:6;26606:11;26593:25;26706:1;26700:4;26696:12;26685:8;26669:14;26665:29;26661:48;26641:18;26637:73;26627:168;;26714:79;;:::i;:::-;26627:168;26826:18;26816:8;26812:33;26804:41;;26878:4;26865:18;26855:28;;26906:18;26898:6;26895:30;26892:117;;;26928:79;;:::i;:::-;26892:117;27036:2;27030:4;27026:13;27018:21;;27093:4;27085:6;27081:17;27065:14;27061:38;27055:4;27051:49;27048:136;;;27103:79;;:::i;:::-;27048:136;26557:634;26467:724;;;;;:::o;27197:220::-;27337:34;27333:1;27325:6;27321:14;27314:58;27406:3;27401:2;27393:6;27389:15;27382:28;27197:220;:::o;27423:366::-;27565:3;27586:67;27650:2;27645:3;27586:67;:::i;:::-;27579:74;;27662:93;27751:3;27662:93;:::i;:::-;27780:2;27775:3;27771:12;27764:19;;27423:366;;;:::o;27795:419::-;27961:4;27999:2;27988:9;27984:18;27976:26;;28048:9;28042:4;28038:20;28034:1;28023:9;28019:17;28012:47;28076:131;28202:4;28076:131;:::i;:::-;28068:139;;27795:419;;;:::o;28220:173::-;28360:25;28356:1;28348:6;28344:14;28337:49;28220:173;:::o;28399:366::-;28541:3;28562:67;28626:2;28621:3;28562:67;:::i;:::-;28555:74;;28638:93;28727:3;28638:93;:::i;:::-;28756:2;28751:3;28747:12;28740:19;;28399:366;;;:::o;28771:419::-;28937:4;28975:2;28964:9;28960:18;28952:26;;29024:9;29018:4;29014:20;29010:1;28999:9;28995:17;28988:47;29052:131;29178:4;29052:131;:::i;:::-;29044:139;;28771:419;;;:::o;29196:169::-;29336:21;29332:1;29324:6;29320:14;29313:45;29196:169;:::o;29371:366::-;29513:3;29534:67;29598:2;29593:3;29534:67;:::i;:::-;29527:74;;29610:93;29699:3;29610:93;:::i;:::-;29728:2;29723:3;29719:12;29712:19;;29371:366;;;:::o;29743:419::-;29909:4;29947:2;29936:9;29932:18;29924:26;;29996:9;29990:4;29986:20;29982:1;29971:9;29967:17;29960:47;30024:131;30150:4;30024:131;:::i;:::-;30016:139;;29743:419;;;:::o;30168:178::-;30308:30;30304:1;30296:6;30292:14;30285:54;30168:178;:::o;30352:366::-;30494:3;30515:67;30579:2;30574:3;30515:67;:::i;:::-;30508:74;;30591:93;30680:3;30591:93;:::i;:::-;30709:2;30704:3;30700:12;30693:19;;30352:366;;;:::o;30724:419::-;30890:4;30928:2;30917:9;30913:18;30905:26;;30977:9;30971:4;30967:20;30963:1;30952:9;30948:17;30941:47;31005:131;31131:4;31005:131;:::i;:::-;30997:139;;30724:419;;;:::o;31149:233::-;31289:34;31285:1;31277:6;31273:14;31266:58;31358:16;31353:2;31345:6;31341:15;31334:41;31149:233;:::o;31388:366::-;31530:3;31551:67;31615:2;31610:3;31551:67;:::i;:::-;31544:74;;31627:93;31716:3;31627:93;:::i;:::-;31745:2;31740:3;31736:12;31729:19;;31388:366;;;:::o;31760:419::-;31926:4;31964:2;31953:9;31949:18;31941:26;;32013:9;32007:4;32003:20;31999:1;31988:9;31984:17;31977:47;32041:131;32167:4;32041:131;:::i;:::-;32033:139;;31760:419;;;:::o;32185:232::-;32325:34;32321:1;32313:6;32309:14;32302:58;32394:15;32389:2;32381:6;32377:15;32370:40;32185:232;:::o;32423:366::-;32565:3;32586:67;32650:2;32645:3;32586:67;:::i;:::-;32579:74;;32662:93;32751:3;32662:93;:::i;:::-;32780:2;32775:3;32771:12;32764:19;;32423:366;;;:::o;32795:419::-;32961:4;32999:2;32988:9;32984:18;32976:26;;33048:9;33042:4;33038:20;33034:1;33023:9;33019:17;33012:47;33076:131;33202:4;33076:131;:::i;:::-;33068:139;;32795:419;;;:::o;33220:116::-;33290:21;33305:5;33290:21;:::i;:::-;33283:5;33280:32;33270:60;;33326:1;33323;33316:12;33270:60;33220:116;:::o;33342:133::-;33385:5;33423:6;33410:20;33401:29;;33439:30;33463:5;33439:30;:::i;:::-;33342:133;;;;:::o;33481:323::-;33537:6;33586:2;33574:9;33565:7;33561:23;33557:32;33554:119;;;33592:79;;:::i;:::-;33554:119;33712:1;33737:50;33779:7;33770:6;33759:9;33755:22;33737:50;:::i;:::-;33727:60;;33683:114;33481:323;;;;:::o;33810:191::-;33850:4;33870:20;33888:1;33870:20;:::i;:::-;33865:25;;33904:20;33922:1;33904:20;:::i;:::-;33899:25;;33943:1;33940;33937:8;33934:34;;;33948:18;;:::i;:::-;33934:34;33993:1;33990;33986:9;33978:17;;33810:191;;;;:::o;34007:220::-;34147:34;34143:1;34135:6;34131:14;34124:58;34216:3;34211:2;34203:6;34199:15;34192:28;34007:220;:::o;34233:366::-;34375:3;34396:67;34460:2;34455:3;34396:67;:::i;:::-;34389:74;;34472:93;34561:3;34472:93;:::i;:::-;34590:2;34585:3;34581:12;34574:19;;34233:366;;;:::o;34605:419::-;34771:4;34809:2;34798:9;34794:18;34786:26;;34858:9;34852:4;34848:20;34844:1;34833:9;34829:17;34822:47;34886:131;35012:4;34886:131;:::i;:::-;34878:139;;34605:419;;;:::o;35030:725::-;35108:4;35114:6;35170:11;35157:25;35270:1;35264:4;35260:12;35249:8;35233:14;35229:29;35225:48;35205:18;35201:73;35191:168;;35278:79;;:::i;:::-;35191:168;35390:18;35380:8;35376:33;35368:41;;35442:4;35429:18;35419:28;;35470:18;35462:6;35459:30;35456:117;;;35492:79;;:::i;:::-;35456:117;35600:2;35594:4;35590:13;35582:21;;35657:4;35649:6;35645:17;35629:14;35625:38;35619:4;35615:49;35612:136;;;35667:79;;:::i;:::-;35612:136;35121:634;35030:725;;;;;:::o;35783:301::-;35879:3;35900:70;35963:6;35958:3;35900:70;:::i;:::-;35893:77;;35980:43;36016:6;36011:3;36004:5;35980:43;:::i;:::-;36048:29;36070:6;36048:29;:::i;:::-;36043:3;36039:39;36032:46;;35783:301;;;;;:::o;36090:364::-;36178:3;36206:39;36239:5;36206:39;:::i;:::-;36261:71;36325:6;36320:3;36261:71;:::i;:::-;36254:78;;36341:52;36386:6;36381:3;36374:4;36367:5;36363:16;36341:52;:::i;:::-;36418:29;36440:6;36418:29;:::i;:::-;36413:3;36409:39;36402:46;;36182:272;36090:364;;;;:::o;36460:1571::-;36881:4;36919:3;36908:9;36904:19;36896:27;;36969:9;36963:4;36959:20;36955:1;36944:9;36940:17;36933:47;36997:86;37078:4;37069:6;37061;36997:86;:::i;:::-;36989:94;;37093:72;37161:2;37150:9;37146:18;37137:6;37093:72;:::i;:::-;37175;37243:2;37232:9;37228:18;37219:6;37175:72;:::i;:::-;37294:9;37288:4;37284:20;37279:2;37268:9;37264:18;37257:48;37322:78;37395:4;37386:6;37322:78;:::i;:::-;37314:86;;37410:73;37478:3;37467:9;37463:19;37454:6;37410:73;:::i;:::-;37531:9;37525:4;37521:20;37515:3;37504:9;37500:19;37493:49;37559:78;37632:4;37623:6;37559:78;:::i;:::-;37551:86;;37685:9;37679:4;37675:20;37669:3;37658:9;37654:19;37647:49;37713:78;37786:4;37777:6;37713:78;:::i;:::-;37705:86;;37801:69;37865:3;37854:9;37850:19;37841:6;37801:69;:::i;:::-;37918:9;37912:4;37908:20;37902:3;37891:9;37887:19;37880:49;37946:78;38019:4;38010:6;37946:78;:::i;:::-;37938:86;;36460:1571;;;;;;;;;;;;;:::o;38037:182::-;38177:34;38173:1;38165:6;38161:14;38154:58;38037:182;:::o;38225:366::-;38367:3;38388:67;38452:2;38447:3;38388:67;:::i;:::-;38381:74;;38464:93;38553:3;38464:93;:::i;:::-;38582:2;38577:3;38573:12;38566:19;;38225:366;;;:::o;38597:419::-;38763:4;38801:2;38790:9;38786:18;38778:26;;38850:9;38844:4;38840:20;38836:1;38825:9;38821:17;38814:47;38878:131;39004:4;38878:131;:::i;:::-;38870:139;;38597:419;;;:::o;39022:763::-;39251:4;39289:3;39278:9;39274:19;39266:27;;39339:9;39333:4;39329:20;39325:1;39314:9;39310:17;39303:47;39367:86;39448:4;39439:6;39431;39367:86;:::i;:::-;39359:94;;39463:72;39531:2;39520:9;39516:18;39507:6;39463:72;:::i;:::-;39545;39613:2;39602:9;39598:18;39589:6;39545:72;:::i;:::-;39627;39695:2;39684:9;39680:18;39671:6;39627:72;:::i;:::-;39709:69;39773:3;39762:9;39758:19;39749:6;39709:69;:::i;:::-;39022:763;;;;;;;;;:::o;39791:180::-;39839:77;39836:1;39829:88;39936:4;39933:1;39926:15;39960:4;39957:1;39950:15;39977:348;40017:7;40040:20;40058:1;40040:20;:::i;:::-;40035:25;;40074:20;40092:1;40074:20;:::i;:::-;40069:25;;40262:1;40194:66;40190:74;40187:1;40184:81;40179:1;40172:9;40165:17;40161:105;40158:131;;;40269:18;;:::i;:::-;40158:131;40317:1;40314;40310:9;40299:20;;39977:348;;;;:::o;40331:180::-;40379:77;40376:1;40369:88;40476:4;40473:1;40466:15;40500:4;40497:1;40490:15;40517:185;40557:1;40574:20;40592:1;40574:20;:::i;:::-;40569:25;;40608:20;40626:1;40608:20;:::i;:::-;40603:25;;40647:1;40637:35;;40652:18;;:::i;:::-;40637:35;40694:1;40691;40687:9;40682:14;;40517:185;;;;:::o;40708:141::-;40757:4;40780:3;40772:11;;40803:3;40800:1;40793:14;40837:4;40834:1;40824:18;40816:26;;40708:141;;;:::o;40879:802::-;40964:3;41001:5;40995:12;41030:36;41056:9;41030:36;:::i;:::-;41082:71;41146:6;41141:3;41082:71;:::i;:::-;41075:78;;41184:1;41173:9;41169:17;41200:1;41195:135;;;;41344:1;41339:336;;;;41162:513;;41195:135;41279:4;41275:9;41264;41260:25;41255:3;41248:38;41315:4;41310:3;41306:14;41299:21;;41195:135;;41339:336;41406:38;41438:5;41406:38;:::i;:::-;41466:1;41480:154;41494:6;41491:1;41488:13;41480:154;;;41568:7;41562:14;41558:1;41553:3;41549:11;41542:35;41618:1;41609:7;41605:15;41594:26;;41516:4;41513:1;41509:12;41504:17;;41480:154;;;41663:1;41658:3;41654:11;41647:18;;41346:329;;41162:513;;40968:713;;40879:802;;;;:::o;41687:856::-;41937:4;41975:3;41964:9;41960:19;41952:27;;42025:9;42019:4;42015:20;42011:1;42000:9;41996:17;41989:47;42053:86;42134:4;42125:6;42117;42053:86;:::i;:::-;42045:94;;42149:72;42217:2;42206:9;42202:18;42193:6;42149:72;:::i;:::-;42231;42299:2;42288:9;42284:18;42275:6;42231:72;:::i;:::-;42313;42381:2;42370:9;42366:18;42357:6;42313:72;:::i;:::-;42433:9;42427:4;42423:20;42417:3;42406:9;42402:19;42395:49;42461:75;42531:4;42522:6;42461:75;:::i;:::-;42453:83;;41687:856;;;;;;;;;:::o;42549:233::-;42588:3;42611:24;42629:5;42611:24;:::i;:::-;42602:33;;42657:66;42650:5;42647:77;42644:103;;;42727:18;;:::i;:::-;42644:103;42774:1;42767:5;42763:13;42756:20;;42549:233;;;:::o;42788:250::-;42928:34;42924:1;42916:6;42912:14;42905:58;42997:33;42992:2;42984:6;42980:15;42973:58;42788:250;:::o;43044:366::-;43186:3;43207:67;43271:2;43266:3;43207:67;:::i;:::-;43200:74;;43283:93;43372:3;43283:93;:::i;:::-;43401:2;43396:3;43392:12;43385:19;;43044:366;;;:::o;43416:419::-;43582:4;43620:2;43609:9;43605:18;43597:26;;43669:9;43663:4;43659:20;43655:1;43644:9;43640:17;43633:47;43697:131;43823:4;43697:131;:::i;:::-;43689:139;;43416:419;;;:::o;43841:866::-;44094:4;44132:3;44121:9;44117:19;44109:27;;44182:9;44176:4;44172:20;44168:1;44157:9;44153:17;44146:47;44210:86;44291:4;44282:6;44274;44210:86;:::i;:::-;44202:94;;44306:68;44370:2;44359:9;44355:18;44346:6;44306:68;:::i;:::-;44384;44448:2;44437:9;44433:18;44424:6;44384:68;:::i;:::-;44462:72;44530:2;44519:9;44515:18;44506:6;44462:72;:::i;:::-;44544:73;44612:3;44601:9;44597:19;44588:6;44544:73;:::i;:::-;44627;44695:3;44684:9;44680:19;44671:6;44627:73;:::i;:::-;43841:866;;;;;;;;;;:::o;44713:636::-;44906:4;44944:3;44933:9;44929:19;44921:27;;44994:9;44988:4;44984:20;44980:1;44969:9;44965:17;44958:47;45022:86;45103:4;45094:6;45086;45022:86;:::i;:::-;45014:94;;45118:68;45182:2;45171:9;45167:18;45158:6;45118:68;:::i;:::-;45196;45260:2;45249:9;45245:18;45236:6;45196:68;:::i;:::-;45274;45338:2;45327:9;45323:18;45314:6;45274:68;:::i;:::-;44713:636;;;;;;;;:::o;45355:329::-;45476:4;45514:2;45503:9;45499:18;45491:26;;45563:9;45557:4;45553:20;45549:1;45538:9;45534:17;45527:47;45591:86;45672:4;45663:6;45655;45591:86;:::i;:::-;45583:94;;45355:329;;;;;:::o;45690:225::-;45830:34;45826:1;45818:6;45814:14;45807:58;45899:8;45894:2;45886:6;45882:15;45875:33;45690:225;:::o;45921:366::-;46063:3;46084:67;46148:2;46143:3;46084:67;:::i;:::-;46077:74;;46160:93;46249:3;46160:93;:::i;:::-;46278:2;46273:3;46269:12;46262:19;;45921:366;;;:::o;46293:419::-;46459:4;46497:2;46486:9;46482:18;46474:26;;46546:9;46540:4;46536:20;46532:1;46521:9;46517:17;46510:47;46574:131;46700:4;46574:131;:::i;:::-;46566:139;;46293:419;;;:::o;46718:745::-;46940:4;46978:3;46967:9;46963:19;46955:27;;47028:9;47022:4;47018:20;47014:1;47003:9;46999:17;46992:47;47056:86;47137:4;47128:6;47120;47056:86;:::i;:::-;47048:94;;47152:72;47220:2;47209:9;47205:18;47196:6;47152:72;:::i;:::-;47234;47302:2;47291:9;47287:18;47278:6;47234:72;:::i;:::-;47353:9;47347:4;47343:20;47338:2;47327:9;47323:18;47316:48;47381:75;47451:4;47442:6;47381:75;:::i;:::-;47373:83;;46718:745;;;;;;;;:::o;47469:114::-;;:::o;47589:398::-;47748:3;47769:83;47850:1;47845:3;47769:83;:::i;:::-;47762:90;;47861:93;47950:3;47861:93;:::i;:::-;47979:1;47974:3;47970:11;47963:18;;47589:398;;;:::o;47993:379::-;48177:3;48199:147;48342:3;48199:147;:::i;:::-;48192:154;;48363:3;48356:10;;47993:379;;;:::o;48378:169::-;48518:21;48514:1;48506:6;48502:14;48495:45;48378:169;:::o;48553:366::-;48695:3;48716:67;48780:2;48775:3;48716:67;:::i;:::-;48709:74;;48792:93;48881:3;48792:93;:::i;:::-;48910:2;48905:3;48901:12;48894:19;;48553:366;;;:::o;48925:419::-;49091:4;49129:2;49118:9;49114:18;49106:26;;49178:9;49172:4;49168:20;49164:1;49153:9;49149:17;49142:47;49206:131;49332:4;49206:131;:::i;:::-;49198:139;;48925:419;;;:::o

Swarm Source

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