ETH Price: $2,313.54 (+0.28%)
Gas: 6.15 Gwei

Contract

0xf5eD70Fbee2B730CD0e86DbeE6ABb8f270F6c283
 

Overview

ETH Balance

0.002421983360506607 ETH

Eth Value

$5.60 (@ $2,313.54/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Mining Token98233522020-04-07 6:28:271625 days ago1586240907IN
0xf5eD70Fb...270F6c283
0 ETH0.000759238
Mining Token97253272020-03-23 3:29:061640 days ago1584934146IN
0xf5eD70Fb...270F6c283
0 ETH0.000939549.9
Ssc M97246812020-03-23 1:05:431640 days ago1584925543IN
0xf5eD70Fb...270F6c283
0 ETH0.00023378
Mining Token97129562020-03-21 4:44:451642 days ago1584765885IN
0xf5eD70Fb...270F6c283
0 ETH0.000879238
Mining Token97126272020-03-21 3:32:101642 days ago1584761530IN
0xf5eD70Fb...270F6c283
0 ETH0.000879238
Ssc M97118422020-03-21 0:39:551642 days ago1584751195IN
0xf5eD70Fb...270F6c283
0 ETH0.00023378
Ssc M97054232020-03-20 0:46:511643 days ago1584665211IN
0xf5eD70Fb...270F6c283
0 ETH0.00023378
Mining Token96986092020-03-18 23:31:131644 days ago1584574273IN
0xf5eD70Fb...270F6c283
0 ETH0.000659426
Ssc M96985002020-03-18 23:09:571644 days ago1584572997IN
0xf5eD70Fb...270F6c283
0 ETH0.000148985.1
UETH96984952020-03-18 23:08:301644 days ago1584572910IN
0xf5eD70Fb...270F6c283
0 ETH0.000155765.1
Mining Token96571362020-03-12 14:09:291650 days ago1584022169IN
0xf5eD70Fb...270F6c283
0 ETH0.011863125
Mining Token96551212020-03-12 6:21:461651 days ago1583994106IN
0xf5eD70Fb...270F6c283
0 ETH0.0015384814
Mining Token96551192020-03-12 6:21:261651 days ago1583994086IN
0xf5eD70Fb...270F6c283
0 ETH0.0015824414.4
Mining Token96482112020-03-11 5:02:211652 days ago1583902941IN
0xf5eD70Fb...270F6c283
0 ETH0.000759238
Mining Token96479832020-03-11 4:12:281652 days ago1583899948IN
0xf5eD70Fb...270F6c283
0 ETH0.000759238
Ssc M96470932020-03-11 0:48:061652 days ago1583887686IN
0xf5eD70Fb...270F6c283
0 ETH0.00023378
Mining Token96399382020-03-09 22:30:311653 days ago1583793031IN
0xf5eD70Fb...270F6c283
0 ETH0.000549525
Mining Token96346832020-03-09 2:47:021654 days ago1583722022IN
0xf5eD70Fb...270F6c283
0 ETH0.000879238
Ssc M96342552020-03-09 1:13:541654 days ago1583716434IN
0xf5eD70Fb...270F6c283
0 ETH0.0003505512
UETH96342462020-03-09 1:12:541654 days ago1583716374IN
0xf5eD70Fb...270F6c283
0 ETH0.000366512
Mining Token96283972020-03-08 3:35:151655 days ago1583638515IN
0xf5eD70Fb...270F6c283
0 ETH0.000879238
Mining Token96278852020-03-08 1:46:441655 days ago1583632004IN
0xf5eD70Fb...270F6c283
0 ETH0.000879238
Ssc M96277552020-03-08 1:19:251655 days ago1583630365IN
0xf5eD70Fb...270F6c283
0 ETH0.00023378
Mining Token96143802020-03-06 0:24:481657 days ago1583454288IN
0xf5eD70Fb...270F6c283
0 ETH0.000879238
Ssc M96143572020-03-06 0:20:111657 days ago1583454011IN
0xf5eD70Fb...270F6c283
0 ETH0.00023378
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
91051002019-12-14 11:36:361740 days ago1576323396
0xf5eD70Fb...270F6c283
0.86 ETH
91050922019-12-14 11:34:131740 days ago1576323253
0xf5eD70Fb...270F6c283
0.99999999 ETH
91050622019-12-14 11:22:061740 days ago1576322526
0xf5eD70Fb...270F6c283
5 ETH
91050592019-12-14 11:20:321740 days ago1576322432
0xf5eD70Fb...270F6c283
5 ETH
91050272019-12-14 11:12:121740 days ago1576321932
0xf5eD70Fb...270F6c283
0.31580609 ETH
91050002019-12-14 11:05:281740 days ago1576321528
0xf5eD70Fb...270F6c283
3 ETH
91049952019-12-14 11:02:591740 days ago1576321379
0xf5eD70Fb...270F6c283
5 ETH
91049932019-12-14 11:02:161740 days ago1576321336
0xf5eD70Fb...270F6c283
0.49999999 ETH
91049932019-12-14 11:02:161740 days ago1576321336
0xf5eD70Fb...270F6c283
5 ETH
91049792019-12-14 10:56:281740 days ago1576320988
0xf5eD70Fb...270F6c283
10 ETH
91049652019-12-14 10:52:131740 days ago1576320733
0xf5eD70Fb...270F6c283
0.49999999 ETH
91049432019-12-14 10:48:051740 days ago1576320485
0xf5eD70Fb...270F6c283
0.49999999 ETH
91049082019-12-14 10:34:241740 days ago1576319664
0xf5eD70Fb...270F6c283
5 ETH
91048922019-12-14 10:29:381740 days ago1576319378
0xf5eD70Fb...270F6c283
5 ETH
91048782019-12-14 10:27:051740 days ago1576319225
0xf5eD70Fb...270F6c283
5 ETH
91048712019-12-14 10:24:591740 days ago1576319099
0xf5eD70Fb...270F6c283
5 ETH
91043492019-12-14 8:02:001740 days ago1576310520
0xf5eD70Fb...270F6c283
0.05526606 ETH
90983512019-12-13 5:08:501741 days ago1576213730
0xf5eD70Fb...270F6c283
3.99999999 ETH
90983432019-12-13 5:07:111741 days ago1576213631
0xf5eD70Fb...270F6c283
5 ETH
90983282019-12-13 5:02:251741 days ago1576213345
0xf5eD70Fb...270F6c283
20 ETH
90983282019-12-13 5:02:251741 days ago1576213345
0xf5eD70Fb...270F6c283
1.29999999 ETH
90982872019-12-13 4:49:301741 days ago1576212570
0xf5eD70Fb...270F6c283
7 ETH
90982722019-12-13 4:46:091741 days ago1576212369
0xf5eD70Fb...270F6c283
14.99999999 ETH
90982652019-12-13 4:45:071741 days ago1576212307
0xf5eD70Fb...270F6c283
1.1 ETH
90982372019-12-13 4:38:451741 days ago1576211925
0xf5eD70Fb...270F6c283
19 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ReserveFund

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2019-08-20
*/

pragma solidity 0.4.24;

contract Auth {

  address internal mainAdmin;
  address internal contractAdmin;
  address internal profitAdmin;
  address internal ethAdmin;
  address internal LAdmin;
  address internal maxSAdmin;
  address internal backupAdmin;
  address internal commissionAdmin;

  event OwnershipTransferred(address indexed _previousOwner, address indexed _newOwner);

  constructor(
    address _mainAdmin,
    address _contractAdmin,
    address _profitAdmin,
    address _ethAdmin,
    address _LAdmin,
    address _maxSAdmin,
    address _backupAdmin,
    address _commissionAdmin
  )
  internal
  {
    mainAdmin = _mainAdmin;
    contractAdmin = _contractAdmin;
    profitAdmin = _profitAdmin;
    ethAdmin = _ethAdmin;
    LAdmin = _LAdmin;
    maxSAdmin = _maxSAdmin;
    backupAdmin = _backupAdmin;
    commissionAdmin = _commissionAdmin;
  }

  modifier onlyMainAdmin() {
    require(isMainAdmin(), "onlyMainAdmin");
    _;
  }

  modifier onlyContractAdmin() {
    require(isContractAdmin() || isMainAdmin(), "onlyContractAdmin");
    _;
  }

  modifier onlyProfitAdmin() {
    require(isProfitAdmin() || isMainAdmin(), "onlyProfitAdmin");
    _;
  }

  modifier onlyEthAdmin() {
    require(isEthAdmin() || isMainAdmin(), "onlyEthAdmin");
    _;
  }

  modifier onlyLAdmin() {
    require(isLAdmin() || isMainAdmin(), "onlyLAdmin");
    _;
  }

  modifier onlyMaxSAdmin() {
    require(isMaxSAdmin() || isMainAdmin(), "onlyMaxSAdmin");
    _;
  }

  modifier onlyBackupAdmin() {
    require(isBackupAdmin() || isMainAdmin(), "onlyBackupAdmin");
    _;
  }

  modifier onlyBackupAdmin2() {
    require(isBackupAdmin(), "onlyBackupAdmin");
    _;
  }

  function isMainAdmin() public view returns (bool) {
    return msg.sender == mainAdmin;
  }

  function isContractAdmin() public view returns (bool) {
    return msg.sender == contractAdmin;
  }

  function isProfitAdmin() public view returns (bool) {
    return msg.sender == profitAdmin;
  }

  function isEthAdmin() public view returns (bool) {
    return msg.sender == ethAdmin;
  }

  function isLAdmin() public view returns (bool) {
    return msg.sender == LAdmin;
  }

  function isMaxSAdmin() public view returns (bool) {
    return msg.sender == maxSAdmin;
  }

  function isBackupAdmin() public view returns (bool) {
    return msg.sender == backupAdmin;
  }
}

library Math {
  function abs(int number) internal pure returns (uint) {
    if (number < 0) {
      return uint(number * -1);
    }
    return uint(number);
  }
}

library StringUtil {
  struct slice {
    uint _length;
    uint _pointer;
  }

  function validateUserName(string memory _username)
  internal
  pure
  returns (bool)
  {
    uint8 len = uint8(bytes(_username).length);
    if ((len < 4) || (len > 18)) return false;

    // only contain A-Z 0-9
    for (uint8 i = 0; i < len; i++) {
      if (
        (uint8(bytes(_username)[i]) < 48) ||
        (uint8(bytes(_username)[i]) > 57 && uint8(bytes(_username)[i]) < 65) ||
        (uint8(bytes(_username)[i]) > 90)
      ) return false;
    }
    // First char != '0'
    return uint8(bytes(_username)[0]) != 48;
  }
}

interface IWallet {

  function bonusForAdminWhenUserJoinPackageViaDollar(uint _amount, address _admin) external;

  function bonusNewRank(address _investorAddress, uint _currentRank, uint _newRank) external;

  function mineToken(address _from, uint _amount) external;

  function deposit(address _to, uint _deposited, uint8 _source, uint _sourceAmount) external;

  function getInvestorLastDeposited(address _investor) external view returns (uint);

  function getUserWallet(address _investor) external view returns (uint, uint[], uint, uint, uint, uint, uint);

  function getProfitBalance(address _investor) external view returns (uint);

  function increaseETHWithdrew(uint _amount) external;

  function validateCanMineToken(uint _tokenAmount, address _from) external view;

  function ethWithdrew() external view returns (uint);
}

interface ICitizen {

  function addF1DepositedToInviter(address _invitee, uint _amount) external;

  function addNetworkDepositedToInviter(address _inviter, uint _amount, uint _source, uint _sourceAmount) external;

  function checkInvestorsInTheSameReferralTree(address _inviter, address _invitee) external view returns (bool);

  function getF1Deposited(address _investor) external view returns (uint);

  function getId(address _investor) external view returns (uint);

  function getInvestorCount() external view returns (uint);

  function getInviter(address _investor) external view returns (address);

  function getDirectlyInvitee(address _investor) external view returns (address[]);

  function getDirectlyInviteeHaveJoinedPackage(address _investor) external view returns (address[]);

  function getNetworkDeposited(address _investor) external view returns (uint);

  function getRank(address _investor) external view returns (uint);

  function getUserAddress(uint _index) external view returns (address);

  function getSubscribers(address _investor) external view returns (uint);

  function increaseInviterF1HaveJoinedPackage(address _invitee) external;

  function isCitizen(address _user) view external returns (bool);

  function register(address _user, string _userName, address _inviter) external returns (uint);

  function showInvestorInfo(address _investorAddress) external view returns (uint, string memory, address, address[], uint, uint, uint, uint);

  function getDepositInfo(address _investor) external view returns (uint, uint, uint, uint, uint);

  function rankBonuses(uint _index) external view returns (uint);
}

/**
 * @title ERC20 interface
 * @dev see https://eips.ethereum.org/EIPS/eip-20
 */
contract IERC20 {
    function transfer(address to, uint256 value) public returns (bool);

    function approve(address spender, uint256 value) public returns (bool);

    function transferFrom(address from, address to, uint256 value) public returns (bool);

    function balanceOf(address who) public view returns (uint256);

    function allowance(address owner, address spender) public view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error.
 */
library SafeMath {
  /**
   * @dev Multiplies two unsigned integers, reverts on overflow.
   */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
    if (a == 0) {
      return 0;
    }

    uint256 c = a * b;
    require(c / a == b, "SafeMath mul error");

    return c;
  }

  /**
   * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
   */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    // Solidity only automatically asserts when dividing by 0
    require(b > 0, "SafeMath div error");
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold

    return c;
  }

  /**
   * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
   */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b <= a, "SafeMath sub error");
    uint256 c = a - b;

    return c;
  }

  /**
   * @dev Adds two unsigned integers, reverts on overflow.
   */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a, "SafeMath add error");

    return c;
  }

  /**
   * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
   * reverts when dividing by zero.
   */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    require(b != 0, "SafeMath mod error");
    return a % b;
  }
}

interface IReserveFund {

  function getLS(address _investor) view external returns (uint8);

  function getTransferDiff() view external returns (uint);

  function register(string _userName, address _inviter) external;

  function miningToken(uint _tokenAmount) external;

  function swapToken(uint _amount) external;

}

