ETH Price: $3,110.01 (+0.20%)

Token

Minereum (MNE)
 

Overview

Max Total Supply

38,329,603,001.72238289 MNE

Holders

1,198,979 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
32,000 MNE

Value
$0.00
0x5042820bef7ab5a3690b9c282f4d52c5dd4df25d
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Minereum

Compiler Version
v0.6.1+commit.e6f7d5a4

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-03-29
*/

pragma solidity ^0.6.0;

interface publicCalls {
  function GenesisDestroyAmountCount (  ) external view returns ( uint256 );
  function GenesisDestroyAmountCountSet ( uint256 _GenesisDestroyAmountCount ) external;
  function GenesisDestroyCountStake (  ) external view returns ( uint256 );
  function GenesisDestroyCountStakeSet ( uint256 _GenesisDestroyCountStake ) external;
  function GenesisDestroyed (  ) external view returns ( uint256 );
  function GenesisDestroyedSet ( uint256 _GenesisDestroyed ) external;
  function NormalAddressBuyPricePerMNE ( address ) external view returns ( uint256 );
  function NormalAddressBuyPricePerMNESet ( address _address, uint256 _NormalAddressBuyPricePerMNE ) external;
  function NormalAddressFeeCount (  ) external view returns ( uint256 );
  function NormalAddressFeeCountSet ( uint256 _NormalAddressFeeCount ) external;
  function NormalAddressSalesCount (  ) external view returns ( uint256 );
  function NormalAddressSalesCountSet ( uint256 _NormalAddressSalesCount ) external;
  function NormalAddressSalesPriceCount (  ) external view returns ( uint256 );
  function NormalAddressSalesPriceCountSet ( uint256 _NormalAddressSalesPriceCount ) external;
  function NormalBalanceImported (  ) external view returns ( uint256 );
  function NormalBalanceImportedSet ( uint256 _NormalBalanceImported ) external;
  function NormalImportedAmountCount (  ) external view returns ( uint256 );
  function NormalImportedAmountCountSet ( uint256 _NormalImportedAmountCount ) external;
  function allowAddressToDestroyGenesis ( address ) external view returns ( address );
  function allowAddressToDestroyGenesisSet ( address _address, address _allowAddressToDestroyGenesis ) external;
  function allowReceiveGenesisTransfers ( address ) external view returns ( bool );
  function allowReceiveGenesisTransfersSet ( address _address, bool _allowReceiveGenesisTransfers ) external;
  function allowed ( address, address ) external view returns ( uint256 );
  function allowedSet ( address _address, address _spender, uint256 _amount ) external;
  function amountOfGenesisToBuyStakes (  ) external view returns ( uint256 );
  function amountOfGenesisToBuyStakesSet ( address _from, uint256 _amountOfGenesisToBuyStakes ) external;
  function amountOfGenesisToTransferStakes (  ) external view returns ( uint256 );
  function amountOfGenesisToTransferStakesSet ( address _from, uint256 _amountOfGenesisToTransferStakes ) external;
  function amountOfMNEForToken (  ) external view returns ( uint256 );
  function amountOfMNEForTokenICO (  ) external view returns ( uint256 );
  function amountOfMNEForTokenICOSet ( address _from, uint256 _amountOfMNEForTokenICO ) external;
  function amountOfMNEForTokenSet ( address _from, uint256 _amountOfMNEForToken ) external;
  function amountOfMNEToBuyStakes (  ) external view returns ( uint256 );
  function amountOfMNEToBuyStakesSet ( address _from, uint256 _amountOfMNEToBuyStakes ) external;
  function amountOfMNEToTransferStakes (  ) external view returns ( uint256 );
  function amountOfMNEToTransferStakesSet ( address _from, uint256 _amountOfMNEToTransferStakes ) external;
  function availableBalance (  ) external view returns ( uint256 );
  function availableBalanceSet ( uint256 _availableBalance ) external;
  function balances ( address ) external view returns ( uint256 );
  function balancesSet ( address _address, uint256 _balances ) external;
  function buyStakeGenesisCount (  ) external view returns ( uint256 );
  function buyStakeGenesisCountSet ( uint256 _buyStakeGenesisCount ) external;
  function buyStakeMNECount (  ) external view returns ( uint256 );
  function buyStakeMNECountSet ( uint256 _buyStakeMNECount ) external;
  function ethFeeForSellerLevel1 (  ) external view returns ( uint256 );
  function ethFeeForSellerLevel1Set ( address _from, uint256 _ethFeeForSellerLevel1 ) external;
  function ethFeeForToken (  ) external view returns ( uint256 );
  function ethFeeForTokenICO (  ) external view returns ( uint256 );
  function ethFeeForTokenICOSet ( address _from, uint256 _ethFeeForTokenICO ) external;
  function ethFeeForTokenSet ( address _from, uint256 _ethFeeForToken ) external;
  function ethFeeToBuyLevel1 (  ) external view returns ( uint256 );
  function ethFeeToBuyLevel1Set ( address _from, uint256 _ethFeeToBuyLevel1 ) external;
  function ethFeeToUpgradeToLevel2 (  ) external view returns ( uint256 );
  function ethFeeToUpgradeToLevel2Set ( address _from, uint256 _ethFeeToUpgradeToLevel2 ) external;
  function ethFeeToUpgradeToLevel3 (  ) external view returns ( uint256 );
  function ethFeeToUpgradeToLevel3Set ( address _from, uint256 _ethFeeToUpgradeToLevel3 ) external;
  function ethPercentFeeGenesisExchange (  ) external view returns ( uint256 );
  function ethPercentFeeGenesisExchangeSet ( address _from, uint256 _ethPercentFeeGenesisExchange ) external;
  function ethPercentFeeNormalExchange (  ) external view returns ( uint256 );
  function ethPercentFeeNormalExchangeSet ( address _from, uint256 _ethPercentFeeNormalExchange ) external;
  function ethPercentStakeExchange (  ) external view returns ( uint256 );
  function ethPercentStakeExchangeSet ( address _from, uint256 _ethPercentStakeExchange ) external;
  function genesisAddressCount (  ) external view returns ( uint256 );
  function genesisAddressCountSet ( uint256 _genesisAddressCount ) external;
  function genesisAddressesForSaleLevel1Index ( address ) external view returns ( uint256 );
  function genesisAddressesForSaleLevel1IndexSet ( address _address, uint256 _genesisAddressesForSaleLevel1Index ) external;
  function genesisAddressesForSaleLevel2Index ( address ) external view returns ( uint256 );
  function genesisAddressesForSaleLevel2IndexSet ( address _address, uint256 _genesisAddressesForSaleLevel2Index ) external;
  function genesisAddressesForSaleLevel3Index ( address ) external view returns ( uint256 );
  function genesisAddressesForSaleLevel3IndexSet ( address _address, uint256 _genesisAddressesForSaleLevel3Index ) external;
  function genesisBuyPrice ( address ) external view returns ( uint256 );
  function genesisBuyPriceSet ( address _address, uint256 _genesisBuyPrice ) external;
  function genesisCallerAddress (  ) external view returns ( address );
  function genesisCallerAddressSet ( address _genesisCallerAddress ) external;
  function genesisInitialSupply ( address ) external view returns ( uint256 );
  function genesisInitialSupplySet ( address _address, uint256 _genesisInitialSupply ) external;
  function genesisRewardPerBlock (  ) external view returns ( uint256 );
  function genesisSalesCount (  ) external view returns ( uint256 );
  function genesisSalesCountSet ( uint256 _genesisSalesCount ) external;
  function genesisSalesPriceCount (  ) external view returns ( uint256 );
  function genesisSalesPriceCountSet ( uint256 _genesisSalesPriceCount ) external;
  function genesisSupplyPerAddress (  ) external view returns ( uint256 );
  function genesisTransfersCount (  ) external view returns ( uint256 );
  function genesisTransfersCountSet ( uint256 _genesisTransfersCount ) external;
  function initialBlockCount (  ) external view returns ( uint256 );
  function initialBlockCountPerAddress ( address ) external view returns ( uint256 );
  function initialBlockCountPerAddressSet ( address _address, uint256 _initialBlockCountPerAddress ) external;
  function initialBlockCountSet ( uint256 _initialBlockCount ) external;
  function isGenesisAddress ( address ) external view returns ( uint8 );
  function isGenesisAddressForSale ( address ) external view returns ( bool );
  function isGenesisAddressForSaleSet ( address _address, bool _isGenesisAddressForSale ) external;
  function isGenesisAddressSet ( address _address, uint8 _isGenesisAddress ) external;
  function isNormalAddressForSale ( address ) external view returns ( bool );
  function isNormalAddressForSaleSet ( address _address, bool _isNormalAddressForSale ) external;
  function level2ActivationsFromLevel1Count (  ) external view returns ( uint256 );
  function level2ActivationsFromLevel1CountSet ( uint256 _level2ActivationsFromLevel1Count ) external;
  function level3ActivationsFromDevCount (  ) external view returns ( uint256 );
  function level3ActivationsFromDevCountSet ( uint256 _level3ActivationsFromDevCount ) external;
  function level3ActivationsFromLevel1Count (  ) external view returns ( uint256 );
  function level3ActivationsFromLevel1CountSet ( uint256 _level3ActivationsFromLevel1Count ) external;
  function level3ActivationsFromLevel2Count (  ) external view returns ( uint256 );
  function level3ActivationsFromLevel2CountSet ( uint256 _level3ActivationsFromLevel2Count ) external;
  function maxBlocks (  ) external view returns ( uint256 );
  function mneBurned (  ) external view returns ( uint256 );
  function mneBurnedSet ( uint256 _mneBurned ) external;
  function normalAddressesForSaleIndex ( address ) external view returns ( uint256 );
  function normalAddressesForSaleIndexSet ( address _address, uint256 _normalAddressesForSaleIndex ) external;
  function overallSupply (  ) external view returns ( uint256 );
  function overallSupplySet ( uint256 _overallSupply ) external;
  function ownerGenesis (  ) external view returns ( address );
  function ownerGenesisBuys (  ) external view returns ( address );
  function ownerMain (  ) external view returns ( address );
  function ownerNormalAddress (  ) external view returns ( address );
  function ownerStakeBuys (  ) external view returns ( address );
  function ownerStakes (  ) external view returns ( address );
  function ownerTokenService (  ) external view returns ( address );
  function setOwnerGenesis (  ) external;
  function setOwnerGenesisBuys (  ) external;
  function setOwnerMain (  ) external;
  function setOwnerNormalAddress (  ) external;
  function setOwnerStakeBuys (  ) external;
  function setOwnerStakes (  ) external;
  function setOwnerTokenService (  ) external;
  function setupRunning (  ) external view returns ( bool );
  function setupRunningSet ( bool _setupRunning ) external;
  function stakeBalances ( address ) external view returns ( uint256 );
  function stakeBalancesSet ( address _address, uint256 _stakeBalances ) external;
  function stakeBuyPrice ( address ) external view returns ( uint256 );
  function stakeBuyPriceSet ( address _address, uint256 _stakeBuyPrice ) external;
  function stakeDecimals (  ) external view returns ( uint256 );
  function stakeDecimalsSet ( address _from, uint256 _stakeDecimals ) external;
  function stakeHoldersImported (  ) external view returns ( uint256 );
  function stakeHoldersImportedSet ( uint256 _stakeHoldersImported ) external;
  function stakeHoldersListIndex ( address ) external view returns ( uint256 );
  function stakeHoldersListIndexSet ( address _address, uint256 _stakeHoldersListIndex ) external;
  function stakeMneBurnCount (  ) external view returns ( uint256 );
  function stakeMneBurnCountSet ( uint256 _stakeMneBurnCount ) external;
  function stakeMneTransferBurnCount (  ) external view returns ( uint256 );
  function stakeMneTransferBurnCountSet ( uint256 _stakeMneTransferBurnCount ) external;
  function stakesForSaleIndex ( address ) external view returns ( uint256 );
  function stakesForSaleIndexSet ( address _address, uint256 _stakesForSaleIndex ) external;
  function tokenCreated ( address, uint256 ) external view returns ( address );
  function tokenCreatedSet ( address _address, address _tokenCreated ) external;
  function tokenICOCreated ( address, uint256 ) external view returns ( address );
  function tokenICOCreatedSet ( address _address, address _tokenICOCreated ) external;
  function totalMaxAvailableAmount (  ) external view returns ( uint256 );
  function totalMaxAvailableAmountSet ( uint256 _totalMaxAvailableAmount ) external;
  function totalPaidStakeHolders (  ) external view returns ( uint256 );
  function totalPaidStakeHoldersSet ( uint256 _totalPaidStakeHolders ) external;
  function transferStakeGenesisCount (  ) external view returns ( uint256 );
  function transferStakeGenesisCountSet ( uint256 _transferStakeGenesisCount ) external;
  function transferStakeMNECount (  ) external view returns ( uint256 );
  function transferStakeMNECountSet ( uint256 _transferStakeMNECount ) external;
}

interface publicArrays {  
  function Level1TradeHistoryAmountETH ( uint256 ) external view returns ( uint256 );
  function Level1TradeHistoryAmountETHFee ( uint256 ) external view returns ( uint256 );
  function Level1TradeHistoryAmountETHFeeLength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryAmountETHFeeSet ( uint256 _Level1TradeHistoryAmountETHFee ) external;
  function Level1TradeHistoryAmountETHLength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryAmountETHSet ( uint256 _Level1TradeHistoryAmountETH ) external;
  function Level1TradeHistoryAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level1TradeHistoryAmountMNELength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryAmountMNESet ( uint256 _Level1TradeHistoryAmountMNE ) external;
  function Level1TradeHistoryBuyer ( uint256 ) external view returns ( address );
  function Level1TradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryBuyerSet ( address _Level1TradeHistoryBuyer ) external;
  function Level1TradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function Level1TradeHistoryDateLength (  ) external view returns ( uint256 len );
  function Level1TradeHistoryDateSet ( uint256 _Level1TradeHistoryDate ) external;
  function Level1TradeHistorySeller ( uint256 ) external view returns ( address );
  function Level1TradeHistorySellerLength (  ) external view returns ( uint256 len );
  function Level1TradeHistorySellerSet ( address _Level1TradeHistorySeller ) external;
  function Level2TradeHistoryAmountETH ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryAmountETHFee ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryAmountETHFeeLength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryAmountETHFeeSet ( uint256 _Level2TradeHistoryAmountETHFee ) external;
  function Level2TradeHistoryAmountETHLength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryAmountETHSet ( uint256 _Level2TradeHistoryAmountETH ) external;
  function Level2TradeHistoryAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryAmountMNELength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryAmountMNESet ( uint256 _Level2TradeHistoryAmountMNE ) external;
  function Level2TradeHistoryAvailableAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryAvailableAmountMNELength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryAvailableAmountMNESet ( uint256 _Level2TradeHistoryAvailableAmountMNE ) external;
  function Level2TradeHistoryBuyer ( uint256 ) external view returns ( address );
  function Level2TradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryBuyerSet ( address _Level2TradeHistoryBuyer ) external;
  function Level2TradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function Level2TradeHistoryDateLength (  ) external view returns ( uint256 len );
  function Level2TradeHistoryDateSet ( uint256 _Level2TradeHistoryDate ) external;
  function Level2TradeHistorySeller ( uint256 ) external view returns ( address );
  function Level2TradeHistorySellerLength (  ) external view returns ( uint256 len );
  function Level2TradeHistorySellerSet ( address _Level2TradeHistorySeller ) external;
  function Level3TradeHistoryAmountETH ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryAmountETHFee ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryAmountETHFeeLength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryAmountETHFeeSet ( uint256 _Level3TradeHistoryAmountETHFee ) external;
  function Level3TradeHistoryAmountETHLength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryAmountETHSet ( uint256 _Level3TradeHistoryAmountETH ) external;
  function Level3TradeHistoryAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryAmountMNELength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryAmountMNESet ( uint256 _Level3TradeHistoryAmountMNE ) external;
  function Level3TradeHistoryAvailableAmountMNE ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryAvailableAmountMNELength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryAvailableAmountMNESet ( uint256 _Level3TradeHistoryAvailableAmountMNE ) external;
  function Level3TradeHistoryBuyer ( uint256 ) external view returns ( address );
  function Level3TradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryBuyerSet ( address _Level3TradeHistoryBuyer ) external;
  function Level3TradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function Level3TradeHistoryDateLength (  ) external view returns ( uint256 len );
  function Level3TradeHistoryDateSet ( uint256 _Level3TradeHistoryDate ) external;
  function Level3TradeHistorySeller ( uint256 ) external view returns ( address );
  function Level3TradeHistorySellerLength (  ) external view returns ( uint256 len );
  function Level3TradeHistorySellerSet ( address _Level3TradeHistorySeller ) external;
  function MNETradeHistoryAmountETH ( uint256 ) external view returns ( uint256 );
  function MNETradeHistoryAmountETHFee ( uint256 ) external view returns ( uint256 );
  function MNETradeHistoryAmountETHFeeLength (  ) external view returns ( uint256 len );
  function MNETradeHistoryAmountETHFeeSet ( uint256 _MNETradeHistoryAmountETHFee ) external;
  function MNETradeHistoryAmountETHLength (  ) external view returns ( uint256 len );
  function MNETradeHistoryAmountETHSet ( uint256 _MNETradeHistoryAmountETH ) external;
  function MNETradeHistoryAmountMNE ( uint256 ) external view returns ( uint256 );
  function MNETradeHistoryAmountMNELength (  ) external view returns ( uint256 len );
  function MNETradeHistoryAmountMNESet ( uint256 _MNETradeHistoryAmountMNE ) external;
  function MNETradeHistoryBuyer ( uint256 ) external view returns ( address );
  function MNETradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function MNETradeHistoryBuyerSet ( address _MNETradeHistoryBuyer ) external;
  function MNETradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function MNETradeHistoryDateLength (  ) external view returns ( uint256 len );
  function MNETradeHistoryDateSet ( uint256 _MNETradeHistoryDate ) external;
  function MNETradeHistorySeller ( uint256 ) external view returns ( address );
  function MNETradeHistorySellerLength (  ) external view returns ( uint256 len );
  function MNETradeHistorySellerSet ( address _MNETradeHistorySeller ) external;
  function StakeTradeHistoryBuyer ( uint256 ) external view returns ( address );
  function StakeTradeHistoryBuyerLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryBuyerSet ( address _StakeTradeHistoryBuyer ) external;
  function StakeTradeHistoryDate ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryDateLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryDateSet ( uint256 _StakeTradeHistoryDate ) external;
  function StakeTradeHistoryETHFee ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryETHFeeLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryETHFeeSet ( uint256 _StakeTradeHistoryETHFee ) external;
  function StakeTradeHistoryETHPrice ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryETHPriceLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryETHPriceSet ( uint256 _StakeTradeHistoryETHPrice ) external;
  function StakeTradeHistoryMNEGenesisBurned ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryMNEGenesisBurnedLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryMNEGenesisBurnedSet ( uint256 _StakeTradeHistoryMNEGenesisBurned ) external;
  function StakeTradeHistorySeller ( uint256 ) external view returns ( address );
  function StakeTradeHistorySellerLength (  ) external view returns ( uint256 len );
  function StakeTradeHistorySellerSet ( address _StakeTradeHistorySeller ) external;
  function StakeTradeHistoryStakeAmount ( uint256 ) external view returns ( uint256 );
  function StakeTradeHistoryStakeAmountLength (  ) external view returns ( uint256 len );
  function StakeTradeHistoryStakeAmountSet ( uint256 _StakeTradeHistoryStakeAmount ) external;
  function deleteGenesisAddressesForSaleLevel1 (  ) external;
  function deleteGenesisAddressesForSaleLevel2 (  ) external;
  function deleteGenesisAddressesForSaleLevel3 (  ) external;
  function deleteNormalAddressesForSale (  ) external;
  function deleteStakeHoldersList (  ) external;
  function deleteStakesForSale (  ) external;
  function genesisAddressesForSaleLevel1 ( uint256 ) external view returns ( address );
  function genesisAddressesForSaleLevel1Length (  ) external view returns ( uint256 len );
  function genesisAddressesForSaleLevel1Set ( address _genesisAddressesForSaleLevel1 ) external;
  function genesisAddressesForSaleLevel1SetAt ( uint256 i, address _address ) external;
  function genesisAddressesForSaleLevel2 ( uint256 ) external view returns ( address );
  function genesisAddressesForSaleLevel2Length (  ) external view returns ( uint256 len );
  function genesisAddressesForSaleLevel2Set ( address _genesisAddressesForSaleLevel2 ) external;
  function genesisAddressesForSaleLevel2SetAt ( uint256 i, address _address ) external;
  function genesisAddressesForSaleLevel3 ( uint256 ) external view returns ( address );
  function genesisAddressesForSaleLevel3Length (  ) external view returns ( uint256 len );
  function genesisAddressesForSaleLevel3Set ( address _genesisAddressesForSaleLevel3 ) external;
  function genesisAddressesForSaleLevel3SetAt ( uint256 i, address _address ) external;
  function normalAddressesForSale ( uint256 ) external view returns ( address );
  function normalAddressesForSaleLength (  ) external view returns ( uint256 len );
  function normalAddressesForSaleSet ( address _normalAddressesForSale ) external;
  function normalAddressesForSaleSetAt ( uint256 i, address _address ) external;
  function ownerGenesis (  ) external view returns ( address );
  function ownerGenesisBuys (  ) external view returns ( address );
  function ownerMain (  ) external view returns ( address );
  function ownerNormalAddress (  ) external view returns ( address );
  function ownerStakeBuys (  ) external view returns ( address );
  function ownerStakes (  ) external view returns ( address );
  function setOwnerGenesis (  ) external;
  function setOwnerGenesisBuys (  ) external;
  function setOwnerMain (  ) external;
  function setOwnerNormalAddress (  ) external;
  function setOwnerStakeBuys (  ) external;
  function setOwnerStakes (  ) external;
  function stakeHoldersList ( uint256 ) external view returns ( address );
  function stakeHoldersListAt ( uint256 i, address _address ) external;
  function stakeHoldersListLength (  ) external view returns ( uint256 len );
  function stakeHoldersListSet ( address _stakeHoldersList ) external;
  function stakesForSale ( uint256 ) external view returns ( address );
  function stakesForSaleLength (  ) external view returns ( uint256 len );
  function stakesForSaleSet ( address _stakesForSale ) external;
  function stakesForSaleSetAt ( uint256 i, address _address ) external;
}

interface genesisCalls {
  function AllowAddressToDestroyGenesis ( address _from, address _address ) external;
  function AllowReceiveGenesisTransfers ( address _from ) external;
  function BurnTokens ( address _from, uint256 mneToBurn ) external returns ( bool success );
  function RemoveAllowAddressToDestroyGenesis ( address _from ) external;
  function RemoveAllowReceiveGenesisTransfers ( address _from ) external;
  function RemoveGenesisAddressFromSale ( address _from ) external;
  function SetGenesisForSale ( address _from, uint256 weiPrice ) external;
  function TransferGenesis ( address _from, address _to ) external;
  function UpgradeToLevel2FromLevel1 ( address _address, uint256 weiValue ) external;
  function UpgradeToLevel3FromDev ( address _address ) external;
  function UpgradeToLevel3FromLevel1 ( address _address, uint256 weiValue ) external;
  function UpgradeToLevel3FromLevel2 ( address _address, uint256 weiValue ) external;
  function availableBalanceOf ( address _address ) external view returns ( uint256 Balance );
  function balanceOf ( address _address ) external view returns ( uint256 balance );
  function deleteAddressFromGenesisSaleList ( address _address ) external;
  function isAnyGenesisAddress ( address _address ) external view returns ( bool success );
  function isGenesisAddressLevel1 ( address _address ) external view returns ( bool success );
  function isGenesisAddressLevel2 ( address _address ) external view returns ( bool success );
  function isGenesisAddressLevel2Or3 ( address _address ) external view returns ( bool success );
  function isGenesisAddressLevel3 ( address _address ) external view returns ( bool success );
  function ownerGenesis (  ) external view returns ( address );
  function ownerGenesisBuys (  ) external view returns ( address );
  function ownerMain (  ) external view returns ( address );
  function ownerNormalAddress (  ) external view returns ( address );
  function ownerStakeBuys (  ) external view returns ( address );
  function ownerStakes (  ) external view returns ( address );
  function setGenesisCallerAddress ( address _caller ) external returns ( bool success );
  function setOwnerGenesisBuys (  ) external;
  function setOwnerMain (  ) external;
  function setOwnerNormalAddress (  ) external;
  function setOwnerStakeBuys (  ) external;
  function setOwnerStakes (  ) external;
  function BurnGenesisAddresses ( address _from, address[] calldata _genesisAddressesToBurn ) external;
}

