maj.world

maj.world

Git

This commit has been accessed 559 times via Git panel.

commit 26787eab08dbd25b23f74e23ed4249dbb9c9af30
tree 3e012ffca37ae2228be28c1eddc978b2c642c09a
parent 0bc3d939315bf889dd6cf2f96feb1202577924e2
author Engels Antonio <engels@majcms.org> 1307319787 +0800
committer Engels Antonio <engels@majcms.org> 1307319787 +0800

    Add member auto-lockout after multiple failed logins

diff --git a/add.php b/add.php
index fa4ba7a..f20abfe 100644
--- a/add.php
+++ b/add.php
@@ -28,7 +28,7 @@
           }
       }
       
-      if ((file_exists("data/members/active/{$_SESSION['logged_in']}/rw.txt") or file_exists("data/members/active/{$_SESSION['logged_in']}/category.txt")) and file_exists("data/bb.txt") and !file_exists("data/noadd.txt")) {
+      if ((file_exists("data/members/active/{$_SESSION['logged_in']}/bb-rw.txt") or file_exists("data/members/active/{$_SESSION['logged_in']}/category.txt")) and file_exists("data/bb.txt") and !file_exists("data/noadd.txt")) {
           $login_username = $_SESSION['logged_in'];
       }
   }
@@ -672,7 +672,7 @@ a:active {
       }
       
       if ($_SESSION['logged_in'] != file_get_contents("data/username.txt")) {
-          if (file_exists("data/members/active/{$_SESSION['logged_in']}/rw.txt") and file_exists("data/bb.txt")) {
+          if (file_exists("data/members/active/{$_SESSION['logged_in']}/bb-rw.txt") and file_exists("data/bb.txt")) {
               $ml_from_firstname = file_get_contents("data/members/active/{$_SESSION['logged_in']}/firstname.txt");
               $ml_from_lastname = file_get_contents("data/members/active/{$_SESSION['logged_in']}/lastname.txt");
               
@@ -731,11 +731,12 @@ a:active {
       if ($dh_ml_member = opendir("data/members/active")) {
           while (($ml_member = readdir($dh_ml_member)) !== false) {
               if ($ml_member != "." && $ml_member != ".." && fnmatch("*", $ml_member)) {
-                  if (file_exists("data/members/active/$ml_member/noml.txt")) {
+          
+                  if (file_exists("data/members/active/$ml_member/bb-noml.txt")) {
                       continue;
                   }
                   
-                  if (file_exists("data/members/active/$ml_member/vacation.txt")) {
+                  if (file_exists("data/members/active/$ml_member/bb-vacation.txt")) {
                       continue;
                   }
                   
diff --git a/edit.php b/edit.php
index 5bae69a..3b8c413 100644
--- a/edit.php
+++ b/edit.php
@@ -31,7 +31,7 @@
   
   $do = 0;
   
-  if (file_exists("data/members/active/{$_SESSION['logged_in']}/rw.txt") and file_exists("data/wiki.txt") and (file_exists("data/items/{$_REQUEST['entry']}/edit.txt") or (file_get_contents("data/items/{$_REQUEST['entry']}/author.txt") == $_SESSION['logged_in']))) {
+  if (file_exists("data/members/active/{$_SESSION['logged_in']}/bb-rw.txt") and file_exists("data/wiki.txt") and (file_exists("data/items/{$_REQUEST['entry']}/edit.txt") or (file_get_contents("data/items/{$_REQUEST['entry']}/author.txt") == $_SESSION['logged_in']))) {
       $do = 1;
   }
   
@@ -448,7 +448,7 @@ a:active {
 <p><table border="0" cellspacing="2" cellpadding="0" bgcolor="#ffffff">
 
 <?php
-  if (($_SESSION['logged_in'] == $login_username) or (file_exists("data/members/active/{$_SESSION['logged_in']}/ul.txt") and file_exists("data/members/active/{$_SESSION['logged_in']}/rw.txt"))) {
+  if (($_SESSION['logged_in'] == $login_username) or (file_exists("data/members/active/{$_SESSION['logged_in']}/bb-ul.txt") and file_exists("data/members/active/{$_SESSION['logged_in']}/bb-rw.txt"))) {
 ?>
 
 <input type="hidden" name="max_file_size" value="<?php
diff --git a/index.php b/index.php
index 132c047..c6ca03b 100644
--- a/index.php
+++ b/index.php
@@ -285,7 +285,7 @@ if (isset($maj_req_entry) and !empty($maj_req_entry) and isset($_REQUEST['commen
                       
                                                        if ($maj_unread_active_member != "." && $maj_unread_active_member != "..") {
 
-                                                               if ((!file_exists("data/members/active/$maj_unread_active_member/vacation.txt") and !file_exists("data/items/$maj_req_entry/members")) or (!file_exists("data/members/active/$maj_unread_active_member/vacation.txt") and file_exists("data/items/$maj_req_entry/members") and file_exists("data/items/$maj_req_entry/members/$maj_unread_active_member"))) {
+                                                               if ((!file_exists("data/members/active/$maj_unread_active_member/bb-vacation.txt") and !file_exists("data/items/$maj_req_entry/members")) or (!file_exists("data/members/active/$maj_unread_active_member/bb-vacation.txt") and file_exists("data/items/$maj_req_entry/members") and file_exists("data/items/$maj_req_entry/members/$maj_unread_active_member"))) {
                                                                       
                                                                        if (!file_exists("data/members/active/$maj_unread_active_member/comments")) {
                                                                                mkdir("data/members/active/$maj_unread_active_member/comments");
@@ -413,11 +413,11 @@ if (isset($maj_req_entry) and !empty($maj_req_entry) and isset($_REQUEST['commen
                                                while (($maj_ml_member = readdir($maj_dh_ml_member)) !== false) {
                                                        if ($maj_ml_member != "." && $maj_ml_member != "..") {
 
-                                                               if (file_exists("data/members/active/$maj_ml_member/noml.txt")) {
+                                                               if (file_exists("data/members/active/$maj_ml_member/bb-noml.txt")) {
                                                                        continue;
                                                                }
 
-                                                               if (file_exists("data/members/active/$maj_ml_member/vacation.txt")) {
+                                                               if (file_exists("data/members/active/$maj_ml_member/bb-vacation.txt")) {
                                                                        continue;
                                                                }
 
@@ -926,7 +926,7 @@ elseif (isset($_SESSION['logged_in']) and ($_SESSION['logged_in'] != $maj_login_
                }
        }
 
-       if (!file_exists("data/noadd.txt") and (file_exists("data/members/active/{$_SESSION['logged_in']}/rw.txt") or file_exists("data/members/active/{$_SESSION['logged_in']}/categories/$maj_req_category"))) {
+       if (!file_exists("data/noadd.txt") and (file_exists("data/members/active/{$_SESSION['logged_in']}/bb-rw.txt") or file_exists("data/members/active/{$_SESSION['logged_in']}/categories/$maj_req_category"))) {
                echo '<a class="navlink" href="add.php">Add Entry</a><br>';
        }
 
@@ -2054,7 +2054,7 @@ foreach ($maj_disp as $maj_d) {
 
                readfile("data/items/$maj_d/title.txt");
 
-               if (isset($_SESSION['logged_in']) and ($_SESSION['logged_in'] != $maj_login_username) and file_exists("data/members/active/{$_SESSION['logged_in']}") and file_exists("data/wiki.txt") and (file_exists("data/items/$maj_d/edit.txt") or (file_get_contents("data/items/$maj_d/author.txt") == $_SESSION['logged_in'])) and file_exists("data/members/active/{$_SESSION['logged_in']}/rw.txt") and !file_exists("data/items/$maj_d/passwd.txt") and !file_exists("data/items/$maj_d/lock.txt")) {
+               if (isset($_SESSION['logged_in']) and ($_SESSION['logged_in'] != $maj_login_username) and file_exists("data/members/active/{$_SESSION['logged_in']}") and file_exists("data/wiki.txt") and (file_exists("data/items/$maj_d/edit.txt") or (file_get_contents("data/items/$maj_d/author.txt") == $_SESSION['logged_in'])) and file_exists("data/members/active/{$_SESSION['logged_in']}/bb-rw.txt") and !file_exists("data/items/$maj_d/passwd.txt") and !file_exists("data/items/$maj_d/lock.txt")) {
 
                        if (file_exists("data/items/$maj_d/wiki/delta") and (count(glob("data/items/$maj_d/wiki/delta/*")) > 0)) {
                                echo "<a href=\"wiki.php?entry=$maj_d\">";
diff --git a/login.php b/login.php
index d93e0d3..79ac5e8 100644
--- a/login.php
+++ b/login.php
@@ -105,11 +105,34 @@ a:active {
                        $err_username = "0";
                }
                else {
-                       if (file_exists("data/members/active/$put_username") and file_exists("data/bb.txt") and !file_exists("data/members/active/$put_username/lockout.txt")) {
+                       if (file_exists("data/members/active/$put_username") and file_exists("data/bb.txt") and !file_exists("data/members/active/$put_username/bb-lockout.txt")) {
+
                                $get_password = file_get_contents("data/members/active/$put_username/password.txt");
                                $last_login = "data/members/active/$put_username/bb-last.txt";
                                $logins = "data/members/active/$put_username/bb-logins.txt";
                                $err_username = "0";
+
+                               if (($get_password != $put_password) and (file_exists("data/bb-invalid.txt"))) {
+                              
+                                       $max_invalid = file_get_contents("data/bb-invalid.txt");
+
+                                       if (file_exists("data/members/active/$put_username/bb-invalid.txt")) {
+                                               $count_invalid = file_get_contents("data/members/active/$put_username/bb-invalid.txt");
+                                       }
+                                       else {
+                                               $count_invalid = "0";
+                                       }
+                                      
+                                       $count_invalid = $count_invalid + 1;
+                                      
+                                       $fp_invalid_txt = fopen("data/members/active/$put_username/bb-invalid.txt", "w");
+                                       fwrite($fp_invalid_txt, $count_invalid);
+                                       fclose($fp_invalid_txt);
+                                      
+                                       if ($count_invalid >= $max_invalid) {
+                                               touch("data/members/active/$put_username/bb-lockout.txt");
+                                       }
+                               }
                        }
                }
               
diff --git a/member.php b/member.php
index 7c1be00..96b11a9 100644
--- a/member.php
+++ b/member.php
@@ -173,55 +173,55 @@ if ($id == "all") {
 
        if (isset($_POST['edit']) and !empty($_POST['edit']) and ($_POST['edit'] == "on") and isset($_POST['username']) and !empty($_POST['username']) and file_exists("data/members/active/{$_POST['username']}") and isset($_SESSION['logged_in']) and !empty($_SESSION['logged_in']) and ($_SESSION['logged_in'] == file_get_contents("data/username.txt"))) {
       
-               if (isset($_POST['rw']) and !empty($_POST['rw']) and ($_POST['rw'] == "on") and !file_exists("data/members/active/{$_POST['username']}/rw.txt")) {
-                       touch("data/members/active/{$_POST['username']}/rw.txt");
+               if (isset($_POST['rw']) and !empty($_POST['rw']) and ($_POST['rw'] == "on") and !file_exists("data/members/active/{$_POST['username']}/bb-rw.txt")) {
+                       touch("data/members/active/{$_POST['username']}/bb-rw.txt");
                }
       
-               if ((!isset($_POST['rw']) or empty($_POST['rw'])) and file_exists("data/members/active/{$_POST['username']}/rw.txt")) {
-                       unlink("data/members/active/{$_POST['username']}/rw.txt");
+               if ((!isset($_POST['rw']) or empty($_POST['rw'])) and file_exists("data/members/active/{$_POST['username']}/bb-rw.txt")) {
+                       unlink("data/members/active/{$_POST['username']}/bb-rw.txt");
                }
       
-               if (isset($_POST['ul']) and !empty($_POST['ul']) and ($_POST['ul'] == "on") and !file_exists("data/members/active/{$_POST['username']}/ul.txt")) {
-                       touch("data/members/active/{$_POST['username']}/ul.txt");
+               if (isset($_POST['ul']) and !empty($_POST['ul']) and ($_POST['ul'] == "on") and !file_exists("data/members/active/{$_POST['username']}/bb-ul.txt")) {
+                       touch("data/members/active/{$_POST['username']}/bb-ul.txt");
                }
       
-               if ((!isset($_POST['ul']) or empty($_POST['ul'])) and file_exists("data/members/active/{$_POST['username']}/ul.txt")) {
-                       unlink("data/members/active/{$_POST['username']}/ul.txt");
+               if ((!isset($_POST['ul']) or empty($_POST['ul'])) and file_exists("data/members/active/{$_POST['username']}/bb-ul.txt")) {
+                       unlink("data/members/active/{$_POST['username']}/bb-ul.txt");
                }
       
-               if (isset($_POST['noml']) and !empty($_POST['noml']) and ($_POST['noml'] == "on") and !file_exists("data/members/active/{$_POST['username']}/noml.txt")) {
-                       touch("data/members/active/{$_POST['username']}/noml.txt");
+               if (isset($_POST['noml']) and !empty($_POST['noml']) and ($_POST['noml'] == "on") and !file_exists("data/members/active/{$_POST['username']}/bb-noml.txt")) {
+                       touch("data/members/active/{$_POST['username']}/bb-noml.txt");
                }
       
-               if ((!isset($_POST['noml']) or empty($_POST['noml'])) and file_exists("data/members/active/{$_POST['username']}/noml.txt")) {
-                       unlink("data/members/active/{$_POST['username']}/noml.txt");
+               if ((!isset($_POST['noml']) or empty($_POST['noml'])) and file_exists("data/members/active/{$_POST['username']}/bb-noml.txt")) {
+                       unlink("data/members/active/{$_POST['username']}/bb-noml.txt");
                }
       
                if (isset($_POST['lockout']) and !empty($_POST['lockout']) and ($_POST['lockout'] == "on")) {
 
-                       if (!file_exists("data/members/active/{$_POST['username']}/lockout.txt")) {
-                               touch("data/members/active/{$_POST['username']}/lockout.txt");
+                       if (!file_exists("data/members/active/{$_POST['username']}/bb-lockout.txt")) {
+                               touch("data/members/active/{$_POST['username']}/bb-lockout.txt");
                        }
                       
-                       if (file_exists("data/members/active/{$_POST['username']}/noml.txt")) {
-                               touch("data/members/active/{$_POST['username']}/noml2.txt");
+                       if (file_exists("data/members/active/{$_POST['username']}/bb-noml.txt")) {
+                               touch("data/members/active/{$_POST['username']}/bb-noml2.txt");
                        }
                       
-                       if (!file_exists("data/members/active/{$_POST['username']}/noml.txt")) {
-                               touch("data/members/active/{$_POST['username']}/noml.txt");
+                       if (!file_exists("data/members/active/{$_POST['username']}/bb-noml.txt")) {
+                               touch("data/members/active/{$_POST['username']}/bb-noml.txt");
                        }
                }
       
-               if ((!isset($_POST['lockout']) or empty($_POST['lockout'])) and file_exists("data/members/active/{$_POST['username']}/lockout.txt")) {
+               if ((!isset($_POST['lockout']) or empty($_POST['lockout'])) and file_exists("data/members/active/{$_POST['username']}/bb-lockout.txt")) {
 
-                       unlink("data/members/active/{$_POST['username']}/lockout.txt");
+                       unlink("data/members/active/{$_POST['username']}/bb-lockout.txt");
                       
-                       if (file_exists("data/members/active/{$_POST['username']}/noml.txt")) {
-                               unlink("data/members/active/{$_POST['username']}/noml.txt");
+                       if (file_exists("data/members/active/{$_POST['username']}/bb-noml.txt")) {
+                               unlink("data/members/active/{$_POST['username']}/bb-noml.txt");
                        }
 
-                       if (file_exists("data/members/active/{$_POST['username']}/noml2.txt")) {
-                               rename("data/members/active/{$_POST['username']}/noml2.txt","data/members/active/{$_POST['username']}/noml.txt");                      
+                       if (file_exists("data/members/active/{$_POST['username']}/bb-noml2.txt")) {
+                               rename("data/members/active/{$_POST['username']}/bb-noml2.txt","data/members/active/{$_POST['username']}/bb-noml.txt");                
                        }
                }
 
@@ -247,8 +247,8 @@ if ($id == "all") {
                        unlink("data/members/active/{$_POST['username']}/category.txt");
                }
       
-               if (file_exists("data/members/active/{$_POST['username']}/ul.txt") and !file_exists("data/members/active/{$_POST['username']}/rw.txt") and !file_exists("data/members/active/{$_POST['username']}/category.txt")) {
-                       unlink("data/members/active/{$_POST['username']}/ul.txt");
+               if (file_exists("data/members/active/{$_POST['username']}/bb-ul.txt") and !file_exists("data/members/active/{$_POST['username']}/bb-rw.txt") and !file_exists("data/members/active/{$_POST['username']}/category.txt")) {
+                       unlink("data/members/active/{$_POST['username']}/bb-ul.txt");
                }
       
                if (isset($_POST['del']) and !empty($_POST['del']) and ($_POST['del'] == "on")) {
@@ -299,6 +299,31 @@ if (file_exists("data/members/active")) {
 
                foreach ($show_member_list as $member_list_entry) {
 
+                       /* remove the lines below in version 3.0 */
+                       if (file_exists("data/members/active/$member_list_entry/rw.txt")) {
+                               rename("data/members/active/$member_list_entry/rw.txt","data/members/active/$member_list_entry/bb-rw.txt");
+                       }
+                       if (file_exists("data/members/active/$member_list_entry/vacation.txt")) {
+                               rename("data/members/active/$member_list_entry/vacation.txt","data/members/active/$member_list_entry/bb-vacation.txt");
+                       }
+                       if (file_exists("data/members/active/$member_list_entry/ul.txt")) {
+                               rename("data/members/active/$member_list_entry/ul.txt","data/members/active/$member_list_entry/bb-ul.txt");
+                       }
+                       if (file_exists("data/members/active/$member_list_entry/noml.txt")) {
+                               rename("data/members/active/$member_list_entry/noml.txt","data/members/active/$member_list_entry/bb-noml.txt");
+                       }
+                       if (file_exists("data/members/active/$member_list_entry/noml2.txt")) {
+                               rename("data/members/active/$member_list_entry/noml2.txt","data/members/active/$member_list_entry/bb-noml2.txt");
+                       }
+
+                       if (file_exists("data/members/active/$member_list_entry/resetx.txt")) {
+                               rename("data/members/active/$member_list_entry/resetx.txt","data/members/active/$member_list_entry/bb-resetx.txt");
+                       }
+                       if (file_exists("data/members/active/$member_list_entry/resetl.txt")) {
+                               rename("data/members/active/$member_list_entry/resetl.txt","data/members/active/$member_list_entry/bb-resetl.txt");
+                       }
+                       /* remove the lines above in version 3.0 */
+
                        echo "<tr><td bgcolor=#ffffff align=center>";
 
                        $sess_count = 0;
@@ -358,8 +383,8 @@ if (file_exists("data/members/active")) {
                                echo "<td bgcolor=#ffffff align=center><nobr><code>$member_since</code></nobr></td>";
                        }
 
-                       if ((file_get_contents("data/username.txt") == $member_list_entry) and file_exists("data/logins.txt")) {
-                               $logins = file_get_contents("data/logins.txt");
+                       if ((file_get_contents("data/username.txt") == $member_list_entry) and file_exists("data/bb-logins.txt")) {
+                               $logins = file_get_contents("data/bb-logins.txt");
                                echo "<td bgcolor=#ffffff align=right><code>$logins</code></td>";
                        }
                        elseif (file_exists("data/members/active/$member_list_entry") and file_exists("data/members/active/$member_list_entry/bb-logins.txt")) {
@@ -367,7 +392,7 @@ if (file_exists("data/members/active")) {
                                echo "<td bgcolor=#ffffff align=right><code>$logins</code></td>";
                        }
 
-                       if ((file_get_contents("data/username.txt") == $member_list_entry) and !file_exists("data/logins.txt")) {
+                       if ((file_get_contents("data/username.txt") == $member_list_entry) and !file_exists("data/bb-logins.txt")) {
                                echo "<td bgcolor=#ffffff align=right><code>0</code></td>";
                        }
                        elseif (file_exists("data/members/active/$member_list_entry") and !file_exists("data/members/active/$member_list_entry/bb-logins.txt")) {
@@ -439,25 +464,25 @@ if (file_exists("data/members/active")) {
                                        echo "<form action=member.php method=post><input type=hidden name=id value=all><input type=hidden name=edit value=on><input type=hidden name=username value=$member_list_entry>";
                                        echo "<td bgcolor=#ffffff align=center><input type=checkbox name=rw";
 
-                                       if (file_exists("data/members/active/$member_list_entry/rw.txt")) {
+                                       if (file_exists("data/members/active/$member_list_entry/bb-rw.txt")) {
                                                echo " checked";
                                        }
 
                                        echo "></td><td bgcolor=#ffffff align=center><input type=checkbox name=ul";
 
-                                       if (file_exists("data/members/active/$member_list_entry/ul.txt")) {
+                                       if (file_exists("data/members/active/$member_list_entry/bb-ul.txt")) {
                                                echo " checked";
                                        }
 
                                        echo "></td><td bgcolor=#ffffff align=center><input type=checkbox name=noml";
 
-                                       if (file_exists("data/members/active/$member_list_entry/noml.txt")) {
+                                       if (file_exists("data/members/active/$member_list_entry/bb-noml.txt")) {
                                                echo " checked";
                                        }
                                       
                                        echo "></td><td bgcolor=#ffffff align=center><input type=checkbox name=lockout";
 
-                                       if (file_exists("data/members/active/$member_list_entry/lockout.txt")) {
+                                       if (file_exists("data/members/active/$member_list_entry/bb-lockout.txt")) {
                                                echo " checked";
                                        }                                      
 
@@ -804,8 +829,8 @@ elseif (file_exists("data/members/active/$id")) {
        echo "<tr><td width=90>profile views</td><td><code>$views</code></td></tr>";
 }
 
-if ((file_get_contents("data/username.txt") == $id) and file_exists("data/logins.txt")) {
-       $logins = file_get_contents("data/logins.txt");
+if ((file_get_contents("data/username.txt") == $id) and file_exists("data/bb-logins.txt")) {
+       $logins = file_get_contents("data/bb-logins.txt");
        echo "<tr><td width=90>total logins</td><td><code>$logins</code></td></tr>";
 }
 elseif (file_exists("data/members/active/$id") and file_exists("data/members/active/$id/bb-logins.txt")) {
@@ -892,7 +917,7 @@ if ($id == file_get_contents("data/username.txt")) {
 
 if (($id != file_get_contents("data/username.txt")) and file_exists("data/members/active/$id")) {
 
-       if (file_exists("data/members/active/$id/rw.txt")) {
+       if (file_exists("data/members/active/$id/bb-rw.txt")) {
                echo "rw";
        }
        else {
@@ -902,7 +927,7 @@ if (($id != file_get_contents("data/username.txt")) and file_exists("data/member
 
 if (($id != file_get_contents("data/username.txt")) and file_exists("data/members/active/$id")) {
 
-       if (file_exists("data/members/active/$id/ul.txt")) {
+       if (file_exists("data/members/active/$id/bb-ul.txt")) {
                echo " upload";
        }
 }
diff --git a/options.php b/options.php
index df913e8..81a81f5 100644
--- a/options.php
+++ b/options.php
@@ -108,7 +108,7 @@ if (isset($_REQUEST['username']) and !empty($_REQUEST['username']) and isset($_R
 
        if (file_exists("data/members/active/$username") and ($_REQUEST['key'] == file_get_contents("data/members/active/$username/key.txt"))) {
                unlink("data/members/active/$username/key.txt");
-               unlink("data/members/active/$username/vacation.txt");
+               unlink("data/members/active/$username/bb-vacation.txt");
                unlink("data/members/active/$username/email.txt");
                rename("data/members/active/$username/new-email.txt","data/members/active/$username/email.txt");
                echo "<p><font style=\"font-size: 12px;\"><b>Thanks!</b></font></p><p>You have successfully verified your new e-mail address.<br>Click <a href=index.php>here</a> to go to the index page.</p>";
@@ -319,20 +319,20 @@ $max_image_size = 1000000;
        }
 }
 
-if (isset($_POST['vacation']) and !empty($_POST['vacation']) and ($_POST['vacation'] == "on") and !file_exists("data/members/active/{$_SESSION['logged_in']}/vacation.txt")) {
-       touch("data/members/active/{$_SESSION['logged_in']}/vacation.txt");
+if (isset($_POST['vacation']) and !empty($_POST['vacation']) and ($_POST['vacation'] == "on") and !file_exists("data/members/active/{$_SESSION['logged_in']}/bb-vacation.txt")) {
+       touch("data/members/active/{$_SESSION['logged_in']}/bb-vacation.txt");
 }
 
 if (!isset($_POST['vacation']) or empty($_POST['vacation'])) {
        if (isset($_POST['edit']) and ($_POST['edit'] == "on")) {
-               if (file_exists("data/members/active/{$_SESSION['logged_in']}/vacation.txt")) {
-                       unlink("data/members/active/{$_SESSION['logged_in']}/vacation.txt");
+               if (file_exists("data/members/active/{$_SESSION['logged_in']}/bb-vacation.txt")) {
+                       unlink("data/members/active/{$_SESSION['logged_in']}/bb-vacation.txt");
                }
        }
 }
 
-if (file_exists("data/members/active/{$_SESSION['logged_in']}/key.txt") and !file_exists("data/members/active/{$_SESSION['logged_in']}/vacation.txt")) {
-       touch("data/members/active/{$_SESSION['logged_in']}/vacation.txt");
+if (file_exists("data/members/active/{$_SESSION['logged_in']}/key.txt") and !file_exists("data/members/active/{$_SESSION['logged_in']}/bb-vacation.txt")) {
+       touch("data/members/active/{$_SESSION['logged_in']}/bb-vacation.txt");
 }
 
 
@@ -515,7 +515,7 @@ if (file_exists("data/members/active/{$_SESSION['logged_in']}/bb-last.txt")) {
 
 <tr><td bgcolor="#ffffff"><p>country</p></td><td bgcolor="#ffffff" colspan="2">
 
-<select class="input" name="country">
+<select class="input" name="country" required>
 <option<?php if (!file_exists("data/members/active/{$_SESSION['logged_in']}/country.txt")) { echo " selected"; } ?> value=""></option>
 <option<?php if (file_get_contents("data/members/active/{$_SESSION['logged_in']}/country.txt") == "AF") { echo " selected"; } ?> value="AF">Afghanistan</option>
 <option<?php if (file_get_contents("data/members/active/{$_SESSION['logged_in']}/country.txt") == "AX") { echo " selected"; } ?> value="AX">Aland (Ahvenanmaa) Islands</option>
@@ -804,7 +804,7 @@ if (file_exists("data/avatar.txt")) {
 if (file_exists("data/avatar.txt") and (file_exists("images/members/{$_SESSION['logged_in']}/avatar.gif") or file_exists("images/members/{$_SESSION['logged_in']}/avatar.jpg") or file_exists("images/members/{$_SESSION['logged_in']}/avatar.png"))) { ?>
 <tr><td bgcolor="#ffffff"><p></p></td><td bgcolor="#ffffff" colspan="2"><p><input type="checkbox" name="del_avatar">delete existing avatar</p></td></tr>
 <?php } if (file_exists("data/ml.txt") and !file_exists("data/members/active/{$_SESSION['logged_in']}/key.txt")) { ?>
-<tr><td bgcolor="#ffffff"><p></p></td><td bgcolor="#ffffff" colspan="2"><p><input type="checkbox" name="vacation" <?php if (file_exists("data/members/active/{$_SESSION['logged_in']}/vacation.txt")) { echo checked; } ?>>temporarily disable mailing list subscription</p></td></tr>
+<tr><td bgcolor="#ffffff"><p></p></td><td bgcolor="#ffffff" colspan="2"><p><input type="checkbox" name="vacation" <?php if (file_exists("data/members/active/{$_SESSION['logged_in']}/bb-vacation.txt")) { echo checked; } ?>>temporarily disable mailing list subscription</p></td></tr>
 <?php } ?>
 
 <?php if (!file_exists("data/members/active/{$_SESSION['logged_in']}/bday.txt")) { ?>
diff --git a/reset.php b/reset.php
index 3c247bc..834b189 100644
--- a/reset.php
+++ b/reset.php
@@ -94,10 +94,10 @@ a:active {
 </style>
 
 <form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
-<input required autofocus autocomplete=off class=input type=text name=username>
-<input required autocomplete=off class=input type=email name=addr>
-<input required autocomplete=off class=input type=text name=bday>
-<input class=input type=submit value=reset>
+<input required autofocus autocomplete="off" class="input" type="text" name="username">
+<input required autocomplete="off" class="input" type="email" name="addr">
+<input required autocomplete="off" class="input" type="text" name="bday">
+<input class="input" type="submit" value="reset">
 </form>
 
 <?php
@@ -131,10 +131,9 @@ if (isset($_POST['username']) and !empty($_POST['username']) and isset($_POST['a
        $fp_passwd_txt = fopen("data/members/active/$username/password.txt","w");
        fwrite($fp_passwd_txt,$passwd);
        fclose($fp_passwd_txt);
-
-
-       if (file_exists("data/members/active/$username/resetx.txt")) {
-               $resetx = file_get_contents("data/members/active/$username/resetx.txt");
+      
+       if (file_exists("data/members/active/$username/bb-resetx.txt")) {
+               $resetx = file_get_contents("data/members/active/$username/bb-resetx.txt");
        }
        else {
                $resetx = 0;
@@ -142,12 +141,12 @@ if (isset($_POST['username']) and !empty($_POST['username']) and isset($_POST['a
 
        $resetx = $resetx + 1;
 
-       $fp_resetx_txt = fopen("data/members/active/$username/resetx.txt","w");
+       $fp_resetx_txt = fopen("data/members/active/$username/bb-resetx.txt","w");
        fwrite($fp_resetx_txt,$resetx);
        fclose($fp_resetx_txt);
 
        $resetl = date("Ymd", time() + $offset);
-       $fp_resetl_txt = fopen("data/members/active/$username/resetl.txt","w");
+       $fp_resetl_txt = fopen("data/members/active/$username/bb-resetl.txt","w");
        fwrite($fp_resetl_txt,$resetl);
        fclose($fp_resetl_txt);
 
@@ -184,6 +183,10 @@ if (isset($_POST['username']) and !empty($_POST['username']) and isset($_POST['a
                "Reply-To: $from_email\r\n" .
                "X-Mailer: $mailer");
 
+       if (file_exists("data/members/active/$username/bb-lockout.txt")) {
+               unlink("data/members/active/$username/bb-lockout.txt");
+       }
+
        echo "<p><font style=\"font-size: 12px;\"><b>Password Reset</b></font></p><p>Check your ";
        readfile("data/members/active/$username/email.txt");
        echo " account for your new password.";
diff --git a/settings.php b/settings.php
index d1cb5c7..93ef550 100644
--- a/settings.php
+++ b/settings.php
@@ -701,6 +701,21 @@ if (!isset($_POST['bb_idle']) or empty($_POST['bb_idle']) or !is_numeric($_POST[
        }
 }
 
+if (isset($_POST['bb_invalid']) and !empty($_POST['bb_invalid']) and is_numeric($_POST['bb_invalid']) and ($_POST['bb_invalid'] > 0) and (file_get_contents("data/bb-invalid.txt") != $_POST['bb_invalid'])) {
+       $bb_invalid_write_content = number_format($_POST['bb_invalid'],0,'.','');
+       $fp_bb_invalid_txt = fopen("data/bb-invalid.txt","w");
+       fwrite($fp_bb_invalid_txt,$bb_invalid_write_content);
+       fclose($fp_bb_invalid_txt);
+}
+
+if (!isset($_POST['bb_invalid']) or empty($_POST['bb_invalid']) or !is_numeric($_POST['bb_invalid']) or ($_POST['bb_invalid'] <= 0)) {
+       if (isset($_POST['edit']) and ($_POST['edit'] == "on")) {
+               if (file_exists("data/bb-invalid.txt")) {
+                       unlink("data/bb-invalid.txt");
+               }
+       }
+}
+
 if (isset($_POST['bb_reserved']) and !empty($_POST['bb_reserved']) and (file_get_contents("data/bb-reserved.txt") != $_POST['bb_reserved'])) {
        $bb_reserved_write_content = strtolower($_POST['bb_reserved']);
        $bb_reserved_write_content = trim($bb_reserved_write_content);
@@ -1529,6 +1544,13 @@ if (file_exists("data/bb-idle.txt")) {
 }
 ?>></td></tr>
 
+<tr><td>maximum invalid logins</td><td><input class="input" autocomplete="off" type="text" name="bb_invalid" <?php
+if (file_exists("data/bb-invalid.txt")) {
+       echo "value=";
+       readfile("data/bb-invalid.txt");
+}
+?>></td></tr>
+
 <tr><td>reserved usernames</td><td><textarea class="input" name="bb_reserved"><?php if (file_exists("data/bb-reserved.txt")) { readfile("data/bb-reserved.txt"); } ?></textarea></td></tr>
 
 <tr><td>banned email addresses</td><td><textarea class="input" name="bb_banned"><?php if (file_exists("data/bb-banned.txt")) { readfile("data/bb-banned.txt"); } ?></textarea></td></tr>
diff --git a/wiki.php b/wiki.php
index 6eb0369..63c4056 100644
--- a/wiki.php
+++ b/wiki.php
@@ -21,7 +21,7 @@
                exit();
        }
        $do = 0;
-       if (file_exists("data/members/active/{$_SESSION['logged_in']}/rw.txt") and file_exists("data/wiki.txt") and (file_exists("data/items/{$_REQUEST['entry']}/edit.txt") or (file_get_contents("data/items/{$_REQUEST['entry']}/author.txt") == $_SESSION['logged_in'])))
+       if (file_exists("data/members/active/{$_SESSION['logged_in']}/bb-rw.txt") and file_exists("data/wiki.txt") and (file_exists("data/items/{$_REQUEST['entry']}/edit.txt") or (file_get_contents("data/items/{$_REQUEST['entry']}/author.txt") == $_SESSION['logged_in'])))
        {
                $do = 1;
        }
 
filedropmaj.git-01822e4.tar.bz2
147.95 KB
79 downloads
filedropmaj.git-01822e4.zip
201.96 KB
27 downloads
filedropmaj.git-0291349.tar.bz2
152.85 KB
79 downloads
filedropmaj.git-0291349.zip
211.90 KB
27 downloads
filedropmaj.git-02cb3b7.tar.bz2
151.48 KB
81 downloads
filedropmaj.git-02cb3b7.zip
209.82 KB
27 downloads
filedropmaj.git-0811dd5.tar.bz2
152.90 KB
76 downloads
filedropmaj.git-0811dd5.zip
211.90 KB
25 downloads
filedropmaj.git-083625f.tar.bz2
132.92 KB
75 downloads
filedropmaj.git-083625f.zip
179.59 KB
27 downloads
filedropmaj.git-0885d7b.tar.bz2
92.63 KB
77 downloads
filedropmaj.git-0885d7b.zip
132.34 KB
24 downloads
filedropmaj.git-09c6f33.tar.bz2
151.51 KB
77 downloads
filedropmaj.git-09c6f33.zip
202.12 KB
25 downloads
filedropmaj.git-0b26a85.tar.bz2
151.44 KB
73 downloads
filedropmaj.git-0b26a85.zip
209.75 KB
23 downloads
filedropmaj.git-0b32424.tar.bz2
151.66 KB
75 downloads
filedropmaj.git-0b32424.zip
206.72 KB
23 downloads
filedropmaj.git-0f3ac59.tar.bz2
152.14 KB
73 downloads
filedropmaj.git-0f3ac59.zip
211.45 KB
20 downloads
filedropmaj.git-11d4582.tar.bz2
143.02 KB
5 downloads
filedropmaj.git-11d4582.zip
195.12 KB
19 downloads
filedropmaj.git-17f105a.tar.bz2
137.96 KB
71 downloads
filedropmaj.git-17f105a.zip
193.02 KB
19 downloads
filedropmaj.git-183270b.tar.bz2
137.54 KB
74 downloads
filedropmaj.git-183270b.zip
187.93 KB
20 downloads
filedropmaj.git-197a49d.tar.bz2
152.03 KB
72 downloads
filedropmaj.git-197a49d.zip
211.32 KB
23 downloads
filedropmaj.git-1b9af25.tar.bz2
152.87 KB
69 downloads
filedropmaj.git-1b9af25.zip
211.96 KB
21 downloads
filedropmaj.git-1be2914.tar.bz2
149.30 KB
71 downloads
filedropmaj.git-1be2914.zip
203.09 KB
20 downloads
filedropmaj.git-1bed800.tar.bz2
138.15 KB
68 downloads
filedropmaj.git-1bed800.zip
190.15 KB
24 downloads
filedropmaj.git-1d330de.tar.bz2
151.65 KB
70 downloads
filedropmaj.git-1d330de.zip
210.80 KB
22 downloads
filedropmaj.git-1df190d.tar.bz2
151.72 KB
71 downloads
filedropmaj.git-1df190d.zip
210.85 KB
20 downloads
filedropmaj.git-1ee1167.tar.bz2
151.52 KB
72 downloads
filedropmaj.git-1ee1167.zip
202.16 KB
21 downloads
filedropmaj.git-2057838.tar.bz2
151.76 KB
68 downloads
filedropmaj.git-2057838.zip
202.36 KB
20 downloads
filedropmaj.git-2075213.tar.bz2
155.81 KB
68 downloads
filedropmaj.git-2075213.zip
208.39 KB
20 downloads
filedropmaj.git-211b7b0.tar.bz2
142.53 KB
71 downloads
filedropmaj.git-211b7b0.zip
194.64 KB
21 downloads
filedropmaj.git-2331f5a.tar.bz2
75.55 KB
72 downloads
filedropmaj.git-2331f5a.zip
100.32 KB
23 downloads
filedropmaj.git-25e3c4c.tar.bz2
147.57 KB
71 downloads
filedropmaj.git-25e3c4c.zip
201.46 KB
20 downloads
filedropmaj.git-2622313.tar.bz2
151.47 KB
67 downloads
filedropmaj.git-2622313.zip
206.44 KB
18 downloads
filedropmaj.git-273e4b2.tar.bz2
152.60 KB
67 downloads
filedropmaj.git-273e4b2.zip
203.40 KB
22 downloads
filedropmaj.git-2753e51.tar.bz2
136.37 KB
72 downloads
filedropmaj.git-2753e51.zip
184.34 KB
19 downloads
filedropmaj.git-2c1a589.tar.bz2
155.89 KB
66 downloads
filedropmaj.git-2c1a589.zip
208.69 KB
20 downloads
filedropmaj.git-2c3d544.tar.bz2
151.33 KB
9 downloads
filedropmaj.git-2c3d544.zip
206.23 KB
21 downloads
filedropmaj.git-2c85f72.tar.bz2
143.23 KB
67 downloads
filedropmaj.git-2c85f72.zip
194.84 KB
18 downloads
filedropmaj.git-2dc622c.tar.bz2
151.76 KB
66 downloads
filedropmaj.git-2dc622c.zip
202.35 KB
21 downloads
filedropmaj.git-2fabf8a.tar.bz2
151.35 KB
69 downloads
filedropmaj.git-2fabf8a.zip
206.24 KB
22 downloads
filedropmaj.git-322736b.tar.bz2
137.81 KB
62 downloads
filedropmaj.git-322736b.zip
190.18 KB
20 downloads
filedropmaj.git-374279c.tar.bz2
137.54 KB
62 downloads
filedropmaj.git-374279c.zip
189.58 KB
19 downloads
filedropmaj.git-37e852d.tar.bz2
151.32 KB
58 downloads
filedropmaj.git-37e852d.zip
206.21 KB
18 downloads
filedropmaj.git-38636de.tar.bz2
147.35 KB
60 downloads
filedropmaj.git-38636de.zip
201.16 KB
76 downloads
filedropmaj.git-3b25d71.tar.bz2
147.88 KB
52 downloads
filedropmaj.git-3b25d71.zip
201.85 KB
20 downloads
filedropmaj.git-3b6df7a.tar.bz2
153.39 KB
49 downloads
filedropmaj.git-3b6df7a.zip
204.55 KB
24 downloads
filedropmaj.git-3bf6bd2.tar.bz2
137.77 KB
54 downloads
filedropmaj.git-3bf6bd2.zip
190.16 KB
21 downloads
filedropmaj.git-3e012ff.tar.bz2
152.83 KB
52 downloads
filedropmaj.git-3e012ff.zip
211.89 KB
23 downloads
filedropmaj.git-4129ab8.tar.bz2
135.86 KB
60 downloads
filedropmaj.git-4129ab8.zip
184.30 KB
21 downloads
filedropmaj.git-414dbb4.tar.bz2
91.09 KB
57 downloads
filedropmaj.git-414dbb4.zip
130.29 KB
21 downloads
filedropmaj.git-43755d0.tar.bz2
150.25 KB
50 downloads
filedropmaj.git-43755d0.zip
204.44 KB
21 downloads
filedropmaj.git-4c20005.tar.bz2
55.59 KB
52 downloads
filedropmaj.git-4c20005.zip
74.20 KB
21 downloads
filedropmaj.git-4ccdbcd.tar.bz2
136.38 KB
55 downloads
filedropmaj.git-4ccdbcd.zip
185.22 KB
23 downloads
filedropmaj.git-4cd1a1c.tar.bz2
155.25 KB
50 downloads
filedropmaj.git-4cd1a1c.zip
207.88 KB
24 downloads
filedropmaj.git-4cf16d1.tar.bz2
76.32 KB
55 downloads
filedropmaj.git-4cf16d1.zip
101.80 KB
19 downloads
filedropmaj.git-4ec45a0.tar.bz2
131.16 KB
51 downloads
filedropmaj.git-4ec45a0.zip
172.66 KB
21 downloads
filedropmaj.git-4f73c22.tar.bz2
134.46 KB
52 downloads
filedropmaj.git-4f73c22.zip
182.45 KB
20 downloads
filedropmaj.git-5457969.tar.bz2
155.21 KB
54 downloads
filedropmaj.git-5457969.zip
207.63 KB
21 downloads
filedropmaj.git-57ee8a1.tar.bz2
145.49 KB
55 downloads
filedropmaj.git-57ee8a1.zip
198.12 KB
73 downloads
filedropmaj.git-592978d.tar.bz2
138.38 KB
53 downloads
filedropmaj.git-592978d.zip
190.58 KB
18 downloads
filedropmaj.git-5935b42.tar.bz2
135.60 KB
51 downloads
filedropmaj.git-5935b42.zip
183.28 KB
22 downloads
filedropmaj.git-5b443b6.tar.bz2
152.00 KB
53 downloads
filedropmaj.git-5b443b6.zip
211.07 KB
20 downloads
filedropmaj.git-5b4a9bf.tar.bz2
155.29 KB
50 downloads
filedropmaj.git-5b4a9bf.zip
207.93 KB
19 downloads
filedropmaj.git-5b6c01d.tar.bz2
147.13 KB
52 downloads
filedropmaj.git-5b6c01d.zip
200.86 KB
23 downloads
filedropmaj.git-5da45f7.tar.bz2
147.27 KB
52 downloads
filedropmaj.git-5da45f7.zip
201.02 KB
20 downloads
filedropmaj.git-5e53618.tar.bz2
75.57 KB
55 downloads
filedropmaj.git-5e53618.zip
100.78 KB
21 downloads
filedropmaj.git-5f8ca35.tar.bz2
136.39 KB
50 downloads
filedropmaj.git-5f8ca35.zip
185.32 KB
20 downloads
filedropmaj.git-61e3d7b.tar.bz2
153.52 KB
50 downloads
filedropmaj.git-61e3d7b.zip
204.73 KB
21 downloads
filedropmaj.git-62a635c.tar.bz2
155.90 KB
53 downloads
filedropmaj.git-62a635c.zip
208.73 KB
21 downloads
filedropmaj.git-6390d34.tar.bz2
138.39 KB
54 downloads
filedropmaj.git-6390d34.zip
190.56 KB
24 downloads
filedropmaj.git-649dfbe.tar.bz2
151.78 KB
53 downloads
filedropmaj.git-649dfbe.zip
210.91 KB
21 downloads
filedropmaj.git-65d6570.tar.bz2
151.63 KB
56 downloads
filedropmaj.git-65d6570.zip
210.80 KB
23 downloads
filedropmaj.git-660433f.tar.bz2
151.67 KB
53 downloads
filedropmaj.git-660433f.zip
206.68 KB
21 downloads
filedropmaj.git-6619ae5.tar.bz2
153.23 KB
10 downloads
filedropmaj.git-6619ae5.zip
204.28 KB
20 downloads
filedropmaj.git-68e4e3a.tar.bz2
135.13 KB
50 downloads
filedropmaj.git-68e4e3a.zip
182.91 KB
20 downloads
filedropmaj.git-6995297.tar.bz2
144.93 KB
55 downloads
filedropmaj.git-6995297.zip
197.18 KB
18 downloads
filedropmaj.git-69d6fd3.tar.bz2
143.23 KB
50 downloads
filedropmaj.git-69d6fd3.zip
194.89 KB
23 downloads
filedropmaj.git-6aa872a.tar.bz2
142.95 KB
55 downloads
filedropmaj.git-6aa872a.zip
195.11 KB
22 downloads
filedropmaj.git-6bad5c7.tar.bz2
147.04 KB
55 downloads
filedropmaj.git-6bad5c7.zip
200.79 KB
21 downloads
filedropmaj.git-6e96a2d.tar.bz2
152.13 KB
54 downloads
filedropmaj.git-6e96a2d.zip
207.21 KB
74 downloads
filedropmaj.git-73d46de.tar.bz2
138.42 KB
51 downloads
filedropmaj.git-73d46de.zip
190.59 KB
20 downloads
filedropmaj.git-75e0478.tar.bz2
144.54 KB
55 downloads
filedropmaj.git-75e0478.zip
196.70 KB
22 downloads
filedropmaj.git-784fc35.tar.bz2
143.07 KB
54 downloads
filedropmaj.git-784fc35.zip
195.01 KB
20 downloads
filedropmaj.git-7872a83.tar.bz2
138.51 KB
55 downloads
filedropmaj.git-7872a83.zip
190.69 KB
19 downloads
filedropmaj.git-788fb89.tar.bz2
138.30 KB
54 downloads
filedropmaj.git-788fb89.zip
191.26 KB
25 downloads
filedropmaj.git-796d8a3.tar.bz2
138.92 KB
52 downloads
filedropmaj.git-796d8a3.zip
191.24 KB
20 downloads
filedropmaj.git-79a5e8d.tar.bz2
132.43 KB
54 downloads
filedropmaj.git-79a5e8d.zip
176.90 KB
21 downloads
filedropmaj.git-7b3b2e0.tar.bz2
147.24 KB
53 downloads
filedropmaj.git-7b3b2e0.zip
201.05 KB
21 downloads
filedropmaj.git-7e28eed.tar.bz2
138.89 KB
49 downloads
filedropmaj.git-7e28eed.zip
191.24 KB
21 downloads
filedropmaj.git-8279296.tar.bz2
135.56 KB
55 downloads
filedropmaj.git-8279296.zip
183.25 KB
21 downloads
filedropmaj.git-84c17fe.tar.bz2
152.87 KB
55 downloads
filedropmaj.git-84c17fe.zip
211.90 KB
21 downloads
filedropmaj.git-87c5d5f.tar.bz2
135.78 KB
53 downloads
filedropmaj.git-87c5d5f.zip
183.64 KB
19 downloads
filedropmaj.git-8a48901.tar.bz2
147.27 KB
55 downloads
filedropmaj.git-8a48901.zip
201.06 KB
21 downloads
filedropmaj.git-8ad9892.tar.bz2
164.04 KB
53 downloads
filedropmaj.git-8ad9892.zip
224.42 KB
20 downloads
filedropmaj.git-8b4cf2a.tar.bz2
134.06 KB
53 downloads
filedropmaj.git-8b4cf2a.zip
180.78 KB
21 downloads
filedropmaj.git-8b7e38d.tar.bz2
138.04 KB
59 downloads
filedropmaj.git-8b7e38d.zip
190.39 KB
77 downloads
filedropmaj.git-8df6e40.tar.bz2
143.11 KB
55 downloads
filedropmaj.git-8df6e40.zip
194.66 KB
25 downloads
filedropmaj.git-8e80c84.tar.bz2
138.18 KB
10 downloads
filedropmaj.git-8e80c84.zip
190.30 KB
21 downloads
filedropmaj.git-8ec0fba.tar.bz2
138.37 KB
56 downloads
filedropmaj.git-8ec0fba.zip
191.39 KB
20 downloads
filedropmaj.git-8f7abf6.tar.bz2
153.36 KB
55 downloads
filedropmaj.git-8f7abf6.zip
211.80 KB
19 downloads
filedropmaj.git-923f11a.tar.bz2
138.14 KB
52 downloads
filedropmaj.git-923f11a.zip
191.03 KB
22 downloads
filedropmaj.git-955e82e.tar.bz2
42.71 KB
5 downloads
filedropmaj.git-955e82e.zip
59.77 KB
20 downloads
filedropmaj.git-95add4a.tar.bz2
151.23 KB
57 downloads
filedropmaj.git-95add4a.zip
205.91 KB
20 downloads
filedropmaj.git-96fe0ba.tar.bz2
137.68 KB
48 downloads
filedropmaj.git-96fe0ba.zip
190.34 KB
20 downloads
filedropmaj.git-99a90ce.tar.bz2
137.82 KB
56 downloads
filedropmaj.git-99a90ce.zip
191.20 KB
23 downloads
filedropmaj.git-9a69bb9.tar.bz2
143.19 KB
56 downloads
filedropmaj.git-9a69bb9.zip
194.70 KB
22 downloads
filedropmaj.git-9b6538e.tar.bz2
151.45 KB
53 downloads
filedropmaj.git-9b6538e.zip
202.15 KB
18 downloads
filedropmaj.git-9c4292d.tar.bz2
132.06 KB
54 downloads
filedropmaj.git-9c4292d.zip
176.93 KB
20 downloads
filedropmaj.git-9c78d40.tar.bz2
137.70 KB
54 downloads
filedropmaj.git-9c78d40.zip
190.49 KB
23 downloads
filedropmaj.git-9f1363f.tar.bz2
43.12 KB
56 downloads
filedropmaj.git-9f1363f.zip
60.31 KB
20 downloads
filedropmaj.git-a16c3eb.tar.bz2
90.22 KB
51 downloads
filedropmaj.git-a16c3eb.zip
128.62 KB
20 downloads
filedropmaj.git-a3aa72d.tar.bz2
153.00 KB
54 downloads
filedropmaj.git-a3aa72d.zip
203.86 KB
22 downloads
filedropmaj.git-a6886e4.tar.bz2
144.69 KB
55 downloads
filedropmaj.git-a6886e4.zip
196.95 KB
21 downloads
filedropmaj.git-a8669dc.tar.bz2
135.60 KB
52 downloads
filedropmaj.git-a8669dc.zip
183.34 KB
20 downloads
filedropmaj.git-a9477f1.tar.bz2
135.59 KB
54 downloads
filedropmaj.git-a9477f1.zip
183.45 KB
22 downloads
filedropmaj.git-aa285db.tar.bz2
151.73 KB
54 downloads
filedropmaj.git-aa285db.zip
210.85 KB
20 downloads
filedropmaj.git-aa6ae87.tar.bz2
135.44 KB
54 downloads
filedropmaj.git-aa6ae87.zip
183.88 KB
21 downloads
filedropmaj.git-ab6bc22.tar.bz2
151.71 KB
48 downloads
filedropmaj.git-ab6bc22.zip
210.84 KB
23 downloads
filedropmaj.git-adef726.tar.bz2
153.48 KB
52 downloads
filedropmaj.git-adef726.zip
212.32 KB
21 downloads
filedropmaj.git-afe5877.tar.bz2
144.73 KB
49 downloads
filedropmaj.git-afe5877.zip
197.01 KB
20 downloads
filedropmaj.git-b2d9f8e.tar.bz2
133.22 KB
51 downloads
filedropmaj.git-b2d9f8e.zip
179.27 KB
20 downloads
filedropmaj.git-b41f320.tar.bz2
151.56 KB
50 downloads
filedropmaj.git-b41f320.zip
209.85 KB
25 downloads
filedropmaj.git-b4432ce.tar.bz2
152.96 KB
51 downloads
filedropmaj.git-b4432ce.zip
203.86 KB
22 downloads
filedropmaj.git-b67b08f.tar.bz2
151.27 KB
52 downloads
filedropmaj.git-b67b08f.zip
206.15 KB
23 downloads
filedropmaj.git-b899831.tar.bz2
143.12 KB
52 downloads
filedropmaj.git-b899831.zip
194.60 KB
21 downloads
filedropmaj.git-b8b49c1.tar.bz2
132.59 KB
50 downloads
filedropmaj.git-b8b49c1.zip
178.90 KB
19 downloads
filedropmaj.git-b9c5bcf.tar.bz2
155.92 KB
51 downloads
filedropmaj.git-b9c5bcf.zip
208.70 KB
19 downloads
filedropmaj.git-bbddb1f.tar.bz2
151.63 KB
50 downloads
filedropmaj.git-bbddb1f.zip
209.92 KB
23 downloads
filedropmaj.git-bcaa744.tar.bz2
146.98 KB
54 downloads
filedropmaj.git-bcaa744.zip
200.79 KB
22 downloads
filedropmaj.git-c1ff9dc.tar.bz2
138.39 KB
54 downloads
filedropmaj.git-c1ff9dc.zip
191.43 KB
104 downloads
filedropmaj.git-c20c4b0.tar.bz2
151.64 KB
52 downloads
filedropmaj.git-c20c4b0.zip
210.79 KB
19 downloads
filedropmaj.git-c37f3f7.tar.bz2
145.45 KB
68 downloads
filedropmaj.git-c37f3f7.zip
198.11 KB
30 downloads
filedropmaj.git-c532394.tar.bz2
146.39 KB
54 downloads
filedropmaj.git-c532394.zip
199.91 KB
23 downloads
filedropmaj.git-c6317a4.tar.bz2
152.01 KB
52 downloads
filedropmaj.git-c6317a4.zip
207.08 KB
21 downloads
filedropmaj.git-c748176.tar.bz2
89.44 KB
51 downloads
filedropmaj.git-c748176.zip
126.35 KB
21 downloads
filedropmaj.git-c9ed81f.tar.bz2
135.56 KB
51 downloads
filedropmaj.git-c9ed81f.zip
183.28 KB
23 downloads
filedropmaj.git-c9f9b80.tar.bz2
138.50 KB
51 downloads
filedropmaj.git-c9f9b80.zip
190.66 KB
22 downloads
filedropmaj.git-ca65b73.tar.bz2
152.69 KB
52 downloads
filedropmaj.git-ca65b73.zip
207.87 KB
21 downloads
filedropmaj.git-cd80b77.tar.bz2
153.12 KB
52 downloads
filedropmaj.git-cd80b77.zip
212.01 KB
19 downloads
filedropmaj.git-cffbb2a.tar.bz2
138.22 KB
50 downloads
filedropmaj.git-cffbb2a.zip
190.28 KB
22 downloads
filedropmaj.git-d061ad7.tar.bz2
55.78 KB
67 downloads
filedropmaj.git-d061ad7.zip
74.39 KB
22 downloads
filedropmaj.git-d0af4d6.tar.bz2
57.28 KB
52 downloads
filedropmaj.git-d0af4d6.zip
78.56 KB
22 downloads
filedropmaj.git-d1caa0a.tar.bz2
144.57 KB
54 downloads
filedropmaj.git-d1caa0a.zip
196.63 KB
22 downloads
filedropmaj.git-d5679b5.tar.bz2
152.37 KB
52 downloads
filedropmaj.git-d5679b5.zip
207.52 KB
23 downloads
filedropmaj.git-d72f459.tar.bz2
147.90 KB
54 downloads
filedropmaj.git-d72f459.zip
201.92 KB
18 downloads
filedropmaj.git-d958c91.tar.bz2
144.67 KB
54 downloads
filedropmaj.git-d958c91.zip
196.88 KB
25 downloads
filedropmaj.git-d96784f.tar.bz2
135.58 KB
52 downloads
filedropmaj.git-d96784f.zip
183.46 KB
20 downloads
filedropmaj.git-da4b73f.tar.bz2
152.62 KB
49 downloads
filedropmaj.git-da4b73f.zip
203.48 KB
21 downloads
filedropmaj.git-dd24240.tar.bz2
138.27 KB
50 downloads
filedropmaj.git-dd24240.zip
190.45 KB
80 downloads
filedropmaj.git-e11e772.tar.bz2
152.09 KB
49 downloads
filedropmaj.git-e11e772.zip
211.33 KB
20 downloads
filedropmaj.git-e61478e.tar.bz2
135.95 KB
54 downloads
filedropmaj.git-e61478e.zip
183.91 KB
21 downloads
filedropmaj.git-e7a2547.tar.bz2
133.80 KB
49 downloads
filedropmaj.git-e7a2547.zip
180.05 KB
24 downloads
filedropmaj.git-e8a3b95.tar.bz2
138.15 KB
55 downloads
filedropmaj.git-e8a3b95.zip
191.04 KB
18 downloads
filedropmaj.git-eac86d5.tar.bz2
155.65 KB
50 downloads
filedropmaj.git-eac86d5.zip
208.28 KB
20 downloads
filedropmaj.git-ed83bf9.tar.bz2
135.16 KB
51 downloads
filedropmaj.git-ed83bf9.zip
182.91 KB
22 downloads
filedropmaj.git-ee50d40.tar.bz2
135.59 KB
54 downloads
filedropmaj.git-ee50d40.zip
183.48 KB
23 downloads
filedropmaj.git-efdb4df.tar.bz2
155.87 KB
55 downloads
filedropmaj.git-efdb4df.zip
208.72 KB
22 downloads
filedropmaj.git-f1554f8.tar.bz2
151.30 KB
54 downloads
filedropmaj.git-f1554f8.zip
206.22 KB
23 downloads
filedropmaj.git-f72a07b.tar.bz2
153.44 KB
54 downloads
filedropmaj.git-f72a07b.zip
212.11 KB
24 downloads
filedropmaj.git-f7ea5a1.tar.bz2
147.46 KB
53 downloads
filedropmaj.git-f7ea5a1.zip
201.32 KB
24 downloads
filedropmaj.git-f8a7353.tar.bz2
138.49 KB
53 downloads
filedropmaj.git-f8a7353.zip
190.66 KB
25 downloads
filedropmaj.git-fb84a8d.tar.bz2
137.61 KB
59 downloads
filedropmaj.git-fb84a8d.zip
190.70 KB
26 downloads
filedropmaj.git-fdcf5d3.tar.bz2
152.34 KB
57 downloads
filedropmaj.git-fdcf5d3.zip
207.53 KB
25 downloads
filedropmaj.git-feca42d.tar.bz2
132.90 KB
57 downloads
filedropmaj.git-feca42d.zip
179.44 KB
28 downloads