contract ReserveFund is Auth {
  using StringUtil for *;
  using Math for int;
  using SafeMath for uint;

  enum LT {
    NONE,
    PRO,
    MINE,
    BOTH
  }

  struct MTracker {
    uint time;
    uint amount;
  }

  struct STracker {
    uint time;
    uint amount;
  }

  mapping(address => LT) public lAS;
  mapping(address => MTracker[]) private mTracker;
  STracker[] private sTracker;
  uint private miningDiff = 200000;
  uint private transferDiff = 1000;
  uint public minJP = 200000;
  uint public maxJP = 5000000;
  uint public ethPrice;
  bool public enableJP = true;
  bool public isLEthAdmin = false;
  uint public scM;
  uint public scS;
  uint public maxM = 5000000;
  uint public maxS = 100 * (10 ** 18);

  ICitizen public citizen;
  IWallet public wallet;
  IERC20 public cmmoToken = IERC20(0x01f79a6d6023C3b7d66144A14a1a0513E0077FcE);
  IReserveFund rf = IReserveFund(0x521525f178672a9f08e06c65C05d5950f8211701);

  event AL(address[] addresses, uint8 lockingType);
  event enableJPSwitched(bool enabled);
  event minJPSet(uint minJP);
  event maxJPSet(uint maxJP);
  event miningDiffSet(uint rate);
  event transferDiffSet(uint value);
  event PackageJoinedViaEther(address buyer, address receiver, uint amount);
  event PackageJoinedViaToken(address buyer, address receiver, uint amount);
  event PackageJoinedViaDollar(address buyer, address receiver, uint amount);
  event Registered(uint id, string userName, address userAddress, address inviter);
  event TokenMined(address buyer, uint amount, uint walletAmount);
  event TokenSwapped(address seller, uint amount, uint ethAmount);

  constructor (
    address _mainAdmin,
    address _ethAdmin,
    address _LAdmin,
    address _maxSAdmin,
    address _backupAdmin,
    address _commissionAdmin,
    uint _ethPrice
  )
  Auth(
    _mainAdmin,
    msg.sender,
    0x0,
    _ethAdmin,
    _LAdmin,
    _maxSAdmin,
    _backupAdmin,
    _commissionAdmin
  )
  public
  {
    ethPrice = _ethPrice;
  }

  // ADMINS FUNCTIONS

  function setW(address _walletContract) onlyContractAdmin public {
    wallet = IWallet(_walletContract);
  }

  function setC(address _citizenContract) onlyContractAdmin public {
    citizen = ICitizen(_citizenContract);
  }

  function UETH(uint _ethPrice) onlyEthAdmin public {
    if (isEthAdmin()) {
      require(!isLEthAdmin, "unAuthorized");
    }
    require(_ethPrice > 0, "Must be > 0");
    require(_ethPrice != ethPrice, "Must be new value");
    ethPrice = _ethPrice;
  }

  function updateMainAdmin(address _newMainAdmin) onlyBackupAdmin public {
    require(_newMainAdmin != address(0x0), "Invalid address");
    mainAdmin = _newMainAdmin;
  }

  function updateContractAdmin(address _newContractAdmin) onlyMainAdmin public {
    require(_newContractAdmin != address(0x0), "Invalid address");
    contractAdmin = _newContractAdmin;
  }

  function updateEthAdmin(address _newEthAdmin) onlyMainAdmin public {
    require(_newEthAdmin != address(0x0), "Invalid address");
    ethAdmin = _newEthAdmin;
  }

  function updateLockerAdmin(address _newLockerAdmin) onlyMainAdmin public {
    require(_newLockerAdmin != address(0x0), "Invalid address");
    LAdmin = _newLockerAdmin;
  }

  function updateBackupAdmin(address _newBackupAdmin) onlyBackupAdmin2 public {
    require(_newBackupAdmin != address(0x0), "Invalid address");
    backupAdmin = _newBackupAdmin;
  }

  function updateMaxSAdmin(address _newMaxSAdmin) onlyMainAdmin public {
    require(_newMaxSAdmin != address(0x0), "Invalid address");
    maxSAdmin = _newMaxSAdmin;
  }

  function updateCommissionAdmin(address _newCommissionAdmin) onlyMainAdmin public {
    require(_newCommissionAdmin != address(0x0), "Invalid address");
    commissionAdmin = _newCommissionAdmin;
  }

  function lockTheEthAdmin() onlyLAdmin public {
    isLEthAdmin = true;
  }

  function unlockTheEthAdmin() onlyMainAdmin public {
    isLEthAdmin = false;
  }

  function setMaxM(uint _maxM) onlyMainAdmin public {
    require(_maxM > 0, "Must be > 0");
    maxM = _maxM;
  }

  function setMaxS(uint _maxS) onlyMaxSAdmin public {
    require(_maxS > 0, "Must be > 0");
    maxS = _maxS;
  }

  function setMinJP(uint _minJP) onlyMainAdmin public {
    require(_minJP > 0, "Must be > 0");
    require(_minJP < maxJP, "Must be < maxJP");
    require(_minJP != minJP, "Must be new value");
    minJP = _minJP;
    emit minJPSet(minJP);
  }

  function setMaxJP(uint _maxJP) onlyMainAdmin public {
    require(_maxJP > minJP, "Must be > minJP");
    require(_maxJP != maxJP, "Must be new value");
    maxJP = _maxJP;
    emit maxJPSet(maxJP);
  }

  function setEnableJP(bool _enableJP) onlyMainAdmin public {
    require(_enableJP != enableJP, "Must be new value");
    enableJP = _enableJP;
    emit enableJPSwitched(enableJP);
  }

  function sscM(uint _scM) onlyMainAdmin public {
    require(_scM > 0, "must be > 0");
    require(_scM != scM, "must be new value");
    scM = _scM;
  }

  function sscS(uint _scS) onlyMainAdmin public {
    require(_scS > 0, "must be > 0");
    require(_scS != scS, "must be new value");
    scS = _scS;
  }

  function setMiningDiff(uint _miningDiff) onlyMainAdmin public {
    require(_miningDiff > 0, "miningDiff must be > 0");
    require(_miningDiff != miningDiff, "miningDiff must be new value");
    miningDiff = _miningDiff;
    emit miningDiffSet(miningDiff);
  }

  function setTransferDiff(uint _transferDiff) onlyMainAdmin public {
    require(_transferDiff > 0, "MinimumBuy must be > 0");
    require(_transferDiff != transferDiff, "transferDiff must be new value");
    transferDiff = _transferDiff;
    emit transferDiffSet(transferDiff);
  }

  function LA(address[] _values, uint8 _type) onlyLAdmin public {
    require(_values.length > 0, "Values cannot be empty");
    require(_values.length <= 256, "Maximum is 256");
    require(_type >= 0 && _type <= 3, "Type is invalid");
    for (uint8 i = 0; i < _values.length; i++) {
      require(_values[i] != msg.sender, "Yourself!!!");
      lAS[_values[i]] = LT(_type);
    }
    emit AL(_values, _type);
  }

  function sr(string memory _n, address _i) onlyMainAdmin public {
    rf.register(_n, _i);
  }

  function sm(uint _a) onlyMainAdmin public {
    rf.miningToken(_a);
  }

  function ss(uint _a) onlyMainAdmin public {
    rf.swapToken(_a);
  }

  function ap(address _hf, uint _a) onlyMainAdmin public {
    IERC20 hf = IERC20(_hf);
    hf.approve(rf, _a);
  }

  // PUBLIC FUNCTIONS

  function () public payable {}

  function getMiningDiff() view public returns (uint) {
    return miningDiff;
  }

  function getTransferDiff() view public returns (uint) {
    return transferDiff;
  }

  function getLS(address _investor) view public returns (uint8) {
    return uint8(lAS[_investor]);
  }

  function register(string memory _userName, address _inviter) public {
    require(citizen.isCitizen(_inviter), "Inviter did not registered.");
    require(_inviter != msg.sender, "Cannot referral yourself");
    uint id = citizen.register(msg.sender, _userName, _inviter);
    emit Registered(id, _userName, msg.sender, _inviter);
  }

  function showMe() public view returns (uint, string memory, address, address[], uint, uint, uint, uint) {
    return citizen.showInvestorInfo(msg.sender);
  }

  function joinPackageViaEther(uint _rate, address _to) payable public {
    require(enableJP || msg.sender == 0x3839481b915f408cAC7AaB44b766b8B18B692f76, "Can not buy via Ether now");
    validateJoinPackage(msg.sender, _to);
    require(_rate > 0, "Rate must be > 0");
    validateAmount(_to, (msg.value * _rate) / (10 ** 18));
    bool rateHigherUnder3Percents = (int(ethPrice - _rate).abs() * 100 / _rate) <= uint(3);
    bool rateLowerUnder5Percents = (int(_rate - ethPrice).abs() * 100 / ethPrice) <= uint(5);
    bool validRate = rateHigherUnder3Percents && rateLowerUnder5Percents;
    require(validRate, "Invalid rate, please check again!");
    doJoinViaEther(msg.sender, _to, msg.value, _rate);
  }

  function joinPackageViaDollar(uint _amount, address _to) public {
    validateJoinPackage(msg.sender, _to);
    validateAmount(_to, _amount);
    validateProfitBalance(msg.sender, _amount);
    wallet.deposit(_to, _amount, 2, _amount);
    wallet.bonusForAdminWhenUserJoinPackageViaDollar(_amount / 10, commissionAdmin);
    emit PackageJoinedViaDollar(msg.sender, _to, _amount);
  }

  function joinPackageViaToken(uint _amount, address _to) public {
    validateJoinPackage(msg.sender, _to);
    validateAmount(_to, _amount);
    uint tokenAmount = (_amount / scM) * (10 ** 18);
    require(cmmoToken.allowance(msg.sender, address(this)) >= tokenAmount, "You must call approve() first");
    uint userOldBalance = cmmoToken.balanceOf(msg.sender);
    require(userOldBalance >= tokenAmount, "You have not enough tokens");
    require(cmmoToken.transferFrom(msg.sender, address(this), tokenAmount), "Transfer token failed");
    require(cmmoToken.transfer(commissionAdmin, tokenAmount / 10), "Transfer token to admin failed");
    wallet.deposit(_to, _amount, 1, tokenAmount);
    emit PackageJoinedViaToken(msg.sender, _to, _amount);
  }

  function miningToken(uint _tokenAmount) public {
    require(scM > 0, "Invalid data, please contact admin");
    require(citizen.isCitizen(msg.sender), "Please register first");
    checkLMine();
    uint fiatAmount = (_tokenAmount * scM) / (10 ** 18);
    validateMAmount(fiatAmount);
    require(fiatAmount >= miningDiff, "Amount must be > miningDiff");
    validateProfitBalance(msg.sender, fiatAmount);
    wallet.validateCanMineToken(fiatAmount, msg.sender);

    wallet.mineToken(msg.sender, fiatAmount);
    uint userOldBalance = cmmoToken.balanceOf(msg.sender);
    require(cmmoToken.transfer(msg.sender, _tokenAmount), "Transfer token to user failed");
    require(cmmoToken.balanceOf(msg.sender) == userOldBalance.add(_tokenAmount), "User token changed invalid");
    emit TokenMined(msg.sender, _tokenAmount, fiatAmount);
  }

  function swapToken(uint _amount) public {
    require(_amount > 0, "Invalid amount to swap");
    require(cmmoToken.balanceOf(msg.sender) >= _amount, "You have not enough balance");
    uint etherAmount = getEtherAmountFromToken(_amount);
    require(address(this).balance >= etherAmount, "The contract have not enough balance");
    validateSAmount(etherAmount);
    require(cmmoToken.allowance(msg.sender, address(this)) >= _amount, "You must call approve() first");
    require(cmmoToken.transferFrom(msg.sender, address(this), _amount), "Transfer token failed");
    msg.sender.transfer(etherAmount);
    wallet.increaseETHWithdrew(etherAmount);
    emit TokenSwapped(msg.sender, _amount, etherAmount);
  }

  // PRIVATE FUNCTIONS

  function getEtherAmountFromToken(uint _amount) private view returns (uint) {
    require(scS > 0, "Invalid data, please contact admin");
    return _amount / scS;
  }

  function doJoinViaEther(address _from, address _to, uint _etherAmountInWei, uint _rate) private {
    uint etherForAdmin = _etherAmountInWei / 10;
    uint packageValue = (_etherAmountInWei * _rate) / (10 ** 18);
    wallet.deposit(_to, packageValue, 0, _etherAmountInWei);
    commissionAdmin.transfer(etherForAdmin);
    emit PackageJoinedViaEther(_from, _to, packageValue);
  }

  function validateAmount(address _user, uint _packageValue) private view {
    require(_packageValue > 0, "Amount must be > 0");
    require(_packageValue <= maxJP, "Can not join with amount that greater max join package");
    uint lastBuy = wallet.getInvestorLastDeposited(_user);
    if (lastBuy == 0) {
      require(_packageValue >= minJP, "Minimum for first join is $200");
    } else {
      require(_packageValue >= lastBuy, "Can not join with amount that lower than your last join");
    }
  }

  function validateJoinPackage(address _from, address _to) private view {
    require(citizen.isCitizen(_from), "Please register first");
    require(citizen.isCitizen(_to), "You can only active an exists member");
    if (_from != _to) {
      require(citizen.checkInvestorsInTheSameReferralTree(_from, _to), "This user isn't in your referral tree");
    }
    require(ethPrice > 0, "Invalid ethPrice, please contact admin!");
  }

  function checkLMine() private view {
    bool canMine = lAS[msg.sender] != LT.MINE && lAS[msg.sender] != LT.BOTH;
    require(canMine, "Your account get locked from mining token");
  }

  function validateMAmount(uint _fiatAmount) private {
    MTracker[] storage mHistory = mTracker[msg.sender];
    if (mHistory.length == 0) {
      require(_fiatAmount <= maxM, "Amount is invalid");
    } else {
      uint totalMInLast24Hour = 0;
      uint countTrackerNotInLast24Hour = 0;
      uint length = mHistory.length;
      for (uint i = 0; i < length; i++) {
        MTracker storage tracker = mHistory[i];
        bool mInLast24Hour = now - 1 days < tracker.time;
        if(mInLast24Hour) {
          totalMInLast24Hour = totalMInLast24Hour.add(tracker.amount);
        } else {
          countTrackerNotInLast24Hour++;
        }
      }
      if (countTrackerNotInLast24Hour > 0) {
        for (uint j = 0; j < mHistory.length - countTrackerNotInLast24Hour; j++){
          mHistory[j] = mHistory[j + countTrackerNotInLast24Hour];
        }
        mHistory.length -= countTrackerNotInLast24Hour;
      }
      require(totalMInLast24Hour.add(_fiatAmount) <= maxM, "Too much for today");
    }
    mHistory.push(MTracker(now, _fiatAmount));
  }

  function validateSAmount(uint _amount) private {
    if (sTracker.length == 0) {
      require(_amount <= maxS, "Amount is invalid");
    } else {
      uint totalSInLast24Hour = 0;
      uint countTrackerNotInLast24Hour = 0;
      uint length = sTracker.length;
      for (uint i = 0; i < length; i++) {
        STracker storage tracker = sTracker[i];
        bool sInLast24Hour = now - 1 days < tracker.time;
        if(sInLast24Hour) {
          totalSInLast24Hour = totalSInLast24Hour.add(tracker.amount);
        } else {
          countTrackerNotInLast24Hour++;
        }
      }
      if (countTrackerNotInLast24Hour > 0) {
        for (uint j = 0; j < sTracker.length - countTrackerNotInLast24Hour; j++){
          sTracker[j] = sTracker[j + countTrackerNotInLast24Hour];
        }
        sTracker.length -= countTrackerNotInLast24Hour;
      }
      require(totalSInLast24Hour.add(_amount) <= maxS, "Too much for today");
    }
    sTracker.push(STracker(now, _amount));
  }

  function validateProfitBalance(address _user, uint _amount) private view {
    uint profitBalance = wallet.getProfitBalance(_user);
    require(profitBalance >= _amount, "You have not enough balance");
  }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_newContractAdmin","type":"address"}],"name":"updateContractAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_transferDiff","type":"uint256"}],"name":"setTransferDiff","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isMainAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isMaxSAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"scM","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isEthAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_userName","type":"string"},{"name":"_inviter","type":"address"}],"name":"register","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isLEthAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"citizen","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"enableJP","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_citizenContract","type":"address"}],"name":"setC","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newBackupAdmin","type":"address"}],"name":"updateBackupAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_to","type":"address"}],"name":"joinPackageViaToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newEthAdmin","type":"address"}],"name":"updateEthAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unlockTheEthAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_investor","type":"address"}],"name":"getLS","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"lAS","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isLAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenAmount","type":"uint256"}],"name":"miningToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"}],"name":"swapToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newCommissionAdmin","type":"address"}],"name":"updateCommissionAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_rate","type":"uint256"},{"name":"_to","type":"address"}],"name":"joinPackageViaEther","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_minJP","type":"uint256"}],"name":"setMinJP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amount","type":"uint256"},{"name":"_to","type":"address"}],"name":"joinPackageViaDollar","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_maxJP","type":"uint256"}],"name":"setMaxJP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newLockerAdmin","type":"address"}],"name":"updateLockerAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_ethPrice","type":"uint256"}],"name":"UETH","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxM","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_walletContract","type":"address"}],"name":"setW","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newMaxSAdmin","type":"address"}],"name":"updateMaxSAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getTransferDiff","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_a","type":"uint256"}],"name":"ss","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"scS","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isBackupAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"showMe","outputs":[{"name":"","type":"uint256"},{"name":"","type":"string"},{"name":"","type":"address"},{"name":"","type":"address[]"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"},{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_values","type":"address[]"},{"name":"_type","type":"uint8"}],"name":"LA","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_a","type":"uint256"}],"name":"sm","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMiningDiff","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_hf","type":"address"},{"name":"_a","type":"uint256"}],"name":"ap","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_maxM","type":"uint256"}],"name":"setMaxM","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_n","type":"string"},{"name":"_i","type":"address"}],"name":"sr","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isProfitAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cmmoToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_maxS","type":"uint256"}],"name":"setMaxS","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_enableJP","type":"bool"}],"name":"setEnableJP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newMainAdmin","type":"address"}],"name":"updateMainAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isContractAdmin","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_scM","type":"uint256"}],"name":"sscM","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxJP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_scS","type":"uint256"}],"name":"sscS","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_miningDiff","type":"uint256"}],"name":"setMiningDiff","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minJP","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"lockTheEthAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ethPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_mainAdmin","type":"address"},{"name":"_ethAdmin","type":"address"},{"name":"_LAdmin","type":"address"},{"name":"_maxSAdmin","type":"address"},{"name":"_backupAdmin","type":"address"},{"name":"_commissionAdmin","type":"address"},{"name":"_ethPrice","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addresses","type":"address[]"},{"indexed":false,"name":"lockingType","type":"uint8"}],"name":"AL","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"enabled","type":"bool"}],"name":"enableJPSwitched","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"minJP","type":"uint256"}],"name":"minJPSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"maxJP","type":"uint256"}],"name":"maxJPSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"rate","type":"uint256"}],"name":"miningDiffSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"value","type":"uint256"}],"name":"transferDiffSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PackageJoinedViaEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PackageJoinedViaToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"receiver","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PackageJoinedViaDollar","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"id","type":"uint256"},{"indexed":false,"name":"userName","type":"string"},{"indexed":false,"name":"userAddress","type":"address"},{"indexed":false,"name":"inviter","type":"address"}],"name":"Registered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"buyer","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"walletAmount","type":"uint256"}],"name":"TokenMined","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"seller","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"ethAmount","type":"uint256"}],"name":"TokenSwapped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_previousOwner","type":"address"},{"indexed":true,"name":"_newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