interface normalAddress {
  function BuyNormalAddress ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _totalToSend );
  function RemoveNormalAddressFromSale ( address _address ) external;
  function setBalanceNormalAddress ( address _from, address _address, uint256 balance ) external;
  function SetNormalAddressForSale ( address _from, uint256 weiPricePerMNE ) external;
  function setOwnerMain (  ) external;
  function ownerMain (  ) external view returns ( address );
}

interface stakes {
  function RemoveStakeFromSale ( address _from ) external;
  function SetStakeForSale ( address _from, uint256 priceInWei ) external;
  function StakeTransferGenesis ( address _from, address _to, uint256 _value, address[] calldata _genesisAddressesToBurn ) external;
  function StakeTransferMNE ( address _from, address _to, uint256 _value ) external returns ( uint256 _mneToBurn );
  function ownerMain (  ) external view returns ( address );
  function setBalanceStakes ( address _from, address _address, uint256 balance ) external;
  function setOwnerMain (  ) external;
}

interface stakeBuys {
  function BuyStakeGenesis ( address _from, address _address, address[] calldata _genesisAddressesToBurn, uint256 _msgvalue ) external returns ( uint256 _feesToPayToSeller );
  function BuyStakeMNE ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _mneToBurn, uint256 _feesToPayToSeller );
  function ownerMain (  ) external view returns ( address );
  function setOwnerMain (  ) external;
}

interface genesisBuys {
  function BuyGenesisLevel1FromNormal ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _totalToSend );
  function BuyGenesisLevel2FromNormal ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _totalToSend );
  function BuyGenesisLevel3FromNormal ( address _from, address _address, uint256 _msgvalue ) external returns ( uint256 _totalToSend );
  function ownerMain (  ) external view returns ( address );
  function setOwnerMain (  ) external;
}

interface tokenService {
  function CreateToken ( address _from, uint256 _msgvalue ) external returns ( uint256 _mneToBurn, address _contract );
  function CreateTokenICO ( address _from, uint256 _msgvalue ) external returns ( uint256 _mneToBurn, address _contract );
  function ownerMain (  ) external view returns ( address );
  function setOwnerMain (  ) external;
}

interface baseTransfers {
	function setOwnerMain (  ) external;
	function transfer ( address _from, address _to, uint256 _value ) external;
	function transferFrom ( address _sender, address _from, address _to, uint256 _amount ) external returns ( bool success );
	function stopSetup ( address _from ) external returns ( bool success );
	function totalSupply (  ) external view returns ( uint256 TotalSupply );
}

