ETH Price: $3,477.34 (+0.82%)

Contract

0x1f165ddAb085917437C6B15A5ed88E5B2c0B2dd9
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Extension83753302019-08-18 16:07:081955 days ago1566144428IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000028691
Set Extension83078662019-08-08 4:45:051966 days ago1565239505IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000028691
Set Extension82846502019-08-04 14:10:281969 days ago1564927828IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000143475
Set Extension82652312019-08-01 13:58:331972 days ago1564667913IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000028691
Set Extension82513252019-07-30 10:03:181975 days ago1564480998IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000028691
Set Extension82322192019-07-27 10:56:001978 days ago1564224960IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000028691
Set Extension82135672019-07-24 13:12:451980 days ago1563973965IN
0x1f165ddA...B2c0B2dd9
0 ETH0.0005738820
Set Extension81971062019-07-22 0:04:591983 days ago1563753899IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000028691
Set Extension81680742019-07-17 11:42:211988 days ago1563363741IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000086083
Set Extension81514862019-07-14 21:05:331990 days ago1563138333IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000086083
Set Extension81334122019-07-12 1:31:291993 days ago1562895089IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000086083
Set Extension81182752019-07-09 16:59:551995 days ago1562691595IN
0x1f165ddA...B2c0B2dd9
0 ETH0.0002869410
Set Extension81000212019-07-06 20:56:451998 days ago1562446605IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000126254.4
Set Extension80871262019-07-04 21:02:382000 days ago1562274158IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000117644.0999999
Set Extension80740852019-07-02 19:53:502002 days ago1562097230IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000172166
Set Extension80480232019-06-28 18:43:312006 days ago1561747411IN
0x1f165ddA...B2c0B2dd9
0 ETH0.0002869410
Set Extension80408832019-06-27 15:52:462007 days ago1561650766IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000028691
Set Extension80107242019-06-22 23:02:372012 days ago1561244557IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000114774
Set Extension79979022019-06-20 23:01:172014 days ago1561071677IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000126254.4
Set Extension79853412019-06-18 23:48:122016 days ago1560901692IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000143475
Set Extension79714072019-06-16 19:32:482018 days ago1560713568IN
0x1f165ddA...B2c0B2dd9
0 ETH0.0002869410
Set Extension79460472019-06-12 20:20:042022 days ago1560370804IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000086083
Set Extension79195752019-06-08 16:58:182026 days ago1560013098IN
0x1f165ddA...B2c0B2dd9
0 ETH0.0005738820
Set Extension78999792019-06-05 15:18:112029 days ago1559747891IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000028691
Set Extension78789782019-06-02 8:07:422033 days ago1559462862IN
0x1f165ddA...B2c0B2dd9
0 ETH0.000028691
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
75229502019-04-07 19:37:112088 days ago1554665831
0x1f165ddA...B2c0B2dd9
0.0003 ETH
75229502019-04-07 19:37:112088 days ago1554665831
0x1f165ddA...B2c0B2dd9
0.0003 ETH
75229502019-04-07 19:37:112088 days ago1554665831
0x1f165ddA...B2c0B2dd9
0.0194 ETH
75175102019-04-06 23:27:582089 days ago1554593278
0x1f165ddA...B2c0B2dd9
0.02 ETH
75095642019-04-05 18:03:222090 days ago1554487402
0x1f165ddA...B2c0B2dd9
0.00045 ETH
75095642019-04-05 18:03:222090 days ago1554487402
0x1f165ddA...B2c0B2dd9
0.00045 ETH
75095642019-04-05 18:03:222090 days ago1554487402
0x1f165ddA...B2c0B2dd9
0.01455 ETH
75095642019-04-05 18:03:222090 days ago1554487402
0x1f165ddA...B2c0B2dd9
0.01455 ETH
74988832019-04-04 1:51:072092 days ago1554342667
0x1f165ddA...B2c0B2dd9
0.01 ETH
74960592019-04-03 15:25:562092 days ago1554305156
0x1f165ddA...B2c0B2dd9
0.01 ETH
74907382019-04-02 19:07:212093 days ago1554232041
0x1f165ddA...B2c0B2dd9
0.01 ETH
74907282019-04-02 19:05:342093 days ago1554231934
0x1f165ddA...B2c0B2dd9
0.00015 ETH
74907282019-04-02 19:05:342093 days ago1554231934
0x1f165ddA...B2c0B2dd9
0.00015 ETH
74907282019-04-02 19:05:342093 days ago1554231934
0x1f165ddA...B2c0B2dd9
0.0097 ETH
74841282019-04-01 18:15:252094 days ago1554142525
0x1f165ddA...B2c0B2dd9
0.01 ETH
74779222019-03-31 19:08:012095 days ago1554059281
0x1f165ddA...B2c0B2dd9
0.00015 ETH
74779222019-03-31 19:08:012095 days ago1554059281
0x1f165ddA...B2c0B2dd9
0.00015 ETH
74779222019-03-31 19:08:012095 days ago1554059281
0x1f165ddA...B2c0B2dd9
0.0097 ETH
74736982019-03-31 3:20:102096 days ago1554002410
0x1f165ddA...B2c0B2dd9
0.01 ETH
74736982019-03-31 3:20:102096 days ago1554002410
0x1f165ddA...B2c0B2dd9
0.01 ETH
74736602019-03-31 3:10:352096 days ago1554001835
0x1f165ddA...B2c0B2dd9
0.01 ETH
74651402019-03-29 19:04:552097 days ago1553886295
0x1f165ddA...B2c0B2dd9
0.0006 ETH
74651402019-03-29 19:04:552097 days ago1553886295
0x1f165ddA...B2c0B2dd9
0.0006 ETH
74651402019-03-29 19:04:552097 days ago1553886295
0x1f165ddA...B2c0B2dd9
0.02586666 ETH
74651402019-03-29 19:04:552097 days ago1553886295
0x1f165ddA...B2c0B2dd9
0.01293333 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FiveElementsAdministration

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-03-17
*/

pragma solidity ^0.4.24;


contract Ceil {
    
    
    function ceil(uint a, uint m) constant returns (uint ) {
        return ((a + m - 1) / m) * m;
    }
    
    
}


contract QuickSort {
    
    
    function sort(uint[] data) public constant returns(uint[]) {
       quickSort(data, int(0), int(data.length - 1));
       return data;
    }
    
    
    function quickSort(uint[] memory arr, int left, int right) internal{
        int i = left;
        int j = right;
        if(i==j) return;
        uint pivot = arr[uint(left + (right - left) / 2)];
        while (i <= j) {
            while (arr[uint(i)] < pivot) i++;
            while (pivot < arr[uint(j)]) j--;
            if (i <= j) {
                (arr[uint(i)], arr[uint(j)]) = (arr[uint(j)], arr[uint(i)]);
                i++;
                j--;
            }
        }
        if (left < j)
            quickSort(arr, left, j);
        if (i < right)
            quickSort(arr, i, right);
    }
    
    
}


contract Abssub{
    
    
    function AbsSub(uint x,uint y) constant returns(uint ){
        if (x>=y){
            return(x-y);
        }else{
            return(y-x);
        }
    }
    
    
}


contract Rounding{
    
    
    function rounding(uint x) constant returns(uint ){
        if (x-(x/10)*10>=5){
            return(x/10+1);
        }else{
            return(x/10);
        }
    }
    
    
}