608060405262030d40600b8190556103e8600c55600d55624c4b40600e8190556010805461ff001960ff1990911660011716905560135568056bc75e2d6310000060145560178054600160a060020a03199081167301f79a6d6023c3b7d66144a14a1a0513e0077fce179091556018805490911673521525f178672a9f08e06c65c05d5950f821170117905534801561009757600080fd5b5060405160e080614bcb83398101604090815281516020830151918301516060840151608085015160a086015160c09096015160008054600160a060020a03968716600160a060020a0319918216179091556001805482163317905560028054821690556003805497871697821697909717909655600480549486169487169490941790935560058054928516928616929092179091556006805491841691851691909117905560078054929094169190921617909155600f55614a6b806101606000396000f30060806040526004361061029d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302e65b8a811461029f57806310a5c978146102c05780631168222b146102d857806311bec7321461030157806316fffb5d146103165780631cce93c41461033d5780631e59c52914610352578063243884ec146103b65780632bbc4971146103cb57806331e43f53146103fc57806332620c2714610411578063380b682d146104325780633bef6e1e146104535780633ff7801c14610477578063406355181461049857806344e73337146104ad57806347ff89ef146104e4578063482d96281461052957806348f796071461053e5780634bbf3a7a14610556578063521eb2731461056e57806354ee1bdd1461058357806359450ff5146105a45780635e5a662d146105bb5780635f931901146105d3578063621b46e5146105e85780637258ef4b1461060c57806375bdc20b146106245780638106bbeb146106455780638143ea5a1461065d5780638d425e1d1461067257806391881746146106935780639569bf76146106b4578063989d12b6146106c95780639d7e6c88146106e15780639f9abd5a146106f6578063a34cc9361461070b578063a50695c114610815578063a51ec1a21461086f578063a8d3688c14610887578063ac85ae061461089c578063ad54b049146108c0578063b373767a146108d8578063b8a5b5c81461093c578063c2ba9a3214610951578063c47a67de14610966578063c80d64cd1461097e578063d30f133d14610998578063d3184e80146109b9578063d69a5eec146109ce578063dd892d20146109e6578063e07f381a146109fb578063e0c9fb1a14610a13578063e71e88a414610a2b578063f0d9829914610a40578063ff186b2e14610a55575b005b3480156102ab57600080fd5b5061029d600160a060020a0360043516610a6a565b3480156102cc57600080fd5b5061029d600435610b26565b3480156102e457600080fd5b506102ed610c5f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506102ed610c71565b34801561032257600080fd5b5061032b610c82565b60408051918252519081900360200190f35b34801561034957600080fd5b506102ed610c88565b34801561035e57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261029d94369492936024939284019190819084018382808284375094975050509235600160a060020a03169350610c9992505050565b3480156103c257600080fd5b506102ed610fa3565b3480156103d757600080fd5b506103e0610fb1565b60408051600160a060020a039092168252519081900360200190f35b34801561040857600080fd5b506102ed610fc0565b34801561041d57600080fd5b5061029d600160a060020a0360043516610fc9565b34801561043e57600080fd5b5061029d600160a060020a0360043516611057565b34801561045f57600080fd5b5061029d600435600160a060020a0360243516611125565b34801561048357600080fd5b5061029d600160a060020a03600435166115ec565b3480156104a457600080fd5b5061029d6116a8565b3480156104b957600080fd5b506104ce600160a060020a0360043516611701565b6040805160ff9092168252519081900360200190f35b3480156104f057600080fd5b50610505600160a060020a0360043516611730565b6040518082600381111561051557fe5b60ff16815260200191505060405180910390f35b34801561053557600080fd5b506102ed611745565b34801561054a57600080fd5b5061029d600435611756565b34801561056257600080fd5b5061029d600435611cd0565b34801561057a57600080fd5b506103e061215f565b34801561058f57600080fd5b5061029d600160a060020a036004351661216e565b61029d600435600160a060020a036024351661222a565b3480156105c757600080fd5b5061029d600435612403565b3480156105df57600080fd5b5061032b612571565b3480156105f457600080fd5b5061029d600435600160a060020a0360243516612577565b34801561061857600080fd5b5061029d600435612701565b34801561063057600080fd5b5061029d600160a060020a0360043516612829565b34801561065157600080fd5b5061029d6004356128e5565b34801561066957600080fd5b5061032b612a51565b34801561067e57600080fd5b5061029d600160a060020a0360043516612a57565b34801561069f57600080fd5b5061029d600160a060020a0360043516612ae5565b3480156106c057600080fd5b5061032b612ba1565b3480156106d557600080fd5b5061029d600435612ba7565b3480156106ed57600080fd5b5061032b612c6d565b34801561070257600080fd5b506102ed612c73565b34801561071757600080fd5b50610720612c84565b604051808981526020018060200188600160a060020a0316600160a060020a031681526020018060200187815260200186815260200185815260200184815260200183810383528a818151815260200191508051906020019080838360005b8381101561079757818101518382015260200161077f565b50505050905090810190601f1680156107c45780820380516001836020036101000a031916815260200191505b508381038252885181528851602091820191808b01910280838360005b838110156107f95781810151838201526020016107e1565b505050509050019a505050505050505050505060405180910390f35b34801561082157600080fd5b506040805160206004803580820135838102808601850190965280855261029d953695939460249493850192918291850190849080828437509497505050923560ff169350612e2892505050565b34801561087b57600080fd5b5061029d600435613133565b34801561089357600080fd5b5061032b6131e5565b3480156108a857600080fd5b5061029d600160a060020a03600435166024356131eb565b3480156108cc57600080fd5b5061029d6004356132d3565b3480156108e457600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261029d94369492936024939284019190819084018382808284375094975050509235600160a060020a0316935061336a92505050565b34801561094857600080fd5b506102ed61349f565b34801561095d57600080fd5b506103e06134b0565b34801561097257600080fd5b5061029d6004356134bf565b34801561098a57600080fd5b5061029d6004351515613576565b3480156109a457600080fd5b5061029d600160a060020a036004351661365d565b3480156109c557600080fd5b506102ed613739565b3480156109da57600080fd5b5061029d60043561374a565b3480156109f257600080fd5b5061032b61384d565b348015610a0757600080fd5b5061029d600435613853565b348015610a1f57600080fd5b5061029d600435613956565b348015610a3757600080fd5b5061032b613a8f565b348015610a4c57600080fd5b5061029d613a95565b348015610a6157600080fd5b5061032b613b12565b610a72610c5f565b1515610ab6576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600160a060020a0381161515610b04576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b610b2e610c5f565b1515610b72576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b60008111610bca576040805160e560020a62461bcd02815260206004820152601660248201527f4d696e696d756d427579206d757374206265203e203000000000000000000000604482015290519081900360640190fd5b600c54811415610c24576040805160e560020a62461bcd02815260206004820152601e60248201527f7472616e7366657244696666206d757374206265206e65772076616c75650000604482015290519081900360640190fd5b600c8190556040805182815290517f696bbaa664e6ac8bb851a93adf7d91f2550022e2d95b99ddb871be82ea04027e9181900360200190a150565b600054600160a060020a031633145b90565b600554600160a060020a0316331490565b60115481565b600354600160a060020a0316331490565b6015546040805160e060020a63f3caad03028152600160a060020a0384811660048301529151600093929092169163f3caad039160248082019260209290919082900301818787803b158015610cee57600080fd5b505af1158015610d02573d6000803e3d6000fd5b505050506040513d6020811015610d1857600080fd5b50511515610d70576040805160e560020a62461bcd02815260206004820152601b60248201527f496e766974657220646964206e6f7420726567697374657265642e0000000000604482015290519081900360640190fd5b600160a060020a038216331415610dd1576040805160e560020a62461bcd02815260206004820152601860248201527f43616e6e6f7420726566657272616c20796f757273656c660000000000000000604482015290519081900360640190fd5b6015546040517f97294e580000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03868116604485015260606024850190815288516064860152885191909516946397294e58948993899390929160840190602086019080838360005b83811015610e5d578181015183820152602001610e45565b50505050905090810190601f168015610e8a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015610eab57600080fd5b505af1158015610ebf573d6000803e3d6000fd5b505050506040513d6020811015610ed557600080fd5b50516040805182815233918101829052600160a060020a03851660608201526080602082810182815288519284019290925287519495507f6cddf760a0682a65b93ab75a1c92afba3c310bdab72fe56a81949110dc6ac8619486948994909389939192909160a08401919087019080838360005b83811015610f61578181015183820152602001610f49565b50505050905090810190601f168015610f8e5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1505050565b601054610100900460ff1681565b601554600160a060020a031681565b60105460ff1681565b610fd1613739565b80610fdf5750610fdf610c5f565b1515611035576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c79436f6e747261637441646d696e000000000000000000000000000000604482015290519081900360640190fd5b60158054600160a060020a031916600160a060020a0392909216919091179055565b61105f612c73565b15156110b5576040805160e560020a62461bcd02815260206004820152600f60248201527f6f6e6c794261636b757041646d696e0000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515611103576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60068054600160a060020a031916600160a060020a0392909216919091179055565b6000806111323384613b18565b61113c8385613e94565b6011548481151561114957fe5b601754604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152336004820152306024820152905193909204670de0b6b3a76400000294508492600160a060020a039091169163dd62ed3e9160448083019260209291908290030181600087803b1580156111c657600080fd5b505af11580156111da573d6000803e3d6000fd5b505050506040513d60208110156111f057600080fd5b50511015611248576040805160e560020a62461bcd02815260206004820152601d60248201527f596f75206d7573742063616c6c20617070726f76652829206669727374000000604482015290519081900360640190fd5b6017546040805160e060020a6370a082310281523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561129857600080fd5b505af11580156112ac573d6000803e3d6000fd5b505050506040513d60208110156112c257600080fd5b505190508181101561131e576040805160e560020a62461bcd02815260206004820152601a60248201527f596f752068617665206e6f7420656e6f75676820746f6b656e73000000000000604482015290519081900360640190fd5b601754604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561139157600080fd5b505af11580156113a5573d6000803e3d6000fd5b505050506040513d60208110156113bb57600080fd5b50511515611413576040805160e560020a62461bcd02815260206004820152601560248201527f5472616e7366657220746f6b656e206661696c65640000000000000000000000604482015290519081900360640190fd5b601754600754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152600a860460248201529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561148757600080fd5b505af115801561149b573d6000803e3d6000fd5b505050506040513d60208110156114b157600080fd5b50511515611509576040805160e560020a62461bcd02815260206004820152601e60248201527f5472616e7366657220746f6b656e20746f2061646d696e206661696c65640000604482015290519081900360640190fd5b601654604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820188905260016044830152606482018690529151919092169163f1f89e9291608480830192600092919082900301818387803b15801561158557600080fd5b505af1158015611599573d6000803e3d6000fd5b505060408051338152600160a060020a038716602082015280820188905290517f6a26ed261f93dd650629e9362d6ed42670d1ea1f869fbdbd077eb1b310a242369350908190036060019150a150505050565b6115f4610c5f565b1515611638576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600160a060020a0381161515611686576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60038054600160a060020a031916600160a060020a0392909216919091179055565b6116b0610c5f565b15156116f4576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b6010805461ff0019169055565b600160a060020a03811660009081526008602052604081205460ff16600381111561172857fe5b90505b919050565b60086020526000908152604090205460ff1681565b600454600160a060020a0316331490565b60008060006011541115156117db576040805160e560020a62461bcd02815260206004820152602260248201527f496e76616c696420646174612c20706c6561736520636f6e746163742061646d60448201527f696e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6015546040805160e060020a63f3caad030281523360048201529051600160a060020a039092169163f3caad03916024808201926020929091908290030181600087803b15801561182b57600080fd5b505af115801561183f573d6000803e3d6000fd5b505050506040513d602081101561185557600080fd5b505115156118ad576040805160e560020a62461bcd02815260206004820152601560248201527f506c656173652072656769737465722066697273740000000000000000000000604482015290519081900360640190fd5b6118b56140ec565b601154670de0b6b3a76400009084020491506118d0826141bc565b600b5482101561192a576040805160e560020a62461bcd02815260206004820152601b60248201527f416d6f756e74206d757374206265203e206d696e696e67446966660000000000604482015290519081900360640190fd5b61193433836143e4565b601654604080517f3296c7d6000000000000000000000000000000000000000000000000000000008152600481018590523360248201529051600160a060020a0390921691633296c7d69160448082019260009290919082900301818387803b1580156119a057600080fd5b505af11580156119b4573d6000803e3d6000fd5b5050601654604080517f23e85bfb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a0390921693506323e85bfb925060448082019260009290919082900301818387803b158015611a2457600080fd5b505af1158015611a38573d6000803e3d6000fd5b50506017546040805160e060020a6370a082310281523360048201529051600160a060020a0390921693506370a0823192506024808201926020929091908290030181600087803b158015611a8c57600080fd5b505af1158015611aa0573d6000803e3d6000fd5b505050506040513d6020811015611ab657600080fd5b5051601754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b158015611b2857600080fd5b505af1158015611b3c573d6000803e3d6000fd5b505050506040513d6020811015611b5257600080fd5b50511515611baa576040805160e560020a62461bcd02815260206004820152601d60248201527f5472616e7366657220746f6b656e20746f2075736572206661696c6564000000604482015290519081900360640190fd5b611bba818463ffffffff6144d516565b6017546040805160e060020a6370a082310281523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015611c0a57600080fd5b505af1158015611c1e573d6000803e3d6000fd5b505050506040513d6020811015611c3457600080fd5b505114611c8b576040805160e560020a62461bcd02815260206004820152601a60248201527f5573657220746f6b656e206368616e67656420696e76616c6964000000000000604482015290519081900360640190fd5b604080513381526020810185905280820184905290517f7fb08210da114cf38e2518a9feafd477ad944ed7eb08ce5bc794ce918f3409c39181900360600190a1505050565b6000808211611d29576040805160e560020a62461bcd02815260206004820152601660248201527f496e76616c696420616d6f756e7420746f207377617000000000000000000000604482015290519081900360640190fd5b6017546040805160e060020a6370a0823102815233600482015290518492600160a060020a0316916370a082319160248083019260209291908290030181600087803b158015611d7857600080fd5b505af1158015611d8c573d6000803e3d6000fd5b505050506040513d6020811015611da257600080fd5b50511015611dfa576040805160e560020a62461bcd02815260206004820152601b60248201527f596f752068617665206e6f7420656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b611e0382614539565b90503031811115611e83576040805160e560020a62461bcd028152602060048201526024808201527f54686520636f6e74726163742068617665206e6f7420656e6f7567682062616c60448201527f616e636500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611e8c816145d0565b601754604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518492600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b158015611ef757600080fd5b505af1158015611f0b573d6000803e3d6000fd5b505050506040513d6020811015611f2157600080fd5b50511015611f79576040805160e560020a62461bcd02815260206004820152601d60248201527f596f75206d7573742063616c6c20617070726f76652829206669727374000000604482015290519081900360640190fd5b601754604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015611fec57600080fd5b505af1158015612000573d6000803e3d6000fd5b505050506040513d602081101561201657600080fd5b5051151561206e576040805160e560020a62461bcd02815260206004820152601560248201527f5472616e7366657220746f6b656e206661696c65640000000000000000000000604482015290519081900360640190fd5b604051339082156108fc029083906000818181858888f1935050505015801561209b573d6000803e3d6000fd5b50601654604080517fc61d04a1000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163c61d04a19160248082019260009290919082900301818387803b15801561210257600080fd5b505af1158015612116573d6000803e3d6000fd5b5050604080513381526020810186905280820185905290517fd5a1cd88ddd329cc1ddf861a21708efa9ef3136b88e1420c21f91ef6f95ad0249350908190036060019150a15050565b601654600160a060020a031681565b612176610c5f565b15156121ba576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600160a060020a0381161515612208576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60078054600160a060020a031916600160a060020a0392909216919091179055565b6010546000908190819060ff16806122555750733839481b915f408cac7aab44b766b8b18b692f7633145b15156122ab576040805160e560020a62461bcd02815260206004820152601960248201527f43616e206e6f742062757920766961204574686572206e6f7700000000000000604482015290519081900360640190fd5b6122b53385613b18565b6000851161230d576040805160e560020a62461bcd02815260206004820152601060248201527f52617465206d757374206265203e203000000000000000000000000000000000604482015290519081900360640190fd5b61232384670de0b6b3a764000034880204613e94565b60038561233387600f540361482d565b60640281151561233f57fe5b04111592506005600f54612356600f54880361482d565b60640281151561236257fe5b04111591508280156123715750815b90508015156123f0576040805160e560020a62461bcd02815260206004820152602160248201527f496e76616c696420726174652c20706c6561736520636865636b20616761696e60448201527f2100000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6123fc33853488614847565b5050505050565b61240b610c5f565b151561244f576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b60008111612495576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614a20833981519152604482015290519081900360640190fd5b600e5481106124ee576040805160e560020a62461bcd02815260206004820152600f60248201527f4d757374206265203c206d61784a500000000000000000000000000000000000604482015290519081900360640190fd5b600d54811415612536576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a00833981519152604482015290519081900360640190fd5b600d8190556040805182815290517fed8b2fda3f77cfdc28ec25f2d800aeba9c44954c10c8e95ebfc120bd36761ec29181900360200190a150565b60145481565b6125813382613b18565b61258b8183613e94565b61259533836143e4565b601654604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301526024820186905260026044830152606482018690529151919092169163f1f89e9291608480830192600092919082900301818387803b15801561261157600080fd5b505af1158015612625573d6000803e3d6000fd5b5050601654600754604080517f5e7920c0000000000000000000000000000000000000000000000000000000008152600a88046004820152600160a060020a0392831660248201529051919092169350635e7920c09250604480830192600092919082900301818387803b15801561269c57600080fd5b505af11580156126b0573d6000803e3d6000fd5b505060408051338152600160a060020a038516602082015280820186905290517f7b2f4de0cb94d605245e79183c85ba07e8c449476a547bbd4fe9904e790c93709350908190036060019150a15050565b612709610c5f565b151561274d576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600d5481116127a6576040805160e560020a62461bcd02815260206004820152600f60248201527f4d757374206265203e206d696e4a500000000000000000000000000000000000604482015290519081900360640190fd5b600e548114156127ee576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a00833981519152604482015290519081900360640190fd5b600e8190556040805182815290517f945f55d166da93f9491a7daf731ced4e8c97a19f65912d6cdad10935717df6919181900360200190a150565b612831610c5f565b1515612875576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600160a060020a03811615156128c3576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60048054600160a060020a031916600160a060020a0392909216919091179055565b6128ed610c88565b806128fb57506128fb610c5f565b1515612951576040805160e560020a62461bcd02815260206004820152600c60248201527f6f6e6c7945746841646d696e0000000000000000000000000000000000000000604482015290519081900360640190fd5b612959610c88565b156129be57601054610100900460ff16156129be576040805160e560020a62461bcd02815260206004820152600c60248201527f756e417574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b60008111612a04576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614a20833981519152604482015290519081900360640190fd5b600f54811415612a4c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a00833981519152604482015290519081900360640190fd5b600f55565b60135481565b612a5f613739565b80612a6d5750612a6d610c5f565b1515612ac3576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c79436f6e747261637441646d696e000000000000000000000000000000604482015290519081900360640190fd5b60168054600160a060020a031916600160a060020a0392909216919091179055565b612aed610c5f565b1515612b31576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600160a060020a0381161515612b7f576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60058054600160a060020a031916600160a060020a0392909216919091179055565b600c5490565b612baf610c5f565b1515612bf3576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b601854604080517f4bbf3a7a000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a0390921691634bbf3a7a9160248082019260009290919082900301818387803b158015612c5957600080fd5b505af11580156123fc573d6000803e3d6000fd5b60125481565b600654600160a060020a0316331490565b601554604080517f72fbc8510000000000000000000000000000000000000000000000000000000081523360048201529051600092606092849284928492839283928392600160a060020a03909116916372fbc85191602480820192869290919082900301818387803b158015612cfa57600080fd5b505af1158015612d0e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610100811015612d3857600080fd5b815160208301805191939283019291640100000000811115612d5957600080fd5b82016020810184811115612d6c57600080fd5b8151640100000000811182820187101715612d8657600080fd5b50506020820151604090920180519194929391640100000000811115612dab57600080fd5b82016020810184811115612dbe57600080fd5b8151856020820283011164010000000082111715612ddb57600080fd5b505092919060200180519060200190929190805190602001909291908051906020019092919080519060200190929190505050975097509750975097509750975097509091929394959697565b6000612e32611745565b80612e405750612e40610c5f565b1515612e96576040805160e560020a62461bcd02815260206004820152600a60248201527f6f6e6c794c41646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b8251600010612eef576040805160e560020a62461bcd02815260206004820152601660248201527f56616c7565732063616e6e6f7420626520656d70747900000000000000000000604482015290519081900360640190fd5b82516101001015612f4a576040805160e560020a62461bcd02815260206004820152600e60248201527f4d6178696d756d20697320323536000000000000000000000000000000000000604482015290519081900360640190fd5b60008260ff1610158015612f62575060038260ff1611155b1515612fb8576040805160e560020a62461bcd02815260206004820152600f60248201527f5479706520697320696e76616c69640000000000000000000000000000000000604482015290519081900360640190fd5b5060005b82518160ff1610156130ab5782513390849060ff8416908110612fdb57fe5b60209081029091010151600160a060020a03161415613044576040805160e560020a62461bcd02815260206004820152600b60248201527f596f757273656c66212121000000000000000000000000000000000000000000604482015290519081900360640190fd5b8160ff16600381111561305357fe5b60086000858460ff1681518110151561306857fe5b6020908102909101810151600160a060020a03168252810191909152604001600020805460ff1916600183600381111561309e57fe5b0217905550600101612fbc565b7f8db78fdb13b2139a1e6cdce5bfb58676ce5246a09d0a33a748d3438767a3cef8838360405180806020018360ff1660ff168152602001828103825284818151815260200191508051906020019060200280838360005b8381101561311a578181015183820152602001613102565b50505050905001935050505060405180910390a1505050565b61313b610c5f565b151561317f576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b601854604080517f48f79607000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a03909216916348f796079160248082019260009290919082900301818387803b158015612c5957600080fd5b600b5490565b60006131f5610c5f565b1515613239576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b50601854604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018490529051849283169163095ea7b39160448083019260209291908290030181600087803b1580156132a957600080fd5b505af11580156132bd573d6000803e3d6000fd5b505050506040513d60208110156123fc57600080fd5b6132db610c5f565b151561331f576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b60008111613365576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614a20833981519152604482015290519081900360640190fd5b601355565b613372610c5f565b15156133b6576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b601854604080517f1e59c529000000000000000000000000000000000000000000000000000000008152600160a060020a03848116602483015260048201928352855160448301528551931692631e59c5299286928692829160640190602086019080838360005b8381101561343657818101518382015260200161341e565b50505050905090810190601f1680156134635780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561348357600080fd5b505af1158015613497573d6000803e3d6000fd5b505050505050565b600254600160a060020a0316331490565b601754600160a060020a031681565b6134c7610c71565b806134d557506134d5610c5f565b151561352b576040805160e560020a62461bcd02815260206004820152600d60248201527f6f6e6c794d61785341646d696e00000000000000000000000000000000000000604482015290519081900360640190fd5b60008111613571576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614a20833981519152604482015290519081900360640190fd5b601455565b61357e610c5f565b15156135c2576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b60105460ff1615158115151415613611576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a00833981519152604482015290519081900360640190fd5b6010805460ff191682151517908190556040805160ff90921615158252517fc310316a673d176e866702527c019155ef72d2e8b2f3f3b48cbb4767419aea69916020908290030190a150565b613665612c73565b806136735750613673610c5f565b15156136c9576040805160e560020a62461bcd02815260206004820152600f60248201527f6f6e6c794261636b757041646d696e0000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515613717576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600154600160a060020a0316331490565b613752610c5f565b1515613796576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600081116137ee576040805160e560020a62461bcd02815260206004820152600b60248201527f6d757374206265203e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b601154811415613848576040805160e560020a62461bcd02815260206004820152601160248201527f6d757374206265206e65772076616c7565000000000000000000000000000000604482015290519081900360640190fd5b601155565b600e5481565b61385b610c5f565b151561389f576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600081116138f7576040805160e560020a62461bcd02815260206004820152600b60248201527f6d757374206265203e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b601254811415613951576040805160e560020a62461bcd02815260206004820152601160248201527f6d757374206265206e65772076616c7565000000000000000000000000000000604482015290519081900360640190fd5b601255565b61395e610c5f565b15156139a2576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600081116139fa576040805160e560020a62461bcd02815260206004820152601660248201527f6d696e696e6744696666206d757374206265203e203000000000000000000000604482015290519081900360640190fd5b600b54811415613a54576040805160e560020a62461bcd02815260206004820152601c60248201527f6d696e696e6744696666206d757374206265206e65772076616c756500000000604482015290519081900360640190fd5b600b8190556040805182815290517fbdcbd80d633405a54cf241f3585043f618c9b2b25267bbf8144d04c37c5b6aa79181900360200190a150565b600d5481565b613a9d611745565b80613aab5750613aab610c5f565b1515613b01576040805160e560020a62461bcd02815260206004820152600a60248201527f6f6e6c794c41646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b6010805461ff001916610100179055565b600f5481565b6015546040805160e060020a63f3caad03028152600160a060020a0385811660048301529151919092169163f3caad039160248083019260209291908290030181600087803b158015613b6a57600080fd5b505af1158015613b7e573d6000803e3d6000fd5b505050506040513d6020811015613b9457600080fd5b50511515613bec576040805160e560020a62461bcd02815260206004820152601560248201527f506c656173652072656769737465722066697273740000000000000000000000604482015290519081900360640190fd5b6015546040805160e060020a63f3caad03028152600160a060020a0384811660048301529151919092169163f3caad039160248083019260209291908290030181600087803b158015613c3e57600080fd5b505af1158015613c52573d6000803e3d6000fd5b505050506040513d6020811015613c6857600080fd5b50511515613ce5576040805160e560020a62461bcd028152602060048201526024808201527f596f752063616e206f6e6c792061637469766520616e20657869737473206d6560448201527f6d62657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382811690821614613e1057601554604080517fda9c9ba7000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015284811660248301529151919092169163da9c9ba79160448083019260209291908290030181600087803b158015613d6857600080fd5b505af1158015613d7c573d6000803e3d6000fd5b505050506040513d6020811015613d9257600080fd5b50511515613e10576040805160e560020a62461bcd02815260206004820152602560248201527f5468697320757365722069736e277420696e20796f757220726566657272616c60448201527f2074726565000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600f54600010613e90576040805160e560020a62461bcd02815260206004820152602760248201527f496e76616c69642065746850726963652c20706c6561736520636f6e7461637460448201527f2061646d696e2100000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5050565b6000808211613eed576040805160e560020a62461bcd02815260206004820152601260248201527f416d6f756e74206d757374206265203e20300000000000000000000000000000604482015290519081900360640190fd5b600e54821115613f6d576040805160e560020a62461bcd02815260206004820152603660248201527f43616e206e6f74206a6f696e207769746820616d6f756e74207468617420677260448201527f6561746572206d6178206a6f696e207061636b61676500000000000000000000606482015290519081900360840190fd5b601654604080517f9042bb1e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691639042bb1e9160248083019260209291908290030181600087803b158015613fd557600080fd5b505af1158015613fe9573d6000803e3d6000fd5b505050506040513d6020811015613fff57600080fd5b5051905080151561406957600d54821015614064576040805160e560020a62461bcd02815260206004820152601e60248201527f4d696e696d756d20666f72206669727374206a6f696e20697320243230300000604482015290519081900360640190fd5b6140e7565b808210156140e7576040805160e560020a62461bcd02815260206004820152603760248201527f43616e206e6f74206a6f696e207769746820616d6f756e742074686174206c6f60448201527f776572207468616e20796f7572206c617374206a6f696e000000000000000000606482015290519081900360840190fd5b505050565b600060023360009081526008602052604090205460ff16600381111561410e57fe5b1415801561413a575060033360009081526008602052604090205460ff16600381111561413757fe5b14155b90508015156141b9576040805160e560020a62461bcd02815260206004820152602960248201527f596f7572206163636f756e7420676574206c6f636b65642066726f6d206d696e60448201527f696e6720746f6b656e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50565b336000908152600960205260408120805490919081908190819081908190819015156142415760135489111561423c576040805160e560020a62461bcd02815260206004820152601160248201527f416d6f756e7420697320696e76616c6964000000000000000000000000000000604482015290519081900360640190fd5b61439d565b87546000975087965094508593505b848410156142b957878481548110151561426657fe5b90600052602060002090600202019250826000015462015180420310915081156142a75760018301546142a090889063ffffffff6144d516565b96506142ae565b6001909501945b600190930192614250565b6000861115614334575060005b875486900381101561432357878682018154811015156142e257fe5b906000526020600020906002020188828154811015156142fe57fe5b60009182526020909120825460029092020190815560019182015490820155016142c6565b8754869003614332898261497b565b505b601354614347888b63ffffffff6144d516565b111561439d576040805160e560020a62461bcd02815260206004820152601260248201527f546f6f206d75636820666f7220746f6461790000000000000000000000000000604482015290519081900360640190fd5b5050604080518082019091524281526020808201988952875460018181018a556000998a529190982091516002909802909101968755965195909601949094555050505050565b601654604080517fbb1937c0000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151600093929092169163bb1937c09160248082019260209290919082900301818787803b15801561444f57600080fd5b505af1158015614463573d6000803e3d6000fd5b505050506040513d602081101561447957600080fd5b50519050818110156140e7576040805160e560020a62461bcd02815260206004820152601b60248201527f596f752068617665206e6f7420656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b600082820183811015614532576040805160e560020a62461bcd02815260206004820152601260248201527f536166654d61746820616464206572726f720000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000806012541115156145bc576040805160e560020a62461bcd02815260206004820152602260248201527f496e76616c696420646174612c20706c6561736520636f6e746163742061646d60448201527f696e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b601254828115156145c957fe5b0492915050565b6000806000806000806000600a805490506000141561464857601454881115614643576040805160e560020a62461bcd02815260206004820152601160248201527f416d6f756e7420697320696e76616c6964000000000000000000000000000000604482015290519081900360640190fd5b6147aa565b600a546000975087965094508593505b848410156146c157600a80548590811061466e57fe5b90600052602060002090600202019250826000015462015180420310915081156146af5760018301546146a890889063ffffffff6144d516565b96506146b6565b6001909501945b600190930192614658565b6000861115614741575060005b600a5486900381101561472d57600a80548288019081106146eb57fe5b9060005260206000209060020201600a8281548110151561470857fe5b60009182526020909120825460029092020190815560019182015490820155016146ce565b600a80548790039061473f908261497b565b505b601454614754888a63ffffffff6144d516565b11156147aa576040805160e560020a62461bcd02815260206004820152601260248201527f546f6f206d75636820666f7220746f6461790000000000000000000000000000604482015290519081900360640190fd5b50506040805180820190915242815260208101968752600a805460018101825560009190915290517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a860029092029182015595517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a9909601959095555050505050565b600080821215614843578160001902905061172b565b5090565b601654604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152670de0b6b3a76400008587020460248301819052600060448401819052606484018890529351600a8804959194929091169263f1f89e9292608480830193919282900301818387803b1580156148d657600080fd5b505af11580156148ea573d6000803e3d6000fd5b5050600754604051600160a060020a03909116925084156108fc02915084906000818181858888f19350505050158015614928573d6000803e3d6000fd5b5060408051600160a060020a0380891682528716602082015280820183905290517f2ced4e9f0876fb793bc9670927e9d22151fe5f129df989c2d4946ef5a59a97db9181900360600190a1505050505050565b8154818355818111156140e7576000838152602090206140e791610c6e9160029182028101918502015b8082111561484357600080825560018201556002016149a55600496e76616c6964206164647265737300000000000000000000000000000000006f6e6c794d61696e41646d696e000000000000000000000000000000000000004d757374206265206e65772076616c75650000000000000000000000000000004d757374206265203e2030000000000000000000000000000000000000000000a165627a7a72305820a528f06fb7c65082c5ceb552813bf577f7eb123a9ae9246b70f83af86ea899df00290000000000000000000000003839481b915f408cac7aab44b766b8b18b692f760000000000000000000000003839481b915f408cac7aab44b766b8b18b692f760000000000000000000000003839481b915f408cac7aab44b766b8b18b692f760000000000000000000000003839481b915f408cac7aab44b766b8b18b692f760000000000000000000000003839481b915f408cac7aab44b766b8b18b692f760000000000000000000000003839481b915f408cac7aab44b766b8b18b692f76000000000000000000000000000000000000000000000000000000000002ff38