contract Minereum { 
string public name; 
string public symbol; 
uint8 public decimals; 

event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
event LogStakeHolderSends(address indexed to, uint balance, uint amountToSend);
event LogFailedStakeHolderSends(address indexed to, uint balance, uint amountToSend);
event TokenCreation(address indexed from, address contractAdd);
event TokenCreationICO(address indexed from, address  contractAdd);
event StakeTransfer(address indexed from, address indexed to, uint256 value);

publicCalls public pc;
publicArrays public pa;
genesisCalls public gn;
normalAddress public na;
stakes public st;
stakeBuys public stb;
genesisBuys public gnb;
tokenService public tks;
baseTransfers public bst;

address public updaterAddress = 0x0000000000000000000000000000000000000000;
function setUpdater() public {if (updaterAddress == 0x0000000000000000000000000000000000000000) updaterAddress = msg.sender; else revert();}
address public payoutOwner = 0x0000000000000000000000000000000000000000;
bool public payoutBlocked = false;
address payable public secondaryPayoutAddress = 0x0000000000000000000000000000000000000000;

constructor(address _publicCallsAddress, address _publicArraysAddress, address _genesisCallsAddress, address _normalAddressAddress,
 address _stakesAddress, address _stakesBuysAddress,address _genesisBuysAddress, address _tokenServiceAddress, address _baseTransfersAddress) public {
name = "Minereum"; 
symbol = "MNE"; 
decimals = 8; 
setUpdater();
pc = publicCalls(_publicCallsAddress);
pc.setOwnerMain();
pa = publicArrays(_publicArraysAddress);
pa.setOwnerMain();
gn = genesisCalls(_genesisCallsAddress);
gn.setOwnerMain();
na = normalAddress(_normalAddressAddress);
na.setOwnerMain();
st = stakes(_stakesAddress);
st.setOwnerMain();
stb = stakeBuys(_stakesBuysAddress);
stb.setOwnerMain();
gnb = genesisBuys(_genesisBuysAddress);
gnb.setOwnerMain();
tks = tokenService(_tokenServiceAddress);
tks.setOwnerMain();
bst = baseTransfers(_baseTransfersAddress);
bst.setOwnerMain();
pc.initialBlockCountSet(block.number);
pc.overallSupplySet(0);
pc.genesisSalesCountSet(0);
pc.genesisSalesPriceCountSet(0);
pc.genesisTransfersCountSet(0);
pc.setupRunningSet(true);
pc.genesisCallerAddressSet(0x0000000000000000000000000000000000000000);
}

function reloadGenesis(address _address) public { if (msg.sender == updaterAddress)	{gn = genesisCalls(_address); gn.setOwnerMain(); } else revert();}
function reloadNormalAddress(address _address) public { if (msg.sender == updaterAddress)	{na = normalAddress(_address); na.setOwnerMain(); } else revert();}
function reloadStakes(address _address) public { if (msg.sender == updaterAddress)	{st = stakes(_address); st.setOwnerMain(); } else revert();}
function reloadStakeBuys(address _address) public { if (msg.sender == updaterAddress)	{stb = stakeBuys(_address); stb.setOwnerMain(); } else revert();}
function reloadGenesisBuys(address _address) public { if (msg.sender == updaterAddress)	{gnb = genesisBuys(_address); gnb.setOwnerMain(); } else revert();}
function reloadTokenService(address _address) public { if (msg.sender == updaterAddress)	{tks = tokenService(_address); tks.setOwnerMain(); } else revert();}
function reloadPublicCalls(address _address, uint code) public { if (!(code == 1234)) revert();  if (msg.sender == updaterAddress)	{pc = publicCalls(_address); pc.setOwnerMain();} else revert();}
function reloadPublicArrays(address _address, uint code) public { if (!(code == 1234)) revert();  if (msg.sender == updaterAddress)	{pa = publicArrays(_address); pa.setOwnerMain();} else revert();}

function setPayoutOwner() public
{
	if(payoutOwner == 0x0000000000000000000000000000000000000000)
		payoutOwner = msg.sender;
	else
		revert();
}

function setSecondaryPayoutAddress(address payable _address) public
{
	if(msg.sender == payoutOwner)
		secondaryPayoutAddress = _address;
	else
		revert();
}



function SetBlockPayouts(bool toBlock) public
{
	if(msg.sender == payoutOwner)
	{
		payoutBlocked = toBlock;
	}
}


function currentEthBlock() public view returns (uint256 blockNumber) 
{
	return block.number;
}

function currentBlock() public view returns (uint256 blockNumber)
{
	return block.number - pc.initialBlockCount();
}

function availableBalanceOf(address _address) public view returns (uint256 Balance)
{
	return gn.availableBalanceOf(_address);
}

function totalSupply() public view returns (uint256 TotalSupply)
{	
	return bst.totalSupply();
}

function transfer(address _to, uint256 _value)  public { 
if (_to == address(this)) revert('if (_to == address(this))');
bst.transfer(msg.sender, _to, _value);
emit Transfer(msg.sender, _to, _value); 
}

function transferFrom(
        address _from,
        address _to,
        uint256 _amount
) public returns (bool success) {
		bool result = bst.transferFrom(msg.sender, _from, _to, _amount);
        emit Transfer(_from, _to, _amount);
        return result;    
}

function approve(address _spender, uint256 _amount) public returns (bool success) {
    pc.allowedSet(msg.sender,_spender, _amount);
    emit Approval(msg.sender, _spender, _amount);
    return true;
}

function allowance(address _owner, address _spender) public view returns (uint256 remaining) {
    return pc.allowed(_owner,_spender);
}

function balanceOf(address _address) public view returns (uint256 balance) {
	return gn.balanceOf(_address);
}

function stakeBalanceOf(address _address) public view returns (uint256 balance) {
	return pc.stakeBalances(_address);
}

function TransferGenesis(address _to) public {
	if (_to == address(this)) revert('if (_to == address(this))');	
	gn.TransferGenesis(msg.sender, _to);
	emit Transfer(msg.sender, _to, balanceOf(_to));	
}

function SetGenesisForSale(uint256 weiPrice) public {	
	gn.SetGenesisForSale(msg.sender, weiPrice);
}

function AllowReceiveGenesisTransfers() public { 
	gn.AllowReceiveGenesisTransfers(msg.sender);
}

function RemoveAllowReceiveGenesisTransfers() public { 
	gn.RemoveAllowReceiveGenesisTransfers(msg.sender);
}

function RemoveGenesisAddressFromSale() public { 
	gn.RemoveGenesisAddressFromSale(msg.sender);
}

function AllowAddressToDestroyGenesis(address _address) public  { 
	gn.AllowAddressToDestroyGenesis(msg.sender, _address);
}

function RemoveAllowAddressToDestroyGenesis() public { 
	gn.RemoveAllowAddressToDestroyGenesis(msg.sender);
}

function UpgradeToLevel2FromLevel1() public payable {
	gn.UpgradeToLevel2FromLevel1(msg.sender, msg.value);
}

function UpgradeToLevel3FromLevel1() public payable {
	gn.UpgradeToLevel3FromLevel1(msg.sender, msg.value);
}

function UpgradeToLevel3FromLevel2() public payable {
	gn.UpgradeToLevel3FromLevel2(msg.sender, msg.value);
}

function UpgradeToLevel3FromDev() public {
	gn.UpgradeToLevel3FromDev(msg.sender);
}

function UpgradeOthersToLevel2FromLevel1(address[] memory _addresses) public payable {
	uint count = _addresses.length;
	if (msg.value != (pc.ethFeeToUpgradeToLevel2()*count)) revert('(msg.value != pc.ethFeeToUpgradeToLevel2()*count)');
	uint i = 0;
	while (i < count)
	{
		gn.UpgradeToLevel2FromLevel1(_addresses[i], pc.ethFeeToUpgradeToLevel2());
		i++;
	}
}

function UpgradeOthersToLevel3FromLevel1(address[] memory _addresses) public payable {
	uint count = _addresses.length;
	if (msg.value != ((pc.ethFeeToUpgradeToLevel2() + pc.ethFeeToUpgradeToLevel3())*count)) revert('(weiValue != ((msg.value + pc.ethFeeToUpgradeToLevel3())*count))');
	uint i = 0;
	while (i < count)
	{
		gn.UpgradeToLevel3FromLevel1(_addresses[i], (pc.ethFeeToUpgradeToLevel2() + pc.ethFeeToUpgradeToLevel3()));
		i++;
	}
}

function UpgradeOthersToLevel3FromLevel2(address[] memory _addresses) public payable {
	uint count = _addresses.length;
	if (msg.value != (pc.ethFeeToUpgradeToLevel3()*count)) revert('(msg.value != (pc.ethFeeToUpgradeToLevel3()*count))');
	uint i = 0;
	while (i < count)
	{
		gn.UpgradeToLevel3FromLevel2(_addresses[i], pc.ethFeeToUpgradeToLevel3());
		i++;
	}
}

function UpgradeOthersToLevel3FromDev(address[] memory _addresses) public {
	uint count = _addresses.length;	
	uint i = 0;
	while (i < count)
	{
		gn.UpgradeToLevel3FromDev(_addresses[i]);
		i++;
	}
}

function BuyGenesisAddress(address payable _address) public payable
{
	if (gn.isGenesisAddressLevel1(_address))
		BuyGenesisLevel1FromNormal(_address);
	else if (gn.isGenesisAddressLevel2(_address))
		BuyGenesisLevel2FromNormal(_address);
	else if (gn.isGenesisAddressLevel3(_address))
		BuyGenesisLevel3FromNormal(_address);
	else
		revert('Address not for sale');
}

function SetNormalAddressForSale(uint256 weiPricePerMNE) public {	
	na.SetNormalAddressForSale(msg.sender, weiPricePerMNE);
}

function RemoveNormalAddressFromSale() public
{
	na.RemoveNormalAddressFromSale(msg.sender);
}

function BuyNormalAddress(address payable _address) public payable{
	uint256 feesToPayToSeller = na.BuyNormalAddress(msg.sender, address(_address), msg.value);				
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');
	emit Transfer(_address, msg.sender, balanceOf(_address));	
}

function setBalanceNormalAddress(address _address, uint256 _balance) public
{
	na.setBalanceNormalAddress(msg.sender, _address, _balance);
	emit Transfer(address(this), _address, _balance); 
}

function ContractTransferAllFundsOut() public
{
	//in case of hack, funds can be transfered out to another addresses and transferred to the stake holders from there
	if (payoutBlocked)
		if(!secondaryPayoutAddress.send(address(this).balance)) revert();
}

function PayoutStakeHolders(uint minId, uint maxId) public {
	require(msg.sender == tx.origin); //For security reasons this line is to prevent smart contract calls
	if (payoutBlocked) revert('Payouts Blocked'); //In case of hack, payouts can be blocked
	uint contractBalance = address(this).balance;
	if (!(contractBalance > 0)) revert('(!(contractBalance > 0))');
	uint i;
	uint max;
	
	if (minId > 0 && maxId >0)
	{
		i = minId;
		max = maxId;
	}
	else
	{
		i = 0;
		max = pa.stakeHoldersListLength();
	}

	while (i < max)
	{
		address payable add = payable(pa.stakeHoldersList(i));
		uint balance = pc.stakeBalances(add);
		uint amountToSend = contractBalance * balance / pc.stakeDecimals();
		if (amountToSend > 0)
		{
			if (!add.send(amountToSend))
				emit LogFailedStakeHolderSends(add, balance, amountToSend);
			else
			{
				pc.totalPaidStakeHoldersSet(pc.totalPaidStakeHolders() + amountToSend);
				emit LogStakeHolderSends(add, balance, amountToSend);	
			}			
		}
		i++;
	}
}

function stopSetup() public returns (bool success)
{
	return bst.stopSetup(msg.sender);
}

function BurnTokens(uint256 mneToBurn) public returns (bool success) {	
	gn.BurnTokens(msg.sender, mneToBurn);
	emit Transfer(msg.sender, 0x0000000000000000000000000000000000000000, mneToBurn);
	return true;
}

function SetStakeForSale(uint256 priceInWei) public
{	
	st.SetStakeForSale(msg.sender, priceInWei);
}

function RemoveStakeFromSale() public {
	st.RemoveStakeFromSale(msg.sender);
}

function StakeTransferMNE(address _to, uint256 _value) public {
	if (_to == address(this)) revert('if (_to == address(this))');
	BurnTokens(st.StakeTransferMNE(msg.sender, _to, _value));
	emit StakeTransfer(msg.sender, _to, _value); 
}

function BurnGenesisAddresses(address[] memory _genesisAddressesToBurn) public
{
	gn.BurnGenesisAddresses(msg.sender, _genesisAddressesToBurn);
	uint i = 0;	
	while(i < _genesisAddressesToBurn.length)
	{
		emit Transfer(_genesisAddressesToBurn[i], 0x0000000000000000000000000000000000000000, balanceOf(_genesisAddressesToBurn[i]));
		i++;
	}
}

function StakeTransferGenesis(address _to, uint256 _value, address[] memory _genesisAddressesToBurn) public {
	if (_to == address(this)) revert('if (_to == address(this))');
	uint i = 0;	
	while(i < _genesisAddressesToBurn.length)
	{
		emit Transfer(_genesisAddressesToBurn[i], 0x0000000000000000000000000000000000000000, balanceOf(_genesisAddressesToBurn[i]));
		i++;
	}
	st.StakeTransferGenesis(msg.sender, _to, _value, _genesisAddressesToBurn);	
	emit StakeTransfer(msg.sender, _to, _value); 
}

function setBalanceStakes(address _address, uint256 balance) public {
	st.setBalanceStakes(msg.sender, _address, balance);
}

function BuyGenesisLevel1FromNormal(address payable _address) public payable {
	uint256 feesToPayToSeller = gnb.BuyGenesisLevel1FromNormal(msg.sender, address(_address), msg.value);
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');	
	emit Transfer(_address, msg.sender, balanceOf(msg.sender));		
}

function BuyGenesisLevel2FromNormal(address payable _address) public payable{
	uint256 feesToPayToSeller = gnb.BuyGenesisLevel2FromNormal(msg.sender, address(_address), msg.value);	
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');
	emit Transfer(_address, msg.sender, balanceOf(msg.sender));
}

function BuyGenesisLevel3FromNormal(address payable _address) public payable{
	uint256 feesToPayToSeller = gnb.BuyGenesisLevel3FromNormal(msg.sender, address(_address), msg.value);	
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');	
	emit Transfer(_address, msg.sender, balanceOf(msg.sender));
}

function BuyStakeMNE(address payable _address) public payable {
	uint256 balanceToSend = pc.stakeBalances(_address);
	(uint256 mneToBurn, uint256 feesToPayToSeller) = stb.BuyStakeMNE(msg.sender, address(_address), msg.value);
	BurnTokens(mneToBurn);
	if(!_address.send(feesToPayToSeller)) revert('(!_address.send(feesToPayToSeller))');	
	emit StakeTransfer(_address, msg.sender, balanceToSend); 
}

function BuyStakeGenesis(address payable _address, address[] memory _genesisAddressesToBurn) public payable {
	uint256 balanceToSend = pc.stakeBalances(_address);
	uint i = 0;
	while(i < _genesisAddressesToBurn.length)
	{
		emit Transfer(_genesisAddressesToBurn[i], 0x0000000000000000000000000000000000000000, balanceOf(_genesisAddressesToBurn[i]));
		i++;
	}
	uint256 feesToPayToSeller = stb.BuyStakeGenesis(msg.sender, address(_address), _genesisAddressesToBurn, msg.value);
	if(!_address.send(feesToPayToSeller)) revert();		
	emit StakeTransfer(_address, msg.sender, balanceToSend); 
}

function CreateToken() public payable {
	(uint256 _mneToBurn, address tokenAdderss) = tks.CreateToken(msg.sender, msg.value);
	BurnTokens(_mneToBurn);
	emit TokenCreation(msg.sender, tokenAdderss);
}

function CreateTokenICO() public payable {
	(uint256 _mneToBurn, address tokenAdderss) = tks.CreateTokenICO(msg.sender, msg.value);
	BurnTokens(_mneToBurn);
	emit TokenCreationICO(msg.sender, tokenAdderss);
}

function isAnyGenesisAddress(address _address) public view returns (bool success) {
	return gn.isAnyGenesisAddress(_address);
}

function isGenesisAddressLevel1(address _address) public view returns (bool success) {
	return gn.isGenesisAddressLevel1(_address);
}

function isGenesisAddressLevel2(address _address) public view returns (bool success) {
	return gn.isGenesisAddressLevel2(_address);
}

function isGenesisAddressLevel3(address _address) public view returns (bool success) {
	return gn.isGenesisAddressLevel3(_address);
}

function isGenesisAddressLevel2Or3(address _address) public view returns (bool success) {
	return gn.isGenesisAddressLevel2Or3(_address);
}

function registerGenesisAddresses(address[] memory _addressList) public {
	uint i = 0;
	if (pc.setupRunning() && msg.sender == pc.genesisCallerAddress())
	{
		while(i < _addressList.length)
		{
			emit Transfer(address(this), _addressList[i], pc.genesisSupplyPerAddress());
			i++;
		}
	}
	else 
	{
		revert();
	}
}

function ethFeeToUpgradeToLevel2Set(uint256 _ethFeeToUpgradeToLevel2) public {pc.ethFeeToUpgradeToLevel2Set(msg.sender, _ethFeeToUpgradeToLevel2);}
function ethFeeToUpgradeToLevel3Set(uint256 _ethFeeToUpgradeToLevel3) public {pc.ethFeeToUpgradeToLevel3Set(msg.sender, _ethFeeToUpgradeToLevel3);}
function ethFeeToBuyLevel1Set(uint256 _ethFeeToBuyLevel1) public {pc.ethFeeToBuyLevel1Set(msg.sender, _ethFeeToBuyLevel1);}
function ethFeeForSellerLevel1Set(uint256 _ethFeeForSellerLevel1) public {pc.ethFeeForSellerLevel1Set(msg.sender, _ethFeeForSellerLevel1);}
function ethFeeForTokenSet(uint256 _ethFeeForToken) public {pc.ethFeeForTokenSet(msg.sender, _ethFeeForToken);}
function ethFeeForTokenICOSet(uint256 _ethFeeForTokenICO) public {pc.ethFeeForTokenICOSet(msg.sender, _ethFeeForTokenICO);}
function ethPercentFeeGenesisExchangeSet(uint256 _ethPercentFeeGenesisExchange) public {pc.ethPercentFeeGenesisExchangeSet(msg.sender, _ethPercentFeeGenesisExchange);}
function ethPercentFeeNormalExchangeSet(uint256 _ethPercentFeeNormalExchange) public {pc.ethPercentFeeNormalExchangeSet(msg.sender, _ethPercentFeeNormalExchange);}
function ethPercentStakeExchangeSet(uint256 _ethPercentStakeExchange) public {pc.ethPercentStakeExchangeSet(msg.sender, _ethPercentStakeExchange);}
function amountOfGenesisToBuyStakesSet(uint256 _amountOfGenesisToBuyStakes) public {pc.amountOfGenesisToBuyStakesSet(msg.sender, _amountOfGenesisToBuyStakes);}
function amountOfMNEToBuyStakesSet(uint256 _amountOfMNEToBuyStakes) public {pc.amountOfMNEToBuyStakesSet(msg.sender, _amountOfMNEToBuyStakes);}
function amountOfMNEForTokenSet(uint256 _amountOfMNEForToken) public {pc.amountOfMNEForTokenSet(msg.sender, _amountOfMNEForToken);}
function amountOfMNEForTokenICOSet(uint256 _amountOfMNEForTokenICO) public {pc.amountOfMNEForTokenICOSet(msg.sender, _amountOfMNEForTokenICO);}
function amountOfMNEToTransferStakesSet(uint256 _amountOfMNEToTransferStakes) public {pc.amountOfMNEToTransferStakesSet(msg.sender, _amountOfMNEToTransferStakes);}
function amountOfGenesisToTransferStakesSet(uint256 _amountOfGenesisToTransferStakes) public {pc.amountOfGenesisToTransferStakesSet(msg.sender, _amountOfGenesisToTransferStakes);}
function stakeDecimalsSet(uint256 _stakeDecimals) public {pc.stakeDecimalsSet(msg.sender, _stakeDecimals);}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_publicCallsAddress","type":"address"},{"internalType":"address","name":"_publicArraysAddress","type":"address"},{"internalType":"address","name":"_genesisCallsAddress","type":"address"},{"internalType":"address","name":"_normalAddressAddress","type":"address"},{"internalType":"address","name":"_stakesAddress","type":"address"},{"internalType":"address","name":"_stakesBuysAddress","type":"address"},{"internalType":"address","name":"_genesisBuysAddress","type":"address"},{"internalType":"address","name":"_tokenServiceAddress","type":"address"},{"internalType":"address","name":"_baseTransfersAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToSend","type":"uint256"}],"name":"LogFailedStakeHolderSends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"balance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountToSend","type":"uint256"}],"name":"LogStakeHolderSends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"StakeTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"contractAdd","type":"address"}],"name":"TokenCreation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"contractAdd","type":"address"}],"name":"TokenCreationICO","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"AllowAddressToDestroyGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"AllowReceiveGenesisTransfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_genesisAddressesToBurn","type":"address[]"}],"name":"BurnGenesisAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"mneToBurn","type":"uint256"}],"name":"BurnTokens","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyGenesisAddress","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyGenesisLevel1FromNormal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyGenesisLevel2FromNormal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyGenesisLevel3FromNormal","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyNormalAddress","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"address[]","name":"_genesisAddressesToBurn","type":"address[]"}],"name":"BuyStakeGenesis","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"BuyStakeMNE","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"ContractTransferAllFundsOut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"CreateToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"CreateTokenICO","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minId","type":"uint256"},{"internalType":"uint256","name":"maxId","type":"uint256"}],"name":"PayoutStakeHolders","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveAllowAddressToDestroyGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveAllowReceiveGenesisTransfers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveGenesisAddressFromSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveNormalAddressFromSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveStakeFromSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"toBlock","type":"bool"}],"name":"SetBlockPayouts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiPrice","type":"uint256"}],"name":"SetGenesisForSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiPricePerMNE","type":"uint256"}],"name":"SetNormalAddressForSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"priceInWei","type":"uint256"}],"name":"SetStakeForSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address[]","name":"_genesisAddressesToBurn","type":"address[]"}],"name":"StakeTransferGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"StakeTransferMNE","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"}],"name":"TransferGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"UpgradeOthersToLevel2FromLevel1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"UpgradeOthersToLevel3FromDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"UpgradeOthersToLevel3FromLevel1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"UpgradeOthersToLevel3FromLevel2","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"UpgradeToLevel2FromLevel1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"UpgradeToLevel3FromDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"UpgradeToLevel3FromLevel1","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"UpgradeToLevel3FromLevel2","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfGenesisToBuyStakes","type":"uint256"}],"name":"amountOfGenesisToBuyStakesSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfGenesisToTransferStakes","type":"uint256"}],"name":"amountOfGenesisToTransferStakesSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfMNEForTokenICO","type":"uint256"}],"name":"amountOfMNEForTokenICOSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfMNEForToken","type":"uint256"}],"name":"amountOfMNEForTokenSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfMNEToBuyStakes","type":"uint256"}],"name":"amountOfMNEToBuyStakesSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amountOfMNEToTransferStakes","type":"uint256"}],"name":"amountOfMNEToTransferStakesSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"availableBalanceOf","outputs":[{"internalType":"uint256","name":"Balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bst","outputs":[{"internalType":"contract baseTransfers","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentBlock","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentEthBlock","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeForSellerLevel1","type":"uint256"}],"name":"ethFeeForSellerLevel1Set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeForTokenICO","type":"uint256"}],"name":"ethFeeForTokenICOSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeForToken","type":"uint256"}],"name":"ethFeeForTokenSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeToBuyLevel1","type":"uint256"}],"name":"ethFeeToBuyLevel1Set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeToUpgradeToLevel2","type":"uint256"}],"name":"ethFeeToUpgradeToLevel2Set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethFeeToUpgradeToLevel3","type":"uint256"}],"name":"ethFeeToUpgradeToLevel3Set","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethPercentFeeGenesisExchange","type":"uint256"}],"name":"ethPercentFeeGenesisExchangeSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethPercentFeeNormalExchange","type":"uint256"}],"name":"ethPercentFeeNormalExchangeSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ethPercentStakeExchange","type":"uint256"}],"name":"ethPercentStakeExchangeSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"gn","outputs":[{"internalType":"contract genesisCalls","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gnb","outputs":[{"internalType":"contract genesisBuys","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isAnyGenesisAddress","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isGenesisAddressLevel1","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isGenesisAddressLevel2","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isGenesisAddressLevel2Or3","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isGenesisAddressLevel3","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"na","outputs":[{"internalType":"contract normalAddress","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pa","outputs":[{"internalType":"contract publicArrays","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payoutBlocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payoutOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pc","outputs":[{"internalType":"contract publicCalls","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addressList","type":"address[]"}],"name":"registerGenesisAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadGenesis","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadGenesisBuys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadNormalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"code","type":"uint256"}],"name":"reloadPublicArrays","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"code","type":"uint256"}],"name":"reloadPublicCalls","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadStakeBuys","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadStakes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"reloadTokenService","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"secondaryPayoutAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"_balance","type":"uint256"}],"name":"setBalanceNormalAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"}],"name":"setBalanceStakes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setPayoutOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"setSecondaryPayoutAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setUpdater","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"st","outputs":[{"internalType":"contract stakes","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"stakeBalanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_stakeDecimals","type":"uint256"}],"name":"stakeDecimalsSet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stb","outputs":[{"internalType":"contract stakeBuys","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"stopSetup","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tks","outputs":[{"internalType":"contract tokenService","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"TotalSupply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updaterAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

6080604052600b80546001600160a01b0319908116909155600c80546001600160a81b0319169055600d805490911690553480156200003d57600080fd5b50604051620059063803806200590683398181016040526101208110156200006457600080fd5b5080516020808301516040808501516060860151608087015160a088015160c089015160e08a0151610100909a015186518088019097526008808852674d696e657265756d60c01b9790990196875298999698949793969295919490939091620000d291600091906200088a565b50604080518082019091526003808252624d4e4560e81b6020909201918252620000ff916001916200088a565b506002805460ff19166008179055620001206001600160e01b036200085a16565b88600260016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600260019054906101000a90046001600160a01b03166001600160a01b03166313b9f0c76040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156200019857600080fd5b505af1158015620001ad573d6000803e3d6000fd5b5050600380546001600160a01b0319166001600160a01b038c81169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b1580156200020f57600080fd5b505af115801562000224573d6000803e3d6000fd5b5050600480546001600160a01b0319166001600160a01b038b811691909117808355604080516313b9f0c760e01b815290519190921694506313b9f0c793508183019260009282900301818387803b1580156200028057600080fd5b505af115801562000295573d6000803e3d6000fd5b5050600580546001600160a01b0319166001600160a01b038a81169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b158015620002f757600080fd5b505af11580156200030c573d6000803e3d6000fd5b5050600680546001600160a01b0319166001600160a01b038981169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b1580156200036e57600080fd5b505af115801562000383573d6000803e3d6000fd5b5050600780546001600160a01b0319166001600160a01b038881169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b158015620003e557600080fd5b505af1158015620003fa573d6000803e3d6000fd5b5050600880546001600160a01b0319166001600160a01b038781169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b1580156200045c57600080fd5b505af115801562000471573d6000803e3d6000fd5b5050600980546001600160a01b0319166001600160a01b038681169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b158015620004d357600080fd5b505af1158015620004e8573d6000803e3d6000fd5b5050600a80546001600160a01b0319166001600160a01b038581169190911791829055604080516313b9f0c760e01b815290519290911693506313b9f0c7925060048082019260009290919082900301818387803b1580156200054a57600080fd5b505af11580156200055f573d6000803e3d6000fd5b50505050600260019054906101000a90046001600160a01b03166001600160a01b03166321a67292436040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015620005bf57600080fd5b505af1158015620005d4573d6000803e3d6000fd5b505060025460408051636bc14c4160e11b815260006004820181905291516101009093046001600160a01b0316945063d782988293506024808201939182900301818387803b1580156200062757600080fd5b505af11580156200063c573d6000803e3d6000fd5b5050600254604080516368c0bf1960e01b815260006004820181905291516101009093046001600160a01b031694506368c0bf1993506024808201939182900301818387803b1580156200068f57600080fd5b505af1158015620006a4573d6000803e3d6000fd5b5050600254604080516310e3bde160e11b815260006004820181905291516101009093046001600160a01b031694506321c77bc293506024808201939182900301818387803b158015620006f757600080fd5b505af11580156200070c573d6000803e3d6000fd5b505060025460408051636e01eebf60e01b815260006004820181905291516101009093046001600160a01b03169450636e01eebf93506024808201939182900301818387803b1580156200075f57600080fd5b505af115801562000774573d6000803e3d6000fd5b505060025460408051633322721b60e01b81526001600482015290516101009092046001600160a01b03169350633322721b925060248082019260009290919082900301818387803b158015620007ca57600080fd5b505af1158015620007df573d6000803e3d6000fd5b505060025460408051630369559560e51b815260006004820181905291516101009093046001600160a01b03169450636d2ab2a093506024808201939182900301818387803b1580156200083257600080fd5b505af115801562000847573d6000803e3d6000fd5b505050505050505050505050506200092f565b600b546001600160a01b03166200088357600b80546001600160a01b0319163317905562000888565b600080fd5b565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620008cd57805160ff1916838001178555620008fd565b82800160010185558215620008fd579182015b82811115620008fd578251825591602001919060010190620008e0565b506200090b9291506200090f565b5090565b6200092c91905b808211156200090b576000815560010162000916565b90565b614fc7806200093f6000396000f3fe60806040526004361061053e5760003560e01c80637347060c116102bd578063bd65fc4c11610180578063dd2c455c116100e7578063e33eaaf7116100a0578063eb0fbbad1161007a578063eb0fbbad1461175b578063ef3dd5c81461178e578063fdbc6530146117c1578063ffc4b168146117d65761053e565b8063e33eaaf714611683578063e69919ae14611698578063e9095e5c146116ad5761053e565b8063dd2c455c14611597578063dd62ed3e146115c1578063ddcbfce0146115fc578063df02f1db14611626578063e12ed13c14611659578063e24126301461166e5761053e565b8063cf91e33111610139578063cf91e33114611423578063cff5c80714611456578063d4f7457914611504578063dae487ca1461152e578063db16cb5b14611543578063dc8689fc1461156d5761053e565b8063bd65fc4c1461124d578063bdbdcd7514611262578063c0ea2e7714611295578063c1696533146112aa578063c3536e8b1461136d578063c92f146a1461140e5761053e565b806395d89b4111610224578063ac0f738f116101dd578063ac0f738f1461117e578063af46aa0814611193578063b3e90476146111c6578063b4e85ec8146111f0578063b9c25cae14611205578063bad0f9341461121a5761053e565b806395d89b41146110c357806397b5e554146110d8578063a2ea2aaf1461110b578063a330915114611113578063a5094f8f1461111b578063a9059cbb146111455761053e565b80638a670113116102765780638a67011314610f6d5780638af8edfc14610f825780638ccb002314610f975780639055a23e1461104857806392cca5411461107b57806393c63b9d146110905761053e565b80637347060c14610e945780637366881714610eba57806373f0cc2d14610ef3578063742ec16414610f085780637d20a24f14610f325780638278188a14610f585761053e565b8063416e860411610405578063633865511161036c5780636dcb9800116103255780636dcb980014610d9d5780636e3ee8f114610dc75780637022c79e14610ded5780637050ec8914610e2057806370a0823114610e5957806370a8a2e614610e8c5761053e565b80636338655114610c6957806366a497b714610c8f5780636af4347014610cb95780636b3b280014610cc15780636be2ca4314610ce75780636c2f12e614610cfc5761053e565b806353396893116103be5780635339689314610b9d578063542aa99f14610bc757806357e08c6014610bdc5780635b48a88414610c155780635b65268f14610c3f57806361a3be8014610c545761053e565b8063416e860414610ac95780634290690914610ade5780634890bb5114610b085780634955d7f014610b1057806350ac2f6914610b3a578063522c628f14610b645761053e565b806321df8098116104a95780633118f543116104625780633118f543146109cd578063313ce567146109e25780633181a5a714610a0d57806333d5993414610a3357806336d6991014610a5d5780633c64cfc614610a905761053e565b806321df80981461089b57806323b872dd146108ce57806323e46e7c1461091157806325d998bb1461093d5780632940187a146109705780632cd3fd70146109a35761053e565b80630d061e75116104fb5780630d061e751461074c578063124d83d814610761578063177e48d01461078b57806318160ddd1461082c5780631b11ebb8146108415780631ec32a66146108715761053e565b806306fdde0314610543578063088c35fd146105cd578063095ea7b3146105f957806309ae18441461064657806309f6c607146106f45780630a63361c1461071b575b600080fd5b34801561054f57600080fd5b50610558611809565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561059257818101518382015260200161057a565b50505050905090810190601f1680156105bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105d957600080fd5b506105f7600480360360208110156105f057600080fd5b5035611897565b005b34801561060557600080fd5b506106326004803603604081101561061c57600080fd5b506001600160a01b038135169060200135611909565b604080519115158252519081900360200190f35b34801561065257600080fd5b506105f76004803603602081101561066957600080fd5b810190602081018135600160201b81111561068357600080fd5b82018360208201111561069557600080fd5b803590602001918460208302840111600160201b831117156106b657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506119cc945050505050565b34801561070057600080fd5b50610709611af3565b60408051918252519081900360200190f35b34801561072757600080fd5b50610730611af7565b604080516001600160a01b039092168252519081900360200190f35b34801561075857600080fd5b50610730611b06565b34801561076d57600080fd5b506105f76004803603602081101561078457600080fd5b5035611b15565b6105f7600480360360208110156107a157600080fd5b810190602081018135600160201b8111156107bb57600080fd5b8201836020820111156107cd57600080fd5b803590602001918460208302840111600160201b831117156107ee57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611b6c945050505050565b34801561083857600080fd5b50610709611d48565b34801561084d57600080fd5b506105f76004803603604081101561086457600080fd5b5080359060200135611dbe565b34801561087d57600080fd5b506105f76004803603602081101561089457600080fd5b503561223f565b3480156108a757600080fd5b506105f7600480360360208110156108be57600080fd5b50356001600160a01b0316612296565b3480156108da57600080fd5b50610632600480360360608110156108f157600080fd5b506001600160a01b03813581169160208101359091169060400135612309565b34801561091d57600080fd5b506105f76004803603602081101561093457600080fd5b503515156123d7565b34801561094957600080fd5b506107096004803603602081101561096057600080fd5b50356001600160a01b0316612406565b34801561097c57600080fd5b506106326004803603602081101561099357600080fd5b50356001600160a01b031661248b565b3480156109af57600080fd5b50610632600480360360208110156109c657600080fd5b50356124de565b3480156109d957600080fd5b5061073061258f565b3480156109ee57600080fd5b506109f761259e565b6040805160ff9092168252519081900360200190f35b6105f760048036036020811015610a2357600080fd5b50356001600160a01b03166125a7565b348015610a3f57600080fd5b506105f760048036036020811015610a5657600080fd5b5035612794565b348015610a6957600080fd5b5061063260048036036020811015610a8057600080fd5b50356001600160a01b03166127eb565b348015610a9c57600080fd5b506105f760048036036040811015610ab357600080fd5b506001600160a01b03813516906020013561283e565b348015610ad557600080fd5b506107306128b5565b348015610aea57600080fd5b506105f760048036036020811015610b0157600080fd5b50356128c4565b6105f761291b565b348015610b1c57600080fd5b506105f760048036036020811015610b3357600080fd5b5035612988565b348015610b4657600080fd5b506105f760048036036020811015610b5d57600080fd5b50356129df565b348015610b7057600080fd5b506105f760048036036040811015610b8757600080fd5b506001600160a01b038135169060200135612a36565b348015610ba957600080fd5b506105f760048036036020811015610bc057600080fd5b5035612ad1565b348015610bd357600080fd5b50610632612b28565b348015610be857600080fd5b506105f760048036036040811015610bff57600080fd5b506001600160a01b038135169060200135612b88565b348015610c2157600080fd5b506105f760048036036020811015610c3857600080fd5b5035612c2d565b348015610c4b57600080fd5b506105f7612c80565b348015610c6057600080fd5b506105f7612ccd565b6105f760048036036020811015610c7f57600080fd5b50356001600160a01b0316612d1a565b348015610c9b57600080fd5b506105f760048036036020811015610cb257600080fd5b5035612ecf565b6105f7612f26565b6105f760048036036020811015610cd757600080fd5b50356001600160a01b0316612f79565b348015610cf357600080fd5b506105f761309e565b6105f760048036036020811015610d1257600080fd5b810190602081018135600160201b811115610d2c57600080fd5b820183602082011115610d3e57600080fd5b803590602001918460208302840111600160201b83111715610d5f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506130ea945050505050565b348015610da957600080fd5b506105f760048036036020811015610dc057600080fd5b50356132c1565b6105f760048036036020811015610ddd57600080fd5b50356001600160a01b0316613318565b348015610df957600080fd5b506105f760048036036020811015610e1057600080fd5b50356001600160a01b0316613376565b348015610e2c57600080fd5b506105f760048036036040811015610e4357600080fd5b506001600160a01b0381351690602001356133e6565b348015610e6557600080fd5b5061070960048036036020811015610e7c57600080fd5b50356001600160a01b0316613505565b6105f7613558565b6105f760048036036020811015610eaa57600080fd5b50356001600160a01b03166135ab565b348015610ec657600080fd5b506105f760048036036040811015610edd57600080fd5b506001600160a01b038135169060200135613609565b348015610eff57600080fd5b506107306136a1565b348015610f1457600080fd5b506105f760048036036020811015610f2b57600080fd5b50356136b0565b6105f760048036036020811015610f4857600080fd5b50356001600160a01b0316613704565b348015610f6457600080fd5b50610730613814565b348015610f7957600080fd5b50610730613823565b348015610f8e57600080fd5b50610730613832565b6105f760048036036040811015610fad57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610fd757600080fd5b820183602082011115610fe957600080fd5b803590602001918460208302840111600160201b8311171561100a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613841945050505050565b34801561105457600080fd5b506106326004803603602081101561106b57600080fd5b50356001600160a01b0316613a69565b34801561108757600080fd5b506105f7613abc565b34801561109c57600080fd5b506105f7600480360360208110156110b357600080fd5b50356001600160a01b0316613ae1565b3480156110cf57600080fd5b50610558613b4d565b3480156110e457600080fd5b506105f7600480360360208110156110fb57600080fd5b50356001600160a01b0316613ba7565b6105f7613c17565b6105f7613cee565b34801561112757600080fd5b506105f76004803603602081101561113e57600080fd5b5035613dc5565b34801561115157600080fd5b506105f76004803603604081101561116857600080fd5b506001600160a01b038135169060200135613e1c565b34801561118a57600080fd5b506105f7613f1b565b34801561119f57600080fd5b50610709600480360360208110156111b657600080fd5b50356001600160a01b0316613f68565b3480156111d257600080fd5b506105f7600480360360208110156111e957600080fd5b5035613fbd565b3480156111fc57600080fd5b506105f7614014565b34801561121157600080fd5b506105f7614060565b34801561122657600080fd5b506105f76004803603602081101561123d57600080fd5b50356001600160a01b03166140ad565b34801561125957600080fd5b5061073061411d565b34801561126e57600080fd5b506105f76004803603602081101561128557600080fd5b50356001600160a01b031661412c565b3480156112a157600080fd5b5061063261419c565b3480156112b657600080fd5b506105f7600480360360608110156112cd57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156112fc57600080fd5b82018360208201111561130e57600080fd5b803590602001918460208302840111600160201b8311171561132f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506141ac945050505050565b6105f76004803603602081101561138357600080fd5b810190602081018135600160201b81111561139d57600080fd5b8201836020820111156113af57600080fd5b803590602001918460208302840111600160201b831117156113d057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614362945050505050565b34801561141a57600080fd5b506105f7614623565b34801561142f57600080fd5b506105f76004803603602081101561144657600080fd5b50356001600160a01b0316614670565b34801561146257600080fd5b506105f76004803603602081101561147957600080fd5b810190602081018135600160201b81111561149357600080fd5b8201836020820111156114a557600080fd5b803590602001918460208302840111600160201b831117156114c657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614777945050505050565b34801561151057600080fd5b506105f76004803603602081101561152757600080fd5b5035614957565b34801561153a57600080fd5b506107306149ae565b34801561154f57600080fd5b506105f76004803603602081101561156657600080fd5b50356149bd565b34801561157957600080fd5b506105f76004803603602081101561159057600080fd5b5035614a10565b3480156115a357600080fd5b506105f7600480360360208110156115ba57600080fd5b5035614a67565b3480156115cd57600080fd5b50610709600480360360408110156115e457600080fd5b506001600160a01b0381358116916020013516614abe565b34801561160857600080fd5b506105f76004803603602081101561161f57600080fd5b5035614b4e565b34801561163257600080fd5b506105f76004803603602081101561164957600080fd5b50356001600160a01b0316614ba5565b34801561166557600080fd5b50610709614bd8565b34801561167a57600080fd5b506105f7614c5b565b34801561168f57600080fd5b506105f7614c82565b3480156116a457600080fd5b50610730614cc5565b3480156116b957600080fd5b506105f7600480360360208110156116d057600080fd5b810190602081018135600160201b8111156116ea57600080fd5b8201836020820111156116fc57600080fd5b803590602001918460208302840111600160201b8311171561171d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614cd9945050505050565b34801561176757600080fd5b506106326004803603602081101561177e57600080fd5b50356001600160a01b0316614d7d565b34801561179a57600080fd5b506105f7600480360360208110156117b157600080fd5b50356001600160a01b0316614dd0565b3480156117cd57600080fd5b50610730614e25565b3480156117e257600080fd5b50610632600480360360208110156117f957600080fd5b50356001600160a01b0316614e34565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561188f5780601f106118645761010080835404028352916020019161188f565b820191906000526020600020905b81548152906001019060200180831161187257829003601f168201915b505050505081565b600254604080516305de45bd60e11b81523360048201526024810184905290516101009092046001600160a01b031691630bbc8b7a9160448082019260009290919082900301818387803b1580156118ee57600080fd5b505af1158015611902573d6000803e3d6000fd5b5050505050565b6002546040805163779a859960e11b81523360048201526001600160a01b03858116602483015260448201859052915160009361010090049092169163ef350b3291606480820192869290919082900301818387803b15801561196b57600080fd5b505af115801561197f573d6000803e3d6000fd5b50506040805185815290516001600160a01b03871693503392507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a350600192915050565b6004805460408051633ca4fe7b60e11b815233938101848152602482019283528551604483015285516001600160a01b0390941694637949fcf6949093879390916064909101906020808601910280838360005b83811015611a38578181015183820152602001611a20565b505050509050019350505050600060405180830381600087803b158015611a5e57600080fd5b505af1158015611a72573d6000803e3d6000fd5b506000925050505b8151811015611aef5760006001600160a01b0316828281518110611a9a57fe5b60200260200101516001600160a01b0316600080516020614f41833981519152611ad6858581518110611ac957fe5b6020026020010151613505565b60408051918252519081900360200190a3600101611a7a565b5050565b4390565b6003546001600160a01b031681565b600d546001600160a01b031681565b60025460408051633429fca760e21b81523360048201526024810184905290516101009092046001600160a01b03169163d0a7f29c9160448082019260009290919082900301818387803b1580156118ee57600080fd5b805160025460408051633238268960e01b81529051839261010090046001600160a01b0316916332382689916004808301926020929190829003018186803b158015611bb757600080fd5b505afa158015611bcb573d6000803e3d6000fd5b505050506040513d6020811015611be157600080fd5b5051023414611c215760405162461bcd60e51b8152600401808060200182810382526031815260200180614f616031913960400191505060405180910390fd5b60005b81811015611d435760045483516001600160a01b03909116906376067e6790859084908110611c4f57fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663323826896040518163ffffffff1660e01b815260040160206040518083038186803b158015611ca557600080fd5b505afa158015611cb9573d6000803e3d6000fd5b505050506040513d6020811015611ccf57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b158015611d1f57600080fd5b505af1158015611d33573d6000803e3d6000fd5b505060019092019150611c249050565b505050565b600a54604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015611d8d57600080fd5b505afa158015611da1573d6000803e3d6000fd5b505050506040513d6020811015611db757600080fd5b5051905090565b333214611dca57600080fd5b600c54600160a01b900460ff1615611e1b576040805162461bcd60e51b815260206004820152600f60248201526e14185e5bdd5d1cc8109b1bd8dad959608a1b604482015290519081900360640190fd5b4780611e6e576040805162461bcd60e51b815260206004820152601860248201527f282128636f6e747261637442616c616e6365203e203029290000000000000000604482015290519081900360640190fd5b600080600085118015611e815750600084115b15611e90575083905082611f11565b60009150600360009054906101000a90046001600160a01b03166001600160a01b031663643a94316040518163ffffffff1660e01b815260040160206040518083038186803b158015611ee257600080fd5b505afa158015611ef6573d6000803e3d6000fd5b505050506040513d6020811015611f0c57600080fd5b505190505b80821015611902576003546040805163124183a760e31b81526004810185905290516000926001600160a01b03169163920c1d38916024808301926020929190829003018186803b158015611f6557600080fd5b505afa158015611f79573d6000803e3d6000fd5b505050506040513d6020811015611f8f57600080fd5b505160025460408051633b317dab60e01b81526001600160a01b038085166004830152915193945060009361010090930490911691633b317dab91602480820192602092909190829003018186803b158015611fea57600080fd5b505afa158015611ffe573d6000803e3d6000fd5b505050506040513d602081101561201457600080fd5b50516002546040805163433ad96960e11b815290519293506000926101009092046001600160a01b031691638675b2d291600480820192602092909190829003018186803b15801561206557600080fd5b505afa158015612079573d6000803e3d6000fd5b505050506040513d602081101561208f57600080fd5b50518683028161209b57fe5b0490508015612231576040516001600160a01b0384169082156108fc029083906000818181858888f1935050505061211557604080518381526020810183905281516001600160a01b038616927f50a6033bb1b577c577f67a1425e1ac9939c9382b114ae85b5274fd3e76a7f7df928290030190a2612231565b6002546040805163028f4a6960e41b815290516101009092046001600160a01b031691631eeb57ec91849184916328f4a690916004808301926020929190829003018186803b15801561216757600080fd5b505afa15801561217b573d6000803e3d6000fd5b505050506040513d602081101561219157600080fd5b5051604080516001600160e01b031960e086901b16815292909101600483015251602480830192600092919082900301818387803b1580156121d257600080fd5b505af11580156121e6573d6000803e3d6000fd5b5050604080518581526020810185905281516001600160a01b03881694507fbb64bebe64aabe20340f0a5d4d9163161935b2458c78e957c2db1d8c639434ad93509081900390910190a25b505060019092019150611f11565b600254604080516372a4edd560e01b81523360048201526024810184905290516101009092046001600160a01b0316916372a4edd59160448082019260009290919082900301818387803b1580156118ee57600080fd5b600b546001600160a01b031633141561053e57600780546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b1580156118ee57600080fd5b50565b600a5460408051630aed65f560e11b81523360048201526001600160a01b0386811660248301528581166044830152606482018590529151600093849316916315dacbea91608480830192602092919082900301818787803b15801561236e57600080fd5b505af1158015612382573d6000803e3d6000fd5b505050506040513d602081101561239857600080fd5b50516040805185815290519192506001600160a01b038087169290881691600080516020614f41833981519152919081900360200190a3949350505050565b600c546001600160a01b031633141561230657600c8054821515600160a01b0260ff60a01b1990911617905550565b60048054604080516325d998bb60e01b81526001600160a01b03858116948201949094529051600093909216916325d998bb91602480820192602092909190829003018186803b15801561245957600080fd5b505afa15801561246d573d6000803e3d6000fd5b505050506040513d602081101561248357600080fd5b505192915050565b60048054604080516314a00c3d60e11b81526001600160a01b0385811694820194909452905160009390921691632940187a91602480820192602092909190829003018186803b15801561245957600080fd5b6004805460408051631c46b08160e11b8152339381019390935260248301849052516000926001600160a01b039092169163388d610291604480830192602092919082900301818787803b15801561253557600080fd5b505af1158015612549573d6000803e3d6000fd5b505050506040513d602081101561255f57600080fd5b50506040805183815290516000913391600080516020614f418339815191529181900360200190a3506001919050565b6004546001600160a01b031681565b60025460ff1681565b600480546040805163482ad11f60e11b81526001600160a01b038581169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b1580156125f857600080fd5b505afa15801561260c573d6000803e3d6000fd5b505050506040513d602081101561262257600080fd5b5051156126375761263281612f79565b612306565b60048054604080516314a00c3d60e11b81526001600160a01b038581169482019490945290519290911691632940187a91602480820192602092909190829003018186803b15801561268857600080fd5b505afa15801561269c573d6000803e3d6000fd5b505050506040513d60208110156126b257600080fd5b5051156126c257612632816135ab565b60048054604080516001620769d360e31b031981526001600160a01b03858116948201949094529051929091169163ffc4b16891602480820192602092909190829003018186803b15801561271657600080fd5b505afa15801561272a573d6000803e3d6000fd5b505050506040513d602081101561274057600080fd5b5051156127505761263281613318565b6040805162461bcd60e51b815260206004820152601460248201527341646472657373206e6f7420666f722073616c6560601b604482015290519081900360640190fd5b6002546040805163f5d1858560e01b81523360048201526024810184905290516101009092046001600160a01b03169163f5d185859160448082019260009290919082900301818387803b1580156118ee57600080fd5b600480546040805163036d699160e41b81526001600160a01b03858116948201949094529051600093909216916336d6991091602480820192602092909190829003018186803b15801561245957600080fd5b6006546040805163f8e4df0f60e01b81523360048201526001600160a01b038581166024830152604482018590529151919092169163f8e4df0f91606480830192600092919082900301818387803b15801561289957600080fd5b505af11580156128ad573d6000803e3d6000fd5b505050505050565b6005546001600160a01b031681565b600254604080516304e49a5f60e51b81523360048201526024810184905290516101009092046001600160a01b031691639c934be09160448082019260009290919082900301818387803b1580156118ee57600080fd5b60048054604080516376067e6760e01b81523393810193909352346024840152516001600160a01b03909116916376067e6791604480830192600092919082900301818387803b15801561296e57600080fd5b505af1158015612982573d6000803e3d6000fd5b50505050565b60025460408051632f89629160e21b81523360048201526024810184905290516101009092046001600160a01b03169163be258a449160448082019260009290919082900301818387803b1580156118ee57600080fd5b6002546040805163c226832b60e01b81523360048201526024810184905290516101009092046001600160a01b03169163c226832b9160448082019260009290919082900301818387803b1580156118ee57600080fd5b806104d214612a4457600080fd5b600b546001600160a01b031633141561053e57600380546001600160a01b0319166001600160a01b038481169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b158015612ab457600080fd5b505af1158015612ac8573d6000803e3d6000fd5b50505050611aef565b600254604080516312b0e54d60e31b81523360048201526024810184905290516101009092046001600160a01b0316916395872a689160448082019260009290919082900301818387803b1580156118ee57600080fd5b600a5460408051633b8d674f60e01b815233600482015290516000926001600160a01b031691633b8d674f91602480830192602092919082900301818787803b158015612b7457600080fd5b505af1158015611da1573d6000803e3d6000fd5b60055460408051631e4eb16d60e31b81523360048201526001600160a01b038581166024830152604482018590529151919092169163f2758b6891606480830192600092919082900301818387803b158015612be357600080fd5b505af1158015612bf7573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350309250600080516020614f418339815191529181900360200190a35050565b60055460408051631d90fdf560e31b81523360048201526024810184905290516001600160a01b039092169163ec87efa89160448082019260009290919082900301818387803b1580156118ee57600080fd5b60048054604080516306baf26360e01b81523393810193909352516001600160a01b03909116916306baf26391602480830192600092919082900301818387803b15801561296e57600080fd5b60048054604080516352ba171d60e01b81523393810193909352516001600160a01b03909116916352ba171d91602480830192600092919082900301818387803b15801561296e57600080fd5b60025460408051633b317dab60e01b81526001600160a01b0384811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b158015612d6f57600080fd5b505afa158015612d83573d6000803e3d6000fd5b505050506040513d6020811015612d9957600080fd5b505160075460408051632bfac20f60e01b81523360048201526001600160a01b038681166024830152346044830152825194955060009485949190911692632bfac20f926064808201939182900301818787803b158015612df957600080fd5b505af1158015612e0d573d6000803e3d6000fd5b505050506040513d6040811015612e2357600080fd5b5080516020909101519092509050612e3a826124de565b506040516001600160a01b0385169082156108fc029083906000818181858888f19350505050612e9b5760405162461bcd60e51b8152600401808060200182810382526023815260200180614eeb6023913960400191505060405180910390fd5b60408051848152905133916001600160a01b03871691600080516020614ecb8339815191529181900360200190a350505050565b60025460408051637626dfcf60e01b81523360048201526024810184905290516101009092046001600160a01b031691637626dfcf9160448082019260009290919082900301818387803b1580156118ee57600080fd5b600480546040805163ecc517f160e01b81523393810193909352346024840152516001600160a01b039091169163ecc517f191604480830192600092919082900301818387803b15801561296e57600080fd5b6008546040805163eb19110d60e01b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163eb19110d9160648082019260209290919082900301818787803b158015612fd757600080fd5b505af1158015612feb573d6000803e3d6000fd5b505050506040513d602081101561300157600080fd5b50516040519091506001600160a01b0383169082156108fc029083906000818181858888f193505050506130665760405162461bcd60e51b8152600401808060200182810382526023815260200180614eeb6023913960400191505060405180910390fd5b336001600160a01b038316600080516020614f4183398151915261308983613505565b60408051918252519081900360200190a35050565b6005546040805163062199f760e31b815233600482015290516001600160a01b039092169163310ccfb89160248082019260009290919082900301818387803b15801561296e57600080fd5b80516002546040805163d050a90560e01b81529051839261010090046001600160a01b03169163d050a905916004808301926020929190829003018186803b15801561313557600080fd5b505afa158015613149573d6000803e3d6000fd5b505050506040513d602081101561315f57600080fd5b505102341461319f5760405162461bcd60e51b8152600401808060200182810382526033815260200180614f0e6033913960400191505060405180910390fd5b60005b81811015611d435760045483516001600160a01b039091169063ecc517f1908590849081106131cd57fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b15801561322357600080fd5b505afa158015613237573d6000803e3d6000fd5b505050506040513d602081101561324d57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b15801561329d57600080fd5b505af11580156132b1573d6000803e3d6000fd5b5050600190920191506131a29050565b6002546040805163225e453360e21b81523360048201526024810184905290516101009092046001600160a01b03169163897914cc9160448082019260009290919082900301818387803b1580156118ee57600080fd5b6008546040805163e7cba43360e01b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163e7cba4339160648082019260209290919082900301818787803b158015612fd757600080fd5b600b546001600160a01b031633141561053e57600580546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b1580156118ee57600080fd5b6001600160a01b038216301415613440576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60065460408051631c1b2e5560e21b81523360048201526001600160a01b0385811660248301526044820185905291516134d293929092169163706cb954916064808201926020929091908290030181600087803b1580156134a157600080fd5b505af11580156134b5573d6000803e3d6000fd5b505050506040513d60208110156134cb57600080fd5b50516124de565b506040805182815290516001600160a01b038416913391600080516020614ecb8339815191529181900360200190a35050565b60048054604080516370a0823160e01b81526001600160a01b03858116948201949094529051600093909216916370a0823191602480820192602092909190829003018186803b15801561245957600080fd5b600480546040805163016e045960e41b81523393810193909352346024840152516001600160a01b03909116916316e0459091604480830192600092919082900301818387803b15801561296e57600080fd5b600854604080516345b4f43b60e01b81523360048201526001600160a01b038481166024830152346044830152915160009392909216916345b4f43b9160648082019260209290919082900301818787803b158015612fd757600080fd5b806104d21461361757600080fd5b600b546001600160a01b031633141561053e5781600260016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600260019054906101000a90046001600160a01b03166001600160a01b03166313b9f0c76040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612ab457600080fd5b6006546001600160a01b031681565b600480546040805163ed401ac360e01b8152339381019390935260248301849052516001600160a01b039091169163ed401ac391604480830192600092919082900301818387803b1580156118ee57600080fd5b60055460408051636311a8d360e11b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163c62351a69160648082019260209290919082900301818787803b15801561376257600080fd5b505af1158015613776573d6000803e3d6000fd5b505050506040513d602081101561378c57600080fd5b50516040519091506001600160a01b0383169082156108fc029083906000818181858888f193505050506137f15760405162461bcd60e51b8152600401808060200182810382526023815260200180614eeb6023913960400191505060405180910390fd5b336001600160a01b038316600080516020614f4183398151915261308985613505565b6008546001600160a01b031681565b600c546001600160a01b031681565b600a546001600160a01b031681565b60025460408051633b317dab60e01b81526001600160a01b0385811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b15801561389657600080fd5b505afa1580156138aa573d6000803e3d6000fd5b505050506040513d60208110156138c057600080fd5b5051905060005b825181101561392f5760006001600160a01b03168382815181106138e757fe5b60200260200101516001600160a01b0316600080516020614f41833981519152613916868581518110611ac957fe5b60408051918252519081900360200190a36001016138c7565b6007546040516367711a5960e01b815233600482018181526001600160a01b038881166024850152346064850181905260806044860190815289516084870152895160009793909316956367711a5995948c948c9493919260a40190602080870191028083838e5b838110156139af578181015183820152602001613997565b5050505090500195505050505050602060405180830381600087803b1580156139d757600080fd5b505af11580156139eb573d6000803e3d6000fd5b505050506040513d6020811015613a0157600080fd5b50516040519091506001600160a01b0386169082156108fc029083906000818181858888f19350505050613a3457600080fd5b60408051848152905133916001600160a01b03881691600080516020614ecb8339815191529181900360200190a35050505050565b600480546040805163482ad11f60e11b81526001600160a01b0385811694820194909452905160009390921691639055a23e91602480820192602092909190829003018186803b15801561245957600080fd5b600c546001600160a01b031661053e57600c80546001600160a01b031916331790555b565b600b546001600160a01b031633141561053e57600480546001600160a01b0319166001600160a01b0383811691909117808355604080516313b9f0c760e01b8152905191909216926313b9f0c79280820192600092909182900301818387803b1580156118ee57600080fd5b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561188f5780601f106118645761010080835404028352916020019161188f565b600b546001600160a01b031633141561053e57600980546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b1580156118ee57600080fd5b6009546040805163b378e89b60e01b8152336004820152346024820152815160009384936001600160a01b039091169263b378e89b926044808301939282900301818787803b158015613c6957600080fd5b505af1158015613c7d573d6000803e3d6000fd5b505050506040513d6040811015613c9357600080fd5b5080516020909101519092509050613caa826124de565b50604080516001600160a01b0383168152905133917fc372ae39394d4f0b2ac49b0e0c2200b3e9a7e66b3c52d01aef930695f1296804919081900360200190a25050565b6009546040805163291c964760e21b8152336004820152346024820152815160009384936001600160a01b039091169263a472591c926044808301939282900301818787803b158015613d4057600080fd5b505af1158015613d54573d6000803e3d6000fd5b505050506040513d6040811015613d6a57600080fd5b5080516020909101519092509050613d81826124de565b50604080516001600160a01b0383168152905133917f1f4d287b617c59dd118975b7dd7525ab82bb32e7a6db7023cf41bf6af3c21494919081900360200190a25050565b60025460408051634ea8c93760e11b81523360048201526024810184905290516101009092046001600160a01b031691639d51926e9160448082019260009290919082900301818387803b1580156118ee57600080fd5b6001600160a01b038216301415613e76576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b600a54604080516317d5759960e31b81523360048201526001600160a01b038581166024830152604482018590529151919092169163beabacc891606480830192600092919082900301818387803b158015613ed157600080fd5b505af1158015613ee5573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350339250600080516020614f418339815191529181900360200190a35050565b600480546040805163ca02eb9d60e01b81523393810193909352516001600160a01b039091169163ca02eb9d91602480830192600092919082900301818387803b15801561296e57600080fd5b60025460408051633b317dab60e01b81526001600160a01b0384811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b15801561245957600080fd5b600254604080516344c077ab60e11b81523360048201526024810184905290516101009092046001600160a01b031691638980ef569160448082019260009290919082900301818387803b1580156118ee57600080fd5b6006546040805163ac39285b60e01b815233600482015290516001600160a01b039092169163ac39285b9160248082019260009290919082900301818387803b15801561296e57600080fd5b600480546040805163034043e160e51b81523393810193909352516001600160a01b03909116916368087c2091602480830192600092919082900301818387803b15801561296e57600080fd5b600b546001600160a01b031633141561053e57600880546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b1580156118ee57600080fd5b6007546001600160a01b031681565b600b546001600160a01b031633141561053e57600680546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b1580156118ee57600080fd5b600c54600160a01b900460ff1681565b6001600160a01b038316301415614206576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60005b81518110156142715760006001600160a01b031682828151811061422957fe5b60200260200101516001600160a01b0316600080516020614f41833981519152614258858581518110611ac957fe5b60408051918252519081900360200190a3600101614209565b600654604051632464a27d60e01b815233600482018181526001600160a01b038881166024850152604484018890526080606485019081528751608486015287519190951694632464a27d948a938a938a93919260a401906020808601910280838360005b838110156142ee5781810151838201526020016142d6565b5050505090500195505050505050600060405180830381600087803b15801561431657600080fd5b505af115801561432a573d6000803e3d6000fd5b50506040805186815290516001600160a01b0388169350339250600080516020614ecb8339815191529181900360200190a350505050565b80516002546040805163d050a90560e01b81529051839261010090046001600160a01b03169163d050a905916004808301926020929190829003018186803b1580156143ad57600080fd5b505afa1580156143c1573d6000803e3d6000fd5b505050506040513d60208110156143d757600080fd5b505160025460408051633238268960e01b815290516101009092046001600160a01b031691633238268991600480820192602092909190829003018186803b15801561442257600080fd5b505afa158015614436573d6000803e3d6000fd5b505050506040513d602081101561444c57600080fd5b50510102341461448d5760405162461bcd60e51b8152600401808060200182810382526040815260200180614e8b6040913960400191505060405180910390fd5b60005b81811015611d435760045483516001600160a01b03909116906316e04590908590849081106144bb57fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b15801561451157600080fd5b505afa158015614525573d6000803e3d6000fd5b505050506040513d602081101561453b57600080fd5b505160025460408051633238268960e01b815290516101009092046001600160a01b031691633238268991600480820192602092909190829003018186803b15801561458657600080fd5b505afa15801561459a573d6000803e3d6000fd5b505050506040513d60208110156145b057600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0390941660048501529101602483015251604480830192600092919082900301818387803b1580156145ff57600080fd5b505af1158015614613573d6000803e3d6000fd5b5050600190920191506144909050565b60048054604080516371681de560e11b81523393810193909352516001600160a01b039091169163e2d03bca91602480830192600092919082900301818387803b15801561296e57600080fd5b6001600160a01b0381163014156146ca576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60048054604080516334d5831d60e21b815233938101939093526001600160a01b038481166024850152905191169163d3560c7491604480830192600092919082900301818387803b15801561471f57600080fd5b505af1158015614733573d6000803e3d6000fd5b50505050806001600160a01b0316336001600160a01b0316600080516020614f4183398151915261476384613505565b60408051918252519081900360200190a350565b600254604080516349ca9db360e01b8152905160009261010090046001600160a01b0316916349ca9db3916004808301926020929190829003018186803b1580156147c157600080fd5b505afa1580156147d5573d6000803e3d6000fd5b505050506040513d60208110156147eb57600080fd5b5051801561487a5750600260019054906101000a90046001600160a01b03166001600160a01b031663fb6560676040518163ffffffff1660e01b815260040160206040518083038186803b15801561484257600080fd5b505afa158015614856573d6000803e3d6000fd5b505050506040513d602081101561486c57600080fd5b50516001600160a01b031633145b1561053e575b81518110156149525781818151811061489557fe5b60200260200101516001600160a01b0316306001600160a01b0316600080516020614f41833981519152600260019054906101000a90046001600160a01b03166001600160a01b0316633a4418f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561490d57600080fd5b505afa158015614921573d6000803e3d6000fd5b505050506040513d602081101561493757600080fd5b505160408051918252519081900360200190a3600101614880565b611aef565b60025460408051631d25fd5560e01b81523360048201526024810184905290516101009092046001600160a01b031691631d25fd559160448082019260009290919082900301818387803b1580156118ee57600080fd5b6009546001600160a01b031681565b60065460408051637cb6d17b60e11b81523360048201526024810184905290516001600160a01b039092169163f96da2f69160448082019260009290919082900301818387803b1580156118ee57600080fd5b600254604080516333dfca3560e21b81523360048201526024810184905290516101009092046001600160a01b03169163cf7f28d49160448082019260009290919082900301818387803b1580156118ee57600080fd5b6002546040805163124e91b960e01b81523360048201526024810184905290516101009092046001600160a01b03169163124e91b99160448082019260009290919082900301818387803b1580156118ee57600080fd5b60025460408051635c65816560e01b81526001600160a01b03858116600483015284811660248301529151600093610100900490921691635c65816591604480820192602092909190829003018186803b158015614b1b57600080fd5b505afa158015614b2f573d6000803e3d6000fd5b505050506040513d6020811015614b4557600080fd5b50519392505050565b60025460408051633bb868dd60e21b81523360048201526024810184905290516101009092046001600160a01b03169163eee1a3749160448082019260009290919082900301818387803b1580156118ee57600080fd5b600c546001600160a01b031633141561053e57600d80546001600160a01b0319166001600160a01b038316179055612306565b6000600260019054906101000a90046001600160a01b03166001600160a01b031663e5f65c716040518163ffffffff1660e01b815260040160206040518083038186803b158015614c2857600080fd5b505afa158015614c3c573d6000803e3d6000fd5b505050506040513d6020811015614c5257600080fd5b50514303905090565b600b546001600160a01b031661053e57600b80546001600160a01b03191633179055613adf565b600c54600160a01b900460ff1615613adf57600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050613adf57600080fd5b60025461010090046001600160a01b031681565b805160005b81811015611d435760045483516001600160a01b03909116906352ba171d90859084908110614d0957fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015614d5957600080fd5b505af1158015614d6d573d6000803e3d6000fd5b505060019092019150614cde9050565b600480546040805163eb0fbbad60e01b81526001600160a01b038581169482019490945290516000939092169163eb0fbbad91602480820192602092909190829003018186803b15801561245957600080fd5b600480546040805163d42e1c2f60e01b815233938101939093526001600160a01b038481166024850152905191169163d42e1c2f91604480830192600092919082900301818387803b1580156118ee57600080fd5b600b546001600160a01b031681565b60048054604080516001620769d360e31b031981526001600160a01b038581169482019490945290516000939092169163ffc4b16891602480820192602092909190829003018186803b15801561245957600080fdfe2877656956616c756520213d2028286d73672e76616c7565202b2070632e657468466565546f55706772616465546f4c6576656c332829292a636f756e742929cc6ddb19d323297cc6ed8f3dbda06395f6f153d24bf678f36305752ab635e10928215f616464726573732e73656e642866656573546f506179546f53656c6c65722929286d73672e76616c756520213d202870632e657468466565546f55706772616465546f4c6576656c3328292a636f756e742929ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef286d73672e76616c756520213d2070632e657468466565546f55706772616465546f4c6576656c3228292a636f756e7429a26469706673582212200c8dbd2e168f3b2fb511e18f530e87a2e666d5b8db4d7338aba819f6d011a0f564736f6c6343000601003300000000000000000000000090e340e2d11e6eb1d99e34d122d6fe0fef3213fd000000000000000000000000805385fba3f03a24d793721f4583be53d3abf86b000000000000000000000000a6be27538a28114fe03eb7ade9adfe53164f2a4c000000000000000000000000905139d0b050157d5786ba55cbb7c0bb23de48a2000000000000000000000000eb70aef461ddf7f9eca676149a41b1b2a04ebf66000000000000000000000000f653085860916a477cc4fa84c99457a29395031e000000000000000000000000e9a4319702b271765fdd9a2134e511bdc4d2a2c8000000000000000000000000f1052e8e4a89dcc953e1d227ae72a68001076c73000000000000000000000000921cffd08dd9acf6d0994f52e3c2c49f9fc399bc

Deployed Bytecode

0x60806040526004361061053e5760003560e01c80637347060c116102bd578063bd65fc4c11610180578063dd2c455c116100e7578063e33eaaf7116100a0578063eb0fbbad1161007a578063eb0fbbad1461175b578063ef3dd5c81461178e578063fdbc6530146117c1578063ffc4b168146117d65761053e565b8063e33eaaf714611683578063e69919ae14611698578063e9095e5c146116ad5761053e565b8063dd2c455c14611597578063dd62ed3e146115c1578063ddcbfce0146115fc578063df02f1db14611626578063e12ed13c14611659578063e24126301461166e5761053e565b8063cf91e33111610139578063cf91e33114611423578063cff5c80714611456578063d4f7457914611504578063dae487ca1461152e578063db16cb5b14611543578063dc8689fc1461156d5761053e565b8063bd65fc4c1461124d578063bdbdcd7514611262578063c0ea2e7714611295578063c1696533146112aa578063c3536e8b1461136d578063c92f146a1461140e5761053e565b806395d89b4111610224578063ac0f738f116101dd578063ac0f738f1461117e578063af46aa0814611193578063b3e90476146111c6578063b4e85ec8146111f0578063b9c25cae14611205578063bad0f9341461121a5761053e565b806395d89b41146110c357806397b5e554146110d8578063a2ea2aaf1461110b578063a330915114611113578063a5094f8f1461111b578063a9059cbb146111455761053e565b80638a670113116102765780638a67011314610f6d5780638af8edfc14610f825780638ccb002314610f975780639055a23e1461104857806392cca5411461107b57806393c63b9d146110905761053e565b80637347060c14610e945780637366881714610eba57806373f0cc2d14610ef3578063742ec16414610f085780637d20a24f14610f325780638278188a14610f585761053e565b8063416e860411610405578063633865511161036c5780636dcb9800116103255780636dcb980014610d9d5780636e3ee8f114610dc75780637022c79e14610ded5780637050ec8914610e2057806370a0823114610e5957806370a8a2e614610e8c5761053e565b80636338655114610c6957806366a497b714610c8f5780636af4347014610cb95780636b3b280014610cc15780636be2ca4314610ce75780636c2f12e614610cfc5761053e565b806353396893116103be5780635339689314610b9d578063542aa99f14610bc757806357e08c6014610bdc5780635b48a88414610c155780635b65268f14610c3f57806361a3be8014610c545761053e565b8063416e860414610ac95780634290690914610ade5780634890bb5114610b085780634955d7f014610b1057806350ac2f6914610b3a578063522c628f14610b645761053e565b806321df8098116104a95780633118f543116104625780633118f543146109cd578063313ce567146109e25780633181a5a714610a0d57806333d5993414610a3357806336d6991014610a5d5780633c64cfc614610a905761053e565b806321df80981461089b57806323b872dd146108ce57806323e46e7c1461091157806325d998bb1461093d5780632940187a146109705780632cd3fd70146109a35761053e565b80630d061e75116104fb5780630d061e751461074c578063124d83d814610761578063177e48d01461078b57806318160ddd1461082c5780631b11ebb8146108415780631ec32a66146108715761053e565b806306fdde0314610543578063088c35fd146105cd578063095ea7b3146105f957806309ae18441461064657806309f6c607146106f45780630a63361c1461071b575b600080fd5b34801561054f57600080fd5b50610558611809565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561059257818101518382015260200161057a565b50505050905090810190601f1680156105bf5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156105d957600080fd5b506105f7600480360360208110156105f057600080fd5b5035611897565b005b34801561060557600080fd5b506106326004803603604081101561061c57600080fd5b506001600160a01b038135169060200135611909565b604080519115158252519081900360200190f35b34801561065257600080fd5b506105f76004803603602081101561066957600080fd5b810190602081018135600160201b81111561068357600080fd5b82018360208201111561069557600080fd5b803590602001918460208302840111600160201b831117156106b657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506119cc945050505050565b34801561070057600080fd5b50610709611af3565b60408051918252519081900360200190f35b34801561072757600080fd5b50610730611af7565b604080516001600160a01b039092168252519081900360200190f35b34801561075857600080fd5b50610730611b06565b34801561076d57600080fd5b506105f76004803603602081101561078457600080fd5b5035611b15565b6105f7600480360360208110156107a157600080fd5b810190602081018135600160201b8111156107bb57600080fd5b8201836020820111156107cd57600080fd5b803590602001918460208302840111600160201b831117156107ee57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611b6c945050505050565b34801561083857600080fd5b50610709611d48565b34801561084d57600080fd5b506105f76004803603604081101561086457600080fd5b5080359060200135611dbe565b34801561087d57600080fd5b506105f76004803603602081101561089457600080fd5b503561223f565b3480156108a757600080fd5b506105f7600480360360208110156108be57600080fd5b50356001600160a01b0316612296565b3480156108da57600080fd5b50610632600480360360608110156108f157600080fd5b506001600160a01b03813581169160208101359091169060400135612309565b34801561091d57600080fd5b506105f76004803603602081101561093457600080fd5b503515156123d7565b34801561094957600080fd5b506107096004803603602081101561096057600080fd5b50356001600160a01b0316612406565b34801561097c57600080fd5b506106326004803603602081101561099357600080fd5b50356001600160a01b031661248b565b3480156109af57600080fd5b50610632600480360360208110156109c657600080fd5b50356124de565b3480156109d957600080fd5b5061073061258f565b3480156109ee57600080fd5b506109f761259e565b6040805160ff9092168252519081900360200190f35b6105f760048036036020811015610a2357600080fd5b50356001600160a01b03166125a7565b348015610a3f57600080fd5b506105f760048036036020811015610a5657600080fd5b5035612794565b348015610a6957600080fd5b5061063260048036036020811015610a8057600080fd5b50356001600160a01b03166127eb565b348015610a9c57600080fd5b506105f760048036036040811015610ab357600080fd5b506001600160a01b03813516906020013561283e565b348015610ad557600080fd5b506107306128b5565b348015610aea57600080fd5b506105f760048036036020811015610b0157600080fd5b50356128c4565b6105f761291b565b348015610b1c57600080fd5b506105f760048036036020811015610b3357600080fd5b5035612988565b348015610b4657600080fd5b506105f760048036036020811015610b5d57600080fd5b50356129df565b348015610b7057600080fd5b506105f760048036036040811015610b8757600080fd5b506001600160a01b038135169060200135612a36565b348015610ba957600080fd5b506105f760048036036020811015610bc057600080fd5b5035612ad1565b348015610bd357600080fd5b50610632612b28565b348015610be857600080fd5b506105f760048036036040811015610bff57600080fd5b506001600160a01b038135169060200135612b88565b348015610c2157600080fd5b506105f760048036036020811015610c3857600080fd5b5035612c2d565b348015610c4b57600080fd5b506105f7612c80565b348015610c6057600080fd5b506105f7612ccd565b6105f760048036036020811015610c7f57600080fd5b50356001600160a01b0316612d1a565b348015610c9b57600080fd5b506105f760048036036020811015610cb257600080fd5b5035612ecf565b6105f7612f26565b6105f760048036036020811015610cd757600080fd5b50356001600160a01b0316612f79565b348015610cf357600080fd5b506105f761309e565b6105f760048036036020811015610d1257600080fd5b810190602081018135600160201b811115610d2c57600080fd5b820183602082011115610d3e57600080fd5b803590602001918460208302840111600160201b83111715610d5f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506130ea945050505050565b348015610da957600080fd5b506105f760048036036020811015610dc057600080fd5b50356132c1565b6105f760048036036020811015610ddd57600080fd5b50356001600160a01b0316613318565b348015610df957600080fd5b506105f760048036036020811015610e1057600080fd5b50356001600160a01b0316613376565b348015610e2c57600080fd5b506105f760048036036040811015610e4357600080fd5b506001600160a01b0381351690602001356133e6565b348015610e6557600080fd5b5061070960048036036020811015610e7c57600080fd5b50356001600160a01b0316613505565b6105f7613558565b6105f760048036036020811015610eaa57600080fd5b50356001600160a01b03166135ab565b348015610ec657600080fd5b506105f760048036036040811015610edd57600080fd5b506001600160a01b038135169060200135613609565b348015610eff57600080fd5b506107306136a1565b348015610f1457600080fd5b506105f760048036036020811015610f2b57600080fd5b50356136b0565b6105f760048036036020811015610f4857600080fd5b50356001600160a01b0316613704565b348015610f6457600080fd5b50610730613814565b348015610f7957600080fd5b50610730613823565b348015610f8e57600080fd5b50610730613832565b6105f760048036036040811015610fad57600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610fd757600080fd5b820183602082011115610fe957600080fd5b803590602001918460208302840111600160201b8311171561100a57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550613841945050505050565b34801561105457600080fd5b506106326004803603602081101561106b57600080fd5b50356001600160a01b0316613a69565b34801561108757600080fd5b506105f7613abc565b34801561109c57600080fd5b506105f7600480360360208110156110b357600080fd5b50356001600160a01b0316613ae1565b3480156110cf57600080fd5b50610558613b4d565b3480156110e457600080fd5b506105f7600480360360208110156110fb57600080fd5b50356001600160a01b0316613ba7565b6105f7613c17565b6105f7613cee565b34801561112757600080fd5b506105f76004803603602081101561113e57600080fd5b5035613dc5565b34801561115157600080fd5b506105f76004803603604081101561116857600080fd5b506001600160a01b038135169060200135613e1c565b34801561118a57600080fd5b506105f7613f1b565b34801561119f57600080fd5b50610709600480360360208110156111b657600080fd5b50356001600160a01b0316613f68565b3480156111d257600080fd5b506105f7600480360360208110156111e957600080fd5b5035613fbd565b3480156111fc57600080fd5b506105f7614014565b34801561121157600080fd5b506105f7614060565b34801561122657600080fd5b506105f76004803603602081101561123d57600080fd5b50356001600160a01b03166140ad565b34801561125957600080fd5b5061073061411d565b34801561126e57600080fd5b506105f76004803603602081101561128557600080fd5b50356001600160a01b031661412c565b3480156112a157600080fd5b5061063261419c565b3480156112b657600080fd5b506105f7600480360360608110156112cd57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156112fc57600080fd5b82018360208201111561130e57600080fd5b803590602001918460208302840111600160201b8311171561132f57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506141ac945050505050565b6105f76004803603602081101561138357600080fd5b810190602081018135600160201b81111561139d57600080fd5b8201836020820111156113af57600080fd5b803590602001918460208302840111600160201b831117156113d057600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614362945050505050565b34801561141a57600080fd5b506105f7614623565b34801561142f57600080fd5b506105f76004803603602081101561144657600080fd5b50356001600160a01b0316614670565b34801561146257600080fd5b506105f76004803603602081101561147957600080fd5b810190602081018135600160201b81111561149357600080fd5b8201836020820111156114a557600080fd5b803590602001918460208302840111600160201b831117156114c657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614777945050505050565b34801561151057600080fd5b506105f76004803603602081101561152757600080fd5b5035614957565b34801561153a57600080fd5b506107306149ae565b34801561154f57600080fd5b506105f76004803603602081101561156657600080fd5b50356149bd565b34801561157957600080fd5b506105f76004803603602081101561159057600080fd5b5035614a10565b3480156115a357600080fd5b506105f7600480360360208110156115ba57600080fd5b5035614a67565b3480156115cd57600080fd5b50610709600480360360408110156115e457600080fd5b506001600160a01b0381358116916020013516614abe565b34801561160857600080fd5b506105f76004803603602081101561161f57600080fd5b5035614b4e565b34801561163257600080fd5b506105f76004803603602081101561164957600080fd5b50356001600160a01b0316614ba5565b34801561166557600080fd5b50610709614bd8565b34801561167a57600080fd5b506105f7614c5b565b34801561168f57600080fd5b506105f7614c82565b3480156116a457600080fd5b50610730614cc5565b3480156116b957600080fd5b506105f7600480360360208110156116d057600080fd5b810190602081018135600160201b8111156116ea57600080fd5b8201836020820111156116fc57600080fd5b803590602001918460208302840111600160201b8311171561171d57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550614cd9945050505050565b34801561176757600080fd5b506106326004803603602081101561177e57600080fd5b50356001600160a01b0316614d7d565b34801561179a57600080fd5b506105f7600480360360208110156117b157600080fd5b50356001600160a01b0316614dd0565b3480156117cd57600080fd5b50610730614e25565b3480156117e257600080fd5b50610632600480360360208110156117f957600080fd5b50356001600160a01b0316614e34565b6000805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561188f5780601f106118645761010080835404028352916020019161188f565b820191906000526020600020905b81548152906001019060200180831161187257829003601f168201915b505050505081565b600254604080516305de45bd60e11b81523360048201526024810184905290516101009092046001600160a01b031691630bbc8b7a9160448082019260009290919082900301818387803b1580156118ee57600080fd5b505af1158015611902573d6000803e3d6000fd5b5050505050565b6002546040805163779a859960e11b81523360048201526001600160a01b03858116602483015260448201859052915160009361010090049092169163ef350b3291606480820192869290919082900301818387803b15801561196b57600080fd5b505af115801561197f573d6000803e3d6000fd5b50506040805185815290516001600160a01b03871693503392507f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360200190a350600192915050565b6004805460408051633ca4fe7b60e11b815233938101848152602482019283528551604483015285516001600160a01b0390941694637949fcf6949093879390916064909101906020808601910280838360005b83811015611a38578181015183820152602001611a20565b505050509050019350505050600060405180830381600087803b158015611a5e57600080fd5b505af1158015611a72573d6000803e3d6000fd5b506000925050505b8151811015611aef5760006001600160a01b0316828281518110611a9a57fe5b60200260200101516001600160a01b0316600080516020614f41833981519152611ad6858581518110611ac957fe5b6020026020010151613505565b60408051918252519081900360200190a3600101611a7a565b5050565b4390565b6003546001600160a01b031681565b600d546001600160a01b031681565b60025460408051633429fca760e21b81523360048201526024810184905290516101009092046001600160a01b03169163d0a7f29c9160448082019260009290919082900301818387803b1580156118ee57600080fd5b805160025460408051633238268960e01b81529051839261010090046001600160a01b0316916332382689916004808301926020929190829003018186803b158015611bb757600080fd5b505afa158015611bcb573d6000803e3d6000fd5b505050506040513d6020811015611be157600080fd5b5051023414611c215760405162461bcd60e51b8152600401808060200182810382526031815260200180614f616031913960400191505060405180910390fd5b60005b81811015611d435760045483516001600160a01b03909116906376067e6790859084908110611c4f57fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663323826896040518163ffffffff1660e01b815260040160206040518083038186803b158015611ca557600080fd5b505afa158015611cb9573d6000803e3d6000fd5b505050506040513d6020811015611ccf57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b158015611d1f57600080fd5b505af1158015611d33573d6000803e3d6000fd5b505060019092019150611c249050565b505050565b600a54604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd916004808301926020929190829003018186803b158015611d8d57600080fd5b505afa158015611da1573d6000803e3d6000fd5b505050506040513d6020811015611db757600080fd5b5051905090565b333214611dca57600080fd5b600c54600160a01b900460ff1615611e1b576040805162461bcd60e51b815260206004820152600f60248201526e14185e5bdd5d1cc8109b1bd8dad959608a1b604482015290519081900360640190fd5b4780611e6e576040805162461bcd60e51b815260206004820152601860248201527f282128636f6e747261637442616c616e6365203e203029290000000000000000604482015290519081900360640190fd5b600080600085118015611e815750600084115b15611e90575083905082611f11565b60009150600360009054906101000a90046001600160a01b03166001600160a01b031663643a94316040518163ffffffff1660e01b815260040160206040518083038186803b158015611ee257600080fd5b505afa158015611ef6573d6000803e3d6000fd5b505050506040513d6020811015611f0c57600080fd5b505190505b80821015611902576003546040805163124183a760e31b81526004810185905290516000926001600160a01b03169163920c1d38916024808301926020929190829003018186803b158015611f6557600080fd5b505afa158015611f79573d6000803e3d6000fd5b505050506040513d6020811015611f8f57600080fd5b505160025460408051633b317dab60e01b81526001600160a01b038085166004830152915193945060009361010090930490911691633b317dab91602480820192602092909190829003018186803b158015611fea57600080fd5b505afa158015611ffe573d6000803e3d6000fd5b505050506040513d602081101561201457600080fd5b50516002546040805163433ad96960e11b815290519293506000926101009092046001600160a01b031691638675b2d291600480820192602092909190829003018186803b15801561206557600080fd5b505afa158015612079573d6000803e3d6000fd5b505050506040513d602081101561208f57600080fd5b50518683028161209b57fe5b0490508015612231576040516001600160a01b0384169082156108fc029083906000818181858888f1935050505061211557604080518381526020810183905281516001600160a01b038616927f50a6033bb1b577c577f67a1425e1ac9939c9382b114ae85b5274fd3e76a7f7df928290030190a2612231565b6002546040805163028f4a6960e41b815290516101009092046001600160a01b031691631eeb57ec91849184916328f4a690916004808301926020929190829003018186803b15801561216757600080fd5b505afa15801561217b573d6000803e3d6000fd5b505050506040513d602081101561219157600080fd5b5051604080516001600160e01b031960e086901b16815292909101600483015251602480830192600092919082900301818387803b1580156121d257600080fd5b505af11580156121e6573d6000803e3d6000fd5b5050604080518581526020810185905281516001600160a01b03881694507fbb64bebe64aabe20340f0a5d4d9163161935b2458c78e957c2db1d8c639434ad93509081900390910190a25b505060019092019150611f11565b600254604080516372a4edd560e01b81523360048201526024810184905290516101009092046001600160a01b0316916372a4edd59160448082019260009290919082900301818387803b1580156118ee57600080fd5b600b546001600160a01b031633141561053e57600780546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b1580156118ee57600080fd5b50565b600a5460408051630aed65f560e11b81523360048201526001600160a01b0386811660248301528581166044830152606482018590529151600093849316916315dacbea91608480830192602092919082900301818787803b15801561236e57600080fd5b505af1158015612382573d6000803e3d6000fd5b505050506040513d602081101561239857600080fd5b50516040805185815290519192506001600160a01b038087169290881691600080516020614f41833981519152919081900360200190a3949350505050565b600c546001600160a01b031633141561230657600c8054821515600160a01b0260ff60a01b1990911617905550565b60048054604080516325d998bb60e01b81526001600160a01b03858116948201949094529051600093909216916325d998bb91602480820192602092909190829003018186803b15801561245957600080fd5b505afa15801561246d573d6000803e3d6000fd5b505050506040513d602081101561248357600080fd5b505192915050565b60048054604080516314a00c3d60e11b81526001600160a01b0385811694820194909452905160009390921691632940187a91602480820192602092909190829003018186803b15801561245957600080fd5b6004805460408051631c46b08160e11b8152339381019390935260248301849052516000926001600160a01b039092169163388d610291604480830192602092919082900301818787803b15801561253557600080fd5b505af1158015612549573d6000803e3d6000fd5b505050506040513d602081101561255f57600080fd5b50506040805183815290516000913391600080516020614f418339815191529181900360200190a3506001919050565b6004546001600160a01b031681565b60025460ff1681565b600480546040805163482ad11f60e11b81526001600160a01b038581169482019490945290519290911691639055a23e91602480820192602092909190829003018186803b1580156125f857600080fd5b505afa15801561260c573d6000803e3d6000fd5b505050506040513d602081101561262257600080fd5b5051156126375761263281612f79565b612306565b60048054604080516314a00c3d60e11b81526001600160a01b038581169482019490945290519290911691632940187a91602480820192602092909190829003018186803b15801561268857600080fd5b505afa15801561269c573d6000803e3d6000fd5b505050506040513d60208110156126b257600080fd5b5051156126c257612632816135ab565b60048054604080516001620769d360e31b031981526001600160a01b03858116948201949094529051929091169163ffc4b16891602480820192602092909190829003018186803b15801561271657600080fd5b505afa15801561272a573d6000803e3d6000fd5b505050506040513d602081101561274057600080fd5b5051156127505761263281613318565b6040805162461bcd60e51b815260206004820152601460248201527341646472657373206e6f7420666f722073616c6560601b604482015290519081900360640190fd5b6002546040805163f5d1858560e01b81523360048201526024810184905290516101009092046001600160a01b03169163f5d185859160448082019260009290919082900301818387803b1580156118ee57600080fd5b600480546040805163036d699160e41b81526001600160a01b03858116948201949094529051600093909216916336d6991091602480820192602092909190829003018186803b15801561245957600080fd5b6006546040805163f8e4df0f60e01b81523360048201526001600160a01b038581166024830152604482018590529151919092169163f8e4df0f91606480830192600092919082900301818387803b15801561289957600080fd5b505af11580156128ad573d6000803e3d6000fd5b505050505050565b6005546001600160a01b031681565b600254604080516304e49a5f60e51b81523360048201526024810184905290516101009092046001600160a01b031691639c934be09160448082019260009290919082900301818387803b1580156118ee57600080fd5b60048054604080516376067e6760e01b81523393810193909352346024840152516001600160a01b03909116916376067e6791604480830192600092919082900301818387803b15801561296e57600080fd5b505af1158015612982573d6000803e3d6000fd5b50505050565b60025460408051632f89629160e21b81523360048201526024810184905290516101009092046001600160a01b03169163be258a449160448082019260009290919082900301818387803b1580156118ee57600080fd5b6002546040805163c226832b60e01b81523360048201526024810184905290516101009092046001600160a01b03169163c226832b9160448082019260009290919082900301818387803b1580156118ee57600080fd5b806104d214612a4457600080fd5b600b546001600160a01b031633141561053e57600380546001600160a01b0319166001600160a01b038481169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b158015612ab457600080fd5b505af1158015612ac8573d6000803e3d6000fd5b50505050611aef565b600254604080516312b0e54d60e31b81523360048201526024810184905290516101009092046001600160a01b0316916395872a689160448082019260009290919082900301818387803b1580156118ee57600080fd5b600a5460408051633b8d674f60e01b815233600482015290516000926001600160a01b031691633b8d674f91602480830192602092919082900301818787803b158015612b7457600080fd5b505af1158015611da1573d6000803e3d6000fd5b60055460408051631e4eb16d60e31b81523360048201526001600160a01b038581166024830152604482018590529151919092169163f2758b6891606480830192600092919082900301818387803b158015612be357600080fd5b505af1158015612bf7573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350309250600080516020614f418339815191529181900360200190a35050565b60055460408051631d90fdf560e31b81523360048201526024810184905290516001600160a01b039092169163ec87efa89160448082019260009290919082900301818387803b1580156118ee57600080fd5b60048054604080516306baf26360e01b81523393810193909352516001600160a01b03909116916306baf26391602480830192600092919082900301818387803b15801561296e57600080fd5b60048054604080516352ba171d60e01b81523393810193909352516001600160a01b03909116916352ba171d91602480830192600092919082900301818387803b15801561296e57600080fd5b60025460408051633b317dab60e01b81526001600160a01b0384811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b158015612d6f57600080fd5b505afa158015612d83573d6000803e3d6000fd5b505050506040513d6020811015612d9957600080fd5b505160075460408051632bfac20f60e01b81523360048201526001600160a01b038681166024830152346044830152825194955060009485949190911692632bfac20f926064808201939182900301818787803b158015612df957600080fd5b505af1158015612e0d573d6000803e3d6000fd5b505050506040513d6040811015612e2357600080fd5b5080516020909101519092509050612e3a826124de565b506040516001600160a01b0385169082156108fc029083906000818181858888f19350505050612e9b5760405162461bcd60e51b8152600401808060200182810382526023815260200180614eeb6023913960400191505060405180910390fd5b60408051848152905133916001600160a01b03871691600080516020614ecb8339815191529181900360200190a350505050565b60025460408051637626dfcf60e01b81523360048201526024810184905290516101009092046001600160a01b031691637626dfcf9160448082019260009290919082900301818387803b1580156118ee57600080fd5b600480546040805163ecc517f160e01b81523393810193909352346024840152516001600160a01b039091169163ecc517f191604480830192600092919082900301818387803b15801561296e57600080fd5b6008546040805163eb19110d60e01b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163eb19110d9160648082019260209290919082900301818787803b158015612fd757600080fd5b505af1158015612feb573d6000803e3d6000fd5b505050506040513d602081101561300157600080fd5b50516040519091506001600160a01b0383169082156108fc029083906000818181858888f193505050506130665760405162461bcd60e51b8152600401808060200182810382526023815260200180614eeb6023913960400191505060405180910390fd5b336001600160a01b038316600080516020614f4183398151915261308983613505565b60408051918252519081900360200190a35050565b6005546040805163062199f760e31b815233600482015290516001600160a01b039092169163310ccfb89160248082019260009290919082900301818387803b15801561296e57600080fd5b80516002546040805163d050a90560e01b81529051839261010090046001600160a01b03169163d050a905916004808301926020929190829003018186803b15801561313557600080fd5b505afa158015613149573d6000803e3d6000fd5b505050506040513d602081101561315f57600080fd5b505102341461319f5760405162461bcd60e51b8152600401808060200182810382526033815260200180614f0e6033913960400191505060405180910390fd5b60005b81811015611d435760045483516001600160a01b039091169063ecc517f1908590849081106131cd57fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b15801561322357600080fd5b505afa158015613237573d6000803e3d6000fd5b505050506040513d602081101561324d57600080fd5b5051604080516001600160e01b031960e086901b1681526001600160a01b039093166004840152602483019190915251604480830192600092919082900301818387803b15801561329d57600080fd5b505af11580156132b1573d6000803e3d6000fd5b5050600190920191506131a29050565b6002546040805163225e453360e21b81523360048201526024810184905290516101009092046001600160a01b03169163897914cc9160448082019260009290919082900301818387803b1580156118ee57600080fd5b6008546040805163e7cba43360e01b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163e7cba4339160648082019260209290919082900301818787803b158015612fd757600080fd5b600b546001600160a01b031633141561053e57600580546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b1580156118ee57600080fd5b6001600160a01b038216301415613440576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60065460408051631c1b2e5560e21b81523360048201526001600160a01b0385811660248301526044820185905291516134d293929092169163706cb954916064808201926020929091908290030181600087803b1580156134a157600080fd5b505af11580156134b5573d6000803e3d6000fd5b505050506040513d60208110156134cb57600080fd5b50516124de565b506040805182815290516001600160a01b038416913391600080516020614ecb8339815191529181900360200190a35050565b60048054604080516370a0823160e01b81526001600160a01b03858116948201949094529051600093909216916370a0823191602480820192602092909190829003018186803b15801561245957600080fd5b600480546040805163016e045960e41b81523393810193909352346024840152516001600160a01b03909116916316e0459091604480830192600092919082900301818387803b15801561296e57600080fd5b600854604080516345b4f43b60e01b81523360048201526001600160a01b038481166024830152346044830152915160009392909216916345b4f43b9160648082019260209290919082900301818787803b158015612fd757600080fd5b806104d21461361757600080fd5b600b546001600160a01b031633141561053e5781600260016101000a8154816001600160a01b0302191690836001600160a01b03160217905550600260019054906101000a90046001600160a01b03166001600160a01b03166313b9f0c76040518163ffffffff1660e01b8152600401600060405180830381600087803b158015612ab457600080fd5b6006546001600160a01b031681565b600480546040805163ed401ac360e01b8152339381019390935260248301849052516001600160a01b039091169163ed401ac391604480830192600092919082900301818387803b1580156118ee57600080fd5b60055460408051636311a8d360e11b81523360048201526001600160a01b0384811660248301523460448301529151600093929092169163c62351a69160648082019260209290919082900301818787803b15801561376257600080fd5b505af1158015613776573d6000803e3d6000fd5b505050506040513d602081101561378c57600080fd5b50516040519091506001600160a01b0383169082156108fc029083906000818181858888f193505050506137f15760405162461bcd60e51b8152600401808060200182810382526023815260200180614eeb6023913960400191505060405180910390fd5b336001600160a01b038316600080516020614f4183398151915261308985613505565b6008546001600160a01b031681565b600c546001600160a01b031681565b600a546001600160a01b031681565b60025460408051633b317dab60e01b81526001600160a01b0385811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b15801561389657600080fd5b505afa1580156138aa573d6000803e3d6000fd5b505050506040513d60208110156138c057600080fd5b5051905060005b825181101561392f5760006001600160a01b03168382815181106138e757fe5b60200260200101516001600160a01b0316600080516020614f41833981519152613916868581518110611ac957fe5b60408051918252519081900360200190a36001016138c7565b6007546040516367711a5960e01b815233600482018181526001600160a01b038881166024850152346064850181905260806044860190815289516084870152895160009793909316956367711a5995948c948c9493919260a40190602080870191028083838e5b838110156139af578181015183820152602001613997565b5050505090500195505050505050602060405180830381600087803b1580156139d757600080fd5b505af11580156139eb573d6000803e3d6000fd5b505050506040513d6020811015613a0157600080fd5b50516040519091506001600160a01b0386169082156108fc029083906000818181858888f19350505050613a3457600080fd5b60408051848152905133916001600160a01b03881691600080516020614ecb8339815191529181900360200190a35050505050565b600480546040805163482ad11f60e11b81526001600160a01b0385811694820194909452905160009390921691639055a23e91602480820192602092909190829003018186803b15801561245957600080fd5b600c546001600160a01b031661053e57600c80546001600160a01b031916331790555b565b600b546001600160a01b031633141561053e57600480546001600160a01b0319166001600160a01b0383811691909117808355604080516313b9f0c760e01b8152905191909216926313b9f0c79280820192600092909182900301818387803b1580156118ee57600080fd5b60018054604080516020600284861615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561188f5780601f106118645761010080835404028352916020019161188f565b600b546001600160a01b031633141561053e57600980546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b1580156118ee57600080fd5b6009546040805163b378e89b60e01b8152336004820152346024820152815160009384936001600160a01b039091169263b378e89b926044808301939282900301818787803b158015613c6957600080fd5b505af1158015613c7d573d6000803e3d6000fd5b505050506040513d6040811015613c9357600080fd5b5080516020909101519092509050613caa826124de565b50604080516001600160a01b0383168152905133917fc372ae39394d4f0b2ac49b0e0c2200b3e9a7e66b3c52d01aef930695f1296804919081900360200190a25050565b6009546040805163291c964760e21b8152336004820152346024820152815160009384936001600160a01b039091169263a472591c926044808301939282900301818787803b158015613d4057600080fd5b505af1158015613d54573d6000803e3d6000fd5b505050506040513d6040811015613d6a57600080fd5b5080516020909101519092509050613d81826124de565b50604080516001600160a01b0383168152905133917f1f4d287b617c59dd118975b7dd7525ab82bb32e7a6db7023cf41bf6af3c21494919081900360200190a25050565b60025460408051634ea8c93760e11b81523360048201526024810184905290516101009092046001600160a01b031691639d51926e9160448082019260009290919082900301818387803b1580156118ee57600080fd5b6001600160a01b038216301415613e76576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b600a54604080516317d5759960e31b81523360048201526001600160a01b038581166024830152604482018590529151919092169163beabacc891606480830192600092919082900301818387803b158015613ed157600080fd5b505af1158015613ee5573d6000803e3d6000fd5b50506040805184815290516001600160a01b0386169350339250600080516020614f418339815191529181900360200190a35050565b600480546040805163ca02eb9d60e01b81523393810193909352516001600160a01b039091169163ca02eb9d91602480830192600092919082900301818387803b15801561296e57600080fd5b60025460408051633b317dab60e01b81526001600160a01b0384811660048301529151600093610100900490921691633b317dab91602480820192602092909190829003018186803b15801561245957600080fd5b600254604080516344c077ab60e11b81523360048201526024810184905290516101009092046001600160a01b031691638980ef569160448082019260009290919082900301818387803b1580156118ee57600080fd5b6006546040805163ac39285b60e01b815233600482015290516001600160a01b039092169163ac39285b9160248082019260009290919082900301818387803b15801561296e57600080fd5b600480546040805163034043e160e51b81523393810193909352516001600160a01b03909116916368087c2091602480830192600092919082900301818387803b15801561296e57600080fd5b600b546001600160a01b031633141561053e57600880546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b1580156118ee57600080fd5b6007546001600160a01b031681565b600b546001600160a01b031633141561053e57600680546001600160a01b0319166001600160a01b038381169190911791829055604080516313b9f0c760e01b8152905192909116916313b9f0c79160048082019260009290919082900301818387803b1580156118ee57600080fd5b600c54600160a01b900460ff1681565b6001600160a01b038316301415614206576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60005b81518110156142715760006001600160a01b031682828151811061422957fe5b60200260200101516001600160a01b0316600080516020614f41833981519152614258858581518110611ac957fe5b60408051918252519081900360200190a3600101614209565b600654604051632464a27d60e01b815233600482018181526001600160a01b038881166024850152604484018890526080606485019081528751608486015287519190951694632464a27d948a938a938a93919260a401906020808601910280838360005b838110156142ee5781810151838201526020016142d6565b5050505090500195505050505050600060405180830381600087803b15801561431657600080fd5b505af115801561432a573d6000803e3d6000fd5b50506040805186815290516001600160a01b0388169350339250600080516020614ecb8339815191529181900360200190a350505050565b80516002546040805163d050a90560e01b81529051839261010090046001600160a01b03169163d050a905916004808301926020929190829003018186803b1580156143ad57600080fd5b505afa1580156143c1573d6000803e3d6000fd5b505050506040513d60208110156143d757600080fd5b505160025460408051633238268960e01b815290516101009092046001600160a01b031691633238268991600480820192602092909190829003018186803b15801561442257600080fd5b505afa158015614436573d6000803e3d6000fd5b505050506040513d602081101561444c57600080fd5b50510102341461448d5760405162461bcd60e51b8152600401808060200182810382526040815260200180614e8b6040913960400191505060405180910390fd5b60005b81811015611d435760045483516001600160a01b03909116906316e04590908590849081106144bb57fe5b6020026020010151600260019054906101000a90046001600160a01b03166001600160a01b031663d050a9056040518163ffffffff1660e01b815260040160206040518083038186803b15801561451157600080fd5b505afa158015614525573d6000803e3d6000fd5b505050506040513d602081101561453b57600080fd5b505160025460408051633238268960e01b815290516101009092046001600160a01b031691633238268991600480820192602092909190829003018186803b15801561458657600080fd5b505afa15801561459a573d6000803e3d6000fd5b505050506040513d60208110156145b057600080fd5b5051604080516001600160e01b031960e087901b1681526001600160a01b0390941660048501529101602483015251604480830192600092919082900301818387803b1580156145ff57600080fd5b505af1158015614613573d6000803e3d6000fd5b5050600190920191506144909050565b60048054604080516371681de560e11b81523393810193909352516001600160a01b039091169163e2d03bca91602480830192600092919082900301818387803b15801561296e57600080fd5b6001600160a01b0381163014156146ca576040805162461bcd60e51b8152602060048201526019602482015278696620285f746f203d3d20616464726573732874686973292960381b604482015290519081900360640190fd5b60048054604080516334d5831d60e21b815233938101939093526001600160a01b038481166024850152905191169163d3560c7491604480830192600092919082900301818387803b15801561471f57600080fd5b505af1158015614733573d6000803e3d6000fd5b50505050806001600160a01b0316336001600160a01b0316600080516020614f4183398151915261476384613505565b60408051918252519081900360200190a350565b600254604080516349ca9db360e01b8152905160009261010090046001600160a01b0316916349ca9db3916004808301926020929190829003018186803b1580156147c157600080fd5b505afa1580156147d5573d6000803e3d6000fd5b505050506040513d60208110156147eb57600080fd5b5051801561487a5750600260019054906101000a90046001600160a01b03166001600160a01b031663fb6560676040518163ffffffff1660e01b815260040160206040518083038186803b15801561484257600080fd5b505afa158015614856573d6000803e3d6000fd5b505050506040513d602081101561486c57600080fd5b50516001600160a01b031633145b1561053e575b81518110156149525781818151811061489557fe5b60200260200101516001600160a01b0316306001600160a01b0316600080516020614f41833981519152600260019054906101000a90046001600160a01b03166001600160a01b0316633a4418f86040518163ffffffff1660e01b815260040160206040518083038186803b15801561490d57600080fd5b505afa158015614921573d6000803e3d6000fd5b505050506040513d602081101561493757600080fd5b505160408051918252519081900360200190a3600101614880565b611aef565b60025460408051631d25fd5560e01b81523360048201526024810184905290516101009092046001600160a01b031691631d25fd559160448082019260009290919082900301818387803b1580156118ee57600080fd5b6009546001600160a01b031681565b60065460408051637cb6d17b60e11b81523360048201526024810184905290516001600160a01b039092169163f96da2f69160448082019260009290919082900301818387803b1580156118ee57600080fd5b600254604080516333dfca3560e21b81523360048201526024810184905290516101009092046001600160a01b03169163cf7f28d49160448082019260009290919082900301818387803b1580156118ee57600080fd5b6002546040805163124e91b960e01b81523360048201526024810184905290516101009092046001600160a01b03169163124e91b99160448082019260009290919082900301818387803b1580156118ee57600080fd5b60025460408051635c65816560e01b81526001600160a01b03858116600483015284811660248301529151600093610100900490921691635c65816591604480820192602092909190829003018186803b158015614b1b57600080fd5b505afa158015614b2f573d6000803e3d6000fd5b505050506040513d6020811015614b4557600080fd5b50519392505050565b60025460408051633bb868dd60e21b81523360048201526024810184905290516101009092046001600160a01b03169163eee1a3749160448082019260009290919082900301818387803b1580156118ee57600080fd5b600c546001600160a01b031633141561053e57600d80546001600160a01b0319166001600160a01b038316179055612306565b6000600260019054906101000a90046001600160a01b03166001600160a01b031663e5f65c716040518163ffffffff1660e01b815260040160206040518083038186803b158015614c2857600080fd5b505afa158015614c3c573d6000803e3d6000fd5b505050506040513d6020811015614c5257600080fd5b50514303905090565b600b546001600160a01b031661053e57600b80546001600160a01b03191633179055613adf565b600c54600160a01b900460ff1615613adf57600d546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050613adf57600080fd5b60025461010090046001600160a01b031681565b805160005b81811015611d435760045483516001600160a01b03909116906352ba171d90859084908110614d0957fe5b60200260200101516040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050600060405180830381600087803b158015614d5957600080fd5b505af1158015614d6d573d6000803e3d6000fd5b505060019092019150614cde9050565b600480546040805163eb0fbbad60e01b81526001600160a01b038581169482019490945290516000939092169163eb0fbbad91602480820192602092909190829003018186803b15801561245957600080fd5b600480546040805163d42e1c2f60e01b815233938101939093526001600160a01b038481166024850152905191169163d42e1c2f91604480830192600092919082900301818387803b1580156118ee57600080fd5b600b546001600160a01b031681565b60048054604080516001620769d360e31b031981526001600160a01b038581169482019490945290516000939092169163ffc4b16891602480820192602092909190829003018186803b15801561245957600080fdfe2877656956616c756520213d2028286d73672e76616c7565202b2070632e657468466565546f55706772616465546f4c6576656c332829292a636f756e742929cc6ddb19d323297cc6ed8f3dbda06395f6f153d24bf678f36305752ab635e10928215f616464726573732e73656e642866656573546f506179546f53656c6c65722929286d73672e76616c756520213d202870632e657468466565546f55706772616465546f4c6576656c3328292a636f756e742929ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef286d73672e76616c756520213d2070632e657468466565546f55706772616465546f4c6576656c3228292a636f756e7429a26469706673582212200c8dbd2e168f3b2fb511e18f530e87a2e666d5b8db4d7338aba819f6d011a0f564736f6c63430006010033

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

00000000000000000000000090e340e2d11e6eb1d99e34d122d6fe0fef3213fd000000000000000000000000805385fba3f03a24d793721f4583be53d3abf86b000000000000000000000000a6be27538a28114fe03eb7ade9adfe53164f2a4c000000000000000000000000905139d0b050157d5786ba55cbb7c0bb23de48a2000000000000000000000000eb70aef461ddf7f9eca676149a41b1b2a04ebf66000000000000000000000000f653085860916a477cc4fa84c99457a29395031e000000000000000000000000e9a4319702b271765fdd9a2134e511bdc4d2a2c8000000000000000000000000f1052e8e4a89dcc953e1d227ae72a68001076c73000000000000000000000000921cffd08dd9acf6d0994f52e3c2c49f9fc399bc

-----Decoded View---------------
Arg [0] : _publicCallsAddress (address): 0x90E340e2d11E6Eb1D99E34D122D6fE0fEF3213fd
Arg [1] : _publicArraysAddress (address): 0x805385fba3F03A24d793721f4583BE53d3aBf86b
Arg [2] : _genesisCallsAddress (address): 0xa6be27538A28114Fe03EB7ADE9AdfE53164f2a4c
Arg [3] : _normalAddressAddress (address): 0x905139d0b050157D5786bA55cBb7c0BB23DE48A2
Arg [4] : _stakesAddress (address): 0xEB70Aef461Ddf7f9eCa676149a41b1b2a04ebf66
Arg [5] : _stakesBuysAddress (address): 0xf653085860916A477Cc4FA84C99457a29395031e
Arg [6] : _genesisBuysAddress (address): 0xe9A4319702B271765fDd9A2134E511BDC4d2A2C8
Arg [7] : _tokenServiceAddress (address): 0xF1052E8E4a89dCC953e1D227Ae72A68001076c73
Arg [8] : _baseTransfersAddress (address): 0x921CfFD08Dd9AcF6D0994f52E3c2c49F9fc399BC

-----Encoded View---------------
9 Constructor Arguments found :
Arg [0] : 00000000000000000000000090e340e2d11e6eb1d99e34d122d6fe0fef3213fd
Arg [1] : 000000000000000000000000805385fba3f03a24d793721f4583be53d3abf86b
Arg [2] : 000000000000000000000000a6be27538a28114fe03eb7ade9adfe53164f2a4c
Arg [3] : 000000000000000000000000905139d0b050157d5786ba55cbb7c0bb23de48a2
Arg [4] : 000000000000000000000000eb70aef461ddf7f9eca676149a41b1b2a04ebf66
Arg [5] : 000000000000000000000000f653085860916a477cc4fa84c99457a29395031e
Arg [6] : 000000000000000000000000e9a4319702b271765fdd9a2134e511bdc4d2a2c8
Arg [7] : 000000000000000000000000f1052e8e4a89dcc953e1d227ae72a68001076c73
Arg [8] : 000000000000000000000000921cffd08dd9acf6d0994f52e3c2c49f9fc399bc


Deployed Bytecode Sourcemap

29782:18471:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29804:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29804:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;29804:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;46226:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46226:123:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46226:123:0;;:::i;:::-;;34956:205;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34956:205:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;34956:205:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;41452:352;;8:9:-1;5:2;;;30:1;27;20:12;5:2;41452:352:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;41452:352:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;41452:352:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;41452:352:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;41452:352:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;41452:352:0;;-1:-1:-1;41452:352:0;;-1:-1:-1;;;;;41452:352:0:i;34007:98::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34007:98:0;;;:::i;:::-;;;;;;;;;;;;;;;;30441:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30441:22:0;;;:::i;:::-;;;;-1:-1:-1;;;;;30441:22:0;;;;;;;;;;;;;;30968:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30968:90:0;;;:::i;46351:139::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46351:139:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46351:139:0;;:::i;36865:369::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;36865:369:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;36865:369:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;36865:369:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;36865:369:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;36865:369:0;;-1:-1:-1;36865:369:0;;-1:-1:-1;;;;;36865:369:0:i;34367:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34367:99:0;;;:::i;39674:1026::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39674:1026:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;39674:1026:0;;;;;;;:::i;46730:167::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46730:167:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46730:167:0;;:::i;32689:151::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32689:151:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32689:151:0;-1:-1:-1;;;;;32689:151:0;;:::i;34680:272::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34680:272:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;34680:272:0;;;;;;;;;;;;;;;;;:::i;33882:119::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33882:119:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33882:119:0;;;;:::i;34232:131::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34232:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34232:131:0;-1:-1:-1;;;;;34232:131:0;;:::i;45172:135::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;45172:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45172:135:0;-1:-1:-1;;;;;45172:135:0;;:::i;40800:213::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40800:213:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40800:213:0;;:::i;30466:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30466:22:0;;;:::i;29850:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29850:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;38279:377;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38279:377:0;-1:-1:-1;;;;;38279:377:0;;:::i;47797:163::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47797:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47797:163:0;;:::i;45450:141::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;45450:141:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45450:141:0;-1:-1:-1;;;;;45450:141:0;;:::i;42319:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;42319:126:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;42319:126:0;;;;;;;;:::i;30491:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30491:23:0;;;:::i;46605:123::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46605:123:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46605:123:0;;:::i;36430:111::-;;;:::i;47652:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47652:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47652:143:0;;:::i;45928:147::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;45928:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45928:147:0;;:::i;33355:197::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33355:197:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;33355:197:0;;;;;;;;:::i;46492:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46492:111:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46492:111:0;;:::i;40704:92::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40704:92:0;;;:::i;39211:196::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39211:196:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;39211:196:0;;;;;;;;:::i;38660:127::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38660:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38660:127:0;;:::i;35967:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35967:111:0;;;:::i;36775:86::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36775:86:0;;;:::i;43467:403::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;43467:403:0;-1:-1:-1;;;;;43467:403:0;;:::i;47064:147::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47064:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47064:147:0;;:::i;36660:111::-;;;:::i;42449:337::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;42449:337:0;-1:-1:-1;;;;;42449:337:0;;:::i;38791:97::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38791:97:0;;;:::i;37692:371::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;37692:371:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;37692:371:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;37692:371:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;37692:371:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;37692:371:0;;-1:-1:-1;37692:371:0;;-1:-1:-1;;;;;37692:371:0:i;48143:107::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;48143:107:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;48143:107:0;;:::i;43128:335::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;43128:335:0;-1:-1:-1;;;;;43128:335:0;;:::i;32385:157::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32385:157:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32385:157:0;-1:-1:-1;;;;;32385:157:0;;:::i;41209:239::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;41209:239:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;41209:239:0;;;;;;;;:::i;35307:112::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35307:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35307:112:0;-1:-1:-1;;;;;35307:112:0;;:::i;36545:111::-;;;:::i;42790:334::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;42790:334:0;-1:-1:-1;;;;;42790:334:0;;:::i;33158:195::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33158:195:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;33158:195:0;;;;;;;;:::i;30517:16::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30517:16:0;;;:::i;35757:103::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35757:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35757:103:0;;:::i;38892:315::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38892:315:0;-1:-1:-1;;;;;38892:315:0;;:::i;30559:22::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30559:22:0;;;:::i;30858:71::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30858:71:0;;;:::i;30610:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30610:24:0;;;:::i;43874:599::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;43874:599:0;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;43874:599:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;43874:599:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;43874:599:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;43874:599:0;;-1:-1:-1;43874:599:0;;-1:-1:-1;;;;;43874:599:0:i;45033:135::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;45033:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45033:135:0;-1:-1:-1;;;;;45033:135:0;;:::i;33556:151::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33556:151:0;;;:::i;32233:150::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32233:150:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32233:150:0;-1:-1:-1;;;;;32233:150:0;;:::i;29826:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29826:20:0;;;:::i;32999:157::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32999:157:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32999:157:0;-1:-1:-1;;;;;32999:157:0;;:::i;44477:203::-;;;:::i;44684:212::-;;;:::i;47962:179::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47962:179:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47962:179:0;;:::i;34470:206::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34470:206:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;34470:206:0;;;;;;;;:::i;36315:111::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36315:111:0;;;:::i;35423:121::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35423:121:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35423:121:0;-1:-1:-1;;;;;35423:121:0;;:::i;47374:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47374:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47374:143:0;;:::i;41125:80::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;41125:80:0;;;:::i;35864:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35864:99:0;;;:::i;32842:155::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32842:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32842:155:0;-1:-1:-1;;;;;32842:155:0;;:::i;30536:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30536:20:0;;;:::i;32544:143::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;32544:143:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32544:143:0;-1:-1:-1;;;;;32544:143:0;;:::i;30932:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30932:33:0;;;:::i;41808:507::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;41808:507:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;41808:507:0;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;41808:507:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;41808:507:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;41808:507:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;41808:507:0;;-1:-1:-1;41808:507:0;;-1:-1:-1;;;;;41808:507:0:i;37238:450::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;37238:450:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;37238:450:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;37238:450:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;37238:450:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;37238:450:0;;-1:-1:-1;37238:450:0;;-1:-1:-1;;;;;37238:450:0:i;36082:99::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36082:99:0;;;:::i;35548:205::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35548:205:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35548:205:0;-1:-1:-1;;;;;35548:205:0;;:::i;45595:329::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;45595:329:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;45595:329:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;45595:329:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;45595:329:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;45595:329:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;45595:329:0;;-1:-1:-1;45595:329:0;;-1:-1:-1;;;;;45595:329:0:i;47213:159::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47213:159:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47213:159:0;;:::i;30584:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30584:23:0;;;:::i;41017:104::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;41017:104:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;41017:104:0;;:::i;47519:131::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;47519:131:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;47519:131:0;;:::i;46077:147::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46077:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46077:147:0;;:::i;35165:138::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;35165:138:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;35165:138:0;;;;;;;;;;:::i;46899:163::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;46899:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;46899:163:0;;:::i;33711:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33711:163:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33711:163:0;-1:-1:-1;;;;;33711:163:0;;:::i;34109:119::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34109:119:0;;;:::i;30716:140::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30716:140:0;;;:::i;39411:259::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;39411:259:0;;;:::i;30417:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30417:21:0;;;:::i;38067:208::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38067:208:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;38067:208:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;38067:208:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;38067:208:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;38067:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;38067:208:0;;-1:-1:-1;38067:208:0;;-1:-1:-1;;;;;38067:208:0:i;44900:129::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;44900:129:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;44900:129:0;-1:-1:-1;;;;;44900:129:0;;:::i;36185:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36185:126:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;36185:126:0;-1:-1:-1;;;;;36185:126:0;;:::i;30639:74::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;30639:74:0;;;:::i;45311:135::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;45311:135:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45311:135:0;-1:-1:-1;;;;;45311:135:0;;:::i;29804:18::-;;;;;;;;;;;;;;;-1:-1:-1;;29804:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;46226:123::-;46292:2;;:55;;;-1:-1:-1;;;46292:55:0;;46316:10;46292:55;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;46292:2:0;;:23;;:55;;;;;-1:-1:-1;;46292:55:0;;;;;;;;-1:-1:-1;46292:2:0;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;46292:55:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;46292:55:0;;;;46226:123;:::o;34956:205::-;35045:2;;:43;;;-1:-1:-1;;;35045:43:0;;35059:10;35045:43;;;;-1:-1:-1;;;;;35045:43:0;;;;;;;;;;;;;;;-1:-1:-1;;35045:2:0;;;;;;;:13;;:43;;;;;-1:-1:-1;;35045:43:0;;;;;;;;-1:-1:-1;35045:2:0;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;35045:43:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;35100:39:0;;;;;;;;-1:-1:-1;;;;;35100:39:0;;;-1:-1:-1;35109:10:0;;-1:-1:-1;35100:39:0;;;;;;;;;-1:-1:-1;35153:4:0;34956:205;;;;:::o;41452:352::-;41536:2;;;:60;;;-1:-1:-1;;;41536:60:0;;41560:10;41536:60;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;41536:2:0;;;;:23;;41560:10;;41572:23;;41536:60;;;;;;;;;;;;;;;;: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;41536:60:0;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;41536:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;41600:6:0;;-1:-1:-1;;;41615:186:0;41625:23;:30;41621:1;:34;41615:186;;;41706:42;-1:-1:-1;;;;;41669:119:0;41678:23;41702:1;41678:26;;;;;;;;;;;;;;-1:-1:-1;;;;;41669:119:0;-1:-1:-1;;;;;;;;;;;41750:37:0;41760:23;41784:1;41760:26;;;;;;;;;;;;;;41750:9;:37::i;:::-;41669:119;;;;;;;;;;;;;;;41793:3;;41615:186;;;41452:352;;:::o;34007:98::-;34089:12;34007:98;:::o;30441:22::-;;;-1:-1:-1;;;;;30441:22:0;;:::o;30968:90::-;;;-1:-1:-1;;;;;30968:90:0;;:::o;46351:139::-;46425:2;;:63;;;-1:-1:-1;;;46425:63:0;;46453:10;46425:63;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;46425:2:0;;:27;;:63;;;;;-1:-1:-1;;46425:63:0;;;;;;;;-1:-1:-1;46425:2:0;:63;;;5:2:-1;;;;30:1;27;20:12;36865:369:0;36967:17;;37006:2;;:28;;;-1:-1:-1;;;37006:28:0;;;;36967:17;;37006:2;;;-1:-1:-1;;;;;37006:2:0;;:26;;:28;;;;;;;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;37006:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37006:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37006:28:0;:34;36992:9;:49;36988:114;;37043:59;;-1:-1:-1;;;37043:59:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36988:114;37106:6;37120:111;37131:5;37127:1;:9;37120:111;;;37145:2;;37174:13;;-1:-1:-1;;;;;37145:2:0;;;;:28;;37174:10;;37185:1;;37174:13;;;;;;;;;;;;37189:2;;;;;;;;;-1:-1:-1;;;;;37189:2:0;-1:-1:-1;;;;;37189:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37189:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37189:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37189:28:0;37145:73;;;-1:-1:-1;;;;;;37145:73:0;;;;;;;-1:-1:-1;;;;;37145:73:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;37145:73:0;;;;;;;-1:-1:-1;37145:73:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;37145:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;37223:3:0;;;;;-1:-1:-1;37120:111:0;;-1:-1:-1;37120:111:0;;36865:369;;;:::o;34367:99::-;34445:3;;:17;;;-1:-1:-1;;;34445:17:0;;;;34411:19;;-1:-1:-1;;;;;34445:3:0;;:15;;:17;;;;;;;;;;;;;;:3;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;34445:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34445:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34445:17:0;;-1:-1:-1;34367:99:0;:::o;39674:1026::-;39745:10;39759:9;39745:23;39737:32;;;;;;39845:13;;-1:-1:-1;;;39845:13:0;;;;39841:44;;;39860:25;;;-1:-1:-1;;;39860:25:0;;;;;;;;;;;;-1:-1:-1;;;39860:25:0;;;;;;;;;;;;;;39841:44;39954:21;39985:19;39979:62;;40007:34;;;-1:-1:-1;;;40007:34:0;;;;;;;;;;;;;;;;;;;;;;;;;;;39979:62;40045:6;40055:8;40082:1;40074:5;:9;:21;;;;;40094:1;40087:5;:8;40074:21;40070:127;;;-1:-1:-1;40108:5:0;;-1:-1:-1;40124:5:0;40070:127;;;40153:1;40149:5;;40165:2;;;;;;;;;-1:-1:-1;;;;;40165:2:0;-1:-1:-1;;;;;40165:25:0;;:27;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;40165:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40165:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40165:27:0;;-1:-1:-1;40070:127:0;40213:3;40209:1;:7;40202:495;;;40255:2;;:22;;;-1:-1:-1;;;40255:22:0;;;;;;;;;;40225:19;;-1:-1:-1;;;;;40255:2:0;;:19;;:22;;;;;;;;;;;;;;:2;:22;;;5:2:-1;;;;30:1;27;20:12;5:2;40255:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40255:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40255:22:0;40298:2;;:21;;;-1:-1:-1;;;40298:21:0;;-1:-1:-1;;;;;40298:21:0;;;;;;;;;40255:22;;-1:-1:-1;;;40298:2:0;;;;;;;;:16;;:21;;;;;40255:22;;40298:21;;;;;;;;:2;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;40298:21:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40298:21:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40298:21:0;40372:2;;:18;;;-1:-1:-1;;;40372:18:0;;;;40298:21;;-1:-1:-1;40324:17:0;;40372:2;;;;-1:-1:-1;;;;;40372:2:0;;:16;;:18;;;;;40298:21;;40372:18;;;;;;;;:2;:18;;;5:2:-1;;;;30:1;27;20:12;5:2;40372:18:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40372:18:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40372:18:0;40344:25;;;40372:18;40344:46;;;;;;-1:-1:-1;40399:16:0;;40395:290;;40431:22;;-1:-1:-1;;;;;40431:8:0;;;:22;;;;;40440:12;;40431:22;;;;40440:12;40431:8;:22;;;;;;;40426:251;;40465:53;;;;;;;;;;;;;;-1:-1:-1;;;;;40465:53:0;;;;;;;;;;;40426:251;;;40540:2;;40568:26;;;-1:-1:-1;;;40568:26:0;;;;40540:2;;;;-1:-1:-1;;;;;40540:2:0;;:27;;40597:12;;40540:2;;40568:24;;:26;;;;;;;;;;;;;;40540:2;40568:26;;;5:2:-1;;;;30:1;27;20:12;5:2;40568:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40568:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;40568:26:0;40540:70;;;-1:-1:-1;;;;;;40540:70:0;;;;;;;40568:41;;;;40540:70;;;;;;;;;;-1:-1:-1;;40540:70:0;;;;;;;-1:-1:-1;40540:70:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;40540:70:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;40622:47:0;;;;;;;;;;;;;;-1:-1:-1;;;;;40622:47:0;;;-1:-1:-1;40622:47:0;;-1:-1:-1;40622:47:0;;;;;;;;;40426:251;-1:-1:-1;;40689:3:0;;;;;-1:-1:-1;40202:495:0;;46730:167;46818:2;;:77;;;-1:-1:-1;;;46818:77:0;;46853:10;46818:77;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;46818:2:0;;:34;;:77;;;;;-1:-1:-1;;46818:77:0;;;;;;;;-1:-1:-1;46818:2:0;:77;;;5:2:-1;;;;30:1;27;20:12;32689:151:0;32759:14;;-1:-1:-1;;;;;32759:14:0;32745:10;:28;32741:97;;;32776:3;:25;;-1:-1:-1;;;;;;32776:25:0;-1:-1:-1;;;;;32776:25:0;;;;;;;;;;;32803:18;;;-1:-1:-1;;;32803:18:0;;;;:3;;;;;:16;;:18;;;;;-1:-1:-1;;32803:18:0;;;;;;;;-1:-1:-1;32803:3:0;:18;;;5:2:-1;;;;30:1;27;20:12;32741:97:0;32689:151;:::o;34680:272::-;34826:3;;:49;;;-1:-1:-1;;;34826:49:0;;34843:10;34826:49;;;;-1:-1:-1;;;;;34826:49:0;;;;;;;;;;;;;;;;;;;;;;34793:12;;;;34826:3;;:16;;:49;;;;;;;;;;;;;;34793:12;34826:3;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;34826:49:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34826:49:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34826:49:0;34891:29;;;;;;;;34826:49;;-1:-1:-1;;;;;;34891:29:0;;;;;;;;-1:-1:-1;;;;;;;;;;;34891:29:0;;;;;34826:49;34891:29;;;34938:6;34680:272;-1:-1:-1;;;;34680:272:0:o;33882:119::-;33950:11;;-1:-1:-1;;;;;33950:11:0;33936:10;:25;33933:65;;;33970:13;:23;;;;;-1:-1:-1;;;33970:23:0;-1:-1:-1;;;;33970:23:0;;;;;;33882:119;:::o;34232:131::-;34328:2;;;:31;;;-1:-1:-1;;;34328:31:0;;-1:-1:-1;;;;;34328:31:0;;;;;;;;;;;;34299:15;;34328:2;;;;:21;;:31;;;;;;;;;;;;;;;:2;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;34328:31:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34328:31:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34328:31:0;;34232:131;-1:-1:-1;;34232:131:0:o;45172:135::-;45268:2;;;:35;;;-1:-1:-1;;;45268:35:0;;-1:-1:-1;;;;;45268:35:0;;;;;;;;;;;;45243:12;;45268:2;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;40800:213:0;40874:2;;;:36;;;-1:-1:-1;;;40874:36:0;;40888:10;40874:36;;;;;;;;;;;;;;40855:12;;-1:-1:-1;;;;;40874:2:0;;;;:13;;:36;;;;;;;;;;;;;;40855:12;40874:2;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;40874:36:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;40874:36:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;40919:75:0;;;;;;;;40940:42;;40928:10;;-1:-1:-1;;;;;;;;;;;40919:75:0;;;;40874:36;40919:75;;;-1:-1:-1;41005:4:0;40800:213;;;:::o;30466:22::-;;;-1:-1:-1;;;;;30466:22:0;;:::o;29850:21::-;;;;;;:::o;38279:377::-;38356:2;;;:35;;;-1:-1:-1;;;38356:35:0;;-1:-1:-1;;;;;38356:35:0;;;;;;;;;;;;:2;;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;38356:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38356:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38356:35:0;38352:300;;;38396:36;38423:8;38396:26;:36::i;:::-;38352:300;;;38445:2;;;:35;;;-1:-1:-1;;;38445:35:0;;-1:-1:-1;;;;;38445:35:0;;;;;;;;;;;;:2;;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;38445:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38445:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38445:35:0;38441:211;;;38485:36;38512:8;38485:26;:36::i;38441:211::-;38534:2;;;:35;;;-1:-1:-1;;;;;;38534:35:0;;-1:-1:-1;;;;;38534:35:0;;;;;;;;;;;;:2;;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;38534:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38534:35:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38534:35:0;38530:122;;;38574:36;38601:8;38574:26;:36::i;38530:122::-;38622:30;;;-1:-1:-1;;;38622:30:0;;;;;;;;;;;;-1:-1:-1;;;38622:30:0;;;;;;;;;;;;;;47797:163;47883:2;;:75;;;-1:-1:-1;;;47883:75:0;;47917:10;47883:75;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;47883:2:0;;:33;;:75;;;;;-1:-1:-1;;47883:75:0;;;;;;;;-1:-1:-1;47883:2:0;:75;;;5:2:-1;;;;30:1;27;20:12;45450:141:0;45549:2;;;:38;;;-1:-1:-1;;;45549:38:0;;-1:-1:-1;;;;;45549:38:0;;;;;;;;;;;;45524:12;;45549:2;;;;:28;;:38;;;;;;;;;;;;;;;:2;:38;;;5:2:-1;;;;30:1;27;20:12;42319:126:0;42391:2;;:50;;;-1:-1:-1;;;42391:50:0;;42411:10;42391:50;;;;-1:-1:-1;;;;;42391:50:0;;;;;;;;;;;;;;;:2;;;;;:19;;:50;;;;;:2;;:50;;;;;;;:2;;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;42391:50:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;42391:50:0;;;;42319:126;;:::o;30491:23::-;;;-1:-1:-1;;;;;30491:23:0;;:::o;46605:123::-;46671:2;;:55;;;-1:-1:-1;;;46671:55:0;;46695:10;46671:55;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;46671:2:0;;:23;;:55;;;;;-1:-1:-1;;46671:55:0;;;;;;;;-1:-1:-1;46671:2:0;:55;;;5:2:-1;;;;30:1;27;20:12;36430:111:0;36486:2;;;:51;;;-1:-1:-1;;;36486:51:0;;36515:10;36486:51;;;;;;;36527:9;36486:51;;;;;-1:-1:-1;;;;;36486:2:0;;;;:28;;:51;;;;;:2;;:51;;;;;;;:2;;:51;;;5:2:-1;;;;30:1;27;20:12;5:2;36486:51:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;36486:51:0;;;;36430:111::o;47652:143::-;47728:2;;:65;;;-1:-1:-1;;;47728:65:0;;47757:10;47728:65;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;47728:2:0;;:28;;:65;;;;;-1:-1:-1;;47728:65:0;;;;;;;;-1:-1:-1;47728:2:0;:65;;;5:2:-1;;;;30:1;27;20:12;45928:147:0;46006:2;;:67;;;-1:-1:-1;;;46006:67:0;;46036:10;46006:67;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;46006:2:0;;:29;;:67;;;;;-1:-1:-1;;46006:67:0;;;;;;;;-1:-1:-1;46006:2:0;:67;;;5:2:-1;;;;30:1;27;20:12;33355:197:0;33427:4;33435;33427:12;33421:29;;33442:8;;;33421:29;33471:14;;-1:-1:-1;;;;;33471:14:0;33457:10;:28;33453:97;;;33488:2;:27;;-1:-1:-1;;;;;;33488:27:0;-1:-1:-1;;;;;33488:27:0;;;;;;;;;;;33517:17;;;-1:-1:-1;;;33517:17:0;;;;:2;;;;;:15;;:17;;;;;-1:-1:-1;;33517:17:0;;;;;;;;-1:-1:-1;33517:2:0;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;33517:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33517:17:0;;;;33453:97;;46492:111;46552:2;;:49;;;-1:-1:-1;;;46552:49:0;;46573:10;46552:49;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;46552:2:0;;:20;;:49;;;;;-1:-1:-1;;46552:49:0;;;;;;;;-1:-1:-1;46552:2:0;:49;;;5:2:-1;;;;30:1;27;20:12;40704:92:0;40767:3;;:25;;;-1:-1:-1;;;40767:25:0;;40781:10;40767:25;;;;;;40741:12;;-1:-1:-1;;;;;40767:3:0;;:13;;:25;;;;;;;;;;;;;;40741:12;40767:3;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;40767:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;39211:196:0;39292:2;;:58;;;-1:-1:-1;;;39292:58:0;;39319:10;39292:58;;;;-1:-1:-1;;;;;39292:58:0;;;;;;;;;;;;;;;:2;;;;;:26;;:58;;;;;:2;;:58;;;;;;;:2;;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;39292:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;39359:43:0;;;;;;;;-1:-1:-1;;;;;39359:43:0;;;-1:-1:-1;39376:4:0;;-1:-1:-1;;;;;;;;;;;;39359:43:0;;;;;;;;39211:196;;:::o;38660:127::-;38729:2;;:54;;;-1:-1:-1;;;38729:54:0;;38756:10;38729:54;;;;;;;;;;;;-1:-1:-1;;;;;38729:2:0;;;;:26;;:54;;;;;:2;;:54;;;;;;;;:2;;:54;;;5:2:-1;;;;30:1;27;20:12;35967:111:0;36025:2;;;:49;;;-1:-1:-1;;;36025:49:0;;36063:10;36025:49;;;;;;;;-1:-1:-1;;;;;36025:2:0;;;;:37;;:49;;;;;:2;;:49;;;;;;;:2;;:49;;;5:2:-1;;;;30:1;27;20:12;36775:86:0;36820:2;;;:37;;;-1:-1:-1;;;36820:37:0;;36846:10;36820:37;;;;;;;;-1:-1:-1;;;;;36820:2:0;;;;:25;;:37;;;;;:2;;:37;;;;;;;:2;;:37;;;5:2:-1;;;;30:1;27;20:12;43467:403:0;43557:2;;:26;;;-1:-1:-1;;;43557:26:0;;-1:-1:-1;;;;;43557:26:0;;;;;;;;;-1:-1:-1;;43557:2:0;;;;;;;:16;;:26;;;;;;;;;;;;;;;:2;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;43557:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;43557:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;43557:26:0;43636:3;;:57;;;-1:-1:-1;;;43636:57:0;;43652:10;43636:57;;;;-1:-1:-1;;;;;43636:57:0;;;;;;;43683:9;43636:57;;;;;;43557:26;;-1:-1:-1;43588:17:0;;;;43636:3;;;;;:15;;:57;;;;;;;;;;;43588:17;43636:3;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;43636:57:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;43636:57:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;43636:57:0;;;;;;;;;-1:-1:-1;43636:57:0;-1:-1:-1;43697:21:0;43636:57;43697:10;:21::i;:::-;-1:-1:-1;43726:32:0;;-1:-1:-1;;;;;43726:13:0;;;:32;;;;;43740:17;;43726:32;;;;43740:17;43726:13;:32;;;;;;;43722:83;;43760:45;;-1:-1:-1;;;43760:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;43722:83;43815:50;;;;;;;;43839:10;;-1:-1:-1;;;;;43815:50:0;;;-1:-1:-1;;;;;;;;;;;43815:50:0;;;;;;;;43467:403;;;;:::o;47064:147::-;47142:2;;:67;;;-1:-1:-1;;;47142:67:0;;47172:10;47142:67;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;47142:2:0;;:29;;:67;;;;;-1:-1:-1;;47142:67:0;;;;;;;;-1:-1:-1;47142:2:0;:67;;;5:2:-1;;;;30:1;27;20:12;36660:111:0;36716:2;;;:51;;;-1:-1:-1;;;36716:51:0;;36745:10;36716:51;;;;;;;36757:9;36716:51;;;;;-1:-1:-1;;;;;36716:2:0;;;;:28;;:51;;;;;:2;;:51;;;;;;;:2;;:51;;;5:2:-1;;;;30:1;27;20:12;42449:337:0;42558:3;;:72;;;-1:-1:-1;;;42558:72:0;;42589:10;42558:72;;;;-1:-1:-1;;;;;42558:72:0;;;;;;;42620:9;42558:72;;;;;;42530:25;;42558:3;;;;;:30;;:72;;;;;;;;;;;;;;;42530:25;42558:3;:72;;;5:2:-1;;;;30:1;27;20:12;5:2;42558:72:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;42558:72:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;42558:72:0;42638:32;;42558:72;;-1:-1:-1;;;;;;42638:13:0;;;:32;;;;;42558:72;;42638:32;;;;42558:72;42638:13;:32;;;;;;;42634:83;;42672:45;;-1:-1:-1;;;42672:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;42634:83;42746:10;-1:-1:-1;;;;;42727:53:0;;-1:-1:-1;;;;;;;;;;;42758:21:0;42746:10;42758:9;:21::i;:::-;42727:53;;;;;;;;;;;;;;;42449:337;;:::o;38791:97::-;38842:2;;:42;;;-1:-1:-1;;;38842:42:0;;38873:10;38842:42;;;;;;-1:-1:-1;;;;;38842:2:0;;;;:30;;:42;;;;;:2;;:42;;;;;;;;:2;;:42;;;5:2:-1;;;;30:1;27;20:12;37692:371:0;37794:17;;37833:2;;:28;;;-1:-1:-1;;;37833:28:0;;;;37794:17;;37833:2;;;-1:-1:-1;;;;;37833:2:0;;:26;;:28;;;;;;;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;37833:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37833:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37833:28:0;:34;37819:9;:49;37815:116;;37870:61;;-1:-1:-1;;;37870:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37815:116;37935:6;37949:111;37960:5;37956:1;:9;37949:111;;;37974:2;;38003:13;;-1:-1:-1;;;;;37974:2:0;;;;:28;;38003:10;;38014:1;;38003:13;;;;;;;;;;;;38018:2;;;;;;;;;-1:-1:-1;;;;;38018:2:0;-1:-1:-1;;;;;38018:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38018:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38018:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38018:28:0;37974:73;;;-1:-1:-1;;;;;;37974:73:0;;;;;;;-1:-1:-1;;;;;37974:73:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;37974:73:0;;;;;;;-1:-1:-1;37974:73:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;37974:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;38052:3:0;;;;;-1:-1:-1;37949:111:0;;-1:-1:-1;37949:111:0;48143:107;48201:2;;:47;;;-1:-1:-1;;;48201:47:0;;48221:10;48201:47;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;48201:2:0;;:19;;:47;;;;;-1:-1:-1;;48201:47:0;;;;;;;;-1:-1:-1;48201:2:0;:47;;;5:2:-1;;;;30:1;27;20:12;43128:335:0;43236:3;;:72;;;-1:-1:-1;;;43236:72:0;;43267:10;43236:72;;;;-1:-1:-1;;;;;43236:72:0;;;;;;;43298:9;43236:72;;;;;;43208:25;;43236:3;;;;;:30;;:72;;;;;;;;;;;;;;;43208:25;43236:3;:72;;;5:2:-1;;;;30:1;27;20:12;32385:157:0;32459:14;;-1:-1:-1;;;;;32459:14:0;32445:10;:28;32441:99;;;32476:2;:28;;-1:-1:-1;;;;;;32476:28:0;-1:-1:-1;;;;;32476:28:0;;;;;;;;;;;32506:17;;;-1:-1:-1;;;32506:17:0;;;;:2;;;;;:15;;:17;;;;;-1:-1:-1;;32506:17:0;;;;;;;;-1:-1:-1;32506:2:0;:17;;;5:2:-1;;;;30:1;27;20:12;41209:239:0;-1:-1:-1;;;;;41279:20:0;;41294:4;41279:20;41275:61;;;41301:35;;;-1:-1:-1;;;41301:35:0;;;;;;;;;;;;-1:-1:-1;;;41301:35:0;;;;;;;;;;;;;;41275:61;41351:2;;:44;;;-1:-1:-1;;;41351:44:0;;41371:10;41351:44;;;;-1:-1:-1;;;;;41351:44:0;;;;;;;;;;;;;;;41340:56;;41351:2;;;;;:19;;:44;;;;;;;;;;;;;;;:2;;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;41351:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;41351:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;41351:44:0;41340:10;:56::i;:::-;-1:-1:-1;41405:38:0;;;;;;;;-1:-1:-1;;;;;41405:38:0;;;41419:10;;-1:-1:-1;;;;;;;;;;;41405:38:0;;;;;;;;41209:239;;:::o;35307:112::-;35393:2;;;:22;;;-1:-1:-1;;;35393:22:0;;-1:-1:-1;;;;;35393:22:0;;;;;;;;;;;;35365:15;;35393:2;;;;:12;;:22;;;;;;;;;;;;;;;:2;:22;;;5:2:-1;;;;30:1;27;20:12;36545:111:0;36601:2;;;:51;;;-1:-1:-1;;;36601:51:0;;36630:10;36601:51;;;;;;;36642:9;36601:51;;;;;-1:-1:-1;;;;;36601:2:0;;;;:28;;:51;;;;;:2;;:51;;;;;;;:2;;:51;;;5:2:-1;;;;30:1;27;20:12;42790:334:0;42898:3;;:72;;;-1:-1:-1;;;42898:72:0;;42929:10;42898:72;;;;-1:-1:-1;;;;;42898:72:0;;;;;;;42960:9;42898:72;;;;;;42870:25;;42898:3;;;;;:30;;:72;;;;;;;;;;;;;;;42870:25;42898:3;:72;;;5:2:-1;;;;30:1;27;20:12;33158:195:0;33229:4;33237;33229:12;33223:29;;33244:8;;;33223:29;33273:14;;-1:-1:-1;;;;;33273:14:0;33259:10;:28;33255:96;;;33307:8;33290:2;;:26;;;;;-1:-1:-1;;;;;33290:26:0;;;;;-1:-1:-1;;;;;33290:26:0;;;;;;33318:2;;;;;;;;;-1:-1:-1;;;;;33318:2:0;-1:-1:-1;;;;;33318:15:0;;:17;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;30517:16:0;;;-1:-1:-1;;;;;30517:16:0;;:::o;35757:103::-;35814:2;;;:42;;;-1:-1:-1;;;35814:42:0;;35835:10;35814:42;;;;;;;;;;;;;;-1:-1:-1;;;;;35814:2:0;;;;:20;;:42;;;;;:2;;:42;;;;;;;:2;;:42;;;5:2:-1;;;;30:1;27;20:12;38892:315:0;38990:2;;:61;;;-1:-1:-1;;;38990:61:0;;39010:10;38990:61;;;;-1:-1:-1;;;;;38990:61:0;;;;;;;39041:9;38990:61;;;;;;38962:25;;38990:2;;;;;:19;;:61;;;;;;;;;;;;;;;38962:25;38990:2;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;38990:61:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;38990:61:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;38990:61:0;39063:32;;38990:61;;-1:-1:-1;;;;;;39063:13:0;;;:32;;;;;38990:61;;39063:32;;;;38990:61;39063:13;:32;;;;;;;39059:83;;39097:45;;-1:-1:-1;;;39097:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;39059:83;39170:10;-1:-1:-1;;;;;39151:51:0;;-1:-1:-1;;;;;;;;;;;39182:19:0;39160:8;39182:9;:19::i;30559:22::-;;;-1:-1:-1;;;;;30559:22:0;;:::o;30858:71::-;;;-1:-1:-1;;;;;30858:71:0;;:::o;30610:24::-;;;-1:-1:-1;;;;;30610:24:0;;:::o;43874:599::-;44010:2;;:26;;;-1:-1:-1;;;44010:26:0;;-1:-1:-1;;;;;44010:26:0;;;;;;;;;-1:-1:-1;;44010:2:0;;;;;;;:16;;:26;;;;;;;;;;;;;;;:2;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;44010:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;44010:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;44010:26:0;;-1:-1:-1;44040:6:0;44054:186;44064:23;:30;44060:1;:34;44054:186;;;44145:42;-1:-1:-1;;;;;44108:119:0;44117:23;44141:1;44117:26;;;;;;;;;;;;;;-1:-1:-1;;;;;44108:119:0;-1:-1:-1;;;;;;;;;;;44189:37:0;44199:23;44223:1;44199:26;;;;;;;44189:37;44108:119;;;;;;;;;;;;;;;44232:3;;44054:186;;;44271:3;;:86;;-1:-1:-1;;;44271:86:0;;44291:10;44271:86;;;;;;-1:-1:-1;;;;;44271:86:0;;;;;;;44347:9;44271:86;;;;;;;;;;;;;;;;;;;;;44243:25;;44271:3;;;;;:19;;44291:10;44311:8;;44322:23;;44347:9;44271:86;;;;;;;;;;;;;;44243:25;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;44271:86:0;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;44271:86:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;44271:86:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;44271:86:0;44365:32;;44271:86;;-1:-1:-1;;;;;;44365:13:0;;;:32;;;;;44271:86;;44365:32;;;;44271:86;44365:13;:32;;;;;;;44361:46;;44399:8;;;44361:46;44418:50;;;;;;;;44442:10;;-1:-1:-1;;;;;44418:50:0;;;-1:-1:-1;;;;;;;;;;;44418:50:0;;;;;;;;43874:599;;;;;:::o;45033:135::-;45129:2;;;:35;;;-1:-1:-1;;;45129:35:0;;-1:-1:-1;;;;;45129:35:0;;;;;;;;;;;;45104:12;;45129:2;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12;33556:151:0;33597:11;;-1:-1:-1;;;;;33597:11:0;33594:109;;33659:11;:24;;-1:-1:-1;;;;;;33659:24:0;33673:10;33659:24;;;33594:109;33556:151::o;32233:150::-;32301:14;;-1:-1:-1;;;;;32301:14:0;32287:10;:28;32283:98;;;32318:2;:27;;-1:-1:-1;;;;;;32318:27:0;-1:-1:-1;;;;;32318:27:0;;;;;;;;;;32347:17;;;-1:-1:-1;;;32347:17:0;;;;:2;;;;;:15;;:17;;;;-1:-1:-1;;32347:17:0;;;;;;;-1:-1:-1;32347:2:0;:17;;;5:2:-1;;;;30:1;27;20:12;29826:20:0;;;;;;;;;;;;;;;-1:-1:-1;;29826:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32999:157;33072:14;;-1:-1:-1;;;;;33072:14:0;33058:10;:28;33054:100;;;33089:3;:28;;-1:-1:-1;;;;;;33089:28:0;-1:-1:-1;;;;;33089:28:0;;;;;;;;;;;33119:18;;;-1:-1:-1;;;33119:18:0;;;;:3;;;;;:16;;:18;;;;;-1:-1:-1;;33119:18:0;;;;;;;;-1:-1:-1;33119:3:0;:18;;;5:2:-1;;;;30:1;27;20:12;44477:203:0;44564:3;;:38;;;-1:-1:-1;;;44564:38:0;;44580:10;44564:38;;;;44592:9;44564:38;;;;;;44520:18;;;;-1:-1:-1;;;;;44564:3:0;;;;:15;;:38;;;;;;;;;;;44520:18;44564:3;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;44564:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;44564:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;44564:38:0;;;;;;;;;-1:-1:-1;44564:38:0;-1:-1:-1;44606:22:0;44564:38;44606:10;:22::i;:::-;-1:-1:-1;44637:39:0;;;-1:-1:-1;;;;;44637:39:0;;;;;;44651:10;;44637:39;;;;;;;;;;44477:203;;:::o;44684:212::-;44774:3;;:41;;;-1:-1:-1;;;44774:41:0;;44793:10;44774:41;;;;44805:9;44774:41;;;;;;44730:18;;;;-1:-1:-1;;;;;44774:3:0;;;;:18;;:41;;;;;;;;;;;44730:18;44774:3;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;44774:41:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;44774:41:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;44774:41:0;;;;;;;;;-1:-1:-1;44774:41:0;-1:-1:-1;44819:22:0;44774:41;44819:10;:22::i;:::-;-1:-1:-1;44850:42:0;;;-1:-1:-1;;;;;44850:42:0;;;;;;44867:10;;44850:42;;;;;;;;;;44684:212;;:::o;47962:179::-;48056:2;;:83;;;-1:-1:-1;;;48056:83:0;;48094:10;48056:83;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;48056:2:0;;:37;;:83;;;;;-1:-1:-1;;48056:83:0;;;;;;;;-1:-1:-1;48056:2:0;:83;;;5:2:-1;;;;30:1;27;20:12;34470:206:0;-1:-1:-1;;;;;34533:20:0;;34548:4;34533:20;34529:61;;;34555:35;;;-1:-1:-1;;;34555:35:0;;;;;;;;;;;;-1:-1:-1;;;34555:35:0;;;;;;;;;;;;;;34529:61;34593:3;;:37;;;-1:-1:-1;;;34593:37:0;;34606:10;34593:37;;;;-1:-1:-1;;;;;34593:37:0;;;;;;;;;;;;;;;:3;;;;;:12;;:37;;;;;:3;;:37;;;;;;;:3;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;34593:37:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;34638:33:0;;;;;;;;-1:-1:-1;;;;;34638:33:0;;;-1:-1:-1;34647:10:0;;-1:-1:-1;;;;;;;;;;;;34638:33:0;;;;;;;;34470:206;;:::o;36315:111::-;36373:2;;;:49;;;-1:-1:-1;;;36373:49:0;;36411:10;36373:49;;;;;;;;-1:-1:-1;;;;;36373:2:0;;;;:37;;:49;;;;;:2;;:49;;;;;;;:2;;:49;;;5:2:-1;;;;30:1;27;20:12;35423:121:0;35514:2;;:26;;;-1:-1:-1;;;35514:26:0;;-1:-1:-1;;;;;35514:26:0;;;;;;;;;-1:-1:-1;;35514:2:0;;;;;;;:16;;:26;;;;;;;;;;;;;;;:2;:26;;;5:2:-1;;;;30:1;27;20:12;47374:143:0;47450:2;;:65;;;-1:-1:-1;;;47450:65:0;;47479:10;47450:65;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;47450:2:0;;:28;;:65;;;;;-1:-1:-1;;47450:65:0;;;;;;;;-1:-1:-1;47450:2:0;:65;;;5:2:-1;;;;30:1;27;20:12;41125:80:0;41167:2;;:34;;;-1:-1:-1;;;41167:34:0;;41190:10;41167:34;;;;;;-1:-1:-1;;;;;41167:2:0;;;;:22;;:34;;;;;:2;;:34;;;;;;;;:2;;:34;;;5:2:-1;;;;30:1;27;20:12;35864:99:0;35916:2;;;:43;;;-1:-1:-1;;;35916:43:0;;35948:10;35916:43;;;;;;;;-1:-1:-1;;;;;35916:2:0;;;;:31;;:43;;;;;:2;;:43;;;;;;;:2;;:43;;;5:2:-1;;;;30:1;27;20:12;32842:155:0;32914:14;;-1:-1:-1;;;;;32914:14:0;32900:10;:28;32896:99;;;32931:3;:27;;-1:-1:-1;;;;;;32931:27:0;-1:-1:-1;;;;;32931:27:0;;;;;;;;;;;32960:18;;;-1:-1:-1;;;32960:18:0;;;;:3;;;;;:16;;:18;;;;;-1:-1:-1;;32960:18:0;;;;;;;;-1:-1:-1;32960:3:0;:18;;;5:2:-1;;;;30:1;27;20:12;30536:20:0;;;-1:-1:-1;;;;;30536:20:0;;:::o;32544:143::-;32611:14;;-1:-1:-1;;;;;32611:14:0;32597:10;:28;32593:92;;;32628:2;:21;;-1:-1:-1;;;;;;32628:21:0;-1:-1:-1;;;;;32628:21:0;;;;;;;;;;;32651:17;;;-1:-1:-1;;;32651:17:0;;;;:2;;;;;:15;;:17;;;;;-1:-1:-1;;32651:17:0;;;;;;;;-1:-1:-1;32651:2:0;:17;;;5:2:-1;;;;30:1;27;20:12;30932:33:0;;;-1:-1:-1;;;30932:33:0;;;;;:::o;41808:507::-;-1:-1:-1;;;;;41924:20:0;;41939:4;41924:20;41920:61;;;41946:35;;;-1:-1:-1;;;41946:35:0;;;;;;;;;;;;-1:-1:-1;;;41946:35:0;;;;;;;;;;;;;;41920:61;41985:6;42000:186;42010:23;:30;42006:1;:34;42000:186;;;42091:42;-1:-1:-1;;;;;42054:119:0;42063:23;42087:1;42063:26;;;;;;;;;;;;;;-1:-1:-1;;;;;42054:119:0;-1:-1:-1;;;;;;;;;;;42135:37:0;42145:23;42169:1;42145:26;;;;;;;42135:37;42054:119;;;;;;;;;;;;;;;42178:3;;42000:186;;;42189:2;;:73;;-1:-1:-1;;;42189:73:0;;42213:10;42189:73;;;;;;-1:-1:-1;;;;;42189:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:2;;;;;:23;;42225:3;;42230:6;;42238:23;;42189:73;;;;;;;;;;;;;;: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;42189:73:0;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;42189:73:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;42272:38:0;;;;;;;;-1:-1:-1;;;;;42272:38:0;;;-1:-1:-1;42286:10:0;;-1:-1:-1;;;;;;;;;;;;42272:38:0;;;;;;;;41808:507;;;;:::o;37238:450::-;37340:17;;37411:2;;:28;;;-1:-1:-1;;;37411:28:0;;;;37340:17;;37411:2;;;-1:-1:-1;;;;;37411:2:0;;:26;;:28;;;;;;;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;37411:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37411:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37411:28:0;37380:2;;:28;;;-1:-1:-1;;;37380:28:0;;;;:2;;;;-1:-1:-1;;;;;37380:2:0;;:26;;:28;;;;;37411;;37380;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;37380:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37380:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37380:28:0;:59;37379:67;37365:9;:82;37361:162;;37449:74;;-1:-1:-1;;;37449:74:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37361:162;37527:6;37541:144;37552:5;37548:1;:9;37541:144;;;37566:2;;37595:13;;-1:-1:-1;;;;;37566:2:0;;;;:28;;37595:10;;37606:1;;37595:13;;;;;;;;;;;;37642:2;;;;;;;;;-1:-1:-1;;;;;37642:2:0;-1:-1:-1;;;;;37642:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;37642:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37642:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37642:28:0;37611:2;;:28;;;-1:-1:-1;;;37611:28:0;;;;:2;;;;-1:-1:-1;;;;;37611:2:0;;:26;;:28;;;;;37642;;37611;;;;;;;;:2;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;37611:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;37611:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;37611:28:0;37566:106;;;-1:-1:-1;;;;;;37566:106:0;;;;;;;-1:-1:-1;;;;;37566:106:0;;;;;;;37611:59;;37566:106;;;;;;;;;;-1:-1:-1;;37566:106:0;;;;;;;-1:-1:-1;37566:106:0;;;;5:2:-1;;;;30:1;27;20:12;5:2;37566:106:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;37677:3:0;;;;;-1:-1:-1;37541:144:0;;-1:-1:-1;37541:144:0;36082:99;36134:2;;;:43;;;-1:-1:-1;;;36134:43:0;;36166:10;36134:43;;;;;;;;-1:-1:-1;;;;;36134:2:0;;;;:31;;:43;;;;;:2;;:43;;;;;;;:2;;:43;;;5:2:-1;;;;30:1;27;20:12;35548:205:0;-1:-1:-1;;;;;35601:20:0;;35616:4;35601:20;35597:61;;;35623:35;;;-1:-1:-1;;;35623:35:0;;;;;;;;;;;;-1:-1:-1;;;35623:35:0;;;;;;;;;;;;;;35597:61;35663:2;;;:35;;;-1:-1:-1;;;35663:35:0;;35682:10;35663:35;;;;;;;-1:-1:-1;;;;;35663:35:0;;;;;;;;;:2;;;:18;;:35;;;;;:2;;:35;;;;;;;:2;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;35663:35:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35663:35:0;;;;35728:3;-1:-1:-1;;;;;35707:41:0;35716:10;-1:-1:-1;;;;;35707:41:0;-1:-1:-1;;;;;;;;;;;35733:14:0;35743:3;35733:9;:14::i;:::-;35707:41;;;;;;;;;;;;;;;35548:205;:::o;45595:329::-;45689:2;;:17;;;-1:-1:-1;;;45689:17:0;;;;45671:6;;45689:2;;;-1:-1:-1;;;;;45689:2:0;;:15;;:17;;;;;;;;;;;;;;:2;:17;;;5:2:-1;;;;30:1;27;20:12;5:2;45689:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;45689:17:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45689:17:0;:60;;;;;45724:2;;;;;;;;;-1:-1:-1;;;;;45724:2:0;-1:-1:-1;;;;;45724:23:0;;:25;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;45724:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;45724:25:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45724:25:0;-1:-1:-1;;;;;45710:39:0;:10;:39;45689:60;45685:236;;;45758:130;45768:12;:19;45764:1;:23;45758:130;;;45827:12;45840:1;45827:15;;;;;;;;;;;;;;-1:-1:-1;;;;;45803:70:0;45820:4;-1:-1:-1;;;;;45803:70:0;-1:-1:-1;;;;;;;;;;;45844:2:0;;;;;;;;;-1:-1:-1;;;;;45844:2:0;-1:-1:-1;;;;;45844:26:0;;:28;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;45844:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;45844:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;45844:28:0;45803:70;;;;;;;;;;;45844:28;45803:70;;;45879:3;;45758:130;;;45685:236;;47213:159;47297:2;;:73;;;-1:-1:-1;;;47297:73:0;;47330:10;47297:73;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;47297:2:0;;:32;;:73;;;;;-1:-1:-1;;47297:73:0;;;;;;;;-1:-1:-1;47297:2:0;:73;;;5:2:-1;;;;30:1;27;20:12;30584:23:0;;;-1:-1:-1;;;;;30584:23:0;;:::o;41017:104::-;41075:2;;:42;;;-1:-1:-1;;;41075:42:0;;41094:10;41075:42;;;;;;;;;;;;-1:-1:-1;;;;;41075:2:0;;;;:18;;:42;;;;;:2;;:42;;;;;;;;:2;;:42;;;5:2:-1;;;;30:1;27;20:12;47519:131:0;47589:2;;:59;;;-1:-1:-1;;;47589:59:0;;47615:10;47589:59;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;47589:2:0;;:25;;:59;;;;;-1:-1:-1;;47589:59:0;;;;;;;;-1:-1:-1;47589:2:0;:59;;;5:2:-1;;;;30:1;27;20:12;46077:147:0;46155:2;;:67;;;-1:-1:-1;;;46155:67:0;;46185:10;46155:67;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;46155:2:0;;:29;;:67;;;;;-1:-1:-1;;46155:67:0;;;;;;;;-1:-1:-1;46155:2:0;:67;;;5:2:-1;;;;30:1;27;20:12;35165:138:0;35272:2;;:27;;;-1:-1:-1;;;35272:27:0;;-1:-1:-1;;;;;35272:27:0;;;;;;;;;;;;;;;;-1:-1:-1;;35272:2:0;;;;;;;:10;;:27;;;;;;;;;;;;;;;:2;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;35272:27:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35272:27:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;35272:27:0;;35165:138;-1:-1:-1;;;35165:138:0:o;46899:163::-;46985:2;;:75;;;-1:-1:-1;;;46985:75:0;;47019:10;46985:75;;;;;;;;;;;;:2;;;;-1:-1:-1;;;;;46985:2:0;;:33;;:75;;;;;-1:-1:-1;;46985:75:0;;;;;;;;-1:-1:-1;46985:2:0;:75;;;5:2:-1;;;;30:1;27;20:12;33711:163:0;33801:11;;-1:-1:-1;;;;;33801:11:0;33787:10;:25;33784:86;;;33817:22;:33;;-1:-1:-1;;;;;;33817:33:0;-1:-1:-1;;;;;33817:33:0;;;;;33784:86;;34109:119;34154:19;34202:2;;;;;;;;;-1:-1:-1;;;;;34202:2:0;-1:-1:-1;;;;;34202:20:0;;:22;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34202:22:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;34202:22:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;34202:22:0;34187:12;:37;;-1:-1:-1;34109:119:0;:::o;30716:140::-;30750:14;;-1:-1:-1;;;;;30750:14:0;30746:108;;30812:14;:27;;-1:-1:-1;;;;;;30812:27:0;30829:10;30812:27;;;30746:108;;39411:259;39584:13;;-1:-1:-1;;;39584:13:0;;;;39580:86;;;39606:22;;:50;;-1:-1:-1;;;;;39606:22:0;;;;39634:21;39606:50;;;;;:22;:50;:22;:50;39634:21;39606:22;:50;;;;;;;39602:64;;39658:8;;;30417:21;;;;;;-1:-1:-1;;;;;30417:21:0;;:::o;38067:208::-;38158:17;;38145:10;38194:78;38205:5;38201:1;:9;38194:78;;;38219:2;;38245:13;;-1:-1:-1;;;;;38219:2:0;;;;:25;;38245:10;;38256:1;;38245:13;;;;;;;;;;;;38219:40;;;;;;;;;;;;;-1:-1:-1;;;;;38219:40:0;-1:-1:-1;;;;;38219:40:0;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;38219:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;38264:3:0;;;;;-1:-1:-1;38194:78:0;;-1:-1:-1;38194:78:0;44900:129;44993:2;;;:32;;;-1:-1:-1;;;44993:32:0;;-1:-1:-1;;;;;44993:32:0;;;;;;;;;;;;44968:12;;44993:2;;;;:22;;:32;;;;;;;;;;;;;;;:2;:32;;;5:2:-1;;;;30:1;27;20:12;36185:126:0;36254:2;;;:53;;;-1:-1:-1;;;36254:53:0;;36286:10;36254:53;;;;;;;-1:-1:-1;;;;;36254:53:0;;;;;;;;;:2;;;:31;;:53;;;;;:2;;:53;;;;;;;:2;;:53;;;5:2:-1;;;;30:1;27;20:12;30639:74:0;;;-1:-1:-1;;;;;30639:74:0;;:::o;45311:135::-;45407:2;;;:35;;;-1:-1:-1;;;;;;45407:35:0;;-1:-1:-1;;;;;45407:35:0;;;;;;;;;;;;45382:12;;45407:2;;;;:25;;:35;;;;;;;;;;;;;;;:2;:35;;;5:2:-1;;;;30:1;27;20:12

Swarm Source

ipfs://0c8dbd2e168f3b2fb511e18f530e87a2e666d5b8db4d7338aba819f6d011a0f5
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.