contract FiveElementsAdministration is QuickSort,Ceil,Abssub,Rounding{
    
    
    address[] Users;
    uint[5][] Guesses;
    uint[] EntryPaid;
    uint[5] Weights;
    uint[5] Ans;
    uint[5] AvgGuesses;
    uint[] ERaw;
    // Raw Error Datas
    uint[] Error;
    uint[] EST;
    // Error Datas Sorted and Trimmed
    address[] Winners;
    uint[] WinEntryPaid;
    uint MinEntryPrice;
    uint FeePM;
    // Fee Per Million
    uint ExpirationTime;
    uint Period;
    uint Round;
    uint WOCC;
    bool Frozen;
    address constant private Admin=0x92Bf51aB8C48B93a96F8dde8dF07A1504aA393fD;
    address constant private Adam=0x9640a35e5345CB0639C4DD0593567F9334FfeB8a;
    address constant private Tummy=0x820090F4D39a9585a327cc39ba483f8fE7a9DA84;
    address constant private Willy=0xA4757a60d41Ff94652104e4BCdB2936591c74d1D;
    address constant private Nicky=0x89473CD97F49E6d991B68e880f4162e2CBaC3561;
    address constant private Artem=0xA7e8AFa092FAa27F06942480D28edE6fE73E5F88;
    address FiveElementsContractAddress;
    
    
    //event ResultsAndPayouts(uint RealPriceA,uint RealPriceB,uint RealPriceC,uint RealPriceD,uint RealPriceE,uint TotalWinners,uint TotalParticipants,uint PayoutsPerEtherEntry,uint TotalPrizePool,uint AverageEntryPaid);
    
    
    event ResultsAudit(uint RealPriceA,uint RealPriceB,uint RealPriceC,uint RealPriceD,uint RealPriceE);
    
    
    event PayoutInfo(uint TotalWinners,uint TotalParticipants,uint PayoutsPerEtherEntry,uint TotalPrizePool,uint AverageEntryPaid);
    
    
    event NoPlayers();
    
    
    event Extension(uint extension,uint newExpirationTime);
    
    
    event Initialisation(uint EntryPrice,uint FeePerMillion,uint submissionPeriod,uint expirationTime,uint WA,uint WB,uint WC,uint WD,uint WE);
    
    
    event UserBetAmount(address indexed User,uint Amount);
    
    
    event RoundNumber(uint round);
    
    
    event FiveElementsAddressSet(address indexed FiveElementsAddress);
    
    
    event UserJoined(address indexed User,address indexed AddedBy,uint Value,uint GuessA,uint GuessB,uint GuessC,uint GuessD,uint GuessE);
    
    
    event BetAmountUpdated(address indexed User,address indexed UpdatedBy,uint BetMoreAmount,uint TotalBetAmount);
    
    
    event LiveRanking(address indexed User,uint Rank,uint TotalPlayers,uint TotalEntryPaid);
    
    
    event MinEntryInWei(uint MinEntryValue);
    
    
    event WeightsSet(uint WA,uint WB,uint WC,uint WD,uint WE);
    
    
    event ContractFrozen(string Status);
    
    
    event ContractDefrosted(string Status);
    
    
    event FundsEjected(uint TotalEjected);
    
    
    event UserQuitGame(address indexed User,address indexed FunctionActivatedBy,uint TotalRefundAmount);
    
    
    event UserRefundAmount(address indexed User,address indexed FunctionActivatedBy,uint RefundAmount,uint NewEntryBalance);
    
    
    event Volume(uint PrizePool,uint TotalPlayers);
    
    
    event CurrentFeePerMillion(uint FeePerMillion);
    
    
    event AvgOfAllGuesses(uint AvgGuessA,uint AvgGuessB,uint AvgGuessC,uint AvgGuessD,uint AvgGuessE,uint ActivationCount);
    
    
    event ReceivedFunds(address indexed Sender,uint Value);
    
    
    function Results(uint RealPriceA,uint RealPriceB,uint RealPriceC,uint RealPriceD,uint RealPriceE,bool Freeze){
        require(msg.sender==Admin || msg.sender==Adam);
        uint Bal=address(this).balance;
        Ans[0]=RealPriceA;
        Ans[1]=RealPriceB;
        Ans[2]=RealPriceC;
        Ans[3]=RealPriceD;
        Ans[4]=RealPriceE;
        require(Ans[0]>0 && Ans[1]>0 && Ans[2]>0 && Ans[3]>0 && Ans[4]>0);
        uint L=Users.length;
        if (L>0){
            for (uint k=0;k<L;k++){
                uint E=0;
                for (uint j=0;j<5;j++){
                    E=E+1000000*Weights[j]*AbsSub(Guesses[k][j],Ans[j])/Ans[j];
                }
                ERaw.push(E);
            }
            Error=sort(ERaw);
            uint store=Error[L-1]+1;
        for (k=0;k<L;k++){
            if (store!=Error[k]){
                EST.push(Error[k]);
                store=Error[k];
            }
        }
        uint M=EST[ceil(5*(EST.length),10)/10-1];
        uint Sum=0;
        for (k=0;k<L;k++){
            if (ERaw[k]<=M){
                Winners.push(Users[k]);
                WinEntryPaid.push(EntryPaid[k]);
                Sum=Sum+EntryPaid[k];
            }
        }
        uint WL=Winners.length;
        for (k=0;k<WL;k++){
            uint I=0;
            while (I<L&&Winners[k]!=Users[I]){
                I=I+1;
            }
            Users[I].transfer(EntryPaid[I]*Bal*(1000000-FeePM)/(1000000*Sum));
        }
        for (k=0;k<L;k++){
            for (j=0;j<5;j++){
                AvgGuesses[j]=AvgGuesses[j]+Guesses[k][j];
            }
        }
        for (j=0;j<5;j++){
            AvgGuesses[j]=rounding(10*AvgGuesses[j]/L);
        }
        emit AvgOfAllGuesses(AvgGuesses[0],AvgGuesses[1],AvgGuesses[2],AvgGuesses[3],AvgGuesses[4],WOCC);
        //emit ResultsAndPayouts(uint RealPriceA,uint RealPriceB,uint RealPriceC,uint RealPriceD,uint RealPriceE,Winners.length,L,Bal/Sum,Bal,Bal/L);
        emit ResultsAudit(Ans[0],Ans[1],Ans[2],Ans[3],Ans[4]);
        emit PayoutInfo(Winners.length,L,Bal/Sum,Bal,Bal/L);
        }else{
        emit NoPlayers();
        emit ResultsAudit(Ans[0],Ans[1],Ans[2],Ans[3],Ans[4]);
        }
        Frozen=Freeze;
        Round=Round+1;
        ExpirationTime=now+Period;
        Adam.transfer(address(this).balance/2);
        Admin.transfer(address(this).balance);
        delete Users;
        delete Guesses;
        delete EntryPaid;
        delete AvgGuesses;
        delete ERaw;
        delete Error;
        delete EST;
        delete Winners;
        delete WinEntryPaid;
        delete WOCC;
    }
    
    
    function SetExtension(uint extension){
        require(msg.sender==Admin || msg.sender==Adam);
        ExpirationTime=ExpirationTime+extension;
        emit Extension(extension,ExpirationTime);
    }
    
    
    function Initialise(uint EntryPrice,uint FeePerMillion,uint SetSubmissionPeriod,uint WA,uint WB,uint WC,uint WD,uint WE,bool FirstRound){
        require(msg.sender==Admin || msg.sender==Adam);
        MinEntryPrice=EntryPrice;
        FeePM=FeePerMillion;
        Period=SetSubmissionPeriod;
        ExpirationTime=now+Period;
        Weights[0]=WA;
        Weights[1]=WB;
        Weights[2]=WC;
        Weights[3]=WD;
        Weights[4]=WE;
        if (FirstRound==true){
            Round=1;
        }
        Frozen=false;
        emit Initialisation(EntryPrice,FeePerMillion,SetSubmissionPeriod,ExpirationTime,WA,WB,WC,WD,WE);
        emit RoundNumber(Round);
    }
    
    
    function GetBetAmount(address User)public returns(uint Amount){
        require(msg.sender==Admin || msg.sender==Adam || msg.sender==FiveElementsContractAddress);
        uint L=Users.length;
        uint k=0;
        while (k<L&&User!=Users[k]){
            k=k+1;
        }
        if (k<L){
            Amount=EntryPaid[k];
        }else{
            Amount=0;
        }
        emit UserBetAmount(User,Amount);
    }
    
    
    function GetRoundNumber()public returns(uint round){
        round=Round;
        emit RoundNumber(round);
    }
    
    
    function SetFiveElementsAddress(address ContractAddress){
        require(msg.sender==Admin || msg.sender==Adam);
        FiveElementsContractAddress=ContractAddress;
        emit FiveElementsAddressSet(ContractAddress);
    }
    
    
    function UserJoin(address User,uint Value,uint GuessA,uint GuessB,uint GuessC,uint GuessD,uint GuessE){
        require(msg.sender==Admin || msg.sender==Adam || msg.sender==FiveElementsContractAddress);
        require(Frozen==false);
        require(Value>0);
        require(now<=ExpirationTime || msg.sender==Admin || msg.sender==Adam);
        uint L=Users.length;
        uint k=0;
        while (k<L&&User!=Users[k]){
            k=k+1;
        }
        require(k>=L);
        Users.push(User);
        EntryPaid.push(Value);
        Guesses.push([GuessA,GuessB,GuessC,GuessD,GuessE]);
        emit UserJoined(User,msg.sender,Value,GuessA,GuessB,GuessC,GuessD,GuessE);
    }
    
    
    function UpdateBetAmount(address User,uint Value){
        require(msg.sender==Admin || msg.sender==Adam || msg.sender==FiveElementsContractAddress);
        require(Frozen==false);
        require(Value>0);
        require(now<=ExpirationTime+14400 || msg.sender==Admin || msg.sender==Adam);
        uint L=Users.length;
        uint k=0;
        while (k<L&&User!=Users[k]){
            k=k+1;
        }
        require(k<L);
        EntryPaid[k]=EntryPaid[k]+Value;
        emit BetAmountUpdated(User,msg.sender,Value,EntryPaid[k]);
    }
    
    
    function GetCurrentRank(address User,uint RealPriceA,uint RealPriceB,uint RealPriceC,uint RealPriceD,uint RealPriceE)public returns(uint Rank,uint TotalPlayers){
        require(msg.sender==Admin || msg.sender==Adam || msg.sender==FiveElementsContractAddress);
        Ans[0]=RealPriceA;
        Ans[1]=RealPriceB;
        Ans[2]=RealPriceC;
        Ans[3]=RealPriceD;
        Ans[4]=RealPriceE;
        require(Ans[0]>0 && Ans[1]>0 && Ans[2]>0 && Ans[3]>0 && Ans[4]>0);
        uint L=Users.length;
        require(L>0);
        for (uint k=0;k<L;k++){
                uint E=0;
                for (uint j=0;j<5;j++){
                    E=E+1000000*Weights[j]*AbsSub(Guesses[k][j],Ans[j])/Ans[j];
                }
                ERaw.push(E);
            }
            Error=sort(ERaw);
            uint store=Error[L-1]+1;
        for (k=0;k<L;k++){
            if (store!=Error[k]){
                EST.push(Error[k]);
                store=Error[k];
            }
        }
        k=0;
        while (k<L&&User!=Users[k]){
            k=k+1;
        }
        require(k<L);
        uint TP=EST.length;
        j=0;
        while (ERaw[k]>=EST[j]){
            j=j+1;
        }
        TotalPlayers=TP;
        Rank=j;
        delete ERaw;
        delete Error;
        delete EST;
        emit LiveRanking(User,Rank,TotalPlayers,EntryPaid[k]);
    }
    
    
    function GetMinEntry()public returns(uint MinEntry){
        require(msg.sender==Admin || msg.sender==Adam || msg.sender==FiveElementsContractAddress);
        MinEntry=MinEntryPrice;
        emit MinEntryInWei(MinEntry);
    }
    
    
    function SetWeights(uint WA,uint WB,uint WC,uint WD,uint WE){
        require(msg.sender==Admin || msg.sender==Adam);
        Weights[0]=WA;
        Weights[1]=WB;
        Weights[2]=WC;
        Weights[3]=WD;
        Weights[4]=WE;
        emit WeightsSet(WA,WB,WC,WD,WE);
    }
    
    
    function FreezeContract(){
        require(msg.sender==Admin || msg.sender==Adam);
        require(Frozen==false);
        Frozen=true;
        emit ContractFrozen("Frozen");
    }
    
    
    function UnfreezeContract(){
        require(msg.sender==Admin || msg.sender==Adam);
        require(Frozen==true);
        Frozen=false;
        emit ContractDefrosted("Defrosted");
    }
    
    
    function FreezeContractAndEjectFunds(){
        require(msg.sender==Admin || msg.sender==Adam);
        Frozen=true;
        uint Bal=address(this).balance;
        uint L=Users.length;
        for (uint k=0;k<L;k++){
            Users[k].transfer(EntryPaid[k]);
        }
        emit ContractFrozen("Frozen");
        emit FundsEjected(Bal);
        delete Users;
        delete Guesses;
        delete EntryPaid;
    }
    
    
    function QuitAndRefund(address User){
        require(msg.sender==Admin || msg.sender==Adam || msg.sender==FiveElementsContractAddress);
        require(now<=ExpirationTime || msg.sender==Admin || msg.sender==Adam);
        uint L=Users.length;
        uint k=0;
        while (k<L&&User!=Users[k]){
            k=k+1;
        }
        require(k<L);
        if (User==Admin || User==Adam){
            User.transfer(EntryPaid[k]);
        }else{
        User.transfer(EntryPaid[k]*(1000000-FeePM)/1000000);
        Admin.transfer(EntryPaid[k]*FeePM/2000000);
        Adam.transfer(EntryPaid[k]*FeePM/2000000);
        }
        emit UserQuitGame(User,msg.sender,EntryPaid[k]);
        delete Users[k];
        delete Guesses[k];
        delete EntryPaid[k];
    }
    
    
    function RefundAmount(address User,uint Amount){
        require(msg.sender==Admin || msg.sender==Adam || msg.sender==FiveElementsContractAddress);
        require(now<=ExpirationTime || msg.sender==Admin || msg.sender==Adam);
        uint L=Users.length;
        uint k=0;
        while (k<L&&User!=Users[k]){
            k=k+1;
        }
        require(k<L);
        require(EntryPaid[k]>Amount && ((EntryPaid[k]-Amount)>=MinEntryPrice || User==Admin || User==Adam || User==Tummy || User==Willy || User==Nicky || User==Artem));
        if (User==Admin || User==Adam){
            User.transfer(Amount);
        }else{
        User.transfer(Amount*(1000000-FeePM)/1000000);
        Admin.transfer(Amount*FeePM/2000000);
        Adam.transfer(Amount*FeePM/2000000);
        }
        EntryPaid[k]=EntryPaid[k]-Amount;
        emit UserRefundAmount(User,msg.sender,Amount,EntryPaid[k]);
    }
    
    
    function GetBetVolume(){
        require(msg.sender==Admin || msg.sender==Adam || msg.sender==FiveElementsContractAddress);
        uint L=Users.length;
        uint Bal=address(this).balance;
        emit Volume(Bal,L);
    }
    
    
    function GetFeePerMillion()public returns(uint FeePerMillion){
        require(msg.sender==Admin || msg.sender==Adam || msg.sender==FiveElementsContractAddress);
        FeePerMillion=FeePM;
        emit CurrentFeePerMillion(FeePerMillion);
    }
    
    
    function AverageOfAllGuesses()public returns(uint[5] ){
        require(msg.sender==Admin || msg.sender==Adam || msg.sender==FiveElementsContractAddress);
        uint L=Users.length;
        require(L>0 || msg.sender==Admin || msg.sender==Adam);
        if (L>0){
        require((now<=ExpirationTime && now+7200>=ExpirationTime) || msg.sender==Admin || msg.sender==Adam);
        require(WOCC<=5 || msg.sender==Admin || msg.sender==Adam);
        for (uint k=0;k<L;k++){
            for (uint j=0;j<5;j++){
                AvgGuesses[j]=AvgGuesses[j]+Guesses[k][j];
            }
        }
        for (j=0;j<5;j++){
            AvgGuesses[j]=rounding(10*AvgGuesses[j]/L);
        }
        if (msg.sender==Admin || msg.sender==Adam){
        }else{
        WOCC=WOCC+1;
        }
        return AvgGuesses;
        emit AvgOfAllGuesses(AvgGuesses[0],AvgGuesses[1],AvgGuesses[2],AvgGuesses[3],AvgGuesses[4],WOCC);
        delete AvgGuesses;
        }else{
        emit NoPlayers();
        }
    }
    
    
    function GetWisdomOfCrowdsActivationCount()public returns(uint ){
        require(msg.sender==Admin || msg.sender==Adam || msg.sender==FiveElementsContractAddress);
        return(WOCC);
    }
    
    
    function () public payable{
        emit ReceivedFunds(msg.sender,msg.value);
    }
    
    
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[{"name":"x","type":"uint256"}],"name":"rounding","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"GetWisdomOfCrowdsActivationCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"x","type":"uint256"},{"name":"y","type":"uint256"}],"name":"AbsSub","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"User","type":"address"},{"name":"RealPriceA","type":"uint256"},{"name":"RealPriceB","type":"uint256"},{"name":"RealPriceC","type":"uint256"},{"name":"RealPriceD","type":"uint256"},{"name":"RealPriceE","type":"uint256"}],"name":"GetCurrentRank","outputs":[{"name":"Rank","type":"uint256"},{"name":"TotalPlayers","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"extension","type":"uint256"}],"name":"SetExtension","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"FreezeContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"EntryPrice","type":"uint256"},{"name":"FeePerMillion","type":"uint256"},{"name":"SetSubmissionPeriod","type":"uint256"},{"name":"WA","type":"uint256"},{"name":"WB","type":"uint256"},{"name":"WC","type":"uint256"},{"name":"WD","type":"uint256"},{"name":"WE","type":"uint256"},{"name":"FirstRound","type":"bool"}],"name":"Initialise","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"User","type":"address"},{"name":"Amount","type":"uint256"}],"name":"RefundAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"User","type":"address"}],"name":"QuitAndRefund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"RealPriceA","type":"uint256"},{"name":"RealPriceB","type":"uint256"},{"name":"RealPriceC","type":"uint256"},{"name":"RealPriceD","type":"uint256"},{"name":"RealPriceE","type":"uint256"},{"name":"Freeze","type":"bool"}],"name":"Results","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"UnfreezeContract","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"GetMinEntry","outputs":[{"name":"MinEntry","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"GetRoundNumber","outputs":[{"name":"round","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"AverageOfAllGuesses","outputs":[{"name":"","type":"uint256[5]"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"User","type":"address"},{"name":"Value","type":"uint256"}],"name":"UpdateBetAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"a","type":"uint256"},{"name":"m","type":"uint256"}],"name":"ceil","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"GetFeePerMillion","outputs":[{"name":"FeePerMillion","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"data","type":"uint256[]"}],"name":"sort","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"ContractAddress","type":"address"}],"name":"SetFiveElementsAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"User","type":"address"},{"name":"Value","type":"uint256"},{"name":"GuessA","type":"uint256"},{"name":"GuessB","type":"uint256"},{"name":"GuessC","type":"uint256"},{"name":"GuessD","type":"uint256"},{"name":"GuessE","type":"uint256"}],"name":"UserJoin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"GetBetVolume","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"User","type":"address"}],"name":"GetBetAmount","outputs":[{"name":"Amount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"FreezeContractAndEjectFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"WA","type":"uint256"},{"name":"WB","type":"uint256"},{"name":"WC","type":"uint256"},{"name":"WD","type":"uint256"},{"name":"WE","type":"uint256"}],"name":"SetWeights","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"RealPriceA","type":"uint256"},{"indexed":false,"name":"RealPriceB","type":"uint256"},{"indexed":false,"name":"RealPriceC","type":"uint256"},{"indexed":false,"name":"RealPriceD","type":"uint256"},{"indexed":false,"name":"RealPriceE","type":"uint256"}],"name":"ResultsAudit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"TotalWinners","type":"uint256"},{"indexed":false,"name":"TotalParticipants","type":"uint256"},{"indexed":false,"name":"PayoutsPerEtherEntry","type":"uint256"},{"indexed":false,"name":"TotalPrizePool","type":"uint256"},{"indexed":false,"name":"AverageEntryPaid","type":"uint256"}],"name":"PayoutInfo","type":"event"},{"anonymous":false,"inputs":[],"name":"NoPlayers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"extension","type":"uint256"},{"indexed":false,"name":"newExpirationTime","type":"uint256"}],"name":"Extension","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"EntryPrice","type":"uint256"},{"indexed":false,"name":"FeePerMillion","type":"uint256"},{"indexed":false,"name":"submissionPeriod","type":"uint256"},{"indexed":false,"name":"expirationTime","type":"uint256"},{"indexed":false,"name":"WA","type":"uint256"},{"indexed":false,"name":"WB","type":"uint256"},{"indexed":false,"name":"WC","type":"uint256"},{"indexed":false,"name":"WD","type":"uint256"},{"indexed":false,"name":"WE","type":"uint256"}],"name":"Initialisation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"User","type":"address"},{"indexed":false,"name":"Amount","type":"uint256"}],"name":"UserBetAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"round","type":"uint256"}],"name":"RoundNumber","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"FiveElementsAddress","type":"address"}],"name":"FiveElementsAddressSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"User","type":"address"},{"indexed":true,"name":"AddedBy","type":"address"},{"indexed":false,"name":"Value","type":"uint256"},{"indexed":false,"name":"GuessA","type":"uint256"},{"indexed":false,"name":"GuessB","type":"uint256"},{"indexed":false,"name":"GuessC","type":"uint256"},{"indexed":false,"name":"GuessD","type":"uint256"},{"indexed":false,"name":"GuessE","type":"uint256"}],"name":"UserJoined","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"User","type":"address"},{"indexed":true,"name":"UpdatedBy","type":"address"},{"indexed":false,"name":"BetMoreAmount","type":"uint256"},{"indexed":false,"name":"TotalBetAmount","type":"uint256"}],"name":"BetAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"User","type":"address"},{"indexed":false,"name":"Rank","type":"uint256"},{"indexed":false,"name":"TotalPlayers","type":"uint256"},{"indexed":false,"name":"TotalEntryPaid","type":"uint256"}],"name":"LiveRanking","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"MinEntryValue","type":"uint256"}],"name":"MinEntryInWei","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"WA","type":"uint256"},{"indexed":false,"name":"WB","type":"uint256"},{"indexed":false,"name":"WC","type":"uint256"},{"indexed":false,"name":"WD","type":"uint256"},{"indexed":false,"name":"WE","type":"uint256"}],"name":"WeightsSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"Status","type":"string"}],"name":"ContractFrozen","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"Status","type":"string"}],"name":"ContractDefrosted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"TotalEjected","type":"uint256"}],"name":"FundsEjected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"User","type":"address"},{"indexed":true,"name":"FunctionActivatedBy","type":"address"},{"indexed":false,"name":"TotalRefundAmount","type":"uint256"}],"name":"UserQuitGame","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"User","type":"address"},{"indexed":true,"name":"FunctionActivatedBy","type":"address"},{"indexed":false,"name":"RefundAmount","type":"uint256"},{"indexed":false,"name":"NewEntryBalance","type":"uint256"}],"name":"UserRefundAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"PrizePool","type":"uint256"},{"indexed":false,"name":"TotalPlayers","type":"uint256"}],"name":"Volume","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"FeePerMillion","type":"uint256"}],"name":"CurrentFeePerMillion","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"AvgGuessA","type":"uint256"},{"indexed":false,"name":"AvgGuessB","type":"uint256"},{"indexed":false,"name":"AvgGuessC","type":"uint256"},{"indexed":false,"name":"AvgGuessD","type":"uint256"},{"indexed":false,"name":"AvgGuessE","type":"uint256"},{"indexed":false,"name":"ActivationCount","type":"uint256"}],"name":"AvgOfAllGuesses","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"Sender","type":"address"},{"indexed":false,"name":"Value","type":"uint256"}],"name":"ReceivedFunds","type":"event"}]