Deployed Bytecode

0x60806040526004361061029d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302e65b8a811461029f57806310a5c978146102c05780631168222b146102d857806311bec7321461030157806316fffb5d146103165780631cce93c41461033d5780631e59c52914610352578063243884ec146103b65780632bbc4971146103cb57806331e43f53146103fc57806332620c2714610411578063380b682d146104325780633bef6e1e146104535780633ff7801c14610477578063406355181461049857806344e73337146104ad57806347ff89ef146104e4578063482d96281461052957806348f796071461053e5780634bbf3a7a14610556578063521eb2731461056e57806354ee1bdd1461058357806359450ff5146105a45780635e5a662d146105bb5780635f931901146105d3578063621b46e5146105e85780637258ef4b1461060c57806375bdc20b146106245780638106bbeb146106455780638143ea5a1461065d5780638d425e1d1461067257806391881746146106935780639569bf76146106b4578063989d12b6146106c95780639d7e6c88146106e15780639f9abd5a146106f6578063a34cc9361461070b578063a50695c114610815578063a51ec1a21461086f578063a8d3688c14610887578063ac85ae061461089c578063ad54b049146108c0578063b373767a146108d8578063b8a5b5c81461093c578063c2ba9a3214610951578063c47a67de14610966578063c80d64cd1461097e578063d30f133d14610998578063d3184e80146109b9578063d69a5eec146109ce578063dd892d20146109e6578063e07f381a146109fb578063e0c9fb1a14610a13578063e71e88a414610a2b578063f0d9829914610a40578063ff186b2e14610a55575b005b3480156102ab57600080fd5b5061029d600160a060020a0360043516610a6a565b3480156102cc57600080fd5b5061029d600435610b26565b3480156102e457600080fd5b506102ed610c5f565b604080519115158252519081900360200190f35b34801561030d57600080fd5b506102ed610c71565b34801561032257600080fd5b5061032b610c82565b60408051918252519081900360200190f35b34801561034957600080fd5b506102ed610c88565b34801561035e57600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261029d94369492936024939284019190819084018382808284375094975050509235600160a060020a03169350610c9992505050565b3480156103c257600080fd5b506102ed610fa3565b3480156103d757600080fd5b506103e0610fb1565b60408051600160a060020a039092168252519081900360200190f35b34801561040857600080fd5b506102ed610fc0565b34801561041d57600080fd5b5061029d600160a060020a0360043516610fc9565b34801561043e57600080fd5b5061029d600160a060020a0360043516611057565b34801561045f57600080fd5b5061029d600435600160a060020a0360243516611125565b34801561048357600080fd5b5061029d600160a060020a03600435166115ec565b3480156104a457600080fd5b5061029d6116a8565b3480156104b957600080fd5b506104ce600160a060020a0360043516611701565b6040805160ff9092168252519081900360200190f35b3480156104f057600080fd5b50610505600160a060020a0360043516611730565b6040518082600381111561051557fe5b60ff16815260200191505060405180910390f35b34801561053557600080fd5b506102ed611745565b34801561054a57600080fd5b5061029d600435611756565b34801561056257600080fd5b5061029d600435611cd0565b34801561057a57600080fd5b506103e061215f565b34801561058f57600080fd5b5061029d600160a060020a036004351661216e565b61029d600435600160a060020a036024351661222a565b3480156105c757600080fd5b5061029d600435612403565b3480156105df57600080fd5b5061032b612571565b3480156105f457600080fd5b5061029d600435600160a060020a0360243516612577565b34801561061857600080fd5b5061029d600435612701565b34801561063057600080fd5b5061029d600160a060020a0360043516612829565b34801561065157600080fd5b5061029d6004356128e5565b34801561066957600080fd5b5061032b612a51565b34801561067e57600080fd5b5061029d600160a060020a0360043516612a57565b34801561069f57600080fd5b5061029d600160a060020a0360043516612ae5565b3480156106c057600080fd5b5061032b612ba1565b3480156106d557600080fd5b5061029d600435612ba7565b3480156106ed57600080fd5b5061032b612c6d565b34801561070257600080fd5b506102ed612c73565b34801561071757600080fd5b50610720612c84565b604051808981526020018060200188600160a060020a0316600160a060020a031681526020018060200187815260200186815260200185815260200184815260200183810383528a818151815260200191508051906020019080838360005b8381101561079757818101518382015260200161077f565b50505050905090810190601f1680156107c45780820380516001836020036101000a031916815260200191505b508381038252885181528851602091820191808b01910280838360005b838110156107f95781810151838201526020016107e1565b505050509050019a505050505050505050505060405180910390f35b34801561082157600080fd5b506040805160206004803580820135838102808601850190965280855261029d953695939460249493850192918291850190849080828437509497505050923560ff169350612e2892505050565b34801561087b57600080fd5b5061029d600435613133565b34801561089357600080fd5b5061032b6131e5565b3480156108a857600080fd5b5061029d600160a060020a03600435166024356131eb565b3480156108cc57600080fd5b5061029d6004356132d3565b3480156108e457600080fd5b506040805160206004803580820135601f810184900484028501840190955284845261029d94369492936024939284019190819084018382808284375094975050509235600160a060020a0316935061336a92505050565b34801561094857600080fd5b506102ed61349f565b34801561095d57600080fd5b506103e06134b0565b34801561097257600080fd5b5061029d6004356134bf565b34801561098a57600080fd5b5061029d6004351515613576565b3480156109a457600080fd5b5061029d600160a060020a036004351661365d565b3480156109c557600080fd5b506102ed613739565b3480156109da57600080fd5b5061029d60043561374a565b3480156109f257600080fd5b5061032b61384d565b348015610a0757600080fd5b5061029d600435613853565b348015610a1f57600080fd5b5061029d600435613956565b348015610a3757600080fd5b5061032b613a8f565b348015610a4c57600080fd5b5061029d613a95565b348015610a6157600080fd5b5061032b613b12565b610a72610c5f565b1515610ab6576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600160a060020a0381161515610b04576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b610b2e610c5f565b1515610b72576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b60008111610bca576040805160e560020a62461bcd02815260206004820152601660248201527f4d696e696d756d427579206d757374206265203e203000000000000000000000604482015290519081900360640190fd5b600c54811415610c24576040805160e560020a62461bcd02815260206004820152601e60248201527f7472616e7366657244696666206d757374206265206e65772076616c75650000604482015290519081900360640190fd5b600c8190556040805182815290517f696bbaa664e6ac8bb851a93adf7d91f2550022e2d95b99ddb871be82ea04027e9181900360200190a150565b600054600160a060020a031633145b90565b600554600160a060020a0316331490565b60115481565b600354600160a060020a0316331490565b6015546040805160e060020a63f3caad03028152600160a060020a0384811660048301529151600093929092169163f3caad039160248082019260209290919082900301818787803b158015610cee57600080fd5b505af1158015610d02573d6000803e3d6000fd5b505050506040513d6020811015610d1857600080fd5b50511515610d70576040805160e560020a62461bcd02815260206004820152601b60248201527f496e766974657220646964206e6f7420726567697374657265642e0000000000604482015290519081900360640190fd5b600160a060020a038216331415610dd1576040805160e560020a62461bcd02815260206004820152601860248201527f43616e6e6f7420726566657272616c20796f757273656c660000000000000000604482015290519081900360640190fd5b6015546040517f97294e580000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03868116604485015260606024850190815288516064860152885191909516946397294e58948993899390929160840190602086019080838360005b83811015610e5d578181015183820152602001610e45565b50505050905090810190601f168015610e8a5780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015610eab57600080fd5b505af1158015610ebf573d6000803e3d6000fd5b505050506040513d6020811015610ed557600080fd5b50516040805182815233918101829052600160a060020a03851660608201526080602082810182815288519284019290925287519495507f6cddf760a0682a65b93ab75a1c92afba3c310bdab72fe56a81949110dc6ac8619486948994909389939192909160a08401919087019080838360005b83811015610f61578181015183820152602001610f49565b50505050905090810190601f168015610f8e5780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1505050565b601054610100900460ff1681565b601554600160a060020a031681565b60105460ff1681565b610fd1613739565b80610fdf5750610fdf610c5f565b1515611035576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c79436f6e747261637441646d696e000000000000000000000000000000604482015290519081900360640190fd5b60158054600160a060020a031916600160a060020a0392909216919091179055565b61105f612c73565b15156110b5576040805160e560020a62461bcd02815260206004820152600f60248201527f6f6e6c794261636b757041646d696e0000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515611103576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60068054600160a060020a031916600160a060020a0392909216919091179055565b6000806111323384613b18565b61113c8385613e94565b6011548481151561114957fe5b601754604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152336004820152306024820152905193909204670de0b6b3a76400000294508492600160a060020a039091169163dd62ed3e9160448083019260209291908290030181600087803b1580156111c657600080fd5b505af11580156111da573d6000803e3d6000fd5b505050506040513d60208110156111f057600080fd5b50511015611248576040805160e560020a62461bcd02815260206004820152601d60248201527f596f75206d7573742063616c6c20617070726f76652829206669727374000000604482015290519081900360640190fd5b6017546040805160e060020a6370a082310281523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b15801561129857600080fd5b505af11580156112ac573d6000803e3d6000fd5b505050506040513d60208110156112c257600080fd5b505190508181101561131e576040805160e560020a62461bcd02815260206004820152601a60248201527f596f752068617665206e6f7420656e6f75676820746f6b656e73000000000000604482015290519081900360640190fd5b601754604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b15801561139157600080fd5b505af11580156113a5573d6000803e3d6000fd5b505050506040513d60208110156113bb57600080fd5b50511515611413576040805160e560020a62461bcd02815260206004820152601560248201527f5472616e7366657220746f6b656e206661696c65640000000000000000000000604482015290519081900360640190fd5b601754600754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152600a860460248201529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561148757600080fd5b505af115801561149b573d6000803e3d6000fd5b505050506040513d60208110156114b157600080fd5b50511515611509576040805160e560020a62461bcd02815260206004820152601e60248201527f5472616e7366657220746f6b656e20746f2061646d696e206661696c65640000604482015290519081900360640190fd5b601654604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820188905260016044830152606482018690529151919092169163f1f89e9291608480830192600092919082900301818387803b15801561158557600080fd5b505af1158015611599573d6000803e3d6000fd5b505060408051338152600160a060020a038716602082015280820188905290517f6a26ed261f93dd650629e9362d6ed42670d1ea1f869fbdbd077eb1b310a242369350908190036060019150a150505050565b6115f4610c5f565b1515611638576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600160a060020a0381161515611686576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60038054600160a060020a031916600160a060020a0392909216919091179055565b6116b0610c5f565b15156116f4576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b6010805461ff0019169055565b600160a060020a03811660009081526008602052604081205460ff16600381111561172857fe5b90505b919050565b60086020526000908152604090205460ff1681565b600454600160a060020a0316331490565b60008060006011541115156117db576040805160e560020a62461bcd02815260206004820152602260248201527f496e76616c696420646174612c20706c6561736520636f6e746163742061646d60448201527f696e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6015546040805160e060020a63f3caad030281523360048201529051600160a060020a039092169163f3caad03916024808201926020929091908290030181600087803b15801561182b57600080fd5b505af115801561183f573d6000803e3d6000fd5b505050506040513d602081101561185557600080fd5b505115156118ad576040805160e560020a62461bcd02815260206004820152601560248201527f506c656173652072656769737465722066697273740000000000000000000000604482015290519081900360640190fd5b6118b56140ec565b601154670de0b6b3a76400009084020491506118d0826141bc565b600b5482101561192a576040805160e560020a62461bcd02815260206004820152601b60248201527f416d6f756e74206d757374206265203e206d696e696e67446966660000000000604482015290519081900360640190fd5b61193433836143e4565b601654604080517f3296c7d6000000000000000000000000000000000000000000000000000000008152600481018590523360248201529051600160a060020a0390921691633296c7d69160448082019260009290919082900301818387803b1580156119a057600080fd5b505af11580156119b4573d6000803e3d6000fd5b5050601654604080517f23e85bfb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051600160a060020a0390921693506323e85bfb925060448082019260009290919082900301818387803b158015611a2457600080fd5b505af1158015611a38573d6000803e3d6000fd5b50506017546040805160e060020a6370a082310281523360048201529051600160a060020a0390921693506370a0823192506024808201926020929091908290030181600087803b158015611a8c57600080fd5b505af1158015611aa0573d6000803e3d6000fd5b505050506040513d6020811015611ab657600080fd5b5051601754604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018790529051929350600160a060020a039091169163a9059cbb916044808201926020929091908290030181600087803b158015611b2857600080fd5b505af1158015611b3c573d6000803e3d6000fd5b505050506040513d6020811015611b5257600080fd5b50511515611baa576040805160e560020a62461bcd02815260206004820152601d60248201527f5472616e7366657220746f6b656e20746f2075736572206661696c6564000000604482015290519081900360640190fd5b611bba818463ffffffff6144d516565b6017546040805160e060020a6370a082310281523360048201529051600160a060020a03909216916370a08231916024808201926020929091908290030181600087803b158015611c0a57600080fd5b505af1158015611c1e573d6000803e3d6000fd5b505050506040513d6020811015611c3457600080fd5b505114611c8b576040805160e560020a62461bcd02815260206004820152601a60248201527f5573657220746f6b656e206368616e67656420696e76616c6964000000000000604482015290519081900360640190fd5b604080513381526020810185905280820184905290517f7fb08210da114cf38e2518a9feafd477ad944ed7eb08ce5bc794ce918f3409c39181900360600190a1505050565b6000808211611d29576040805160e560020a62461bcd02815260206004820152601660248201527f496e76616c696420616d6f756e7420746f207377617000000000000000000000604482015290519081900360640190fd5b6017546040805160e060020a6370a0823102815233600482015290518492600160a060020a0316916370a082319160248083019260209291908290030181600087803b158015611d7857600080fd5b505af1158015611d8c573d6000803e3d6000fd5b505050506040513d6020811015611da257600080fd5b50511015611dfa576040805160e560020a62461bcd02815260206004820152601b60248201527f596f752068617665206e6f7420656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b611e0382614539565b90503031811115611e83576040805160e560020a62461bcd028152602060048201526024808201527f54686520636f6e74726163742068617665206e6f7420656e6f7567682062616c60448201527f616e636500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b611e8c816145d0565b601754604080517fdd62ed3e00000000000000000000000000000000000000000000000000000000815233600482015230602482015290518492600160a060020a03169163dd62ed3e9160448083019260209291908290030181600087803b158015611ef757600080fd5b505af1158015611f0b573d6000803e3d6000fd5b505050506040513d6020811015611f2157600080fd5b50511015611f79576040805160e560020a62461bcd02815260206004820152601d60248201527f596f75206d7573742063616c6c20617070726f76652829206669727374000000604482015290519081900360640190fd5b601754604080517f23b872dd000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018590529051600160a060020a03909216916323b872dd916064808201926020929091908290030181600087803b158015611fec57600080fd5b505af1158015612000573d6000803e3d6000fd5b505050506040513d602081101561201657600080fd5b5051151561206e576040805160e560020a62461bcd02815260206004820152601560248201527f5472616e7366657220746f6b656e206661696c65640000000000000000000000604482015290519081900360640190fd5b604051339082156108fc029083906000818181858888f1935050505015801561209b573d6000803e3d6000fd5b50601654604080517fc61d04a1000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a039092169163c61d04a19160248082019260009290919082900301818387803b15801561210257600080fd5b505af1158015612116573d6000803e3d6000fd5b5050604080513381526020810186905280820185905290517fd5a1cd88ddd329cc1ddf861a21708efa9ef3136b88e1420c21f91ef6f95ad0249350908190036060019150a15050565b601654600160a060020a031681565b612176610c5f565b15156121ba576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600160a060020a0381161515612208576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60078054600160a060020a031916600160a060020a0392909216919091179055565b6010546000908190819060ff16806122555750733839481b915f408cac7aab44b766b8b18b692f7633145b15156122ab576040805160e560020a62461bcd02815260206004820152601960248201527f43616e206e6f742062757920766961204574686572206e6f7700000000000000604482015290519081900360640190fd5b6122b53385613b18565b6000851161230d576040805160e560020a62461bcd02815260206004820152601060248201527f52617465206d757374206265203e203000000000000000000000000000000000604482015290519081900360640190fd5b61232384670de0b6b3a764000034880204613e94565b60038561233387600f540361482d565b60640281151561233f57fe5b04111592506005600f54612356600f54880361482d565b60640281151561236257fe5b04111591508280156123715750815b90508015156123f0576040805160e560020a62461bcd02815260206004820152602160248201527f496e76616c696420726174652c20706c6561736520636865636b20616761696e60448201527f2100000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b6123fc33853488614847565b5050505050565b61240b610c5f565b151561244f576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b60008111612495576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614a20833981519152604482015290519081900360640190fd5b600e5481106124ee576040805160e560020a62461bcd02815260206004820152600f60248201527f4d757374206265203c206d61784a500000000000000000000000000000000000604482015290519081900360640190fd5b600d54811415612536576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a00833981519152604482015290519081900360640190fd5b600d8190556040805182815290517fed8b2fda3f77cfdc28ec25f2d800aeba9c44954c10c8e95ebfc120bd36761ec29181900360200190a150565b60145481565b6125813382613b18565b61258b8183613e94565b61259533836143e4565b601654604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301526024820186905260026044830152606482018690529151919092169163f1f89e9291608480830192600092919082900301818387803b15801561261157600080fd5b505af1158015612625573d6000803e3d6000fd5b5050601654600754604080517f5e7920c0000000000000000000000000000000000000000000000000000000008152600a88046004820152600160a060020a0392831660248201529051919092169350635e7920c09250604480830192600092919082900301818387803b15801561269c57600080fd5b505af11580156126b0573d6000803e3d6000fd5b505060408051338152600160a060020a038516602082015280820186905290517f7b2f4de0cb94d605245e79183c85ba07e8c449476a547bbd4fe9904e790c93709350908190036060019150a15050565b612709610c5f565b151561274d576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600d5481116127a6576040805160e560020a62461bcd02815260206004820152600f60248201527f4d757374206265203e206d696e4a500000000000000000000000000000000000604482015290519081900360640190fd5b600e548114156127ee576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a00833981519152604482015290519081900360640190fd5b600e8190556040805182815290517f945f55d166da93f9491a7daf731ced4e8c97a19f65912d6cdad10935717df6919181900360200190a150565b612831610c5f565b1515612875576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600160a060020a03811615156128c3576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60048054600160a060020a031916600160a060020a0392909216919091179055565b6128ed610c88565b806128fb57506128fb610c5f565b1515612951576040805160e560020a62461bcd02815260206004820152600c60248201527f6f6e6c7945746841646d696e0000000000000000000000000000000000000000604482015290519081900360640190fd5b612959610c88565b156129be57601054610100900460ff16156129be576040805160e560020a62461bcd02815260206004820152600c60248201527f756e417574686f72697a65640000000000000000000000000000000000000000604482015290519081900360640190fd5b60008111612a04576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614a20833981519152604482015290519081900360640190fd5b600f54811415612a4c576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a00833981519152604482015290519081900360640190fd5b600f55565b60135481565b612a5f613739565b80612a6d5750612a6d610c5f565b1515612ac3576040805160e560020a62461bcd02815260206004820152601160248201527f6f6e6c79436f6e747261637441646d696e000000000000000000000000000000604482015290519081900360640190fd5b60168054600160a060020a031916600160a060020a0392909216919091179055565b612aed610c5f565b1515612b31576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600160a060020a0381161515612b7f576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60058054600160a060020a031916600160a060020a0392909216919091179055565b600c5490565b612baf610c5f565b1515612bf3576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b601854604080517f4bbf3a7a000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a0390921691634bbf3a7a9160248082019260009290919082900301818387803b158015612c5957600080fd5b505af11580156123fc573d6000803e3d6000fd5b60125481565b600654600160a060020a0316331490565b601554604080517f72fbc8510000000000000000000000000000000000000000000000000000000081523360048201529051600092606092849284928492839283928392600160a060020a03909116916372fbc85191602480820192869290919082900301818387803b158015612cfa57600080fd5b505af1158015612d0e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610100811015612d3857600080fd5b815160208301805191939283019291640100000000811115612d5957600080fd5b82016020810184811115612d6c57600080fd5b8151640100000000811182820187101715612d8657600080fd5b50506020820151604090920180519194929391640100000000811115612dab57600080fd5b82016020810184811115612dbe57600080fd5b8151856020820283011164010000000082111715612ddb57600080fd5b505092919060200180519060200190929190805190602001909291908051906020019092919080519060200190929190505050975097509750975097509750975097509091929394959697565b6000612e32611745565b80612e405750612e40610c5f565b1515612e96576040805160e560020a62461bcd02815260206004820152600a60248201527f6f6e6c794c41646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b8251600010612eef576040805160e560020a62461bcd02815260206004820152601660248201527f56616c7565732063616e6e6f7420626520656d70747900000000000000000000604482015290519081900360640190fd5b82516101001015612f4a576040805160e560020a62461bcd02815260206004820152600e60248201527f4d6178696d756d20697320323536000000000000000000000000000000000000604482015290519081900360640190fd5b60008260ff1610158015612f62575060038260ff1611155b1515612fb8576040805160e560020a62461bcd02815260206004820152600f60248201527f5479706520697320696e76616c69640000000000000000000000000000000000604482015290519081900360640190fd5b5060005b82518160ff1610156130ab5782513390849060ff8416908110612fdb57fe5b60209081029091010151600160a060020a03161415613044576040805160e560020a62461bcd02815260206004820152600b60248201527f596f757273656c66212121000000000000000000000000000000000000000000604482015290519081900360640190fd5b8160ff16600381111561305357fe5b60086000858460ff1681518110151561306857fe5b6020908102909101810151600160a060020a03168252810191909152604001600020805460ff1916600183600381111561309e57fe5b0217905550600101612fbc565b7f8db78fdb13b2139a1e6cdce5bfb58676ce5246a09d0a33a748d3438767a3cef8838360405180806020018360ff1660ff168152602001828103825284818151815260200191508051906020019060200280838360005b8381101561311a578181015183820152602001613102565b50505050905001935050505060405180910390a1505050565b61313b610c5f565b151561317f576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b601854604080517f48f79607000000000000000000000000000000000000000000000000000000008152600481018490529051600160a060020a03909216916348f796079160248082019260009290919082900301818387803b158015612c5957600080fd5b600b5490565b60006131f5610c5f565b1515613239576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b50601854604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a039283166004820152602481018490529051849283169163095ea7b39160448083019260209291908290030181600087803b1580156132a957600080fd5b505af11580156132bd573d6000803e3d6000fd5b505050506040513d60208110156123fc57600080fd5b6132db610c5f565b151561331f576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b60008111613365576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614a20833981519152604482015290519081900360640190fd5b601355565b613372610c5f565b15156133b6576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b601854604080517f1e59c529000000000000000000000000000000000000000000000000000000008152600160a060020a03848116602483015260048201928352855160448301528551931692631e59c5299286928692829160640190602086019080838360005b8381101561343657818101518382015260200161341e565b50505050905090810190601f1680156134635780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561348357600080fd5b505af1158015613497573d6000803e3d6000fd5b505050505050565b600254600160a060020a0316331490565b601754600160a060020a031681565b6134c7610c71565b806134d557506134d5610c5f565b151561352b576040805160e560020a62461bcd02815260206004820152600d60248201527f6f6e6c794d61785341646d696e00000000000000000000000000000000000000604482015290519081900360640190fd5b60008111613571576040805160e560020a62461bcd02815260206004820152600b6024820152600080516020614a20833981519152604482015290519081900360640190fd5b601455565b61357e610c5f565b15156135c2576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b60105460ff1615158115151415613611576040805160e560020a62461bcd0281526020600482015260116024820152600080516020614a00833981519152604482015290519081900360640190fd5b6010805460ff191682151517908190556040805160ff90921615158252517fc310316a673d176e866702527c019155ef72d2e8b2f3f3b48cbb4767419aea69916020908290030190a150565b613665612c73565b806136735750613673610c5f565b15156136c9576040805160e560020a62461bcd02815260206004820152600f60248201527f6f6e6c794261636b757041646d696e0000000000000000000000000000000000604482015290519081900360640190fd5b600160a060020a0381161515613717576040805160e560020a62461bcd02815260206004820152600f60248201526000805160206149c0833981519152604482015290519081900360640190fd5b60008054600160a060020a031916600160a060020a0392909216919091179055565b600154600160a060020a0316331490565b613752610c5f565b1515613796576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600081116137ee576040805160e560020a62461bcd02815260206004820152600b60248201527f6d757374206265203e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b601154811415613848576040805160e560020a62461bcd02815260206004820152601160248201527f6d757374206265206e65772076616c7565000000000000000000000000000000604482015290519081900360640190fd5b601155565b600e5481565b61385b610c5f565b151561389f576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600081116138f7576040805160e560020a62461bcd02815260206004820152600b60248201527f6d757374206265203e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b601254811415613951576040805160e560020a62461bcd02815260206004820152601160248201527f6d757374206265206e65772076616c7565000000000000000000000000000000604482015290519081900360640190fd5b601255565b61395e610c5f565b15156139a2576040805160e560020a62461bcd02815260206004820152600d60248201526000805160206149e0833981519152604482015290519081900360640190fd5b600081116139fa576040805160e560020a62461bcd02815260206004820152601660248201527f6d696e696e6744696666206d757374206265203e203000000000000000000000604482015290519081900360640190fd5b600b54811415613a54576040805160e560020a62461bcd02815260206004820152601c60248201527f6d696e696e6744696666206d757374206265206e65772076616c756500000000604482015290519081900360640190fd5b600b8190556040805182815290517fbdcbd80d633405a54cf241f3585043f618c9b2b25267bbf8144d04c37c5b6aa79181900360200190a150565b600d5481565b613a9d611745565b80613aab5750613aab610c5f565b1515613b01576040805160e560020a62461bcd02815260206004820152600a60248201527f6f6e6c794c41646d696e00000000000000000000000000000000000000000000604482015290519081900360640190fd5b6010805461ff001916610100179055565b600f5481565b6015546040805160e060020a63f3caad03028152600160a060020a0385811660048301529151919092169163f3caad039160248083019260209291908290030181600087803b158015613b6a57600080fd5b505af1158015613b7e573d6000803e3d6000fd5b505050506040513d6020811015613b9457600080fd5b50511515613bec576040805160e560020a62461bcd02815260206004820152601560248201527f506c656173652072656769737465722066697273740000000000000000000000604482015290519081900360640190fd5b6015546040805160e060020a63f3caad03028152600160a060020a0384811660048301529151919092169163f3caad039160248083019260209291908290030181600087803b158015613c3e57600080fd5b505af1158015613c52573d6000803e3d6000fd5b505050506040513d6020811015613c6857600080fd5b50511515613ce5576040805160e560020a62461bcd028152602060048201526024808201527f596f752063616e206f6e6c792061637469766520616e20657869737473206d6560448201527f6d62657200000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600160a060020a0382811690821614613e1057601554604080517fda9c9ba7000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015284811660248301529151919092169163da9c9ba79160448083019260209291908290030181600087803b158015613d6857600080fd5b505af1158015613d7c573d6000803e3d6000fd5b505050506040513d6020811015613d9257600080fd5b50511515613e10576040805160e560020a62461bcd02815260206004820152602560248201527f5468697320757365722069736e277420696e20796f757220726566657272616c60448201527f2074726565000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600f54600010613e90576040805160e560020a62461bcd02815260206004820152602760248201527f496e76616c69642065746850726963652c20706c6561736520636f6e7461637460448201527f2061646d696e2100000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b5050565b6000808211613eed576040805160e560020a62461bcd02815260206004820152601260248201527f416d6f756e74206d757374206265203e20300000000000000000000000000000604482015290519081900360640190fd5b600e54821115613f6d576040805160e560020a62461bcd02815260206004820152603660248201527f43616e206e6f74206a6f696e207769746820616d6f756e74207468617420677260448201527f6561746572206d6178206a6f696e207061636b61676500000000000000000000606482015290519081900360840190fd5b601654604080517f9042bb1e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015291519190921691639042bb1e9160248083019260209291908290030181600087803b158015613fd557600080fd5b505af1158015613fe9573d6000803e3d6000fd5b505050506040513d6020811015613fff57600080fd5b5051905080151561406957600d54821015614064576040805160e560020a62461bcd02815260206004820152601e60248201527f4d696e696d756d20666f72206669727374206a6f696e20697320243230300000604482015290519081900360640190fd5b6140e7565b808210156140e7576040805160e560020a62461bcd02815260206004820152603760248201527f43616e206e6f74206a6f696e207769746820616d6f756e742074686174206c6f60448201527f776572207468616e20796f7572206c617374206a6f696e000000000000000000606482015290519081900360840190fd5b505050565b600060023360009081526008602052604090205460ff16600381111561410e57fe5b1415801561413a575060033360009081526008602052604090205460ff16600381111561413757fe5b14155b90508015156141b9576040805160e560020a62461bcd02815260206004820152602960248201527f596f7572206163636f756e7420676574206c6f636b65642066726f6d206d696e60448201527f696e6720746f6b656e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b50565b336000908152600960205260408120805490919081908190819081908190819015156142415760135489111561423c576040805160e560020a62461bcd02815260206004820152601160248201527f416d6f756e7420697320696e76616c6964000000000000000000000000000000604482015290519081900360640190fd5b61439d565b87546000975087965094508593505b848410156142b957878481548110151561426657fe5b90600052602060002090600202019250826000015462015180420310915081156142a75760018301546142a090889063ffffffff6144d516565b96506142ae565b6001909501945b600190930192614250565b6000861115614334575060005b875486900381101561432357878682018154811015156142e257fe5b906000526020600020906002020188828154811015156142fe57fe5b60009182526020909120825460029092020190815560019182015490820155016142c6565b8754869003614332898261497b565b505b601354614347888b63ffffffff6144d516565b111561439d576040805160e560020a62461bcd02815260206004820152601260248201527f546f6f206d75636820666f7220746f6461790000000000000000000000000000604482015290519081900360640190fd5b5050604080518082019091524281526020808201988952875460018181018a556000998a529190982091516002909802909101968755965195909601949094555050505050565b601654604080517fbb1937c0000000000000000000000000000000000000000000000000000000008152600160a060020a0385811660048301529151600093929092169163bb1937c09160248082019260209290919082900301818787803b15801561444f57600080fd5b505af1158015614463573d6000803e3d6000fd5b505050506040513d602081101561447957600080fd5b50519050818110156140e7576040805160e560020a62461bcd02815260206004820152601b60248201527f596f752068617665206e6f7420656e6f7567682062616c616e63650000000000604482015290519081900360640190fd5b600082820183811015614532576040805160e560020a62461bcd02815260206004820152601260248201527f536166654d61746820616464206572726f720000000000000000000000000000604482015290519081900360640190fd5b9392505050565b6000806012541115156145bc576040805160e560020a62461bcd02815260206004820152602260248201527f496e76616c696420646174612c20706c6561736520636f6e746163742061646d60448201527f696e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b601254828115156145c957fe5b0492915050565b6000806000806000806000600a805490506000141561464857601454881115614643576040805160e560020a62461bcd02815260206004820152601160248201527f416d6f756e7420697320696e76616c6964000000000000000000000000000000604482015290519081900360640190fd5b6147aa565b600a546000975087965094508593505b848410156146c157600a80548590811061466e57fe5b90600052602060002090600202019250826000015462015180420310915081156146af5760018301546146a890889063ffffffff6144d516565b96506146b6565b6001909501945b600190930192614658565b6000861115614741575060005b600a5486900381101561472d57600a80548288019081106146eb57fe5b9060005260206000209060020201600a8281548110151561470857fe5b60009182526020909120825460029092020190815560019182015490820155016146ce565b600a80548790039061473f908261497b565b505b601454614754888a63ffffffff6144d516565b11156147aa576040805160e560020a62461bcd02815260206004820152601260248201527f546f6f206d75636820666f7220746f6461790000000000000000000000000000604482015290519081900360640190fd5b50506040805180820190915242815260208101968752600a805460018101825560009190915290517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a860029092029182015595517fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a9909601959095555050505050565b600080821215614843578160001902905061172b565b5090565b601654604080517ff1f89e92000000000000000000000000000000000000000000000000000000008152600160a060020a038681166004830152670de0b6b3a76400008587020460248301819052600060448401819052606484018890529351600a8804959194929091169263f1f89e9292608480830193919282900301818387803b1580156148d657600080fd5b505af11580156148ea573d6000803e3d6000fd5b5050600754604051600160a060020a03909116925084156108fc02915084906000818181858888f19350505050158015614928573d6000803e3d6000fd5b5060408051600160a060020a0380891682528716602082015280820183905290517f2ced4e9f0876fb793bc9670927e9d22151fe5f129df989c2d4946ef5a59a97db9181900360600190a1505050505050565b8154818355818111156140e7576000838152602090206140e791610c6e9160029182028101918502015b8082111561484357600080825560018201556002016149a55600496e76616c6964206164647265737300000000000000000000000000000000006f6e6c794d61696e41646d696e000000000000000000000000000000000000004d757374206265206e65772076616c75650000000000000000000000000000004d757374206265203e2030000000000000000000000000000000000000000000a165627a7a72305820a528f06fb7c65082c5ceb552813bf577f7eb123a9ae9246b70f83af86ea899df0029

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