608060405234801561001057600080fd5b50614877806100206000396000f30060806040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063140192031461018e57806321796b11146101cf578063297a4580146101fa5780632e67ee7b1461024557806338fd1bcb146102d55780633906a081146103025780633c7b9b1b146103195780633f35578c14610398578063414feef4146103e557806354f7d33e1461042857806356dce3861461048957806358afebe9146104a05780635cd34399146104cb57806378a19595146104f657806382b6ac04146105495780638587be6e146105965780639793d21f146105e15780639ec8b0261461060c578063a6d9c2c9146106c7578063aae1cf851461070a578063aec1f9fc14610789578063d326f4c0146107a0578063d38d1bda146107f7578063d76ece0a1461080e575b3373ffffffffffffffffffffffffffffffffffffffff167f5741979df5f3e491501da74d3b0a83dd2496ab1f34929865b3e190a8ad75859a346040518082815260200191505060405180910390a2005b34801561019a57600080fd5b506101b960048036038101908080359060200190929190505050610863565b6040518082815260200191505060405180910390f35b3480156101db57600080fd5b506101e46108ab565b6040518082815260200191505060405180910390f35b34801561020657600080fd5b5061022f60048036038101908080359060200190929190803590602001909291905050506109a5565b6040518082815260200191505060405180910390f35b34801561025157600080fd5b506102b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506109c6565b604051808381526020018281526020019250505060405180910390f35b3480156102e157600080fd5b5061030060048036038101908080359060200190929190505050610f8c565b005b34801561030e57600080fd5b50610317611073565b005b34801561032557600080fd5b5061039660048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035151590602001909291905050506111b2565b005b3480156103a457600080fd5b506103e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113c5565b005b3480156103f157600080fd5b50610426600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ae4565b005b34801561043457600080fd5b50610487600480360381019080803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080351515906020019092919050505061209b565b005b34801561049557600080fd5b5061049e612cdb565b005b3480156104ac57600080fd5b506104b5612e1a565b6040518082815260200191505060405180910390f35b3480156104d757600080fd5b506104e0612f4b565b6040518082815260200191505060405180910390f35b34801561050257600080fd5b5061050b612f8c565b6040518082600560200280838360005b8381101561053657808201518184015260208101905061051b565b5050505090500191505060405180910390f35b34801561055557600080fd5b50610594600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613493565b005b3480156105a257600080fd5b506105cb60048036038101908080359060200190929190803590602001909291905050506137c4565b6040518082815260200191505060405180910390f35b3480156105ed57600080fd5b506105f66137e1565b6040518082815260200191505060405180910390f35b34801561061857600080fd5b5061067060048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050613912565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106b3578082015181840152602081019050610698565b505050509050019250505060405180910390f35b3480156106d357600080fd5b50610708600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061392c565b005b34801561071657600080fd5b50610787600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050613a4b565b005b34801561079557600080fd5b5061079e613e43565b005b3480156107ac57600080fd5b506107e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f9b565b6040518082815260200191505060405180910390f35b34801561080357600080fd5b5061080c6141a4565b005b34801561081a57600080fd5b5061086160048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506143fe565b005b60006005600a808481151561087457fe5b04028303101515610896576001600a8381151561088d57fe5b040190506108a6565b600a828115156108a257fe5b0490505b919050565b60007392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061093a5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806109925750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561099d57600080fd5b601c54905090565b600081831015156109ba5781830390506109c0565b82820390505b92915050565b6000806000806000806000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a5f5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610ab75750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610ac257600080fd5b8c60086000600581101515610ad357fe5b01819055508b60086001600581101515610ae957fe5b01819055508a60086002600581101515610aff57fe5b01819055508960086003600581101515610b1557fe5b01819055508860086004600581101515610b2b57fe5b0181905550600060086000600581101515610b4257fe5b0154118015610b625750600060086001600581101515610b5e57fe5b0154115b8015610b7f5750600060086002600581101515610b7b57fe5b0154115b8015610b9c5750600060086003600581101515610b9857fe5b0154115b8015610bb95750600060086004600581101515610bb557fe5b0154115b1515610bc457600080fd5b6000805490509550600086111515610bdb57600080fd5b600094505b85851015610cbb5760009350600092505b6005831015610c8257600883600581101515610c0957fe5b0154610c50600187815481101515610c1d57fe5b906000526020600020906005020185600581101515610c3857fe5b0154600886600581101515610c4957fe5b01546109a5565b600385600581101515610c5f57fe5b0154620f42400202811515610c7057fe5b04840193508280600101935050610bf1565b60128490806001815401808255809150509060018203906000526020600020016000909192909190915055508480600101955050610be0565b610d146012805480602002602001604051908101604052809291908181526020018280548015610d0a57602002820191906000526020600020905b815481526020019060010190808311610cf6575b5050505050613912565b60139080519060200190610d299291906146c1565b506001601360018803815481101515610d3e57fe5b9060005260206000200154019150600094505b85851015610dea57601385815481101515610d6857fe5b906000526020600020015482141515610ddd576014601386815481101515610d8c57fe5b90600052602060002001549080600181540180825580915050906001820390600052602060002001600090919290919091505550601385815481101515610dcf57fe5b906000526020600020015491505b8480600101955050610d51565b600094505b8585108015610e635750600085815481101515610e0857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614155b15610e7357600185019450610def565b8585101515610e8157600080fd5b6014805490509050600092505b601483815481101515610e9d57fe5b9060005260206000200154601286815481101515610eb757fe5b9060005260206000200154101515610ed457600183019250610e8e565b80965082975060126000610ee8919061470e565b60136000610ef6919061470e565b60146000610f04919061470e565b8d73ffffffffffffffffffffffffffffffffffffffff167f8f18abc0a806323d9d5413abb28c956a493f2c2731b5f81827ce09f2dbdc80098989600289815481101515610f4d57fe5b906000526020600020015460405180848152602001838152602001828152602001935050505060405180910390a2505050505050965096945050505050565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806110195750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561102457600080fd5b80601954016019819055507fbe25934eb386c1f8c36f5532394a54616c73aee9ee9939f0bfc5a689cf174be281601954604051808381526020018281526020019250505060405180910390a150565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111005750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561110b57600080fd5b60001515601d60009054906101000a900460ff16151514151561112d57600080fd5b6001601d60006101000a81548160ff0219169083151502179055507f5e501cf9ffc50f8ad48713343abbdba152b48f891ebbb89170c3222d8e15003f6040518080602001828103825260068152602001807f46726f7a656e000000000000000000000000000000000000000000000000000081525060200191505060405180910390a1565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061123f5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561124a57600080fd5b886017819055508760188190555086601a81905550601a544201601981905550856003600060058110151561127b57fe5b0181905550846003600160058110151561129157fe5b018190555083600360026005811015156112a757fe5b0181905550826003806005811015156112bc57fe5b018190555081600360046005811015156112d257fe5b01819055506001151581151514156112ed576001601b819055505b6000601d60006101000a81548160ff0219169083151502179055507ff41f0927b29930b6661e11b5ef10f43a4f7e7f6bc3eba5d6d3997dfd172aaf7f8989896019548a8a8a8a8a604051808a8152602001898152602001888152602001878152602001868152602001858152602001848152602001838152602001828152602001995050505050505050505060405180910390a17f0206e4a781b41795c670950ee0b3871dfd4b94f186be82969490725cfd9e3f07601b546040518082815260200191505060405180910390a1505050505050505050565b6000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114555750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806114ad5750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156114b857600080fd5b6019544211158061150857507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806115525750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561155d57600080fd5b6000805490509150600090505b81811080156115de575060008181548110151561158357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115ee5760018101905061156a565b81811015156115fc57600080fd5b8260028281548110151561160c57fe5b90600052602060002001541180156117fd57506017548360028381548110151561163257fe5b90600052602060002001540310158061168a57507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b806116d45750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8061171e575073820090f4d39a9585a327cc39ba483f8fe7a9da8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80611768575073a4757a60d41ff94652104e4bcdb2936591c74d1d73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b806117b257507389473cd97f49e6d991b68e880f4162e2cbac356173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b806117fc575073a7e8afa092faa27f06942480d28ede6fe73e5f8873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b5b151561180857600080fd5b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806118955750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156118e6578373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156118e0573d6000803e3d6000fd5b50611a1f565b8373ffffffffffffffffffffffffffffffffffffffff166108fc620f4240601854620f424003860281151561191757fe5b049081150290604051600060405180830381858888f19350505050158015611943573d6000803e3d6000fd5b507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff166108fc621e8480601854860281151561198457fe5b049081150290604051600060405180830381858888f193505050501580156119b0573d6000803e3d6000fd5b50739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff166108fc621e848060185486028115156119f157fe5b049081150290604051600060405180830381858888f19350505050158015611a1d573d6000803e3d6000fd5b505b82600282815481101515611a2f57fe5b906000526020600020015403600282815481101515611a4a57fe5b90600052602060002001819055503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fa2783f72019291e0cc6c02d9121ef31c758d25ea7cb638c41beb423a6bc9c5a685600285815481101515611ab757fe5b9060005260206000200154604051808381526020018281526020019250505060405180910390a350505050565b6000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b745750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611bcc5750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611bd757600080fd5b60195442111580611c2757507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611c715750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611c7c57600080fd5b6000805490509150600090505b8181108015611cfd5750600081815481101515611ca257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d0d57600181019050611c89565b8181101515611d1b57600080fd5b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611da85750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611e12578273ffffffffffffffffffffffffffffffffffffffff166108fc600283815481101515611dd657fe5b90600052602060002001549081150290604051600060405180830381858888f19350505050158015611e0c573d6000803e3d6000fd5b50611f96565b8273ffffffffffffffffffffffffffffffffffffffff166108fc620f4240601854620f424003600285815481101515611e4757fe5b906000526020600020015402811515611e5c57fe5b049081150290604051600060405180830381858888f19350505050158015611e88573d6000803e3d6000fd5b507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff166108fc621e8480601854600285815481101515611ecd57fe5b906000526020600020015402811515611ee257fe5b049081150290604051600060405180830381858888f19350505050158015611f0e573d6000803e3d6000fd5b50739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff166108fc621e8480601854600285815481101515611f5357fe5b906000526020600020015402811515611f6857fe5b049081150290604051600060405180830381858888f19350505050158015611f94573d6000803e3d6000fd5b505b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fe9576819e274cdf7fcbdf8972e5abbfb05ed58215e47af1418118e01562aba25600284815481101515611ff457fe5b90600052602060002001546040518082815260200191505060405180910390a360008181548110151561202357fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018181548110151561205f57fe5b90600052602060002090600502016000612079919061472f565b60028181548110151561208857fe5b9060005260206000200160009055505050565b6000806000806000806000806000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806121375750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561214257600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163199508f6008600060058110151561216d57fe5b01819055508e6008600160058110151561218357fe5b01819055508d6008600260058110151561219957fe5b01819055508c600860036005811015156121af57fe5b01819055508b600860046005811015156121c557fe5b01819055506000600860006005811015156121dc57fe5b01541180156121fc57506000600860016005811015156121f857fe5b0154115b8015612219575060006008600260058110151561221557fe5b0154115b8015612236575060006008600360058110151561223257fe5b0154115b8015612253575060006008600460058110151561224f57fe5b0154115b151561225e57600080fd5b60008054905098506000891115612a4c57600097505b8888101561234f5760009650600095505b60058610156123165760088660058110151561229d57fe5b01546122e460018a8154811015156122b157fe5b9060005260206000209060050201886005811015156122cc57fe5b01546008896005811015156122dd57fe5b01546109a5565b6003886005811015156122f357fe5b0154620f4240020281151561230457fe5b04870196508580600101965050612285565b60128790806001815401808255809150509060018203906000526020600020016000909192909190915055508780600101985050612274565b6123a8601280548060200260200160405190810160405280929190818152602001828054801561239e57602002820191906000526020600020905b81548152602001906001019080831161238a575b5050505050613912565b601390805190602001906123bd9291906146c1565b506001601360018b038154811015156123d257fe5b9060005260206000200154019450600097505b8888101561247e576013888154811015156123fc57fe5b90600052602060002001548514151561247157601460138981548110151561242057fe5b9060005260206000200154908060018154018082558091505090600182039060005260206000200160009091929091909150555060138881548110151561246357fe5b906000526020600020015494505b87806001019850506123e5565b60146001600a612497601480549050600502600a6137c4565b8115156124a057fe5b04038154811015156124ae57fe5b9060005260206000200154935060009250600097505b888810156125fe57836012898154811015156124dc57fe5b90600052602060002001541115156125f15760156000898154811015156124ff57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050601660028981548110151561259e57fe5b906000526020600020015490806001815401808255809150509060018203906000526020600020016000909192909190915055506002888154811015156125e157fe5b9060005260206000200154830192505b87806001019850506124c4565b6015805490509150600097505b8188101561279657600090505b88811080156126c5575060008181548110151561263157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660158981548110151561268157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156126d557600181019050612618565b6000818154811015156126e457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc84620f424002601854620f4240038d60028681548110151561274657fe5b9060005260206000200154020281151561275c57fe5b049081150290604051600060405180830381858888f19350505050158015612788573d6000803e3d6000fd5b50878060010198505061260b565b600097505b8888101561281d57600095505b6005861015612810576001888154811015156127c057fe5b9060005260206000209060050201866005811015156127db57fe5b0154600d876005811015156127ec57fe5b015401600d876005811015156127fe57fe5b018190555085806001019650506127a8565b878060010198505061279b565b600095505b60058610156128735761285289600d8860058110151561283e57fe5b0154600a0281151561284c57fe5b04610863565b600d8760058110151561286157fe5b01819055508580600101965050612822565b7f7b98be89be0b08302a3c16bd4ed4c23c7887a81e9f8a1c12cbcbb38f574512cd600d60006005811015156128a457fe5b0154600d60016005811015156128b657fe5b0154600d60026005811015156128c857fe5b0154600d60036005811015156128da57fe5b0154600d60046005811015156128ec57fe5b0154601c5460405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a17f184583580bae5272621c34df5cf8906e4222f3452286fcd7c2d9cf5097c61ef46008600060058110151561295a57fe5b01546008600160058110151561296c57fe5b01546008600260058110151561297e57fe5b01546008600360058110151561299057fe5b0154600860046005811015156129a257fe5b0154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a17f0cdb009ab45335c8de4e3666e16028dadb718f9cb983ea047235303b27d3fa4d6015805490508a858d811515612a0857fe5b048d8d8f811515612a1557fe5b04604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a1612b25565b7fdff55bfb838deddf0a1fee4b362405bfd37e793f686b706c3420d4dbfdaccbc160405160405180910390a17f184583580bae5272621c34df5cf8906e4222f3452286fcd7c2d9cf5097c61ef460086000600581101515612aa957fe5b015460086001600581101515612abb57fe5b015460086002600581101515612acd57fe5b015460086003600581101515612adf57fe5b015460086004600581101515612af157fe5b0154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a15b8a601d60006101000a81548160ff0219169083151502179055506001601b5401601b81905550601a544201601981905550739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff166108fc60023073ffffffffffffffffffffffffffffffffffffffff1631811515612ba757fe5b049081150290604051600060405180830381858888f19350505050158015612bd3573d6000803e3d6000fd5b507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015612c45573d6000803e3d6000fd5b50600080612c539190614752565b60016000612c619190614773565b60026000612c6f919061470e565b600d6000612c7d919061472f565b60126000612c8b919061470e565b60136000612c99919061470e565b60146000612ca7919061470e565b60156000612cb59190614752565b60166000612cc3919061470e565b601c6000905550505050505050505050505050505050565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612d685750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612d7357600080fd5b60011515601d60009054906101000a900460ff161515141515612d9557600080fd5b6000601d60006101000a81548160ff0219169083151502179055507f75bb332f8a67695c0f119d5ff736ccfbbe102144dcc89b23d935c3f9dcf035c06040518080602001828103825260098152602001807f446566726f73746564000000000000000000000000000000000000000000000081525060200191505060405180910390a1565b60007392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612ea95750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80612f015750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612f0c57600080fd5b60175490507faf2dd872a7902be00e1d6340dea76d1b5831f527cd2d40be3598351e10fbccf8816040518082815260200191505060405180910390a190565b6000601b5490507f0206e4a781b41795c670950ee0b3871dfd4b94f186be82969490725cfd9e3f07816040518082815260200191505060405180910390a190565b612f94614797565b60008060007392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806130265750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061307e5750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561308957600080fd5b600080549050925060008311806130df57507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806131295750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561313457600080fd5b60008311156134605760195442111580156131555750601954611c20420110155b8061319f57507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806131e95750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156131f457600080fd5b6005601c5411158061324557507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061328f5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561329a57600080fd5b600091505b8282101561332157600090505b6005811015613314576001828154811015156132c457fe5b9060005260206000209060050201816005811015156132df57fe5b0154600d826005811015156132f057fe5b015401600d8260058110151561330257fe5b018190555080806001019150506132ac565b818060010192505061329f565b600090505b60058110156133775761335683600d8360058110151561334257fe5b0154600a0281151561335057fe5b04610863565b600d8260058110151561336557fe5b01819055508080600101915050613326565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806134045750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1561340e5761341b565b6001601c5401601c819055505b600d600580602002604051908101604052809291908260058015613454576020028201915b815481526020019060010190808311613440575b5050505050935061348d565b7fdff55bfb838deddf0a1fee4b362405bfd37e793f686b706c3420d4dbfdaccbc160405160405180910390a15b50505090565b6000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806135235750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061357b5750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561358657600080fd5b60001515601d60009054906101000a900460ff1615151415156135a857600080fd5b6000831115156135b757600080fd5b613840601954014211158061360b57507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806136555750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561366057600080fd5b6000805490509150600090505b81811080156136e1575060008181548110151561368657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156136f15760018101905061366d565b81811015156136ff57600080fd5b8260028281548110151561370f57fe5b90600052602060002001540160028281548110151561372a57fe5b90600052602060002001819055503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fecd1b44e72b599247f5912a307fa4c428b3cc53ce9b8c4c30cfca5dfc8ac08ab8560028581548110151561379757fe5b9060005260206000200154604051808381526020018281526020019250505060405180910390a350505050565b600081826001848601038115156137d757fe5b0402905092915050565b60007392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806138705750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806138c85750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156138d357600080fd5b60185490507fbea1c60851ea6514d6dab22008c1833ead9c806af3bc98d2dba10a86b28d8e4a816040518082815260200191505060405180910390a190565b60606139248260006001855103614561565b819050919050565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806139b95750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156139c457600080fd5b80601d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f8c0638684eccf2128afd68f6c40a2a95800fa069dfd04f187273d7b3312dda6960405160405180910390a250565b6000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613adb5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80613b335750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613b3e57600080fd5b60001515601d60009054906101000a900460ff161515141515613b6057600080fd5b600088111515613b6f57600080fd5b60195442111580613bbf57507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80613c095750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613c1457600080fd5b6000805490509150600090505b8181108015613c955750600081815481101515613c3a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b15613ca557600181019050613c21565b818110151515613cb457600080fd5b60008990806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506002889080600181540180825580915050906001820390600052602060002001600090919290919091505550600160a0604051908101604052808981526020018881526020018781526020018681526020018581525090806001815401808255809150509060018203906000526020600020906005020160009091929091909150906005613da99291906147ba565b50503373ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167f12ee6672dd97078492c4317dd7f709a05736de1d632f9b2457601d94ca8fe1068a8a8a8a8a8a60405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a3505050505050505050565b6000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613ed35750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80613f2b5750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613f3657600080fd5b60008054905091503073ffffffffffffffffffffffffffffffffffffffff163190507ff52d1bd3025441a6cebe06bac05ec198b25254f1b0e21b08bb5a4d7c56115d3f8183604051808381526020018281526020019250505060405180910390a15050565b60008060007392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061402d5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806140855750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561409057600080fd5b6000805490509150600090505b818110801561411157506000818154811015156140b657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156141215760018101905061409d565b8181101561414a5760028181548110151561413857fe5b9060005260206000200154925061414f565b600092505b8373ffffffffffffffffffffffffffffffffffffffff167f38c999db0e6363704778e2f80f9edc53290e8ff441693b695a89972524fa05f8846040518082815260200191505060405180910390a25050919050565b60008060007392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806142365750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561424157600080fd5b6001601d60006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff163192506000805490509150600090505b818110156143315760008181548110151561429a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002838154811015156142ed57fe5b90600052602060002001549081150290604051600060405180830381858888f19350505050158015614323573d6000803e3d6000fd5b508080600101915050614283565b7f5e501cf9ffc50f8ad48713343abbdba152b48f891ebbb89170c3222d8e15003f6040518080602001828103825260068152602001807f46726f7a656e000000000000000000000000000000000000000000000000000081525060200191505060405180910390a17fd85fc33976e0bbb48af3a5bf90ad5a8c62841a6a83e5c2adaa9e4966591ba2fe836040518082815260200191505060405180910390a16000806143dd9190614752565b600160006143eb9190614773565b600260006143f9919061470e565b505050565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061448b5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561449657600080fd5b84600360006005811015156144a757fe5b018190555083600360016005811015156144bd57fe5b018190555082600360026005811015156144d357fe5b0181905550816003806005811015156144e857fe5b018190555080600360046005811015156144fe57fe5b01819055507fc34f13a2ae7a107c500a63850d2fddddde33c75d5d37e4b9779145bf362d2c7d8585858585604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a15050505050565b600080600084925083915081831415614579576146b9565b85600286860381151561458857fe5b05860181518110151561459757fe5b9060200190602002015190505b8183131515614690575b8086848151811015156145bd57fe5b9060200190602002015110156145da5782806001019350506145ae565b5b85828151811015156145e957fe5b90602001906020020151811015614608578180600190039250506145db565b818313151561468b57858281518110151561461f57fe5b90602001906020020151868481518110151561463757fe5b90602001906020020151878581518110151561464f57fe5b906020019060200201888581518110151561466657fe5b9060200190602002018281525082815250505082806001019350508180600190039250505b6145a4565b818512156146a4576146a3868684614561565b5b838312156146b8576146b7868486614561565b5b5b505050505050565b8280548282559060005260206000209081019282156146fd579160200282015b828111156146fc5782518255916020019190600101906146e1565b5b50905061470a91906147fa565b5090565b508054600082559060005260206000209081019061472c91906147fa565b50565b506000815560010160008155600101600081556001016000815560010160009055565b508054600082559060005260206000209081019061477091906147fa565b50565b5080546000825560050290600052602060002090810190614794919061481f565b50565b60a060405190810160405280600590602082028038833980820191505090505090565b82600581019282156147e9579160200282015b828111156147e85782518255916020019190600101906147cd565b5b5090506147f691906147fa565b5090565b61481c91905b80821115614818576000816000905550600101614800565b5090565b90565b61484891905b80821115614844576000818161483b919061472f565b50600501614825565b5090565b905600a165627a7a72305820f2756ae7376fb848a3d6bf29012dec368f8184ca02f904c25a1ee706b980665e0029

Deployed Bytecode

0x60806040526004361061013e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063140192031461018e57806321796b11146101cf578063297a4580146101fa5780632e67ee7b1461024557806338fd1bcb146102d55780633906a081146103025780633c7b9b1b146103195780633f35578c14610398578063414feef4146103e557806354f7d33e1461042857806356dce3861461048957806358afebe9146104a05780635cd34399146104cb57806378a19595146104f657806382b6ac04146105495780638587be6e146105965780639793d21f146105e15780639ec8b0261461060c578063a6d9c2c9146106c7578063aae1cf851461070a578063aec1f9fc14610789578063d326f4c0146107a0578063d38d1bda146107f7578063d76ece0a1461080e575b3373ffffffffffffffffffffffffffffffffffffffff167f5741979df5f3e491501da74d3b0a83dd2496ab1f34929865b3e190a8ad75859a346040518082815260200191505060405180910390a2005b34801561019a57600080fd5b506101b960048036038101908080359060200190929190505050610863565b6040518082815260200191505060405180910390f35b3480156101db57600080fd5b506101e46108ab565b6040518082815260200191505060405180910390f35b34801561020657600080fd5b5061022f60048036038101908080359060200190929190803590602001909291905050506109a5565b6040518082815260200191505060405180910390f35b34801561025157600080fd5b506102b8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506109c6565b604051808381526020018281526020019250505060405180910390f35b3480156102e157600080fd5b5061030060048036038101908080359060200190929190505050610f8c565b005b34801561030e57600080fd5b50610317611073565b005b34801561032557600080fd5b5061039660048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035151590602001909291905050506111b2565b005b3480156103a457600080fd5b506103e3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113c5565b005b3480156103f157600080fd5b50610426600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ae4565b005b34801561043457600080fd5b50610487600480360381019080803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080351515906020019092919050505061209b565b005b34801561049557600080fd5b5061049e612cdb565b005b3480156104ac57600080fd5b506104b5612e1a565b6040518082815260200191505060405180910390f35b3480156104d757600080fd5b506104e0612f4b565b6040518082815260200191505060405180910390f35b34801561050257600080fd5b5061050b612f8c565b6040518082600560200280838360005b8381101561053657808201518184015260208101905061051b565b5050505090500191505060405180910390f35b34801561055557600080fd5b50610594600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613493565b005b3480156105a257600080fd5b506105cb60048036038101908080359060200190929190803590602001909291905050506137c4565b6040518082815260200191505060405180910390f35b3480156105ed57600080fd5b506105f66137e1565b6040518082815260200191505060405180910390f35b34801561061857600080fd5b5061067060048036038101908080359060200190820180359060200190808060200260200160405190810160405280939291908181526020018383602002808284378201915050505050509192919290505050613912565b6040518080602001828103825283818151815260200191508051906020019060200280838360005b838110156106b3578082015181840152602081019050610698565b505050509050019250505060405180910390f35b3480156106d357600080fd5b50610708600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061392c565b005b34801561071657600080fd5b50610787600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050613a4b565b005b34801561079557600080fd5b5061079e613e43565b005b3480156107ac57600080fd5b506107e1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613f9b565b6040518082815260200191505060405180910390f35b34801561080357600080fd5b5061080c6141a4565b005b34801561081a57600080fd5b5061086160048036038101908080359060200190929190803590602001909291908035906020019092919080359060200190929190803590602001909291905050506143fe565b005b60006005600a808481151561087457fe5b04028303101515610896576001600a8381151561088d57fe5b040190506108a6565b600a828115156108a257fe5b0490505b919050565b60007392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061093a5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806109925750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561099d57600080fd5b601c54905090565b600081831015156109ba5781830390506109c0565b82820390505b92915050565b6000806000806000806000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a5f5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80610ab75750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515610ac257600080fd5b8c60086000600581101515610ad357fe5b01819055508b60086001600581101515610ae957fe5b01819055508a60086002600581101515610aff57fe5b01819055508960086003600581101515610b1557fe5b01819055508860086004600581101515610b2b57fe5b0181905550600060086000600581101515610b4257fe5b0154118015610b625750600060086001600581101515610b5e57fe5b0154115b8015610b7f5750600060086002600581101515610b7b57fe5b0154115b8015610b9c5750600060086003600581101515610b9857fe5b0154115b8015610bb95750600060086004600581101515610bb557fe5b0154115b1515610bc457600080fd5b6000805490509550600086111515610bdb57600080fd5b600094505b85851015610cbb5760009350600092505b6005831015610c8257600883600581101515610c0957fe5b0154610c50600187815481101515610c1d57fe5b906000526020600020906005020185600581101515610c3857fe5b0154600886600581101515610c4957fe5b01546109a5565b600385600581101515610c5f57fe5b0154620f42400202811515610c7057fe5b04840193508280600101935050610bf1565b60128490806001815401808255809150509060018203906000526020600020016000909192909190915055508480600101955050610be0565b610d146012805480602002602001604051908101604052809291908181526020018280548015610d0a57602002820191906000526020600020905b815481526020019060010190808311610cf6575b5050505050613912565b60139080519060200190610d299291906146c1565b506001601360018803815481101515610d3e57fe5b9060005260206000200154019150600094505b85851015610dea57601385815481101515610d6857fe5b906000526020600020015482141515610ddd576014601386815481101515610d8c57fe5b90600052602060002001549080600181540180825580915050906001820390600052602060002001600090919290919091505550601385815481101515610dcf57fe5b906000526020600020015491505b8480600101955050610d51565b600094505b8585108015610e635750600085815481101515610e0857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168e73ffffffffffffffffffffffffffffffffffffffff1614155b15610e7357600185019450610def565b8585101515610e8157600080fd5b6014805490509050600092505b601483815481101515610e9d57fe5b9060005260206000200154601286815481101515610eb757fe5b9060005260206000200154101515610ed457600183019250610e8e565b80965082975060126000610ee8919061470e565b60136000610ef6919061470e565b60146000610f04919061470e565b8d73ffffffffffffffffffffffffffffffffffffffff167f8f18abc0a806323d9d5413abb28c956a493f2c2731b5f81827ce09f2dbdc80098989600289815481101515610f4d57fe5b906000526020600020015460405180848152602001838152602001828152602001935050505060405180910390a2505050505050965096945050505050565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806110195750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561102457600080fd5b80601954016019819055507fbe25934eb386c1f8c36f5532394a54616c73aee9ee9939f0bfc5a689cf174be281601954604051808381526020018281526020019250505060405180910390a150565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806111005750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561110b57600080fd5b60001515601d60009054906101000a900460ff16151514151561112d57600080fd5b6001601d60006101000a81548160ff0219169083151502179055507f5e501cf9ffc50f8ad48713343abbdba152b48f891ebbb89170c3222d8e15003f6040518080602001828103825260068152602001807f46726f7a656e000000000000000000000000000000000000000000000000000081525060200191505060405180910390a1565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061123f5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561124a57600080fd5b886017819055508760188190555086601a81905550601a544201601981905550856003600060058110151561127b57fe5b0181905550846003600160058110151561129157fe5b018190555083600360026005811015156112a757fe5b0181905550826003806005811015156112bc57fe5b018190555081600360046005811015156112d257fe5b01819055506001151581151514156112ed576001601b819055505b6000601d60006101000a81548160ff0219169083151502179055507ff41f0927b29930b6661e11b5ef10f43a4f7e7f6bc3eba5d6d3997dfd172aaf7f8989896019548a8a8a8a8a604051808a8152602001898152602001888152602001878152602001868152602001858152602001848152602001838152602001828152602001995050505050505050505060405180910390a17f0206e4a781b41795c670950ee0b3871dfd4b94f186be82969490725cfd9e3f07601b546040518082815260200191505060405180910390a1505050505050505050565b6000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806114555750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806114ad5750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156114b857600080fd5b6019544211158061150857507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806115525750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561155d57600080fd5b6000805490509150600090505b81811080156115de575060008181548110151561158357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156115ee5760018101905061156a565b81811015156115fc57600080fd5b8260028281548110151561160c57fe5b90600052602060002001541180156117fd57506017548360028381548110151561163257fe5b90600052602060002001540310158061168a57507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b806116d45750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8061171e575073820090f4d39a9585a327cc39ba483f8fe7a9da8473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80611768575073a4757a60d41ff94652104e4bcdb2936591c74d1d73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b806117b257507389473cd97f49e6d991b68e880f4162e2cbac356173ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b806117fc575073a7e8afa092faa27f06942480d28ede6fe73e5f8873ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b5b151561180857600080fd5b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806118955750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b156118e6578373ffffffffffffffffffffffffffffffffffffffff166108fc849081150290604051600060405180830381858888f193505050501580156118e0573d6000803e3d6000fd5b50611a1f565b8373ffffffffffffffffffffffffffffffffffffffff166108fc620f4240601854620f424003860281151561191757fe5b049081150290604051600060405180830381858888f19350505050158015611943573d6000803e3d6000fd5b507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff166108fc621e8480601854860281151561198457fe5b049081150290604051600060405180830381858888f193505050501580156119b0573d6000803e3d6000fd5b50739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff166108fc621e848060185486028115156119f157fe5b049081150290604051600060405180830381858888f19350505050158015611a1d573d6000803e3d6000fd5b505b82600282815481101515611a2f57fe5b906000526020600020015403600282815481101515611a4a57fe5b90600052602060002001819055503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fa2783f72019291e0cc6c02d9121ef31c758d25ea7cb638c41beb423a6bc9c5a685600285815481101515611ab757fe5b9060005260206000200154604051808381526020018281526020019250505060405180910390a350505050565b6000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611b745750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611bcc5750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611bd757600080fd5b60195442111580611c2757507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611c715750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611c7c57600080fd5b6000805490509150600090505b8181108015611cfd5750600081815481101515611ca257fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d0d57600181019050611c89565b8181101515611d1b57600080fd5b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611da85750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611e12578273ffffffffffffffffffffffffffffffffffffffff166108fc600283815481101515611dd657fe5b90600052602060002001549081150290604051600060405180830381858888f19350505050158015611e0c573d6000803e3d6000fd5b50611f96565b8273ffffffffffffffffffffffffffffffffffffffff166108fc620f4240601854620f424003600285815481101515611e4757fe5b906000526020600020015402811515611e5c57fe5b049081150290604051600060405180830381858888f19350505050158015611e88573d6000803e3d6000fd5b507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff166108fc621e8480601854600285815481101515611ecd57fe5b906000526020600020015402811515611ee257fe5b049081150290604051600060405180830381858888f19350505050158015611f0e573d6000803e3d6000fd5b50739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff166108fc621e8480601854600285815481101515611f5357fe5b906000526020600020015402811515611f6857fe5b049081150290604051600060405180830381858888f19350505050158015611f94573d6000803e3d6000fd5b505b3373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fe9576819e274cdf7fcbdf8972e5abbfb05ed58215e47af1418118e01562aba25600284815481101515611ff457fe5b90600052602060002001546040518082815260200191505060405180910390a360008181548110151561202357fe5b9060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905560018181548110151561205f57fe5b90600052602060002090600502016000612079919061472f565b60028181548110151561208857fe5b9060005260206000200160009055505050565b6000806000806000806000806000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806121375750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561214257600080fd5b3073ffffffffffffffffffffffffffffffffffffffff163199508f6008600060058110151561216d57fe5b01819055508e6008600160058110151561218357fe5b01819055508d6008600260058110151561219957fe5b01819055508c600860036005811015156121af57fe5b01819055508b600860046005811015156121c557fe5b01819055506000600860006005811015156121dc57fe5b01541180156121fc57506000600860016005811015156121f857fe5b0154115b8015612219575060006008600260058110151561221557fe5b0154115b8015612236575060006008600360058110151561223257fe5b0154115b8015612253575060006008600460058110151561224f57fe5b0154115b151561225e57600080fd5b60008054905098506000891115612a4c57600097505b8888101561234f5760009650600095505b60058610156123165760088660058110151561229d57fe5b01546122e460018a8154811015156122b157fe5b9060005260206000209060050201886005811015156122cc57fe5b01546008896005811015156122dd57fe5b01546109a5565b6003886005811015156122f357fe5b0154620f4240020281151561230457fe5b04870196508580600101965050612285565b60128790806001815401808255809150509060018203906000526020600020016000909192909190915055508780600101985050612274565b6123a8601280548060200260200160405190810160405280929190818152602001828054801561239e57602002820191906000526020600020905b81548152602001906001019080831161238a575b5050505050613912565b601390805190602001906123bd9291906146c1565b506001601360018b038154811015156123d257fe5b9060005260206000200154019450600097505b8888101561247e576013888154811015156123fc57fe5b90600052602060002001548514151561247157601460138981548110151561242057fe5b9060005260206000200154908060018154018082558091505090600182039060005260206000200160009091929091909150555060138881548110151561246357fe5b906000526020600020015494505b87806001019850506123e5565b60146001600a612497601480549050600502600a6137c4565b8115156124a057fe5b04038154811015156124ae57fe5b9060005260206000200154935060009250600097505b888810156125fe57836012898154811015156124dc57fe5b90600052602060002001541115156125f15760156000898154811015156124ff57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050601660028981548110151561259e57fe5b906000526020600020015490806001815401808255809150509060018203906000526020600020016000909192909190915055506002888154811015156125e157fe5b9060005260206000200154830192505b87806001019850506124c4565b6015805490509150600097505b8188101561279657600090505b88811080156126c5575060008181548110151561263157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660158981548110151561268157fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b156126d557600181019050612618565b6000818154811015156126e457fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc84620f424002601854620f4240038d60028681548110151561274657fe5b9060005260206000200154020281151561275c57fe5b049081150290604051600060405180830381858888f19350505050158015612788573d6000803e3d6000fd5b50878060010198505061260b565b600097505b8888101561281d57600095505b6005861015612810576001888154811015156127c057fe5b9060005260206000209060050201866005811015156127db57fe5b0154600d876005811015156127ec57fe5b015401600d876005811015156127fe57fe5b018190555085806001019650506127a8565b878060010198505061279b565b600095505b60058610156128735761285289600d8860058110151561283e57fe5b0154600a0281151561284c57fe5b04610863565b600d8760058110151561286157fe5b01819055508580600101965050612822565b7f7b98be89be0b08302a3c16bd4ed4c23c7887a81e9f8a1c12cbcbb38f574512cd600d60006005811015156128a457fe5b0154600d60016005811015156128b657fe5b0154600d60026005811015156128c857fe5b0154600d60036005811015156128da57fe5b0154600d60046005811015156128ec57fe5b0154601c5460405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a17f184583580bae5272621c34df5cf8906e4222f3452286fcd7c2d9cf5097c61ef46008600060058110151561295a57fe5b01546008600160058110151561296c57fe5b01546008600260058110151561297e57fe5b01546008600360058110151561299057fe5b0154600860046005811015156129a257fe5b0154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a17f0cdb009ab45335c8de4e3666e16028dadb718f9cb983ea047235303b27d3fa4d6015805490508a858d811515612a0857fe5b048d8d8f811515612a1557fe5b04604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a1612b25565b7fdff55bfb838deddf0a1fee4b362405bfd37e793f686b706c3420d4dbfdaccbc160405160405180910390a17f184583580bae5272621c34df5cf8906e4222f3452286fcd7c2d9cf5097c61ef460086000600581101515612aa957fe5b015460086001600581101515612abb57fe5b015460086002600581101515612acd57fe5b015460086003600581101515612adf57fe5b015460086004600581101515612af157fe5b0154604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a15b8a601d60006101000a81548160ff0219169083151502179055506001601b5401601b81905550601a544201601981905550739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff166108fc60023073ffffffffffffffffffffffffffffffffffffffff1631811515612ba757fe5b049081150290604051600060405180830381858888f19350505050158015612bd3573d6000803e3d6000fd5b507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015612c45573d6000803e3d6000fd5b50600080612c539190614752565b60016000612c619190614773565b60026000612c6f919061470e565b600d6000612c7d919061472f565b60126000612c8b919061470e565b60136000612c99919061470e565b60146000612ca7919061470e565b60156000612cb59190614752565b60166000612cc3919061470e565b601c6000905550505050505050505050505050505050565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612d685750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612d7357600080fd5b60011515601d60009054906101000a900460ff161515141515612d9557600080fd5b6000601d60006101000a81548160ff0219169083151502179055507f75bb332f8a67695c0f119d5ff736ccfbbe102144dcc89b23d935c3f9dcf035c06040518080602001828103825260098152602001807f446566726f73746564000000000000000000000000000000000000000000000081525060200191505060405180910390a1565b60007392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612ea95750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80612f015750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612f0c57600080fd5b60175490507faf2dd872a7902be00e1d6340dea76d1b5831f527cd2d40be3598351e10fbccf8816040518082815260200191505060405180910390a190565b6000601b5490507f0206e4a781b41795c670950ee0b3871dfd4b94f186be82969490725cfd9e3f07816040518082815260200191505060405180910390a190565b612f94614797565b60008060007392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806130265750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061307e5750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561308957600080fd5b600080549050925060008311806130df57507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806131295750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561313457600080fd5b60008311156134605760195442111580156131555750601954611c20420110155b8061319f57507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806131e95750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156131f457600080fd5b6005601c5411158061324557507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061328f5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561329a57600080fd5b600091505b8282101561332157600090505b6005811015613314576001828154811015156132c457fe5b9060005260206000209060050201816005811015156132df57fe5b0154600d826005811015156132f057fe5b015401600d8260058110151561330257fe5b018190555080806001019150506132ac565b818060010192505061329f565b600090505b60058110156133775761335683600d8360058110151561334257fe5b0154600a0281151561335057fe5b04610863565b600d8260058110151561336557fe5b01819055508080600101915050613326565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806134045750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1561340e5761341b565b6001601c5401601c819055505b600d600580602002604051908101604052809291908260058015613454576020028201915b815481526020019060010190808311613440575b5050505050935061348d565b7fdff55bfb838deddf0a1fee4b362405bfd37e793f686b706c3420d4dbfdaccbc160405160405180910390a15b50505090565b6000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806135235750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8061357b5750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561358657600080fd5b60001515601d60009054906101000a900460ff1615151415156135a857600080fd5b6000831115156135b757600080fd5b613840601954014211158061360b57507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806136555750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561366057600080fd5b6000805490509150600090505b81811080156136e1575060008181548110151561368657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156136f15760018101905061366d565b81811015156136ff57600080fd5b8260028281548110151561370f57fe5b90600052602060002001540160028281548110151561372a57fe5b90600052602060002001819055503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fecd1b44e72b599247f5912a307fa4c428b3cc53ce9b8c4c30cfca5dfc8ac08ab8560028581548110151561379757fe5b9060005260206000200154604051808381526020018281526020019250505060405180910390a350505050565b600081826001848601038115156137d757fe5b0402905092915050565b60007392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806138705750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806138c85750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156138d357600080fd5b60185490507fbea1c60851ea6514d6dab22008c1833ead9c806af3bc98d2dba10a86b28d8e4a816040518082815260200191505060405180910390a190565b60606139248260006001855103614561565b819050919050565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806139b95750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156139c457600080fd5b80601d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f8c0638684eccf2128afd68f6c40a2a95800fa069dfd04f187273d7b3312dda6960405160405180910390a250565b6000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613adb5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80613b335750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613b3e57600080fd5b60001515601d60009054906101000a900460ff161515141515613b6057600080fd5b600088111515613b6f57600080fd5b60195442111580613bbf57507392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80613c095750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613c1457600080fd5b6000805490509150600090505b8181108015613c955750600081815481101515613c3a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614155b15613ca557600181019050613c21565b818110151515613cb457600080fd5b60008990806001815401808255809150509060018203906000526020600020016000909192909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506002889080600181540180825580915050906001820390600052602060002001600090919290919091505550600160a0604051908101604052808981526020018881526020018781526020018681526020018581525090806001815401808255809150509060018203906000526020600020906005020160009091929091909150906005613da99291906147ba565b50503373ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167f12ee6672dd97078492c4317dd7f709a05736de1d632f9b2457601d94ca8fe1068a8a8a8a8a8a60405180878152602001868152602001858152602001848152602001838152602001828152602001965050505050505060405180910390a3505050505050505050565b6000807392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613ed35750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80613f2b5750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613f3657600080fd5b60008054905091503073ffffffffffffffffffffffffffffffffffffffff163190507ff52d1bd3025441a6cebe06bac05ec198b25254f1b0e21b08bb5a4d7c56115d3f8183604051808381526020018281526020019250505060405180910390a15050565b60008060007392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061402d5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b806140855750601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561409057600080fd5b6000805490509150600090505b818110801561411157506000818154811015156140b657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156141215760018101905061409d565b8181101561414a5760028181548110151561413857fe5b9060005260206000200154925061414f565b600092505b8373ffffffffffffffffffffffffffffffffffffffff167f38c999db0e6363704778e2f80f9edc53290e8ff441693b695a89972524fa05f8846040518082815260200191505060405180910390a25050919050565b60008060007392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806142365750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561424157600080fd5b6001601d60006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff163192506000805490509150600090505b818110156143315760008181548110151561429a57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002838154811015156142ed57fe5b90600052602060002001549081150290604051600060405180830381858888f19350505050158015614323573d6000803e3d6000fd5b508080600101915050614283565b7f5e501cf9ffc50f8ad48713343abbdba152b48f891ebbb89170c3222d8e15003f6040518080602001828103825260068152602001807f46726f7a656e000000000000000000000000000000000000000000000000000081525060200191505060405180910390a17fd85fc33976e0bbb48af3a5bf90ad5a8c62841a6a83e5c2adaa9e4966591ba2fe836040518082815260200191505060405180910390a16000806143dd9190614752565b600160006143eb9190614773565b600260006143f9919061470e565b505050565b7392bf51ab8c48b93a96f8dde8df07a1504aa393fd73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061448b5750739640a35e5345cb0639c4dd0593567f9334ffeb8a73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561449657600080fd5b84600360006005811015156144a757fe5b018190555083600360016005811015156144bd57fe5b018190555082600360026005811015156144d357fe5b0181905550816003806005811015156144e857fe5b018190555080600360046005811015156144fe57fe5b01819055507fc34f13a2ae7a107c500a63850d2fddddde33c75d5d37e4b9779145bf362d2c7d8585858585604051808681526020018581526020018481526020018381526020018281526020019550505050505060405180910390a15050505050565b600080600084925083915081831415614579576146b9565b85600286860381151561458857fe5b05860181518110151561459757fe5b9060200190602002015190505b8183131515614690575b8086848151811015156145bd57fe5b9060200190602002015110156145da5782806001019350506145ae565b5b85828151811015156145e957fe5b90602001906020020151811015614608578180600190039250506145db565b818313151561468b57858281518110151561461f57fe5b90602001906020020151868481518110151561463757fe5b90602001906020020151878581518110151561464f57fe5b906020019060200201888581518110151561466657fe5b9060200190602002018281525082815250505082806001019350508180600190039250505b6145a4565b818512156146a4576146a3868684614561565b5b838312156146b8576146b7868486614561565b5b5b505050505050565b8280548282559060005260206000209081019282156146fd579160200282015b828111156146fc5782518255916020019190600101906146e1565b5b50905061470a91906147fa565b5090565b508054600082559060005260206000209081019061472c91906147fa565b50565b506000815560010160008155600101600081556001016000815560010160009055565b508054600082559060005260206000209081019061477091906147fa565b50565b5080546000825560050290600052602060002090810190614794919061481f565b50565b60a060405190810160405280600590602082028038833980820191505090505090565b82600581019282156147e9579160200282015b828111156147e85782518255916020019190600101906147cd565b5b5090506147f691906147fa565b5090565b61481c91905b80821115614818576000816000905550600101614800565b5090565b90565b61484891905b80821115614844576000818161483b919061472f565b50600501614825565b5090565b905600a165627a7a72305820f2756ae7376fb848a3d6bf29012dec368f8184ca02f904c25a1ee706b980665e0029

Swarm Source

bzzr://f2756ae7376fb848a3d6bf29012dec368f8184ca02f904c25a1ee706b980665e

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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