0000000000000000000000003839481b915f408cac7aab44b766b8b18b692f760000000000000000000000003839481b915f408cac7aab44b766b8b18b692f760000000000000000000000003839481b915f408cac7aab44b766b8b18b692f760000000000000000000000003839481b915f408cac7aab44b766b8b18b692f760000000000000000000000003839481b915f408cac7aab44b766b8b18b692f760000000000000000000000003839481b915f408cac7aab44b766b8b18b692f76000000000000000000000000000000000000000000000000000000000002ff38

-----Decoded View---------------
Arg [0] : _mainAdmin (address): 0x3839481b915f408cAC7AaB44b766b8B18B692f76
Arg [1] : _ethAdmin (address): 0x3839481b915f408cAC7AaB44b766b8B18B692f76
Arg [2] : _LAdmin (address): 0x3839481b915f408cAC7AaB44b766b8B18B692f76
Arg [3] : _maxSAdmin (address): 0x3839481b915f408cAC7AaB44b766b8B18B692f76
Arg [4] : _backupAdmin (address): 0x3839481b915f408cAC7AaB44b766b8B18B692f76
Arg [5] : _commissionAdmin (address): 0x3839481b915f408cAC7AaB44b766b8B18B692f76
Arg [6] : _ethPrice (uint256): 196408

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000003839481b915f408cac7aab44b766b8b18b692f76
Arg [1] : 0000000000000000000000003839481b915f408cac7aab44b766b8b18b692f76
Arg [2] : 0000000000000000000000003839481b915f408cac7aab44b766b8b18b692f76
Arg [3] : 0000000000000000000000003839481b915f408cac7aab44b766b8b18b692f76
Arg [4] : 0000000000000000000000003839481b915f408cac7aab44b766b8b18b692f76
Arg [5] : 0000000000000000000000003839481b915f408cac7aab44b766b8b18b692f76
Arg [6] : 000000000000000000000000000000000000000000000000000000000002ff38


Deployed Bytecode Sourcemap

8717:15049:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11485:191;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11485:191:0;-1:-1:-1;;;;;11485:191:0;;;;;14278:286;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14278:286:0;;;;;1755:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1755:93:0;;;;;;;;;;;;;;;;;;;;;;2254;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2254:93:0;;;;9369:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9369:15:0;;;;;;;;;;;;;;;;;;;;2064:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2064:91:0;;;;15726:339;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15726:339:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15726:339:0;;-1:-1:-1;;;15726:339:0;;-1:-1:-1;;;;;15726:339:0;;-1:-1:-1;15726:339:0;;-1:-1:-1;;;15726:339:0;9333:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9333:31:0;;;;9482:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9482:23:0;;;;;;;;-1:-1:-1;;;;;9482:23:0;;;;;;;;;;;;;;9301:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9301:27:0;;;;10917:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10917:114:0;-1:-1:-1;;;;;10917:114:0;;;;;12036:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12036:184:0;-1:-1:-1;;;;;12036:184:0;;;;;17356:762;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17356:762:0;;;-1:-1:-1;;;;;17356:762:0;;;;;11682:166;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11682:166:0;-1:-1:-1;;;;;11682:166:0;;;;;12692:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12692:82:0;;;;15617:103;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15617:103:0;-1:-1:-1;;;;;15617:103:0;;;;;;;;;;;;;;;;;;;;;;;;9017:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9017:33:0;-1:-1:-1;;;;;9017:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2161:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2161:87:0;;;;18124:851;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18124:851:0;;;;;18981:721;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18981:721:0;;;;;9510:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9510:21:0;;;;12403:201;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12403:201:0;-1:-1:-1;;;;;12403:201:0;;;;;16237:717;;;;-1:-1:-1;;;;;16237:717:0;;;;;13022:248;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13022:248:0;;;;;9440:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9440:35:0;;;;16960:390;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16960:390:0;;;-1:-1:-1;;;;;16960:390:0;;;;;13276:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13276:207:0;;;;;11854:176;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11854:176:0;-1:-1:-1;;;;;11854:176:0;;;;;11037:263;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11037:263:0;;;;;9409:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9409:26:0;;;;10801:110;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10801:110:0;-1:-1:-1;;;;;10801:110:0;;;;;12226:171;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12226:171:0;-1:-1:-1;;;;;12226:171:0;;;;;15525:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15525:86:0;;;;15178:71;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15178:71:0;;;;;9389:15;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9389:15:0;;;;2353:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2353:97:0;;;;16071:160;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16071:160:0;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16071:160:0;-1:-1:-1;;;;;16071:160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;16071:160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16071:160:0;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;16071:160:0;;;;;;;;;;;;;;;;;;;;;;;;;14570:422;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14570:422:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14570:422:0;;-1:-1:-1;;;14570:422:0;;;;;-1:-1:-1;14570:422:0;;-1:-1:-1;;;14570:422:0;15099:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15099:73:0;;;;;15437:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15437:82:0;;;;15255:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15255:116:0;-1:-1:-1;;;;;15255:116:0;;;;;;;12780:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12780:115:0;;;;;14998:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14998:95:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14998:95:0;;-1:-1:-1;;;14998:95:0;;-1:-1:-1;;;;;14998:95:0;;-1:-1:-1;14998:95:0;;-1:-1:-1;;;14998:95:0;1961:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1961:97:0;;;;9536:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9536:76:0;;;;12901:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12901:115:0;;;;;13489:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13489:187:0;;;;;;;11306:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11306:173:0;-1:-1:-1;;;;;11306:173:0;;;;;1854:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1854:101:0;;;;13682:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13682:156:0;;;;;9244:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9244:27:0;;;;13844:156;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13844:156:0;;;;;14006:266;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14006:266:0;;;;;9213:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9213:26:0;;;;12610:76;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12610:76:0;;;;9276:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9276:20:0;;;;11485:191;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11577:33:0;;;;11569:61;;;;;-1:-1:-1;;;;;11569:61:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11569:61:0;;;;;;;;;;;;;;;11637:13;:33;;-1:-1:-1;;;;;;11637:33:0;-1:-1:-1;;;;;11637:33:0;;;;;;;;;;11485:191::o;14278:286::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;14375:1;14359:17;;14351:52;;;;;-1:-1:-1;;;;;14351:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14435:12;;14418:29;;;14410:72;;;;;-1:-1:-1;;;;;14410:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14489:12;:28;;;14529:29;;;;;;;;;;;;;;;;;14278:286;:::o;1755:93::-;1799:4;1833:9;-1:-1:-1;;;;;1833:9:0;1819:10;:23;1755:93;;:::o;2254:::-;2332:9;;-1:-1:-1;;;;;2332:9:0;2318:10;:23;;2254:93::o;9369:15::-;;;;:::o;2064:91::-;2141:8;;-1:-1:-1;;;;;2141:8:0;2127:10;:22;;2064:91::o;15726:339::-;15809:7;;:27;;;-1:-1:-1;;;;;15809:27:0;;-1:-1:-1;;;;;15809:27:0;;;;;;;;;15941:7;;15809;;;;;:17;;:27;;;;;;;;;;;;;;;15941:7;15809;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;15809:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15809:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15809:27:0;15801:67;;;;;;;-1:-1:-1;;;;;15801:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15883:22:0;;15895:10;15883:22;;15875:59;;;;;-1:-1:-1;;;;;15875:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15951:7;;:49;;;;;15968:10;15951:49;;;;;;-1:-1:-1;;;;;15951:49:0;;;;;;;;;;;;;;;;;;;;;;:7;;;;;:16;;15980:9;;15991:8;;15951:49;;;;;;;;;;;;;:7;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15951:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15951:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15951:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15951:49:0;16012:47;;;;;;16038:10;16012:47;;;;;;-1:-1:-1;;;;;16012:47:0;;;;;;;15951:49;16012:47;;;;;;;;;;;;;;;;;15951:49;;-1:-1:-1;16012:47:0;;15951:49;;16027:9;;16038:10;;16050:8;;16012:47;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;16012:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15726:339;;;:::o;9333:31::-;;;;;;;;;:::o;9482:23::-;;;-1:-1:-1;;;;;9482:23:0;;:::o;9301:27::-;;;;;;:::o;10917:114::-;1041:17;:15;:17::i;:::-;:34;;;;1062:13;:11;:13::i;:::-;1033:64;;;;;;;-1:-1:-1;;;;;1033:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10989:7;:36;;-1:-1:-1;;;;;;10989:36:0;-1:-1:-1;;;;;10989:36:0;;;;;;;;;;10917:114::o;12036:184::-;1700:15;:13;:15::i;:::-;1692:43;;;;;;;-1:-1:-1;;;;;1692:43:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12127:31:0;;;;12119:59;;;;;-1:-1:-1;;;;;12119:59:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12119:59:0;;;;;;;;;;;;;;;12185:11;:29;;-1:-1:-1;;;;;;12185:29:0;-1:-1:-1;;;;;12185:29:0;;;;;;;;;;12036:184::o;17356:762::-;17504:16;17668:19;17426:36;17446:10;17458:3;17426:19;:36::i;:::-;17469:28;17484:3;17489:7;17469:14;:28::i;:::-;17534:3;;17524:7;:13;;;;;;;17566:9;;:46;;;;;;17586:10;17566:46;;;;17606:4;17566:46;;;;;;17524:13;;;;17542:8;17523:28;;-1:-1:-1;17523:28:0;;-1:-1:-1;;;;;17566:9:0;;;;:19;;:46;;;;;;;;;;;;;;-1:-1:-1;17566:9:0;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;17566:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17566:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17566:46:0;:61;;17558:103;;;;;-1:-1:-1;;;;;17558:103:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17690:9;;:31;;;-1:-1:-1;;;;;17690:31:0;;17710:10;17690:31;;;;;;-1:-1:-1;;;;;17690:9:0;;;;:19;;:31;;;;;;;;;;;;;;;:9;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;17690:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17690:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17690:31:0;;-1:-1:-1;17736:29:0;;;;17728:68;;;;;-1:-1:-1;;;;;17728:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17811:9;;:62;;;;;;17834:10;17811:62;;;;17854:4;17811:62;;;;;;;;;;;;-1:-1:-1;;;;;17811:9:0;;;;:22;;:62;;;;;;;;;;;;;;;:9;;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;17811:62:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17811:62:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17811:62:0;17803:96;;;;;;;-1:-1:-1;;;;;17803:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17914:9;;17933:15;;17914:53;;;;;;-1:-1:-1;;;;;17933:15:0;;;17914:53;;;;17964:2;17950:16;;17914:53;;;;;;:9;;;;;:18;;:53;;;;;;;;;;;;;;-1:-1:-1;17914:9:0;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;17914:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17914:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17914:53:0;17906:96;;;;;;;-1:-1:-1;;;;;17906:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18009:6;;:44;;;;;;-1:-1:-1;;;;;18009:44:0;;;;;;;;;;;;;:6;:44;;;;;;;;;;;;:6;;;;;:14;;:44;;;;;:6;;:44;;;;;;;:6;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;18009:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;18065:47:0;;;18087:10;18065:47;;-1:-1:-1;;;;;18065:47:0;;;;;;;;;;;;;;;;-1:-1:-1;18065:47:0;;;;;;;-1:-1:-1;18065:47:0;17356:762;;;;:::o;11682:166::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11764:28:0;;;;11756:56;;;;;-1:-1:-1;;;;;11756:56:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11756:56:0;;;;;;;;;;;;;;;11819:8;:23;;-1:-1:-1;;;;;;11819:23:0;-1:-1:-1;;;;;11819:23:0;;;;;;;;;;11682:166::o;12692:82::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;12749:11;:19;;-1:-1:-1;;12749:19:0;;;12692:82::o;15617:103::-;-1:-1:-1;;;;;15699:14:0;;15672:5;15699:14;;;:3;:14;;;;;;;;15693:21;;;;;;;;15686:28;;15617:103;;;;:::o;9017:33::-;;;;;;;;;;;;;;;:::o;2161:87::-;2236:6;;-1:-1:-1;;;;;2236:6:0;2222:10;:20;;2161:87::o;18124:851::-;18328:15;18650:19;18192:1;18186:3;;:7;18178:54;;;;;;;-1:-1:-1;;;;;18178:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18247:7;;:29;;;-1:-1:-1;;;;;18247:29:0;;18265:10;18247:29;;;;;;-1:-1:-1;;;;;18247:7:0;;;;:17;;:29;;;;;;;;;;;;;;;:7;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;18247:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18247:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18247:29:0;18239:63;;;;;;;-1:-1:-1;;;;;18239:63:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18309:12;:10;:12::i;:::-;18362:3;;18370:8;;18347:18;;18346:33;18328:51;;18386:27;18402:10;18386:15;:27::i;:::-;18442:10;;18428:24;;;18420:64;;;;;-1:-1:-1;;;;;18420:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18491:45;18513:10;18525;18491:21;:45::i;:::-;18543:6;;:51;;;;;;;;;;;;18583:10;18543:51;;;;;;-1:-1:-1;;;;;18543:6:0;;;;:27;;:51;;;;;:6;;:51;;;;;;;;:6;;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;18543:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;18603:6:0;;:40;;;;;;18620:10;18603:40;;;;;;;;;;;;-1:-1:-1;;;;;18603:6:0;;;;-1:-1:-1;18603:16:0;;-1:-1:-1;18603:40:0;;;;;:6;;:40;;;;;;;;:6;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;18603:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;18672:9:0;;:31;;;-1:-1:-1;;;;;18672:31:0;;18692:10;18672:31;;;;;;-1:-1:-1;;;;;18672:9:0;;;;-1:-1:-1;18672:19:0;;-1:-1:-1;18672:31:0;;;;;;;;;;;;;;;:9;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;18672:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18672:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18672:31:0;18718:9;;:44;;;;;;18737:10;18718:44;;;;;;;;;;;;18672:31;;-1:-1:-1;;;;;;18718:9:0;;;;:18;;:44;;;;;18672:31;;18718:44;;;;;;;;:9;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;18718:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18718:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18718:44:0;18710:86;;;;;;;-1:-1:-1;;;;;18710:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18846:32;:14;18865:12;18846:32;:18;:32;:::i;:::-;18811:9;;:31;;;-1:-1:-1;;;;;18811:31:0;;18831:10;18811:31;;;;;;-1:-1:-1;;;;;18811:9:0;;;;:19;;:31;;;;;;;;;;;;;;;:9;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;18811:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18811:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18811:31:0;:67;18803:106;;;;;-1:-1:-1;;;;;18803:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;18921:48;;;18932:10;18921:48;;;;;;;;;;;;;;;;;;;;;;;;;18124:851;;;:::o;18981:721::-;19170:16;19036:11;;;19028:46;;;;;-1:-1:-1;;;;;19028:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19089:9;;:31;;;-1:-1:-1;;;;;19089:31:0;;19109:10;19089:31;;;;;;19124:7;;-1:-1:-1;;;;;19089:9:0;;:19;;:31;;;;;;;;;;;;;;:9;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;19089:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19089:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19089:31:0;:42;;19081:82;;;;;-1:-1:-1;;;;;19081:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19189:32;19213:7;19189:23;:32::i;:::-;19170:51;-1:-1:-1;19244:4:0;19236:21;:36;-1:-1:-1;19236:36:0;19228:85;;;;;-1:-1:-1;;;;;19228:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19320:28;19336:11;19320:15;:28::i;:::-;19363:9;;:46;;;;;;19383:10;19363:46;;;;19403:4;19363:46;;;;;;19413:7;;-1:-1:-1;;;;;19363:9:0;;:19;;:46;;;;;;;;;;;;;;:9;;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;19363:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19363:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19363:46:0;:57;;19355:99;;;;;-1:-1:-1;;;;;19355:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19469:9;;:58;;;;;;19492:10;19469:58;;;;19512:4;19469:58;;;;;;;;;;;;-1:-1:-1;;;;;19469:9:0;;;;:22;;:58;;;;;;;;;;;;;;;:9;;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;19469:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19469:58:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19469:58:0;19461:92;;;;;;;-1:-1:-1;;;;;19461:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19560:32;;:10;;:32;;;;;19580:11;;19560:32;;;;19580:11;19560:10;:32;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;19599:6:0;;:39;;;;;;;;;;;;;;-1:-1:-1;;;;;19599:6:0;;;;:26;;:39;;;;;:6;;:39;;;;;;;;:6;;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;19599:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;19650:46:0;;;19663:10;19650:46;;;;;;;;;;;;;;;;;;-1:-1:-1;19650:46:0;;;;;;;-1:-1:-1;19650:46:0;18981:721;;:::o;9510:21::-;;;-1:-1:-1;;;;;9510:21:0;;:::o;12403:201::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;12499:35:0;;;;12491:63;;;;;-1:-1:-1;;;;;12491:63:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12491:63:0;;;;;;;;;;;;;;;12561:15;:37;;-1:-1:-1;;;;;;12561:37:0;-1:-1:-1;;;;;12561:37:0;;;;;;;;;;12403:201::o;16237:717::-;16321:8;;16574:29;;;;;;16321:8;;;:68;;-1:-1:-1;16347:42:0;16333:10;:56;16321:68;16313:106;;;;;;;-1:-1:-1;;;;;16313:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16426:36;16446:10;16458:3;16426:19;:36::i;:::-;16485:1;16477:9;;16469:38;;;;;-1:-1:-1;;;;;16469:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16514:53;16529:3;16557:8;16535:9;:17;;16534:32;16514:14;:53::i;:::-;16658:1;16643:5;16607:27;16622:5;16611:8;;:16;16607:25;:27::i;:::-;16637:3;16607:33;:41;;;;;;;;16606:54;;16574:86;;16753:1;16735:8;;16699:27;16711:8;;16703:5;:16;16699:25;:27::i;:::-;16729:3;16699:33;:44;;;;;;;;16698:57;;16667:88;;16779:24;:51;;;;;16807:23;16779:51;16762:68;;16845:9;16837:55;;;;;;;-1:-1:-1;;;;;16837:55:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16899:49;16914:10;16926:3;16931:9;16942:5;16899:14;:49::i;:::-;16237:717;;;;;:::o;13022:248::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;13098:1;13089:10;;13081:34;;;;;-1:-1:-1;;;;;13081:34:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13081:34:0;;;;;;;;;;;;;;;13139:5;;13130:14;;13122:42;;;;;-1:-1:-1;;;;;13122:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13189:5;;13179:15;;;13171:45;;;;;-1:-1:-1;;;;;13171:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13171:45:0;;;;;;;;;;;;;;;13223:5;:14;;;13249:15;;;;;;;;;;;;;;;;;13022:248;:::o;9440:35::-;;;;:::o;16960:390::-;17031:36;17051:10;17063:3;17031:19;:36::i;:::-;17074:28;17089:3;17094:7;17074:14;:28::i;:::-;17109:42;17131:10;17143:7;17109:21;:42::i;:::-;17158:6;;:40;;;;;;-1:-1:-1;;;;;17158:40:0;;;;;;;;;;;;;17187:1;17158:40;;;;;;;;;;;;:6;;;;;:14;;:40;;;;;:6;;:40;;;;;;;:6;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;17158:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17205:6:0;;17268:15;;17205:79;;;;;;17264:2;17254:12;;17205:79;;;;-1:-1:-1;;;;;17268:15:0;;;17205:79;;;;;;:6;;;;;-1:-1:-1;17205:48:0;;-1:-1:-1;17205:79:0;;;;;-1:-1:-1;;17205:79:0;;;;;;;-1:-1:-1;17205:6:0;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;17205:79:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;17296:48:0;;;17319:10;17296:48;;-1:-1:-1;;;;;17296:48:0;;;;;;;;;;;;;;;;-1:-1:-1;17296:48:0;;;;;;;-1:-1:-1;17296:48:0;16960:390;;:::o;13276:207::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;13352:5;;13343:14;;13335:42;;;;;-1:-1:-1;;;;;13335:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13402:5;;13392:15;;;13384:45;;;;;-1:-1:-1;;;;;13384:45:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13384:45:0;;;;;;;;;;;;;;;13436:5;:14;;;13462:15;;;;;;;;;;;;;;;;;13276:207;:::o;11854:176::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;11942:31:0;;;;11934:59;;;;;-1:-1:-1;;;;;11934:59:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11934:59:0;;;;;;;;;;;;;;;12000:6;:24;;-1:-1:-1;;;;;;12000:24:0;-1:-1:-1;;;;;12000:24:0;;;;;;;;;;11854:176::o;11037:263::-;1270:12;:10;:12::i;:::-;:29;;;;1286:13;:11;:13::i;:::-;1262:54;;;;;;;-1:-1:-1;;;;;1262:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11098:12;:10;:12::i;:::-;11094:72;;;11130:11;;;;;;;11129:12;11121:37;;;;;-1:-1:-1;;;;;11121:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;11192:1;11180:13;;11172:37;;;;;-1:-1:-1;;;;;11172:37:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11172:37:0;;;;;;;;;;;;;;;11237:8;;11224:21;;;11216:51;;;;;-1:-1:-1;;;;;11216:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11216:51:0;;;;;;;;;;;;;;;11274:8;:20;11037:263::o;9409:26::-;;;;:::o;10801:110::-;1041:17;:15;:17::i;:::-;:34;;;;1062:13;:11;:13::i;:::-;1033:64;;;;;;;-1:-1:-1;;;;;1033:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10872:6;:33;;-1:-1:-1;;;;;;10872:33:0;-1:-1:-1;;;;;10872:33:0;;;;;;;;;;10801:110::o;12226:171::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;12310:29:0;;;;12302:57;;;;;-1:-1:-1;;;;;12302:57:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12302:57:0;;;;;;;;;;;;;;;12366:9;:25;;-1:-1:-1;;;;;;12366:25:0;-1:-1:-1;;;;;12366:25:0;;;;;;;;;;12226:171::o;15525:86::-;15593:12;;15525:86;:::o;15178:71::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;15227:2;;:16;;;;;;;;;;;;;;-1:-1:-1;;;;;15227:2:0;;;;:12;;:16;;;;;:2;;:16;;;;;;;;:2;;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;15227:16:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;9389:15:0;;;;:::o;2353:97::-;2433:11;;-1:-1:-1;;;;;2433:11:0;2419:10;:25;;2353:97::o;16071:160::-;16189:7;;:36;;;;;;16214:10;16189:36;;;;;;16110:4;;16116:6;;16110:4;;16116:6;;16110:4;;;;;;;;-1:-1:-1;;;;;16189:7:0;;;;:24;;:36;;;;;16110:4;;16189:36;;;;;;;;16110:4;16189:7;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;16189:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16189:36:0;;;;;;39:16:-1;36:1;17:17;2:54;101:4;16189:36:0;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:3;5:12;;2:2;;;30:1;27;20:12;2:2;16189:36:0;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;218:10;;268:11;251:29;;293:43;;;290:58;-1:-1;239:118;236:2;;;370:1;367;360:12;236:2;-1:-1;;16189:36:0;;;;;;;;;;;;;;;20:11:-1;12:20;;9:2;;;45:1;42;35:12;9:2;64:21;;126:4;117:14;;142:31;;;139:2;;;186:1;183;176:12;139:2;224:3;218:10;339:9;333:2;319:12;315:21;297:16;293:44;290:59;268:11;254:12;251:29;239:119;236:2;;;371:1;368;361:12;236:2;0:383;;16189:36:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16182:43;;;;;;;;;;;;;;;;16071:160;;;;;;;;:::o;14570:422::-;14818:7;1373:10;:8;:10::i;:::-;:27;;;;1387:13;:11;:13::i;:::-;1365:50;;;;;;;-1:-1:-1;;;;;1365:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14647:14;;14664:1;-1:-1:-1;14639:53:0;;;;;-1:-1:-1;;;;;14639:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14707:14;;14725:3;-1:-1:-1;14707:21:0;14699:48;;;;;-1:-1:-1;;;;;14699:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14771:1;14762:5;:10;;;;:24;;;;;14785:1;14776:5;:10;;;;14762:24;14754:52;;;;;;;-1:-1:-1;;;;;14754:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14828:1:0;14813:144;14835:7;:14;14831:1;:18;;;14813:144;;;14873:10;;14887;;14873:7;;:10;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14873:24:0;;;14865:48;;;;;-1:-1:-1;;;;;14865:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14943:5;14940:9;;;;;;;;;;14922:3;:15;14926:7;14934:1;14926:10;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14922:15:0;;;;;;;;;;;-1:-1:-1;14922:15:0;:27;;-1:-1:-1;;14922:27:0;;;;;;;;;;;;;;;-1:-1:-1;14851:3:0;;14813:144;;;14968:18;14971:7;14980:5;14968:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;14968:18:0;;;;;;;;;;;;;;;;;;14570:422;;;:::o;15099:73::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;15148:2;;:18;;;;;;;;;;;;;;-1:-1:-1;;;;;15148:2:0;;;;:14;;:18;;;;;:2;;:18;;;;;;;;:2;;:18;;;5:2:-1;;;;30:1;27;20:12;15437:82:0;15503:10;;15437:82;:::o;15255:116::-;15317:9;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;-1:-1:-1;15358:2:0;;15347:18;;;;;;-1:-1:-1;;;;;15358:2:0;;;15347:18;;;;;;;;;;;;15336:3;;15347:10;;;;;:18;;;;;;;;;;;;;;15358:2;15347:10;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;15347:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15347:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;12780:115:0;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;12853:1;12845:9;;12837:33;;;;;-1:-1:-1;;;;;12837:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12837:33:0;;;;;;;;;;;;;;;12877:4;:12;12780:115::o;14998:95::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;15068:2;;:19;;;;;;-1:-1:-1;;;;;15068:19:0;;;;;;;;;;;;;;;;;;;;;:2;;;:11;;15080:2;;15084;;15068:19;;;;;;;;;;;;:2;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15068:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15068:19:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15068:19:0;;;;14998:95;;:::o;1961:97::-;2041:11;;-1:-1:-1;;;;;2041:11:0;2027:10;:25;;1961:97::o;9536:76::-;;;-1:-1:-1;;;;;9536:76:0;;:::o;12901:115::-;1475:13;:11;:13::i;:::-;:30;;;;1492:13;:11;:13::i;:::-;1467:56;;;;;;;-1:-1:-1;;;;;1467:56:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12974:1;12966:9;;12958:33;;;;;-1:-1:-1;;;;;12958:33:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;12958:33:0;;;;;;;;;;;;;;;12998:4;:12;12901:115::o;13489:187::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;13575:8;;;;13562:21;;;;;;;13554:51;;;;;-1:-1:-1;;;;;13554:51:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;13554:51:0;;;;;;;;;;;;;;;13612:8;:20;;-1:-1:-1;;13612:20:0;;;;;;;;;13644:26;;;13612:20;13661:8;;;13644:26;;;;;;;;;;;;;;;13489:187;:::o;11306:173::-;1585:15;:13;:15::i;:::-;:32;;;;1604:13;:11;:13::i;:::-;1577:60;;;;;;;-1:-1:-1;;;;;1577:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11392:29:0;;;;11384:57;;;;;-1:-1:-1;;;;;11384:57:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;11384:57:0;;;;;;;;;;;;;;;11448:9;:25;;-1:-1:-1;;;;;;11448:25:0;-1:-1:-1;;;;;11448:25:0;;;;;;;;;;11306:173::o;1854:101::-;1936:13;;-1:-1:-1;;;;;1936:13:0;1922:10;:27;;1854:101::o;13682:156::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;13750:1;13743:8;;13735:32;;;;;-1:-1:-1;;;;;13735:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13790:3;;13782:11;;;13774:41;;;;;-1:-1:-1;;;;;13774:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13822:3;:10;13682:156::o;9244:27::-;;;;:::o;13844:156::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;13912:1;13905:8;;13897:32;;;;;-1:-1:-1;;;;;13897:32:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13952:3;;13944:11;;;13936:41;;;;;-1:-1:-1;;;;;13936:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13984:3;:10;13844:156::o;14006:266::-;946:13;:11;:13::i;:::-;938:39;;;;;;;-1:-1:-1;;;;;938:39:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;938:39:0;;;;;;;;;;;;;;;14097:1;14083:15;;14075:50;;;;;-1:-1:-1;;;;;14075:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14155:10;;14140:25;;;14132:66;;;;;-1:-1:-1;;;;;14132:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14205:10;:24;;;14241:25;;;;;;;;;;;;;;;;;14006:266;:::o;9213:26::-;;;;:::o;12610:76::-;1373:10;:8;:10::i;:::-;:27;;;;1387:13;:11;:13::i;:::-;1365:50;;;;;;;-1:-1:-1;;;;;1365:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12662:11;:18;;-1:-1:-1;;12662:18:0;;;;;12610:76::o;9276:20::-;;;;:::o;20817:436::-;20902:7;;:24;;;-1:-1:-1;;;;;20902:24:0;;-1:-1:-1;;;;;20902:24:0;;;;;;;;;:7;;;;;:17;;:24;;;;;;;;;;;;;;:7;;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;20902:24:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20902:24:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20902:24:0;20894:58;;;;;;;-1:-1:-1;;;;;20894:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20967:7;;:22;;;-1:-1:-1;;;;;20967:22:0;;-1:-1:-1;;;;;20967:22:0;;;;;;;;;:7;;;;;:17;;:22;;;;;;;;;;;;;;:7;;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;20967:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20967:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20967:22:0;20959:71;;;;;;;-1:-1:-1;;;;;20959:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21041:12:0;;;;;;;21037:140;;21072:7;;:55;;;;;;-1:-1:-1;;;;;21072:55:0;;;;;;;;;;;;;;;;:7;;;;;:43;;:55;;;;;;;;;;;;;;:7;;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;21072:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21072:55:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21072:55:0;21064:105;;;;;;;-1:-1:-1;;;;;21064:105:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21191:8;;21202:1;-1:-1:-1;21183:64:0;;;;;-1:-1:-1;;;;;21183:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20817:436;;:::o;20301:510::-;20531:12;20388:17;;;20380:48;;;;;-1:-1:-1;;;;;20380:48:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20460:5;;20443:22;;;20435:89;;;;;-1:-1:-1;;;;;20435:89:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20546:6;;:38;;;;;;-1:-1:-1;;;;;20546:38:0;;;;;;;;;:6;;;;;:31;;:38;;;;;;;;;;;;;;:6;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;20546:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20546:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20546:38:0;;-1:-1:-1;20595:12:0;;20591:215;;;20643:5;;20626:22;;;20618:65;;;;;-1:-1:-1;;;;;20618:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;20591:215;;;20714:24;;;;20706:92;;;;;-1:-1:-1;;;;;20706:92:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20301:510;;;:::o;21259:187::-;21301:12;21335:7;21320:10;21316:15;;;;:3;:15;;;;;;;;:26;;;;;;;;;;:56;;;;-1:-1:-1;21365:7:0;21350:10;21346:15;;;;:3;:15;;;;;;;;:26;;;;;;;;;;21316:56;21301:71;;21387:7;21379:61;;;;;;;-1:-1:-1;;;;;21379:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21259:187;:::o;21452:1082::-;21549:10;21510:27;21540:20;;;:8;:20;;;;;21571:15;;21540:20;;21510:27;;;;;;;;;;;;;21571:20;21567:914;;;21625:4;;21610:19;;;21602:49;;;;;-1:-1:-1;;;;;21602:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21567:914;;;21769:15;;21700:1;;-1:-1:-1;21700:1:0;;-1:-1:-1;21769:15:0;-1:-1:-1;21700:1:0;;-1:-1:-1;21793:324:0;21814:6;21810:1;:10;21793:324;;;21865:8;21874:1;21865:11;;;;;;;;;;;;;;;;;;;;21838:38;;21923:7;:12;;;21914:6;21908:3;:12;:27;21887:48;;21949:13;21946:162;;;22021:14;;;;21998:38;;:18;;:38;:22;:38;:::i;:::-;21977:59;;21946:162;;;22067:29;;;;;21946:162;21822:3;;;;;21793:324;;;22159:1;22129:27;:31;22125:266;;;-1:-1:-1;22187:1:0;22173:152;22194:15;;:45;;;22190:49;;22173:152;;;22272:8;22285:27;22281:1;:31;22272:41;;;;;;;;;;;;;;;;;;;;22258:8;22267:1;22258:11;;;;;;;;;;;;;;;;;;:55;;:11;;;;;:55;;;;;;;;;;;;22241:3;22173:152;;;22335:46;;;;;;:8;:46;;:::i;:::-;;22125:266;22446:4;;22407:35;:18;22430:11;22407:35;:22;:35;:::i;:::-;:43;;22399:74;;;;;-1:-1:-1;;;;;22399:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;22501:26:0;;;;;;;;;22510:3;22501:26;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;22487:41:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21452:1082:0:o;23555:208::-;23656:6;;:30;;;;;;-1:-1:-1;;;;;23656:30:0;;;;;;;;;23635:18;;23656:6;;;;;:23;;:30;;;;;;;;;;;;;;;23635:18;23656:6;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;23656:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23656:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23656:30:0;;-1:-1:-1;23701:24:0;;;;23693:64;;;;;-1:-1:-1;;;;;23693:64:0;;;;;;;;;;;;;;;;;;;;;;;;;;;7928:158;7986:7;8014:5;;;8034:6;;;;8026:37;;;;;-1:-1:-1;;;;;8026:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8079:1;7928:158;-1:-1:-1;;;7928:158:0:o;19734:169::-;19803:4;19830:1;19824:3;;:7;19816:54;;;;;;;-1:-1:-1;;;;;19816:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19894:3;;19884:7;:13;;;;;;;;;19734:169;-1:-1:-1;;19734:169:0:o;22540:1009::-;22697:23;22733:32;22778:11;22821:6;22861:24;22910:18;23201:6;22598:8;:15;;;;22617:1;22598:20;22594:906;;;22648:4;;22637:15;;;22629:45;;;;;-1:-1:-1;;;;;22629:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;22594:906;;;22792:8;:15;22723:1;;-1:-1:-1;22723:1:0;;-1:-1:-1;22792:15:0;-1:-1:-1;22723:1:0;;-1:-1:-1;22816:324:0;22837:6;22833:1;:10;22816:324;;;22888:8;:11;;22897:1;;22888:11;;;;;;;;;;;;;;;;22861:38;;22946:7;:12;;;22937:6;22931:3;:12;:27;22910:48;;22972:13;22969:162;;;23044:14;;;;23021:38;;:18;;:38;:22;:38;:::i;:::-;23000:59;;22969:162;;;23090:29;;;;;22969:162;22845:3;;;;;22816:324;;;23182:1;23152:27;:31;23148:266;;;-1:-1:-1;23210:1:0;23196:152;23217:8;:15;:45;;;23213:49;;23196:152;;;23295:8;:41;;23304:31;;;;23295:41;;;;;;;;;;;;;;;;23281:8;23290:1;23281:11;;;;;;;;;;;;;;;;;;:55;;:11;;;;;:55;;;;;;;;;;;;23264:3;23196:152;;;23358:8;:46;;;;;;;;;;:::i;:::-;;23148:266;23465:4;;23430:31;:18;23453:7;23430:31;:22;:31;:::i;:::-;:39;;23422:70;;;;;-1:-1:-1;;;;;23422:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;23520:22:0;;;;;;;;;23529:3;23520:22;;;;;;;;23506:8;27:10:-1;;39:1;23:18;;45:23;;-1:-1;23506:37:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22540:1009:0:o;2475:149::-;2523:4;2549:1;2540:6;:10;2536:57;;;2573:6;-1:-1:-1;;2573:11:0;2561:24;;;;2536:57;-1:-1:-1;2611:6:0;2475:149::o;19909:386::-;20129:6;;:55;;;;;;-1:-1:-1;;;;;20129:55:0;;;;;;;20113:8;20083:25;;;20082:40;20129:55;;;;;;20012:18;20129:55;;;;;;;;;;;;;;20053:2;20033:22;;;20082:40;;20129:6;;;;;:14;;:55;;;;;20012:18;;20129:55;;;;;20012:18;20129:6;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;20129:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;20191:15:0;;:39;;-1:-1:-1;;;;;20191:15:0;;;;-1:-1:-1;20191:39:0;;;;;-1:-1:-1;20216:13:0;;20191:15;:39;:15;:39;20216:13;20191:15;:39;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;20242:47:0;;;-1:-1:-1;;;;;20242:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;19909:386;;;;;;:::o;8717:15049::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Swarm Source

bzzr://a528f06fb7c65082c5ceb552813bf577f7eb123a9ae9246b70f83af86ea899df

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.