Moved /newsgroup to webapps
authorDavid Bartley <dtbartle@csclub.uwaterloo.ca>
Sat, 14 Jul 2007 01:20:51 +0000 (21:20 -0400)
committerDavid Bartley <dtbartle@csclub.uwaterloo.ca>
Sat, 14 Jul 2007 01:20:51 +0000 (21:20 -0400)
33 files changed:
newsgroup/.htaccess [deleted file]
newsgroup/article.php [deleted file]
newsgroup/attachment.php [deleted file]
newsgroup/auth.inc [deleted file]
newsgroup/config.inc.php [deleted file]
newsgroup/groups.txt [deleted file]
newsgroup/head.inc [deleted file]
newsgroup/img/I.gif [deleted file]
newsgroup/img/L.gif [deleted file]
newsgroup/img/T.gif [deleted file]
newsgroup/img/e.gif [deleted file]
newsgroup/img/k1.gif [deleted file]
newsgroup/img/k2.gif [deleted file]
newsgroup/img/s.gif [deleted file]
newsgroup/index.php [deleted file]
newsgroup/lang/english.lang [deleted file]
newsgroup/lib/check.php [deleted file]
newsgroup/lib/message.inc.php [deleted file]
newsgroup/lib/post.inc.php [deleted file]
newsgroup/lib/thread.inc.php [deleted file]
newsgroup/lib/types.inc.php [deleted file]
newsgroup/lib/validator.inc [deleted file]
newsgroup/newsportal-0.37.zip [deleted file]
newsgroup/newsportal.php [deleted file]
newsgroup/post.php [deleted file]
newsgroup/spool/groups.dat [deleted file]
newsgroup/spool/uw.csc-1-50.html [deleted file]
newsgroup/spool/uw.csc-data.dat [deleted file]
newsgroup/spool/uw.csc-info.txt [deleted file]
newsgroup/spool/uw.csc-lastarticleinfo.dat [deleted file]
newsgroup/style.css [deleted file]
newsgroup/tail.inc [deleted file]
newsgroup/thread.php [deleted file]

diff --git a/newsgroup/.htaccess b/newsgroup/.htaccess
deleted file mode 100644 (file)
index 7e91dfc..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-AuthPAM_Enabled on
-<Files post.php>
-AuthType Basic
-AuthName "CSC Login Required"
-require group daemon
-</Files>
diff --git a/newsgroup/article.php b/newsgroup/article.php
deleted file mode 100644 (file)
index 976fd6e..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-<?
-  header("Expires: ".gmdate("D, d M Y H:i:s",time()+(3600*24))." GMT");
-
-
-  // register parameters
-  $id=$_REQUEST["id"];
-  $group=$_REQUEST["group"];
-
-  include "config.inc.php";
-
-  /*
-  $thread_show["replies"]=true;
-  $thread_show["lastdate"]=false;
-  $thread_show["threadsize"]=false;
-  */
-
-  include "auth.inc";
-  include "$file_newsportal";
-
-  $message=message_read($id,0,$group);
-  if (!$message) {
-    header ("HTTP/1.0 404 Not Found");
-    $subject=$title;
-    $title.=' - Article not found';
-    if($ns!=false)
-    nntp_close($ns);
-  } else {
-    $subject=htmlspecialchars($message->header->subject);
-    header("Last-Modified: ".date("r", $message->header->date));
-    $title.= ' - '.$subject;
-  }
-  include "head.inc";
-
-  // has the user read-rights on this article?
-  if((function_exists("npreg_group_has_read_access") &&
-      !npreg_group_has_read_access($group)) ||
-     (function_exists("npreg_group_is_visible") &&
-      !npreg_group_is_visible($group))) {
-    die("access denied");
-  }
-
-
-?>
-
-
-
-<h1 class="np_article_headline"><?=htmlspecialchars($subject) ?></h1>
-
-<table cellpadding="0" cellspacing="0" width="100%" class="np_buttonbar"><tr>
-<? 
-  echo '<td class="np_button"><a class="np_button" href="'.
-       $file_index.'">'.$text_thread["button_grouplist"].'</a></td>';
-  echo '<td class="np_button"><a class="np_button" href="'.
-       $file_thread.'?group='.urlencode($group).'">'.$text_article["back_to_group"].'</a></td>';
-  if ((!$readonly) && ($message) &&
-      (!function_exists("npreg_group_has_write_access") ||
-             npreg_group_has_write_access($group)))
-    echo '<td class="np_button"> <a class="np_button" href="'.
-         $file_post.'?type=reply&id='.urlencode($id).
-         '&group='.urlencode($group).'">'.$text_article["button_answer"].
-         '</a></td>';
-
-   if(function_exists(npreg_user_is_moderator) && npreg_user_is_moderator($group)) {
-     echo '<td class="np_button"><a class="np_button" href="'.$file_cancel.'?type=reply&id='.urlencode($id).
-          '&group='.urlencode($group).'">'.$text_article["button_cancel"].'</a></td>';
-    }
-
-?>
-<td width="100%">&nbsp;</td></tr></table>
-
-<? 
-  if (!$message)
-    // article not found
-    echo $text_error["article_not_found"];
-  else {
-    if($article_showthread)
-      $thread=thread_cache_load($group);
-    //echo "<br>";
-    message_show($group,$id,0,$message);
-    if($article_showthread)
-      message_thread($message->header->id,$group,$thread); 
-
-  }
-  include "tail.inc";
-?>
diff --git a/newsgroup/attachment.php b/newsgroup/attachment.php
deleted file mode 100644 (file)
index 79a66f0..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-<?
-header("Expires: ".gmdate("D, d M Y H:i:s",time()+(3600*24))." GMT");
-$group=$_REQUEST["group"];
-$id=$_REQUEST["id"];
-$attachment=$_REQUEST["attachment"];
-
-include "config.inc.php";
-include "auth.inc";
-require("$file_newsportal");
-if (!isset($attachment))
-  $attachment=0;
-$message=message_read($id,$attachment,$group);
-//print_r($message->header);
-if (!$message) {
-  header ("HTTP/1.0 404 Not Found");
-  echo "The Attachment doesn't exists";
-} else {
-  header("Content-Disposition: attachment; filename=".
-        $message->header->content_type_name[$attachment]);
-  header("Content-type: ".$message->header->content_type[$attachment]);
-  message_show("",$id,$attachment,$message);
-}
-?>
\ No newline at end of file
diff --git a/newsgroup/auth.inc b/newsgroup/auth.inc
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/newsgroup/config.inc.php b/newsgroup/config.inc.php
deleted file mode 100644 (file)
index 99146b2..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-<?
-/*
- * directories and files
- */
-$spooldir="spool";
-$imgdir="img";
-$file_newsportal="newsportal.php";
-$file_index="index.php";
-$file_thread="thread.php";
-$file_article="article.php";
-// $file_article_full="article.php";
-$file_attachment="attachment.php";
-$file_post="post.php";
-$file_cancel="cancel.php";
-$file_language="lang/english.lang";
-$file_footer="/users/www/www/footer.html";
-$file_groups="groups.txt";
-
-/* 
- * newsserver setup
- */
-$server="news";
-$port=119;
-// $post_server="";
-// $post_port=119;
-$maxfetch=0; // depricated
-$initialfetch=0;  // depricated
-//$server_auth_http=true;
-
-/*
- * Grouplist Layout
- */
-$gl_age=true;
-
-/*
- * Thread layout
- */
-$thread_treestyle=7;
-$thread_show["date"]=true;
-$thread_show["subject"]=true;
-$thread_show["author"]=true;
-$thread_show["authorlink"]=false;
-$thread_show["replies"]=true;
-$thread_show["lastdate"]=false; // makes only sense with $thread_show["replies"]=false
-$thread_show["threadsize"]=false;
-$thread_maxSubject=50;
-$maxarticles=400;
-$maxarticles_extra=100;
-$age_count=3;
-$age_time[1]=86400; //24 hours
-$age_color[1]="red";
-$age_time[2]=259200; //3 days
-$age_color[2]="#999900";
-$age_time[3]=604800; //7 days
-$age_color[3]="#00bb00";
-$thread_sort_order=-1;
-$thread_sort_type="thread";
-$articles_per_page=50;
-$startpage="first";
-
-/* 
- * Frames 
- */
-// for frames-support: read README in the frames-directory
-//$frame_article="article";
-//$frame_thread="thread";
-//$frame_groups="_top";
-//$frame_post="_top";
-//$frame_threadframeset="_top";
-$frame_externallink="_blank";
-
-/* 
- * article layout 
- */
-$article_show["Subject"]=true;
-$article_show["From"]=true;
-$article_show["Newsgroups"]=true;
-$article_show["Followup"]=true;
-$article_show["Organization"]=true;
-$article_show["Date"]=true;
-$article_show["Message-ID"]=false;
-$article_show["User-Agent"]=false;
-$article_show["References"]=false;
-$article_show["From_link"]=true;
-//$article_show["From_rewrite"]=array('@',' (at) ');
-$article_showthread=true;
-$article_graphicquotes=true;
-
-/*
- * settings for the article flat view, if used
- */
-$articleflat_articles_per_page=20;
-$articleflat_chars_per_articles=5000;
-
-/*
- * Message posting
- */
-$send_poster_host=false;
-$readonly=false;
-$testgroup=false;
-$validate_email=1;
-$organization="University of Waterloo Computer Science Club";
-$setcookies=false;
-// $anonym_address="set_this@to_something_valid";
-$msgid_generate="md5";
-$msgid_fqdn=$_SERVER["HTTP_HOST"];
-$post_autoquote=false;
-
-/* 
- * Attachments
- */
-$attachment_show=true;
-$attachment_delete_alternative=true; // delete non-text mutipart/alternative
-$attachment_uudecode=false;  // experimental!
-
-/*
- * Security settings
- */
-$block_xnoarchive=false;
-
-/*
- * Cache
- */
-$cache_articles=false;  // article cache, experimental!
-$cache_index=3600; // cache the group index for one hour before reloading
-$cache_thread=60; // cache the thread for one minute reloading
-
-/*
- * Misc 
- */
-$title="CSC Newsportal";
-$cutsignature=true;
-$compress_spoolfiles=false;
-
-// website charset, "koi8-r" for example
-$www_charset = "iso-8859-15";
-// Use the iconv extension for improved charset conversions
-$iconv_enable=true;
-// timezone relative to GMT, +1 for CET
-$timezone=-5;
-
-/*
- * Group specific config 
- */
-//$group_config=array(
-//  '^de\.alt\.fan\.aldi$' => "aldi.inc",
-//  '^de\.' => "german.inc"
-//);
-
-/*
- * Do not edit anything below this line
- */
-// Load group specifig config files
-if((isset($group)) && (isset($group_config))) {
-  foreach ($group_config as $key => $value) {
-    if (ereg($key,$group)) {
-      include $value;
-      break;
-    }
-  }
-}
-
-// check the settings
-include "lib/check.php";
-
-// load the english language definitions first because some of the other
-// definitions are incomplete
-include("lang/english.lang"); 
-include($file_language);
-?>
diff --git a/newsgroup/groups.txt b/newsgroup/groups.txt
deleted file mode 100644 (file)
index f086e2c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-:Computer Science Club
-uw.csc
-uw.csc.hardware
-uw.csc.software
diff --git a/newsgroup/head.inc b/newsgroup/head.inc
deleted file mode 100644 (file)
index 7a5142e..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<html>
-<head>
-<title><? echo htmlspecialchars($title); ?></title>
-<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=<?=$www_charset?>">
-<link rel="stylesheet" type="text/css" href="style.css">
-</head>
-<body textcolor="black" bgcolor="white">
diff --git a/newsgroup/img/I.gif b/newsgroup/img/I.gif
deleted file mode 100644 (file)
index a7cb3a2..0000000
Binary files a/newsgroup/img/I.gif and /dev/null differ
diff --git a/newsgroup/img/L.gif b/newsgroup/img/L.gif
deleted file mode 100644 (file)
index 171dcb6..0000000
Binary files a/newsgroup/img/L.gif and /dev/null differ
diff --git a/newsgroup/img/T.gif b/newsgroup/img/T.gif
deleted file mode 100644 (file)
index cf2335f..0000000
Binary files a/newsgroup/img/T.gif and /dev/null differ
diff --git a/newsgroup/img/e.gif b/newsgroup/img/e.gif
deleted file mode 100644 (file)
index e92eaac..0000000
Binary files a/newsgroup/img/e.gif and /dev/null differ
diff --git a/newsgroup/img/k1.gif b/newsgroup/img/k1.gif
deleted file mode 100644 (file)
index 9cbf0a4..0000000
Binary files a/newsgroup/img/k1.gif and /dev/null differ
diff --git a/newsgroup/img/k2.gif b/newsgroup/img/k2.gif
deleted file mode 100644 (file)
index 37eb368..0000000
Binary files a/newsgroup/img/k2.gif and /dev/null differ
diff --git a/newsgroup/img/s.gif b/newsgroup/img/s.gif
deleted file mode 100644 (file)
index 4a45d92..0000000
Binary files a/newsgroup/img/s.gif and /dev/null differ
diff --git a/newsgroup/index.php b/newsgroup/index.php
deleted file mode 100644 (file)
index 2814141..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-<? header("Expires: ".gmdate("D, d M Y H:i:s",time()+7200)." GMT");
-
-   include "config.inc.php";
-   include "auth.inc";
-   include "head.inc"; ?>
-
-<h1 class="np_index_headline"><? echo htmlspecialchars($title); ?></h1>
-
-<?
-include("$file_newsportal");
-flush();
-$newsgroups=groups_read($server,$port);
-echo '<div class="np_index_groups">';
-groups_show($newsgroups);
-echo '</div>';
-?>
-
-<? include "tail.inc"; ?>
diff --git a/newsgroup/lang/english.lang b/newsgroup/lang/english.lang
deleted file mode 100644 (file)
index 50d11e9..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-<?
-$text_header["from"]="<b>From:</b> ";
-$text_header["subject"]="<b>Subject:</b> ";
-$text_header["newsgroups"]="<b>Newsgroups:</b> ";
-$text_header["followup"]="<b>Followup:</b> ";
-$text_header["organization"]="<b>Organization:</b> ";
-$text_header["date"]="<b>Date:</b> ";
-$text_header["message-id"]="<b>Message-ID:</b> ";
-$text_header["references"]="<b>References:</b> ";
-$text_header["user-agent"]="<b>User-Agent:</b> ";
-$text_header["date_format"]="M d Y H:i:s";
-$text_header["attachments"]="<b>Attachments:</b> ";
-
-$text_thread["no_articles"]="<p><b>No articles available</b></p>";
-$text_thread["button_write"]="Write";
-$text_thread["button_grouplist"]="Newsgroups";
-$text_thread["button_top"]="Back to Top";
-$text_thread["date"]="<b>Date</b>";
-$text_thread["subject"]="<b>Subject</b>";
-$text_thread["threadsize"]="<b>#</b>";
-$text_thread["author"]="<b>Author</b>";
-$text_thread["no_such_group"]="No such Group.";
-$text_thread["pages"]="Pages:";
-
-$text_groups["newsgroup"]="<b>Newsgroup</b>";
-$text_groups["description"]="<b>Description</b>";
-
-$text_article["button_answer"]="Answer";
-$text_article["button_cancel"]="Delete";
-$text_article["block-xnoarchive"]="This system is not an archive, but the
-administrator of this system decided to block postings, where the author
-doesn't want archivation.";
-$text_article["full_article"]="Click here to read the complete article";
-
-$text_post["name"]="Your Name:";
-$text_post["email"]="Your E-Mail:";
-$text_post["missing_message"]="You must include a message to post.";
-$text_post["missing_email"]="You must include an email address.";
-$text_post["missing_name"]="You must include a name or at least an alias.";
-$text_post["missing_subject"]="You must include a subject.";
-$text_post["button_post"]="Post";
-$text_post["remember"]="Remember name and email address";
-$text_post["message"]="Message";
-$text_post["group_head"]="Compose article for ";
-$text_post["group_tail"]="";
-$text_post["followup_not_allowed"]="You aren't allowed to post to the groups:";
-$text_post["message_posted"]="Message posted";
-$text_post["message_posted2"]="The message was successfully posted.";
-$text_post["button_back"]="Back";
-$text_post["button_back2"]="to";
-$text_post["error_newsserver"]="The newsserver does not accept the message:";
-$text_post["error_readonly"]="The group is write protected";
-$text_post["error_wrong_email"]="The email adress is wrong";
-$text_post["wrote_prefix"]="";
-$text_post["wrote_suffix"]=" wrote:";
-$text_post["quote"]="Quote";
-
-$text_error["error:"]='<font color="red">Error:</font>';
-$text_error["connection_failed"]="The connection to the Newsserver failed";
-$text_error["article_not_found"]="<p>The article doesn't exist.</p>";
-$text_error["read_access_denied"]="<p>No permission to read!</p>";
-$text_error["post_failed"]="Connection failed. Try to reload later.";
-$text_error["auth_error"]="Authentifikation at the Newsserver failed.";
-$text_error["spool_error"]="Error in spoolfile. Please reload.";
-
-?>
diff --git a/newsgroup/lib/check.php b/newsgroup/lib/check.php
deleted file mode 100644 (file)
index 05460a2..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<?
-if(($iconv_enable==true) &&
-   (!function_exists("iconv")))
-  die('There is no iconv-extension in PHP. set <tt>$iconv_enable=false</tt>
-       in config.inc.php to disable automatic charset recoding.');
-?>
\ No newline at end of file
diff --git a/newsgroup/lib/message.inc.php b/newsgroup/lib/message.inc.php
deleted file mode 100644 (file)
index 7a44c4b..0000000
+++ /dev/null
@@ -1,539 +0,0 @@
-<?
-/*
- *  NewsPortal: Functions for handling single messages
- *
- *  Copyright (C) 2002-2004 Florian Amrhein
- *  E-Mail: newsportal@florian-amrhein.de
- *  Web: http://florian-amrhein.de
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-function message_parse($rawmessage) {
-  global $attachment_delete_alternative,$attachment_uudecode,$www_charset;
-  global $iconv_enable;
-  // Read the header of the message:
-  $count_rawmessage=count($rawmessage);
-  $message = new messageType;
-  $rawheader=array();
-  $i=0;
-  while ($rawmessage[$i] != "") {
-    $rawheader[]=$rawmessage[$i];
-    $i++;
-  }
-  // Parse the Header:
-  $message->header=parse_header($rawheader);
-  // Now we know if the message is a mime-multipart message:
-  $content_type=split("/",$message->header->content_type[0]);
-  if ($content_type[0]=="multipart") {
-    $message->header->content_type=array();
-    // We have multible bodies, so we split the message into its parts
-    $boundary="--".$message->header->content_type_boundary;
-    // lets find the first part
-    while($rawmessage[$i] != $boundary)
-      $i++;
-    $i++;
-    $part=array();
-    while($i<=$count_rawmessage) {
-      if (($rawmessage[$i]==$boundary) || ($i==$count_rawmessage-1) ||
-          ($rawmessage[$i]==$boundary.'--')) {
-        $partmessage=message_parse($part);
-        // merge the content-types of the message with those of the part
-        for ($o=0; $o<count($partmessage->header->content_type); $o++) {
-          $message->header->content_type[]=
-            $partmessage->header->content_type[$o];
-          $message->header->content_type_charset[]=
-            $partmessage->header->content_type_charset[$o];
-          $message->header->content_type_name[]=
-            $partmessage->header->content_type_name[$o];
-          $message->header->content_type_format[]=
-            $partmessage->header->content_type_format[$o];
-          $message->body[]=$partmessage->body[$o];
-        }
-        $part=array();
-      } else {
-        if ($i<$count_rawmessage)
-          $part[]=$rawmessage[$i];
-      }
-      if ($rawmessage[$i]==$boundary.'--') break;
-      $i++;
-    }
-    // Is this a multipart/alternative multipart-message? Do we have to
-    // delete all non plain/text parts?
-    if (($attachment_delete_alternative) &&
-        ($content_type[1]=="alternative")) {
-      $plaintext=false;
-      for ($o=0; $o<count($message->header->content_type); $o++) {
-        if ($message->header->content_type[$o]=="text/plain")
-          $plaintext=true; // we found at least one text/plain
-      }
-      if ($plaintext) {    // now we can delete the other parts
-        for ($o=0; $o<count($message->header->content_type); $o++) {
-          if ($message->header->content_type[$o]!="text/plain") {
-            unset($message->header->content_type[$o]);
-            unset($message->header->content_type_name[$o]);
-            unset($message->header->content_type_charset[$o]);
-            unset($message->header->content_type_format[$o]);
-            unset($message->body[$o]);
-          }
-        }
-      }
-    }
-  } else {
-    // No mime-attachments in the message:
-    $body="";
-    $uueatt=0; // as default we have no uuencoded attachments
-    for($i++;$i<$count_rawmessage; $i++) {
-      // do we have an inlay uuencoded file?
-      if ((strtolower(substr($rawmessage[$i],0,5))!="begin") ||
-          ($attachment_uudecode==false)) {
-        $body.=$rawmessage[$i]."\n";
-      // yes, it seems, we have!
-      } else {
-        $old_i=$i;
-        $uue_infoline_raw=$rawmessage[$i];
-        $uue_infoline=explode(" ",$uue_infoline_raw);
-        $uue_data="";
-        $i++;
-        while($rawmessage[$i]!="end") {
-          if (strlen(trim($rawmessage[$i])) > 2)
-            $uue_data.=$rawmessage[$i]."\n";
-          $i++;
-        }
-        // now write the data in an attachment
-        $uueatt++;
-        $message->body[$uueatt]=uudecode($uue_data);
-        $message->header->content_type_name[$uueatt]="";
-        for ($o=2; $o<count($uue_infoline); $o++)
-          $message->header->content_type_name[$uueatt].=$uue_infoline[$o];
-        $message->header->content_type[$uueatt]=
-          get_mimetype_by_filename($message->header->content_type_name[$uueatt]);
-      }
-    }
-    //if ($message->header->content_type[0]=="text/plain") {
-    $body=decode_body($body,$message->header->content_transfer_encoding);
-    $body=recode_charset($body,
-                         $message->header->content_type_charset[0],
-                         $www_charset);
-    if ($body=="") $body=" ";
-    //}
-    $message->body[0]=$body;
-  }
-    if (!isset($message->header->content_type_charset))
-      $message->header->content_type_charset=array($www_charset);
-    if (!isset($message->header->content_type_name))
-      $message->header->content_type_name=array("unnamed");
-    if (!isset($message->header->content_type_format))
-      $message->header->content_type_format=array("fixed");
-  for ($o=0; $o<count($message->body); $o++) {
-    if (!isset($message->header->content_type_charset[$o]))
-      $message->header->content_type_charset[$o]=$www_charset;
-    if (!isset($message->header->content_type_name[$o]))
-      $message->header->content_type_name[$o]="unnamed";
-    if (!isset($message->header->content_type_format[$o]))
-      $message->header->content_type_format[$o]="fixed";
-  }
-  return $message;
-}
-
-
-/*
- * read an article from the newsserver or the spool-directory
- *
- * $id: the Message-ID of an article
- * $bodynum: the number of the attachment:
- *          -1: return only the header without any bodies or attachments.
- *           0: the body
- *           1: the first attachment...
- *
- * The function returns an article as an messageType or false if the article
- * doesn't exists on the newsserver or doesn't contain the given
- * attachment.
- */
-function message_read($id,$bodynum=0,$group="") {
-  global $cache_articles,$spooldir,$text_error,$ns;
-  if (!testGroup($group)) {
-    echo $text_error["read_access_denied"];
-    return;
-  }
-  $message = new messageType;
-  if ((isset($cache_articles)) && ($cache_articles == true)) {
-    // Try to load a cached article
-    if ((ereg('^[0-9]+$',$id)) && ($group != ''))
-      $filename=$group.'_'.$id;
-    else
-      $filename=base64_encode($id);
-    $cachefilename_header=$spooldir."/".$filename.'.header';
-    $cachefilename_body=$spooldir."/".$filename.'.body';
-    if (file_exists($cachefilename_header)) {
-      $cachefile=fopen($cachefilename_header,"r");
-      $message->header=unserialize(fread($cachefile,filesize($cachefilename_header)));
-      fclose($cachefile);
-    } else {
-      unset($message->header);
-    }
-    // Is a non-existing attachment of an article requested?
-    if ((isset($message->header)) &&
-        ($bodynum!= -1) &&
-        (!isset($message->header->content_type[$bodynum])))
-      return false;
-    if ((file_exists($cachefilename_body.$bodynum)) &&
-        ($bodynum != -1)) {
-      $cachefile=fopen($cachefilename_body.$bodynum,"r");
-      $message->body[$bodynum]=
-        fread($cachefile,filesize($cachefilename_body.$bodynum));
-      fclose($cachefile);
-    }
-  }
-  if ((!isset($message->header)) ||
-      ((!isset($message->body[$bodynum])) &&
-       ($bodynum != -1))) {
-    if (!isset($ns)) {
-      $ns=nntp_open();
-    }
-    if ($group != "") {
-      fputs($ns,"GROUP ".$group."\r\n");
-      $line=line_read($ns);
-    }
-    fputs($ns,'ARTICLE '.$id."\r\n");
-    $line=line_read($ns);
-    if (substr($line,0,3) != "220") {
-      // requested article doesn't exist on the newsserver. Now we
-      // should check, if the thread stored in the spool-directory
-      // also doesnt't contain that article...
-      thread_cache_removearticle($group,$id);
-      return false;
-    }
-    $rawmessage=array();
-    $line=line_read($ns);
-    while(strcmp($line,".") != 0) {
-      $rawmessage[]=$line;
-      $line=line_read($ns);
-    }
-    $message=message_parse($rawmessage);
-    if (ereg('^[0-9]+$',$id)) $message->header->number=$id;
-    // write header, body and attachments to the cache
-    if ((isset($cache_articles)) && ($cache_articles == true)) {
-      $cachefile=fopen($cachefilename_header,"w");
-      if ($cachefile) {
-        fputs($cachefile,serialize($message->header));
-      }
-      fclose($cachefile);
-      for ($i=0; $i<count($message->header->content_type); $i++) {
-        if (isset($message->body[$i])) {
-          $cachefile=fopen($cachefilename_body.$i,"w");
-          fwrite($cachefile,$message->body[$i]);
-          fclose($cachefile);
-        }
-      }
-    }
-  }
-  return $message;
-}
-
-function textwrap($text, $wrap=80, $break="\n",$maxlen=false){
-  $len = strlen($text);
-  if ($len > $wrap) {
-    $h = '';        // massaged text
-    $lastWhite = 0; // position of last whitespace char
-    $lastChar = 0;  // position of last char
-    $lastBreak = 0; // position of last break
-    // while there is text to process
-    while ($lastChar < $len && (($maxlen==false) || (strlen($h)<$maxlen))) {
-      $char = substr($text, $lastChar, 1); // get the next character
-      // if we are beyond the wrap boundry and there is a place to break
-      if (($lastChar - $lastBreak > $wrap) && ($lastWhite > $lastBreak)) {
-        $h .= substr($text, $lastBreak, ($lastWhite - $lastBreak)) . $break;
-        $lastChar = $lastWhite + 1;
-        $lastBreak = $lastChar;
-      }
-      // You may wish to include other characters as valid whitespace...
-      if ($char == ' ' || $char == chr(13) || $char == chr(10)) {
-        $lastWhite = $lastChar; // note the position of the last whitespace
-      }
-      $lastChar = $lastChar + 1; // advance the last character position by one
-    }
-    $h .= substr($text, $lastBreak); // build line
-  } else {
-    $h = $text; // in this case everything can fit on one line
-  }
-  return $h;
-}
-/*
- * Displays a (Sub)-Thread. Is used in article.php
- *
- * $id:    Message-ID (not number!) of an article in the thread
- * $group: name of the newsgroup
- */
-function message_thread($id,$group,$thread,$highlightids=false) {
-  $current=$id;
-  // set the highlightid, if not set
-  if(!$highlightids)
-    $highlightids=array($current);
-  flush();
-  // find the first article in the subthread of $id
-  while(isset($thread[$id]->references)) {
-    foreach($thread[$id]->references as $reference) {
-      if((trim($reference)!='') && (isset($thread[$reference]))) {
-        $id=$reference;
-        continue 2;
-      }
-    }
-    break;
-  }
-  $liste=array();
-  $liste[]=$id;
-  $tmp=0;
-  thread_show_head();
-  echo thread_show_recursive($thread,$liste,1,"",$group,0,100,$tmp,$highlightids);
-  thread_show_tail();
-}
-
-/*
- * Print the header of a message to the webpage
- *
- * $head: the header of the message as an headerType
- * $group: the name of the newsgroup, is needed for the links to post.php3
- *         and the header.
- */
-function show_header($head,$group) {
-  global $article_show,$text_header,$file_article,$attachment_show;
-  global $file_attachment,$anonym_address;
-  echo '<div class="np_article_header">';
-  if ($article_show["Subject"]) echo $text_header["subject"].htmlspecialchars($head->subject)."<br>";
-  if ($article_show["From"]) {
-    echo $text_header["from"];
-    if($head->from==$anonym_address) {
-      // this is the anonymous address, so only show the name
-      echo htmlspecialchars($head->name);
-    } else {
-      if($article_show["From_link"])
-        echo '<a href="mailto:'.htmlspecialchars($head->from).'">';
-      if(isset($article_show["From_rewrite"]))
-        echo eregi_replace($article_show["From_rewrite"][0],
-                           $article_show["From_rewrite"][1],
-                           htmlspecialchars($head->from));
-      else
-        echo htmlspecialchars($head->from);
-      if($article_show["From_link"])
-        echo '</a>';
-      if ($head->name != "") echo ' ('.htmlspecialchars($head->name).')';
-    }
-    echo "<br>";
-  }
-  if ($article_show["Newsgroups"]) 
-    echo $text_header["newsgroups"].htmlspecialchars(str_replace(',',', ',$head->newsgroups))."<br>\n";
-  if (isset($head->followup) && ($article_show["Followup"]) && ($head->followup != "")) 
-    echo $text_header["followup"].htmlspecialchars($head->followup)."<br>\n";
-  if ((isset($head->organization)) && ($article_show["Organization"]) &&
-     ($head->organization != ""))
-    echo $text_header["organization"].
-         html_parse(htmlspecialchars($head->organization))."<br>\n";
-  if ($article_show["Date"])
-    echo $text_header["date"].date($text_header["date_format"],$head->date)."<br>\n";
-  if ($article_show["Message-ID"])
-    echo $text_header["message-id"].htmlspecialchars($head->id)."<br>\n";
-  if (($article_show["References"]) && (isset($head->references[0]))) {
-    echo $text_header["references"];
-    for ($i=0; $i<=count($head->references)-1; $i++) {
-      $ref=$head->references[$i];
-      echo ' '.'<a href="'.$file_article.'?group='.urlencode($group).
-           '&id='.urlencode($ref).'">'.($i+1).'</a>';
-    }
-    echo "<br>";
-  }
-  if (isset($head->user_agent)) {
-    if ((isset($article_show["User-Agent"])) &&
-       ($article_show["User-Agent"])) {
-      echo $text_header["user-agent"].htmlspecialchars($head->user_agent)."<br>\n";
-    } else {
-      echo "<!-- User-Agent: ".htmlspecialchars($head->user_agent)." -->\n";
-    }
-  }
-  if ((isset($attachment_show)) && ($attachment_show==true) &&
-      (isset($head->content_type[1]))) {
-    echo $text_header["attachments"];
-    for ($i=1; $i<count($head->content_type); $i++) {
-      echo '<a href="'.$file_attachment.'?group='.urlencode($group).'&'.
-           'id='.urlencode($head->number).'&'.
-           'attachment='.$i.'">'.
-           $head->content_type_name[$i].'</a> ('.
-           $head->content_type[$i].')';
-      if ($i<count($head->content_type)-1) echo ', ';
-    }
-  }
-  echo '</div>';
-}
-
-/*
- * decodes a body. Splits the content of $body into an array of several
- * lines, respecting the special decoding issues of format=flowed
- * articles. Each returned line consists of two fields: text and
- * the quote depth (depth)
- */
-function decode_textbody($body,$format="fixed") {
-  $body=split("\n",$body);
-  $nbody=array();
-  $depth=0;
-  $paragraph=""; // empty paragraph
-  $lastline="";
-  for($i=0; $i<count($body)+1; $i++) {
-    // calculate the quote depth of the actual line
-    $ndepth=0;
-    $tdepth=0;
-    for($j=0; $j<=strlen($body[$i]); $j++) {
-      $tdepth=$j;
-      if($body[$i][$j]=='>') {
-        $ndepth++;
-      } else {
-        if(($body[$i][$j]!=' ') || ($body[$i][$j-1]==' ') || ($j==0)) {
-          break;
-        }
-      }
-    }
-    // generate a new paragraph?
-    if(($i>0) && (($ndepth!=$depth) || $format!="flowed" ||
-       ($paragraph[strlen($paragraph)-1]!=' ')) || ($i==count($body))) {
-      $tmp->text=$lastline=$paragraph;
-      $tmp->depth=$depth;
-      $paragraph="";
-      if(phpversion()>=5)
-        $nbody[]=clone($tmp);
-      else
-        $nbody[]=$tmp;
-    }
-    if($body[$i]=="-- " && $format=="flowed") $body[$i]="--";
-    $paragraph.=substr($body[$i],$tdepth);
-    $depth=$ndepth;
-  }
-  return $nbody;
-}
-
-/*
- * replaces multiple spaces in texts by &nbsp;es and convert special-chars
- * to their entities
- */
-function text2html($text) {
-  return eregi_replace("^ ","&nbsp;",
-         str_replace("  ","&nbsp; ",
-         str_replace("  ","&nbsp; ",
-         str_replace("\n","<br>",
-         htmlspecialchars($text)))));
-}
-
-
-/*
- * print an article to the webpage
- *
- * $group: The name of the newsgroup
- * $id: the ID of the article inside the group or the message-id
- * $attachment: The number of the attachment of the article.
- *              0 means the normal textbody.
- */
-function message_show($group,$id,$attachment=0,$article_data=false,$maxlen=false) {
-  global $file_article,$file_article_full;
-  global $text_header,$text_article,$article_showthread;
-  global $block_xnoarchive,$article_graphicquotes;
-  if ($article_data == false)
-    $article_data=message_read($id,$attachment,$group);
-  $head=$article_data->header;
-  $body=$article_data->body[$attachment];
-  if ($head) {
-    if (($block_xnoarchive) && (isset($head->xnoarchive)) &&
-        ($head->xnoarchive=="yes")) {
-      echo $text_article["block-xnoarchive"];
-    } else
-    if (($head->content_type[$attachment]=="text/plain") &&
-        ($attachment==0)) {
-      show_header($head,$group);
-      $body=decode_textbody($body,
-             $article_data->header->content_type_format[$attachment]);
-      $depth=0;
-      echo '<div class="np_article_body">';
-      $currentlen=0; // needed if $maxlen is set
-      for ($i=0; $i<=count($body) && 
-                 (($currentlen<$maxlen) || ($maxlen==false)); $i++) {
-        // HTMLized Quotings instead of boring > ?
-        if($article_graphicquotes) {
-          // HTMLized Quotings
-          for($j=$depth; $j<$body[$i]->depth; $j++)
-            echo '<blockquote class="np_article_quote">';
-          for($j=$body[$i]->depth; $j<$depth; $j++)
-            echo '</blockquote>';
-          $t=html_parse(text2html($body[$i]->text)).'<br>';
-          echo $t;
-          $currentlen+=strlen($t);
-          echo "\n";
-          $depth=$body[$i]->depth;
-        } else {
-          // Boring old Quotings with >
-          if($body[$i]->depth==0) {
-            if(trim($body[$i]->text)=='')
-              $t="<br>\n";
-            else
-              $t=html_parse(text2html($body[$i]->text))."<br>\n";
-          } else {
-            $t='<i>'.str_repeat('&gt;',$body[$i]->depth).' '.
-              html_parse(text2html(
-                 textwrap($body[$i]->text,72-$body[$i]->depth,
-                  "\n".str_repeat('>',$body[$i]->depth).' '))).
-              "</i><br>\n";
-          }
-          echo $t;
-          $currentlen+=strlen($t);
-        }
-      }
-      echo '</div>';
-      if($maxlen!=false && $currentlen>=$maxlen) {
-        echo '<br><a href="'.$file_article_full.'?id='.$id.'&group='.
-             $group.'">'.$text_article["full_article"].'</a>';
-      }
-    } else {
-      echo $body;
-    }
-  }
-}
-
-/*
- * Shows the little menu on article-flat.php where you can select the
- * different pages with the articles on it
- */
-function articleflat_pageselect($group,$id,$article_count,$first) {
-  global $articleflat_articles_per_page,$file_article,$file_framethread,$name;
-  global $text_thread,$thread_show;
-  $pages=ceil($article_count / $articleflat_articles_per_page);
-  $return="";
-  if ($article_count > $articleflat_articles_per_page)
-    $return.= $text_thread["pages"];
-    for ($i = 0; $i < $pages; $i++) {
-      if ($first != $i*$articleflat_articles_per_page+1)
-        $return.= '<a class="np_pages_unselected" href="'.
-             $file_article.'?group='.$group.
-             '&amp;id='.urlencode($id).
-             '&amp;first='.($i*$articleflat_articles_per_page+1).'&amp;last='.
-             ($i+1)*$articleflat_articles_per_page.'">';
-      else
-        $return.= '<span class="np_pages_selected">';
-      $return.= $i+1;
-      if ($i == $pages-1) {
-        // $return.= $article_count;
-      }
-      if ($first != $i*$articleflat_articles_per_page+1)
-        $return.= '</a>';
-      else
-        $return.= '</span>';
-    }
-  return $return;
-}
diff --git a/newsgroup/lib/post.inc.php b/newsgroup/lib/post.inc.php
deleted file mode 100644 (file)
index c322cb6..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-<?
-/*
- *  NewsPortal: Functions for posting articles to a newsgroup
- *
- *  Copyright (C) 2002-2004 Florian Amrhein
- *  E-Mail: newsportal@florian-amrhein.de
- *  Web: http://florian-amrhein.de
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-/*
- * Encode lines with 8bit-characters to quote-printable
- *
- * $line: the to be encoded line
- *
- * the function returns a sting containing the quoted-printable encoded
- * $line
- */
-function quoted_printable_encode($line) {
-  global $www_charset;
-  $qp_table=array(
-     '=00', '=01', '=02', '=03', '=04', '=05',
-     '=06', '=07', '=08', '=09', '=0A', '=0B',
-     '=0C', '=0D', '=0E', '=0F', '=10', '=11',
-     '=12', '=13', '=14', '=15', '=16', '=17',
-     '=18', '=19', '=1A', '=1B', '=1C', '=1D',
-     '=1E', '=1F', '_',   '!',   '"',   '#',
-     '$',   '%',   '&',   "'",   '(',   ')',
-     '*',   '+',   ',',   '-',   '.',   '/',
-     '0',   '1',   '2',   '3',   '4',   '5',
-     '6',   '7',   '8',   '9',   ':',   ';',
-     '<',   '=3D', '>',   '=3F', '@',   'A',
-     'B',   'C',   'D',   'E',   'F',   'G',
-     'H',   'I',   'J',   'K',   'L',   'M',
-     'N',   'O',   'P',   'Q',   'R',   'S',
-     'T',   'U',   'V',   'W',   'X',   'Y',
-     'Z',   '[',   '\\',  ']',   '^',   '=5F',
-     '',    'a',   'b',   'c',   'd',   'e',
-     'f',   'g',   'h',   'i',   'j',   'k',
-     'l',   'm',   'n',   'o',   'p',   'q',
-     'r',   's',   't',   'u',   'v',   'w',
-     'x',   'y',   'z',   '{',   '|',   '}',
-     '~',   '=7F', '=80', '=81', '=82', '=83',
-     '=84', '=85', '=86', '=87', '=88', '=89',
-     '=8A', '=8B', '=8C', '=8D', '=8E', '=8F',
-     '=90', '=91', '=92', '=93', '=94', '=95',
-     '=96', '=97', '=98', '=99', '=9A', '=9B',
-     '=9C', '=9D', '=9E', '=9F', '=A0', '=A1',
-     '=A2', '=A3', '=A4', '=A5', '=A6', '=A7',
-     '=A8', '=A9', '=AA', '=AB', '=AC', '=AD',
-     '=AE', '=AF', '=B0', '=B1', '=B2', '=B3',
-     '=B4', '=B5', '=B6', '=B7', '=B8', '=B9',
-     '=BA', '=BB', '=BC', '=BD', '=BE', '=BF',
-     '=C0', '=C1', '=C2', '=C3', '=C4', '=C5',
-     '=C6', '=C7', '=C8', '=C9', '=CA', '=CB',
-     '=CC', '=CD', '=CE', '=CF', '=D0', '=D1',
-     '=D2', '=D3', '=D4', '=D5', '=D6', '=D7',
-     '=D8', '=D9', '=DA', '=DB', '=DC', '=DD',
-     '=DE', '=DF', '=E0', '=E1', '=E2', '=E3',
-     '=E4', '=E5', '=E6', '=E7', '=E8', '=E9',
-     '=EA', '=EB', '=EC', '=ED', '=EE', '=EF',
-     '=F0', '=F1', '=F2', '=F3', '=F4', '=F5',
-     '=F6', '=F7', '=F8', '=F9', '=FA', '=FB',
-     '=FC', '=FD', '=FE', '=FF');
-  // are there "forbidden" characters in the string?
-  for($i=0; $i<strlen($line) && ord($line[$i])<=127 ; $i++);
-  if ($i<strlen($line)) { // yes, there are. So lets encode them!
-    $from=$i;
-    for($to=strlen($line)-1; ord($line[$to])<=127; $to--);
-    // lets scan for the start and the end of the to be encoded _words_
-    for(;$from>0 && $line[$from] != ' '; $from--);
-    if($from>0) $from++;
-    for(;$to<strlen($line) && $line[$to] != ' '; $to++);
-    // split the string into the to be encoded middle and the rest
-    $begin=substr($line,0,$from);
-    $middle=substr($line,$from,$to-$from);
-    $end=substr($line,$to);
-    // ok, now lets encode $middle...
-    $newmiddle="";
-    for($i=0; $i<strlen($middle); $i++)
-      $newmiddle .= $qp_table[ord($middle[$i])];
-    // now we glue the parts together...
-    $line=$begin.'=?'.$www_charset.'?Q?'.$newmiddle.'?='.$end;
-  }
-  return $line;
-}
-
-/*
- * generate a message-id for posting.
- * $identity: a string containing informations about the article, to
- *     make a md5-hash out of it.
- *
- * returns: a complete message-id
- */
-function generate_msgid($identity) {
-  global $msgid_generate,$msgid_fqdn;
-  switch($msgid_generate) {
-    case "no":
-      // no, we don't want to generate a message-id.
-      return false;
-      break;
-    case "md5":
-      return '<'.md5($identity).'$1@'.$msgid_fqdn.'>';
-      break;
-    default:
-      return false;
-      break;
-  }
-}
-
-/*
- * Post an article to a newsgroup
- *
- * $subject: The Subject of the article
- * $from: The authors name and email of the article
- * $newsgroups: The groups to post to
- * $ref: The references of the article
- * $body: The article itself
- */
-function message_post($subject,$from,$newsgroups,$ref,$body) {
-  global $server,$port,$send_poster_host,$organization,$text_error;
-  global $file_footer,$www_charset,$spooldir;
-  global $msgid_generate,$msgid_fqdn;
-  flush();
-  $ns=nntp_open($server,$port);
-  if ($ns != false) {
-    fputs($ns,"POST\r\n");
-    $weg=line_read($ns);
-    fputs($ns,'Subject: '.quoted_printable_encode($subject)."\r\n");
-    fputs($ns,'From: '.$from."\r\n");
-    fputs($ns,'Newsgroups: '.$newsgroups."\r\n");
-    fputs($ns,"Mime-Version: 1.0\r\n");
-    fputs($ns,"Content-Type: text/plain; charset=".$www_charset."; format=flowed\r\n");
-    fputs($ns,"Content-Transfer-Encoding: 8bit\r\n");
-    fputs($ns,"User-Agent: NewsPortal/0.36 (http://florian-amrhein.de/newsportal)\r\n");
-    if ($send_poster_host)
-      @fputs($ns,'X-HTTP-Posting-Host: '.gethostbyaddr(getenv("REMOTE_ADDR"))."\r\n");
-    if (($ref!=false) && (count($ref)>0)) {
-      // strip references
-      if(strlen(implode(" ",$ref))>900) {
-        $ref_first=array_shift($ref);
-        do {
-          $ref=array_slice($ref,1);
-        } while(strlen(implode(" ",$ref))>800);
-        array_unshift($ref,$ref_first);
-      }
-      fputs($ns,'References: '.implode(" ",$ref)."\r\n");
-    }
-    if (isset($organization))
-      fputs($ns,'Organization: '.quoted_printable_encode($organization)."\r\n");
-    if ((isset($file_footer)) && ($file_footer!="")) {
-      $footerfile=fopen($file_footer,"r");
-      $body.="\n".fread($footerfile,filesize($file_footer));
-      fclose($footerfile);
-    }
-    if($msgid=generate_msgid(
-                 $subject.",".$from.",".$newsgroups.",".$ref.",".$body))
-      fputs($ns,'Message-ID: '.$msgid."\r\n");
-    $body=str_replace("\n.\r","\n..\r",$body);
-    $body=str_replace("\r",'',$body);
-    $b=split("\n",$body);
-    $body="";
-    for ($i=0; $i<count($b); $i++) {
-      if ((strpos(substr($b[$i],0,strpos($b[$i]," ")),">") != false) | (strcmp(substr($b[$i],0,1),">") == 0)) {
-        $body .= textwrap(stripSlashes($b[$i]),78," \r\n")."\r\n";
-      } else {
-        $body .= textwrap(stripSlashes($b[$i]),74," \r\n")."\r\n";
-      }
-    }
-    fputs($ns,"\r\n".$body."\r\n.\r\n");
-    $message=line_read($ns);
-    nntp_close($ns);
-  } else {
-    $message=$text_error["post_failed"];
-  }
-  // let thread.php ignore the cache for this group, so this new
-  // article will be visible instantly
-  $cachefile=$spooldir.'/'.$newsgroups.'-cache.txt';
-  @unlink($cachefile);
-  return $message;
-}
-?>
\ No newline at end of file
diff --git a/newsgroup/lib/thread.inc.php b/newsgroup/lib/thread.inc.php
deleted file mode 100644 (file)
index 78c8e42..0000000
+++ /dev/null
@@ -1,1030 +0,0 @@
-<?
-/*
- *  NewsPortal: Functions for handling threads
- *
- *  Copyright (C) 2002-2004 Florian Amrhein
- *  E-Mail: newsportal@florian-amrhein.de
- *  Web: http://florian-amrhein.de
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
-/*
- * Shows the little menu on the thread.php where you can select the
- * different pages with the articles on it
- */
-function thread_pageselect($group,$article_count,$first) {
-  global $articles_per_page,$file_thread,$file_framethread,$name;
-  global $text_thread,$thread_show;
-  $pages=ceil($article_count / $articles_per_page);
-  if ($article_count > $articles_per_page)
-    echo $text_thread["pages"];
-    for ($i = 0; $i < $pages; $i++) {
-      // echo '[';
-      if ($first != $i*$articles_per_page+1)
-        echo '<a class="np_pages_unselected" href="'.
-             $file_thread.'?group='.$group.
-             '&amp;first='.($i*$articles_per_page+1).'&amp;last='.
-             ($i+1)*$articles_per_page.'">';
-      else
-        ; //echo '<span class="np_pages_selected">';
-      // echo ($i*$articles_per_page+1).'-';
-      echo $i+1;
-      if ($i == $pages-1) {
-        // echo $article_count;
-      } else {
-        // echo ($i+1)*$articles_per_page;
-      }
-      if ($first != $i*$articles_per_page+1)
-        echo '</a>';
-      else
-        ; //echo '</span>';
-      // echo '] ';
-    }
-}
-
-/*
- * Load a thread from disk
- *
- * $group: name of the newsgroup, is needed to create the filename
- * 
- * returns: an array of headerType containing the thread.
- */
-function thread_cache_load($group) {
-  global $spooldir,$compress_spoolfiles;
-  $filename=$spooldir."/".$group."-data.dat";
-  if (!file_exists($filename)) return false;
-  if ($compress_spoolfiles) {
-    $file=gzopen("$spooldir/$group-data.dat","r");
-    $headers=unserialize(gzread($file,1000000));
-    gzclose($file);
-  } else {
-    $file=fopen($filename,"r");
-    $headers=unserialize(fread($file,filesize($filename)));
-    fclose($file);
-  }
-  return($headers);
-}
-
-
-/*
- * Save the thread to disk
- *
- * $header: is an array of headerType containing the thread
- * $group: name of the newsgroup, is needed to create the filename
- */
-function thread_cache_save($headers,$group) {
-  global $spooldir,$compress_spoolfiles;
-  if ($compress_spoolfiles) {
-    $file=gzopen("$spooldir/$group-data.dat","w");
-    gzputs($file,serialize($headers));
-    gzclose($file);
-  } else {
-    $file=fopen("$spooldir/$group-data.dat","w");
-    if($file===false) {
-      die('The spool-directory is not writeable. Please change the user '.
-          'permissions to give the webserver write-access to it.');
-    }
-    fputs($file,serialize($headers));
-    fclose($file);
-  }
-}
-
-/*
- * remove an article from the overview-file
- * is needed, when article has been canceled, the article is still
- * in the thread spool on disc and someone wants to read this article.
- * the message_read function can now call this function to remove
- * the article.
- */
-function thread_cache_removearticle($group,$id) {
-  $thread=thread_cache_load($group);
-  if(!$thread) return false;
-  $changed=false;
-  foreach ($thread as $value) {
-    if(($value->number==$id) || ($value->id==$id)) {
-      // found to be deleted article
-      // now lets rebuild the tree...
-      if(isset($value->answers))
-        foreach ($value->answers as $key => $answer) {
-          $thread[$answer]->isAnswer=false;
-        }
-      if(isset($value->references))
-        foreach ($value->references as $reference) {
-          if(isset($thread[$reference]->answers)) {
-            $search=array_search($value->id,$thread[$reference]->answers);
-            if(!($search===false))
-              unset($thread[$reference]->answers[$search]);
-          }
-        }
-      unset($thread[$value->id]);
-      $changed=true;
-      break;
-    }
-  }
-  if($changed) thread_cache_save($thread,$group);
-}
-
-/*
-function readArticles(&$ns,$groupname,$articleList) {
-  for($i = 0; $i <= count($articleList)-1 ; $i++) {
-    $temp=read_header($ns,$articleList[$i]);
-    $articles[$temp->id] = $temp;
-  }
-  return $articles;
-}
-*/
-
-/*
- * interpret and decode one line of overview-data from the newsserver and
- * put it into an headerType
- *
- * $line: the data to be interpreted
- * $overviewformat: the format of an overview-line, given by
- *                  thread_overview_read()
- * $groupname: the name of the newsgroup
- *
- * returns: headerType containing the data
- */
-function thread_overview_interpret($line,$overviewformat,$groupname) {
-  $return="";
-  $overviewfmt=explode("\t",$overviewformat);
-  echo " ";                // keep the connection to the webbrowser alive
-  flush();                 // while generating the message-tree
-//  $over=split("\t",$line,count($overviewfmt)-1);
-  $over=split("\t",$line);
-  //$article=new headerType;
-  for ($i=0; $i<count($overviewfmt)-1; $i++) {
-    if ($overviewfmt[$i]=="Subject:") {
-      $subject=eregi_replace('\[doctalk\]','',headerDecode($over[$i+1]));
-      $article->isReply=splitSubject($subject);
-      $article->subject=$subject;
-    }
-    if ($overviewfmt[$i]=="Date:") {
-      $article->date=getTimestamp($over[$i+1]);
-    }
-    if ($overviewfmt[$i]=="From:") {
-      $fromline=address_decode(headerDecode($over[$i+1]),"nirgendwo");
-      $article->from=$fromline[0]["mailbox"]."@".$fromline[0]["host"];
-      $article->username=$fromline[0]["mailbox"];
-      if (!isset($fromline[0]["personal"])) {
-        $article->name=$fromline[0]["mailbox"];
-        if (strpos($article->name,'%')) {
-          $article->name=substr($article->name,0,strpos($article->name,'%'));
-        }
-        $article->name=strtr($article->name,'_',' ');
-      } else {
-        $article->name=$fromline[0]["personal"];
-      }
-    }
-    if ($overviewfmt[$i]=="Message-ID:") $article->id=$over[$i+1];
-    if (($overviewfmt[$i]=="References:") && ($over[$i+1] != "")) {
-      $article->references=explode(" ",$over[$i+1]);
-    }
-  }
-  $article->number=$over[0];
-  $article->isAnswer=false;
-  return($article);
-}
-
-/*
- * read the overview-format from the newsserver. This data is used
- * by thread_overview_interpret
- */
-function thread_overview_read(&$ns) {
-  $overviewfmt=array();
-  fputs($ns,"LIST overview.fmt\r\n");  // find out the format of the
-  $tmp=line_read($ns);                 // xover-command
-  if(substr($tmp,0,3)=="215") {
-    $line=line_read($ns);
-    while (strcmp($line,".") != 0) {
-      // workaround for braindead CLNews newsserver
-      if($line=="Author:")
-        $overviewfmt[]="From:";
-      else
-        $overviewfmt[]=$line;
-      $line=line_read($ns);
-    }
-  } else {
-    // some stupid newsservers, like changi, don't send their overview
-    // format
-    // let's hope, that the format is like that from INN
-    $overviewfmt=array("Subject:","From:","Date:","Message-ID:",
-                          "References:","Bytes:");
-  }
-  $overviewformat=implode("\t",$overviewfmt);
-  return $overviewformat;
-}
-
-function thread_mycompare($a,$b) {
-    global $thread_sort_order,$thread_sort_type;
-    if($thread_sort_type!="thread") {
-      $r=($a->date<$b->date) ? -1 : 1;
-      if ($a->date==$b->date) $r=0;
-    } else {
-      $r=($a->date_thread<$b->date_thread) ? -1 : 1;
-      if ($a->date_thread==$b->date_thread) $r=0;
-    }
-    return $r*$thread_sort_order;
-}
-
-/*
- * this function loads the (missing parts of the) thread from the newsserver.
- * it also loads the thread from the disk cache to detect which parts
- * are missing and merges this data with the parts from the
- * newsserver.
- * if it detects that the newsserver made major changes in the groups,
- * for example if it expired parts of the group or reset its counters,
- * this function deletes the cached data and make a complete rebuild.
- *
- * $ns: handle of the connection to the newsserver
- * $groupname: name of the newsgroup
- * $poll: if set to 1, this function works in polling-mode, which
- *        means, that it also read every article from the newsserver.
- *        This makes only sense if the article cache is activated
- */
-function thread_load_newsserver(&$ns,$groupname,$poll) {
-  global $spooldir,$maxarticles,$maxfetch,$initialfetch,$maxarticles_extra;
-  global $text_error,$text_thread,$compress_spoolfiles,$server;
-  global $www_charset,$iconv_enable,$thread_show,$thread_sort_order;
-  $idstring="0.36,".$server.",".$compress_spoolfiles.",".$maxarticles.",".
-            $maxarticles_extra.",".$maxfetch.",".$initialfetch.",".
-            $www_charset.','.$iconv_enable.','.$thread_show["replies"];
-  $overviewformat=thread_overview_read($ns);
-  $spoolfilename=$spooldir."/".$groupname."-data.dat";
-  fputs($ns,"GROUP $groupname\r\n");   // select a group
-  $groupinfo=explode(" ",line_read($ns));
-  if (substr($groupinfo[0],0,1) != 2) {
-    echo "<p>".$text_error["error:"]."</p>";
-    echo "<p>".$text_thread["no_such_group"]."</p>";
-    flush();
-  } else {
-    $infofilename=$spooldir."/".$groupname."-info.txt";
-    // lets find out, in which mode wie want to read articles:
-    // w: complete rebuild of the group-info file
-    // a: add new articles to the group-info file
-    // n: there are no new articles, no rebuild or actualisation
-    $spoolopenmodus="n";
-    // if the group-info file doesn't exist: create it
-    if (!((file_exists($infofilename)) && (file_exists($spoolfilename)) &&
-          (filesize($infofilename)>0) && (filesize($spoolfilename)>0))) {
-      $spoolopenmodus="w";
-    } else {
-      $infofile=fopen($infofilename,"r");
-      $oldid=fgets($infofile,100);
-      if (trim($oldid) != $idstring) {
-        echo "<!-- Database Error, rebuilding Database...-->\n";
-        $spoolopenmodus="w";
-      }
-      $oldgroupinfo=explode(" ",trim(fgets($infofile,200)));
-      fclose($infofile);
-      if ($groupinfo[3] < $oldgroupinfo[1]) {
-        $spoolopenmodus="w";
-      }
-      if ($maxarticles == 0) {
-        if ($groupinfo[2] != $oldgroupinfo[0]) $spoolopenmodus="w";
-      } else {
-        if ($groupinfo[2] > $oldgroupinfo[0]) $spoolopenmodus="w";
-      }
-      // if the high watermark increased, add articles to the existing spool
-      if (($spoolopenmodus == "n") && ($groupinfo[3] > $oldgroupinfo[1]))
-        $spoolopenmodus="a";
-    }
-    if ($spoolopenmodus=="a") {
-      $firstarticle=$oldgroupinfo[1]+1;
-      $lastarticle=$groupinfo[3];
-    }
-    if ($spoolopenmodus=="w") {
-      $firstarticle=$groupinfo[2];
-      $lastarticle=$groupinfo[3];
-    }
-    if ($spoolopenmodus != "n") {
-      if ($maxarticles != 0) {
-        if ($spoolopenmodus == "w") {
-          $firstarticle=$lastarticle-$maxarticles+1;
-          if ($firstarticle < $groupinfo[2])
-            $firstarticle=$groupinfo[2];
-        } else {
-          if ($lastarticle-$oldgroupinfo[0]+1 > $maxarticles + $maxarticles_extra) {
-            $firstarticle=$lastarticle-$maxarticles+1;
-            $spoolopenmodus="w";
-          }
-        }
-      }
-      if (($maxfetch!=0) && (($lastarticle-$firstarticle+1) > $maxfetch)) {
-        if ($spoolopenmodus=="w") {
-          $tofetch=($initialfetch != 0) ? $initialfetch : $maxfetch;
-          $lastarticle=$firstarticle+$tofetch-1;
-        } else {
-          $lastarticle=$firstarticle+$maxfetch-1;
-        }
-      }
-    }
-    echo "<!--openmodus: ".$spoolopenmodus."-->\n";
-    // load the old spool-file, if we do not have a complete rebuild
-    if ($spoolopenmodus != "w") $headers=thread_cache_load($groupname);
-    // read articles from the newsserver
-    if ($spoolopenmodus != "n") {
-      // order the article overviews from the newsserver
-      fputs($ns,"XOVER ".$firstarticle."-".$lastarticle."\r\n");
-      $tmp=line_read($ns);
-      // have the server accepted our order?
-      if (substr($tmp,0,3) == "224") {
-        $line=line_read($ns);
-        // read overview by overview until the data ends
-        while ($line != ".") {
-          // parse the output of the server...
-          $article=thread_overview_interpret($line,$overviewformat,$groupname);
-          // ... and save it in our data structure
-          $article->threadsize++;
-          $article->date_thread=$article->date;
-          $headers[$article->id]=$article;
-          // if we are in poll-mode: print status information and
-          // decode the article itself, so it can be saved in the article
-          // cache
-          if($poll) {
-            echo $article->number.", "; flush();
-            message_read($article->number,0,$groupname);
-          }
-          // read the next line from the newsserver
-          $line=line_read($ns);
-        }
-        // write information about the last article to the spool-directory
-        $infofile=fopen($spooldir."/".urlencode($groupname)."-lastarticleinfo.dat","w");
-        $lastarticleinfo->from=$article->from;
-        $lastarticleinfo->date=$article->date;
-        $lastarticleinfo->name=$article->name;
-        fputs($infofile,serialize($lastarticleinfo));
-        fclose($infofile);
-      }
-      // remove the old spoolfile
-      if (file_exists($spoolfilename)) unlink($spoolfilename);
-      if ((isset($headers)) && (count($headers)>0)) {
-        //$infofile=fopen($infofilename,"w");
-        //if ($spoolopenmodus=="a") $firstarticle=$oldgroupinfo[0];
-        //fputs($infofile,$idstring."\n");
-        //fputs($infofile,$firstarticle." ".$lastarticle."\r\n");
-        //fclose($infofile);
-        foreach($headers as $c) {
-          if (($c->isAnswer == false) &&
-             (isset($c->references))) {   // is the article an answer to an
-                                          // other article?
-            // try to find a matching article to one of the references
-            $refmatch=false;
-            foreach ($c->references as $reference) {
-              if(isset($headers[$reference])) {
-                $refmatch=$reference;
-              }
-            }
-            // have we found an article, to which this article is an answer?
-            if($refmatch!=false) {
-              $c->isAnswer=true;
-              $c->bestreference=$refmatch;
-              $headers[$c->id]=$c;
-              // the referenced article get the ID af this article as in
-              // its answers-array
-              $headers[$refmatch]->answers[]=$c->id;
-              // propagate down the number of articles in this thread
-              $d =& $headers[$c->bestreference];
-              do {
-                $d->threadsize+=$c->threadsize;
-                $d->date_thread=max($c->date,$d->date_thread);
-              } while(($headers[$d->bestreference]) && 
-                        (isset($d->bestreference)) &&
-                        ($d =& $headers[$d->bestreference]));
-            }
-          }
-        }
-        reset($headers);
-        // sort the articles
-        if (($thread_sort_order != 0) && (count($headers)>0))
-          uasort($headers,'thread_mycompare');
-        // Save the thread-informations
-        thread_cache_save($headers,$groupname);
-        // Save the info-file
-        $infofile=fopen($infofilename,"w");
-        if ($spoolopenmodus=="a") $firstarticle=$oldgroupinfo[0];
-        fputs($infofile,$idstring."\n");
-        fputs($infofile,$firstarticle." ".$lastarticle." ".count($headers)."\r\n");
-        fclose($infofile);
-      }
-      // remove cached articles that are not in this group
-      // (expired on the server or canceled)
-      $dirhandle=opendir($spooldir);
-      while ($cachefile = readdir($dirhandle)) {
-        if(substr($cachefile,0,strlen($groupname)+1)==$groupname."_") {
-          $num=eregi_replace('^(.*)_(.*)\.(.*)$','\2',$cachefile);
-          if(($num<$firstarticle) || ($num>$lastarticle))
-            unlink($spooldir.'/'.$cachefile);
-        }
-        // remove the html cache files of this group
-        if((substr($cachefile,strlen($cachefile)-5)==".html") &&
-           (substr($cachefile,0,strlen($groupname)+1)==$groupname."-"))
-          unlink($spooldir.'/'.$cachefile);
-      }
-    }
-    if(isset($headers))
-      return $headers;
-    return false;
-    //return((isset($headers)) ? $headers : false);
-  }
-}  
-
-
-/*
- * Read the Overview.
- * Format of the overview-file:
- *    message-id
- *    date
- *    subject
- *    author
- *    email
- *    references
- *
- * $groupname: name of the newsgroup
- * $readmode: if set to 0, this function only reads data from the 
- *            newsserver, if there exists no cached data for this group
- * $poll: polling mode, see description at thread_load_newsserver()
- */
-
-function thread_load($groupname,$readmode = 1,$poll=false) {
-  global $text_error, $maxarticles, $server, $port;
-  global $spooldir,$thread_sort_order,$cache_thread;
-  if (!testGroup($groupname)) {
-    echo $text_error["read_access_denied"];
-    return;
-  }
-  // first assume that we have to query the newsserver
-  $query_ns=true;
-  // name of the file that indicates by it's timestamp when the
-  // last query of the newsserver was
-  $cachefile=$spooldir.'/'.$groupname.'-cache.txt';
-  // should we load the data only from cache if it's recent enough, or
-  // do we have to query the newsserver every time?
-  if($cache_thread>0) {
-    if((file_exists($cachefile)) && 
-       (filemtime($cachefile)+$cache_thread>time())) {
-      // cached file exists and is new enough. so lets read it out.
-      $articles=thread_cache_load($groupname);
-      return $articles;
-      $query_ns=false;
-    }
-  }
-  // do we have to query the newsserver?
-  if($query_ns) {
-    // look if there is new data on the newsserver
-    $ns=nntp_open($server,$port);
-    if ($ns == false) return false;
-    if (($ns!=false) && ($readmode > 0)) 
-      $articles=thread_load_newsserver($ns,$groupname,$poll);
-    if ((isset($articles)) && ($articles)) {
-
-      // write the file which indicates the time of the last newsserver query
-      $fp_cachefile=@fopen($cachefile,"w");
-      if($fp_cachefile!==false) {
-        fputs($fp_cachefile,"");
-        fclose($fp_cachefile);
-        return $articles;
-      }
-    } else {
-      // uh, we didn't get articles from the newsservers...
-      // for now, return false. but it would also make sense to get
-      // the articles from the cache then...
-      return false;
-    }
-    nntp_close($ns);
-  }
-}
-
-/*
- * Remove re:, aw: etc. from a subject.
- *
- * $subject: a string containing the complete Subject
- *
- * The function removes the re:, aw: etc. from $subject end returns true
- * if it removed anything, and false if not.
- */
-function splitSubject(&$subject) {
-  $s=eregi_replace('^(odp:|aw:|re:|re\[2\]:| )+','',$subject);
-  $return=($s != $subject);
-  $subject=$s;
-  return $return;
-}
-
-function str_change($str,$pos,$char) {
-  return(substr($str,0,$pos).$char.substr($str,$pos+1,strlen($str)-$pos));
-}
-
-/*
- * calculate the graphic representation of the thread
- */
-function thread_show_calculate($newtree,$depth,$num,$liste,$c) {
-  global $thread_show;
-  // displays the replies to an article?
-  if(!$thread_show["replies"]) {
-    // no
-    if ((isset($c->answers[0])) && (count($c->answers)>0))
-      $newtree.="o";
-    else
-      $newtree.="o";
-  } else {
-    // yes, display the replies
-    if ((isset($c->answers[0])) && (count($c->answers)>0)) {
-      $newtree.="*";
-    } else {
-      if ($depth == 1) {
-        $newtree.="o";
-      } else {
-        $newtree.="-";
-      }
-    }
-    if (($num == count($liste)-1) && ($depth>1)) {
-      $newtree=str_change($newtree,$depth-2,"`");
-    }
-  }
-  return($newtree);
-}
-
-
-/*
- * Format the message-tree
- * Zeichen im Baum:
- *  o : leerer Kasten            k1.gif
- *  * : Kasten mit Zeichen drin  k2.gif
- *  i : vertikale Linie          I.gif
- *  - : horizontale Linie        s.gif
- *  + : T-Stueck                 T.gif
- *  ` : Winkel                   L.gif
- */
-function thread_show_treegraphic($newtree) {
-  global $imgdir;
-  $return="";
-  for ($o=0 ; $o<strlen($newtree) ; $o++) {
-    $return .= '<img src="'.$imgdir.'/';
-    $k=substr($newtree,$o,1);
-    $alt=$k;
-    switch ($k) {
-      case "o":
-        $return .= 'k1.gif';
-        break;
-      case "*":
-        $return .= 'k2.gif';
-        break;
-      case "i":
-        $return .= 'I.gif';
-        $alt='|';
-        break;
-      case "-":
-        $return .= 's.gif';
-        break;
-      case "+":
-        $return .= 'T.gif';
-        break;
-      case "`":
-        $return .= 'L.gif';
-        break;
-      case ".":
-        $return .= 'e.gif';
-        $alt='&nbsp;';
-        break;
-      }
-    $return .= '" alt="'.$alt.'" class="thread_image"';
-    if (strcmp($k,".") == 0) $return .=(' width="12" height="9"');
-    $return .= '>';
-  }
-  return($return);
-}
-
-function formatTreeText($tree) {
-  $tree=str_replace("i","|",$tree);
-  $tree=str_replace(".","&nbsp;",$tree);
-  return($tree);
-}
-
-/*
- * format the subject inside the thread
- */
-function thread_format_subject($c,$group,$highlightids=false) {
-  global $file_article, $thread_maxSubject, $frame_article;
-  if ($c->isReply) {
-    $re="Re: ";
-  } else {
-    $re="";
-  }
-  // is the current article to be highlighted?
-  if(($highlightids) &&
-     ((in_array($c->id,$highlightids)) ||
-      (in_array($c->number,$highlightids))))
-    $highlight=true;
-  else
-    $highlight=false;
-  if($highlight)
-    $return='<b>';
-  else {
-    $return='<a ';
-    if ((isset($frame_article)) && ($frame_article != ""))
-      $return .= 'target="'.$frame_article.'" ';
-    $return .= 'href="'.$file_article.
-       '?id='.urlencode($c->number).'&group='.urlencode($group).'#'.
-       urlencode($c->number).'">';
-  }
-  $return.=$re.htmlspecialchars(substr(trim($c->subject),0,$thread_maxSubject));
-  if($highlight)
-    $return.='</b>';
-  else
-    $return.='</a>';
-  return($return);
-}
-
-/*
- * colorize the date inside the thread
- */
-function thread_format_date_color($date) {
-  global $age_count,$age_time,$age_color;
-  $return="";
-  $currentTime=time();
-  if ($age_count > 0)
-    for($t = $age_count; $t >= 1; $t--) {
-      if ($currentTime - $date < $age_time[$t])
-        $color = $age_color[$t];
-    }
-  if (isset($color))
-    return $color;
-  else
-    return "";
-}
-
-/*
- * format the date inside the thread
- */
-function thread_format_date($c) {
-  global $age_count,$age_time,$age_color,$thread_show;
-  $return="";
-  $currentTime=time();
-  $color="";
-  // show the date of the individual article or of the latest article
-  // in the thread?
-  if($thread_show["lastdate"])
-    $date=$c->date_thread;
-  else
-    $date=$c->date;
-  if ($age_count > 0)
-    for($t = $age_count; $t >= 1; $t--)
-      if ($currentTime - $date < $age_time[$t]) $color = $age_color[$t];
-  if ($color != "") $return .= '<font color="'.$color.'">';
-  $return .= date("d.m.",$date);                 // format the date
-  if ($color != "") $return .= '</font>';
-  return($return);
-}
-
-/*
- * format the author inside the thread
- */
-function thread_format_author($c) {
-  global $thread_show,$anonym_address;
-  // if the address the anonymous address, only return the name
-  if($c->from==$anonym_address)
-    return $c->name;
-  $return="";
-  if($thread_show["authorlink"])
-    $return .= '<a href="mailto:'.trim($c->from).'">';
-  if (trim($c->name)!="") { 
-    $return .= htmlspecialchars(trim($c->name));
-  } else {
-    if (isset($c->username)) {
-      $s = strpos($c->username,"%");
-      if ($s != false) {
-        $return .= htmlspecialchars(substr($c->username,0,$s));
-      } else {
-        $return .= htmlspecialchars($c->username);
-      }
-    }
-  }
-  if($thread_show["authorlink"])
-    $return .= "</a>";
-  return($return);
-}
-
-/*
- * Displays a part of the thread. This function is recursively called
- * It is used by thread_show
- */
-function thread_show_recursive(&$headers,&$liste,$depth,$tree,$group,$article_first=0,$article_last=0,&$article_count,$highlight=false) {
-  global $thread_treestyle;
-  global $thread_show,$imgdir;
-  global $file_article,$thread_maxSubject;
-  global $age_count,$age_time,$age_color;
-  global $frame_article;
-  $output="";
-  if ($thread_treestyle==3) $output.= "\n<UL>\n";
-  for ($i = 0 ; $i<count($liste) ; $i++) {
-    // CSS class for the actual line
-    $lineclass="np_thread_line".(($article_count%2)+1);
-    // read the first article
-    $c=$headers[$liste[$i]]; 
-    $article_count++; 
-    // Render the graphical tree
-    switch ($thread_treestyle) {
-      case 4:  // thread
-      case 5:  // thread, graphic
-      case 6:  // thread, table
-      case 7:  // thread, table, graphic
-        $newtree=thread_show_calculate($tree,$depth,$i,$liste,$c);
-    }
-    if (($article_first == 0) ||
-        (($article_count >= $article_first) &&
-         ($article_count <= $article_last))) {
-      switch ($thread_treestyle) {
-        case 0: // simple list
-          $output.= '<span class="np_thread_line_text">';
-          if ($thread_show["date"]) $output.= thread_format_date($c)." ";
-          if ($thread_show["subject"]) $output.= thread_format_subject($c,$group)." ";
-          if ($thread_show["author"]) $output.= "(".thread_format_author($c).")";
-          $output.= '</span>';
-          $output.= "<br>\n";
-          break;
-        case 1: // html-auflistung, kein baum
-          $output.= '<li><nobr><span class="np_thread_line_text">';
-          if ($thread_show["date"])
-            $output.= thread_format_date($c).' ';
-          if ($thread_show["subject"])
-            $output.= thread_format_subject($c,$group,$highlight).' ';
-          if ($thread_show["author"])
-            $output.= "<i>(".thread_format_author($c).")</i>";
-          $output.= '</span></nobr></li>';
-          break;
-        case 2:   // table
-          $output.= '<tr>';
-          if ($thread_show["date"]) {
-            $output.= '<td><span class="np_thread_line_text">'.
-                      thread_format_date($c).' </span></td>';
-          }
-          if ($thread_show["subject"]) {
-            $output.= '<td nowrap="nowrap">'.
-                 '<span class="np_thread_line_text">'.
-                 thread_format_subject($c,$group,$highlight).
-                 '</span></td>';
-          }
-          if ($thread_show["author"]) {
-            $output.= '<td></td>'.
-                      '<td nowrap="nowrap">'.
-                      '<span class="np_thread_line_text">'.thread_format_author($c).
-                      '</span></td>';
-          }
-          $output.= "</tr>\n";
-          break;
-        case 3: // html-tree
-          $output.= '<li><nobr><span class="np_thread_line_text">';
-          if ($thread_show["date"])
-            $output.= thread_format_date($c)." ";
-          if ($thread_show["subject"])
-            $output.= thread_format_subject($c,$group,$highlight)." ";
-          if ($thread_show["author"])
-            $output.= "<i>(".thread_format_author($c).")</i>";
-          $output.= "</span></nobr>";
-          break;
-        case 4:  // thread
-          $output.= '<nobr><tt><span class="np_thread_line_text">';
-          if ($thread_show["date"])
-            $output.= thread_format_date($c)." ";
-          $output.= formatTreeText($newtree)." ";
-          if ($thread_show["subject"])
-            $output.= thread_format_subject($c,$group,$highlight)." ";
-          if ($thread_show["author"])
-            $output.= "<i>(".thread_format_author($c).")</i>";
-          $output.= '</span></tt></nobr><br>';
-          break;
-        case 5:  // thread, graphic
-          $output.= '<table cellspacing="0"><tr>';
-          if ($thread_show["date"])
-            $output.= '<td nowrap="nowrap">'.
-                      '<span class="np_thread_line_text">'.
-                      thread_format_date($c).' </span></td>';
-          $output.= '<td><span class="np_thread_line_text">'.
-                    thread_show_treegraphic($newtree).'</span></td>';
-          if ($thread_show["subject"])
-            $output.= '<td nowrap="nowrap">'.
-                      '<span class="np_thread_line_text">&nbsp;'.
-                      thread_format_subject($c,$group,$highlight)." ";
-          if ($thread_show["author"])
-            $output.= '('.thread_format_author($c).')</span></td>';
-          $output.= "</tr></table>";
-          break;
-        case 6:  // thread, table
-          $output.= "<tr>";
-          if ($thread_show["date"])
-            $output.= '<td nowrap="nowrap"><tt>'.
-                      '<span class="np_thread_line_text">'.
-                      thread_format_date($c).' </span></tt></td>';
-          $output.= '<td nowrap="nowrap"><tt>'.
-                    '<span class="np_thread_line_text">'.
-                    formatTreeText($newtree)." ";
-          if ($thread_show["subject"]) {
-            $output.= thread_format_subject($c,$group,$highlight)."</span></tt></td>";
-            $output.= "<td></td>";
-          }
-          if ($thread_show["author"])
-            $output.= '<td nowrap="nowrap"><tt>'.
-                      '<span class="np_thread_line_text">'.
-                      thread_format_author($c).'</span></tt></td>';
-          $output.= "</tr>";
-          break;
-        case 7:  // thread, table, graphic
-          $output.= '<tr class="'.$lineclass;
-          $output.='">';
-          if ($thread_show["date"])
-            $output.= '<td class="'.$lineclass.'" nowrap="nowrap">'.
-                      '<span class="np_thread_line_text">'.
-                      thread_format_date($c)." ".
-                      '</span></td>';
-            $output.= '<td nowrap class="'.$lineclass.'">';
-            $output.= thread_show_treegraphic($newtree);
-            if ($thread_show["subject"])
-              $output.= '<span class="np_thread_line_text">&nbsp;'.
-                thread_format_subject($c,$group,$highlight).'</span>';
-            $output.='</td>';
-            if($thread_show["threadsize"])
-              $output.= "<td>".$c->threadsize.'</td>';
-            if ($thread_show["subject"]) $output.= "<td></td>";
-            if ($thread_show["author"])
-              $output.= '<td class="'.$lineclass.'" nowrap="nowrap">'.
-                      '<span class="np_thread_line_text">'.
-                      thread_format_author($c).'</span></td>';
-            $output.= "</tr>";
-            break;
-      }
-    }
-    if ((isset($c->answers[0])) && (count($c->answers)>0) &&
-        ($article_count<=$article_last)) {
-      if ($thread_treestyle >= 4) {
-        if (substr($newtree,$depth-2,1) == "+")
-          $newtree=str_change($newtree,$depth-2,"i");
-        $newtree=str_change($newtree,$depth-1,"+");
-        $newtree=strtr($newtree,"`",".");
-      }
-      if (!isset($newtree)) $newtree="";
-      if($thread_show["replies"]) {
-        $output.=thread_show_recursive($headers,$c->answers,$depth+1,$newtree."",$group,
-                   $article_first,$article_last,$article_count,$highlight);
-      }
-    }
-    flush();
-  }
-  if ($thread_treestyle==3) $output.= "</UL>";
-  return $output;
-}
-
-
-/*
- * Displays the Head (table tags, headlines etc.) of a thread
- */
-function thread_show_head() {
-  global $thread_show, $thread_showTable;
-  global $text_thread,$thread_treestyle;
-  if (($thread_treestyle==2) || ($thread_treestyle==6) ||
-      ($thread_treestyle==7)) {
-    echo '<table cellspacing="0" class="np_thread_table">';
-    echo '<tr class="np_thread_head">'."\n";
-    if ($thread_show["date"])
-      echo '<td width="1%" class="np_thread_head">'.$text_thread["date"]."&nbsp;</td>";
-    if ($thread_show["subject"])
-      echo '<td class="np_thread_head">'.
-           $text_thread["subject"]."</td>";
-    if ($thread_show["threadsize"])
-      echo '<td class="np_thread_head">'.
-           $text_thread["threadsize"]."</td>";
-    if ($thread_show["author"]) {
-      echo '<td class="np_thread_head">&nbsp;&nbsp;</td>';
-      echo '<td class="np_thread_head">'.$text_thread["author"]."</td>\n";
-    }
-    echo "</tr>\n";
-  } else {
-    if ($thread_treestyle==1) echo "<ul>\n";
-  }
-}
-
-/*
- * Displays the tail (closing table tags, headlines etc.) of a thread
- */
-function thread_show_tail() {
-  global $thread_show, $thread_showTable;
-  global $text_thread,$thread_treestyle;
-  if (($thread_treestyle==2) || ($thread_treestyle==6) ||
-      ($thread_treestyle==7)) {
-    echo "</table>\n";
-  } else {
-    if ($thread_treestyle==1) echo "</ul>\n";
-  }
-}
-
-/*
- * Shows a complete thread
- *
- * $headers: The thread to be displayed
- * $group:   name of the newsgroup
- * $article_first: Number of the first article to be displayed
- * $article_last: last article
- */
-function thread_show(&$headers,$group,$article_first=0,$article_last=0) {
-  global $spooldir,$text_thread;
-  $article_count=0;
-  if ($headers == false) {
-    echo $text_thread["no_articles"];
-  } else {
-    // exists a cached html-output?
-    $filename=$spooldir."/".$group."-".$article_first."-".
-              $article_last.".html";
-    if (!file_exists($filename)) {
-      // no, we need to create a new html-output
-      $output="";
-      reset($headers);
-      $c=current($headers);
-      for ($i=0; $i<=count($headers)-1; $i++) {  // create the array $liste
-        if ($c->isAnswer == false) {             // where are all the articles
-          $liste[]=$c->id;                       // in that don't have
-        }                                        // references
-        $c=next($headers);
-      }
-      reset($liste);
-      if (count($liste)>0) {
-        $output.=thread_show_recursive($headers,$liste,1,"",$group,$article_first,
-                 $article_last,$article_count);
-      }
-      // cache the html-output
-      $file=fopen($filename,"w");
-      fputs($file,$output);
-      fclose($file);
-    } else {
-      // yes, a cached output exists, load it!
-      $file=fopen($filename,"r");
-      $output=fread($file,filesize($filename));
-      fclose($file);
-    }
-    thread_show_head();
-    echo $output;
-    thread_show_tail();
-  }
-}
-
-
-
-
-/*
- * returns the article-numbers of all articles in a given subthread
- *
- * $id: article number or message id of a article in a subthread
- * $thread: thread data, as returned by thread_cache_load()
- */
-function thread_getsubthreadids($id,$thread) {
-  // recursive helper function to walk through the subtree
-  function thread_getsubthreadids_recursive($id) {
-    global $thread;
-    $answers=array($thread[$id]->number);
-    // has this article answers?
-    if(isset($thread[$id]->answers)) {
-      // walk through the answers
-      foreach($thread[$id]->answers as $answer) {
-        $answers=array_merge($answers,
-             thread_getsubthreadids_recursive($answer));
-      }
-    }
-    return $answers;
-  }
-
-//echo htmlspecialchars(print_r($thread,true));
-  // exists the article $id?
-  if(!isset($thread[$id]))
-    return false;
-  // "rewind" the subthread to the first article in the subthread
-  $current=$id;
-  flush();
-  while(isset($thread[$id]->references)) {
-    foreach($thread[$id]->references as $reference) {
-      if((trim($reference)!='') && (isset($thread[$reference]))) {
-        $id=$reference;
-        continue 2;
-      }
-    }
-    break;
-  }
-
-  // walk through the thread and fill up $subthread
-  // use the recursive helper-function thread_getsubthreadids_recursive
-  $subthread=thread_getsubthreadids_recursive($id);
-  return $subthread;
-}
-
-?>
\ No newline at end of file
diff --git a/newsgroup/lib/types.inc.php b/newsgroup/lib/types.inc.php
deleted file mode 100644 (file)
index df049d8..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-<?
-/*
- *  NewsPortal: Data type declarations
- *
- *  Copyright (C) 2002-2004 Florian Amrhein
- *  E-Mail: newsportal@florian-amrhein.de
- *  Web: http://florian-amrhein.de
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-
-/*
- * the name and the description of a newsgroup
- */
-class newsgroupType {
-  var $name;
-  var $description;
-  var $count;
-  var $text;
-}
-
-/*
- * Stores a complete article:
- * - The parsed Header as an headerType
- * - The bodies and attachments as an array of array of lines
- */
-class messageType {
-  var $header;
-  var $body;
-}
-
-
-
-/*
- * Stores the Header of an article
- */
-class headerType {
-  var $number; // the Number of an article inside a group
-  var $id;     // Message-ID
-  var $from;   // eMail of the author
-  var $name;   // Name of the author
-  var $subject; // the subject
-  var $newsgroups;  // the Newsgroups where the article belongs to
-  var $followup;
-  var $date;         // timestamp of the article
-  var $date_thread;  // timestamp of the newest article in the thread
-  var $organization;
-  var $xnoarchive;
-  var $references;     // all references to the article
-  var $bestreference;  // nearest reference found
-  var $content_transfer_encoding;
-  var $mime_version;
-  var $content_type;   // array, Content-Type of the Body (Index=0) and the
-                       // Attachments (Index>0)
-  var $content_type_charset;  // like content_type
-  var $content_type_name;     // array of the names of the attachments
-  var $content_type_boundary; // The boundary of an multipart-article.
-  var $content_type_format;   // array, is the body in flowed format?
-  var $answers;    // which articles are followups of this article?
-  var $isAnswer;   // is the article an answer to an other article?
-  var $username;
-  var $user_agent;
-  var $isReply;    // has this article "Re: " at the beginning of the subject?
-  var $threadsize; // number of articles in this thread
-}
-?>
\ No newline at end of file
diff --git a/newsgroup/lib/validator.inc b/newsgroup/lib/validator.inc
deleted file mode 100644 (file)
index efcd993..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-<?
-/*
- * Validator
- *
- * Validierung von Formulareingaben
- *
- * Autor: Florian Amrhein
- */
-
-class formvalidate {
-  var $fields=array();
-  /*
-   * Überprüft ein komplettes Formular auf korrekte Eingaben, und liefert
-   * false, falls irgendwo ein Fehler vorhanden ist.
-   * Setzt intern die entsprechenden Daten, die show_error und
-   * is_error zum Abfragen der Daten benötigen.
-   */
-  function validate() {
-    $errors=false;
-    foreach($this->fields as $field) {
-      switch($field->typ) {
-        case "text":
-        case "textarea":
-        case "checkbox":
-        case "radiobutton":
-          // Basteln wegen scheiss PHP
-          $valtmp=$field->validator;
-          // feld_leer*feld_darf_leer + 
-          // nicht_feld_leer*(testfkt.ex.*testfkt +
-          //   nicht_testfkt.ex)
-          if(
-             (
-              (
-               (!isset($_REQUEST[$field->name])) ||
-               (trim($_REQUEST[$field->name])=="")
-              ) &&
-              (isset($field->empty)) &&
-              ($field->empty==true)
-             ) || (
-              (isset($_REQUEST[$field->name])) &&
-              (trim($_REQUEST[$field->name])!="") &&
-              (
-               ($field->validator==false) ||
-               ($field->validator!=false) &&
-               (($errmsg=$valtmp($_REQUEST[$field->name]))===true)
-              )
-             )
-            ) {
-            // Feld leer und darf leer sein, oder
-            // feld voll und (testfunktion existiert und testfkt.=true
-            //                oder testfunktion existiert nicht)
-            $this->fields[$field->name]->error=false;
-          } else {
-            // Feld leer und darf nicht leer sein, oder
-            // Feld voll und testfkt.ex und testfunktion=false
-            $errors=true;
-            $this->fields[$field->name]->error=true;
-            if(isset($errmsg)) {
-              $this->fields[$field->name]->errormessage=$errmsg;
-              unset($errmsg);
-            }
-          }
-          break;
-        case "pulldown":
-        case "check-text":
-        case "radio-text":
-          if((isset($field->empty)) && (!$field->empty) &&
-             ((!isset($_REQUEST[$field->name])) ||
-              (trim($_REQUEST[$field->name])=="") ||
-              (($_REQUEST[$field->name]=="_frei") &&
-               ((!isset($_REQUEST[$field->name."_frei"])) ||
-                (trim($_REQUEST[$field->name."_frei"])=="")
-               )
-              )
-             )
-            ) {
-            $errors=true;
-            $this->fields[$field->name]->error=true;
-          } else {
-            $this->fields[$field->name]->error=false;
-          }
-          break;
-      }
-//      echo '<p>eval: '.$field->name.': '.$_REQUEST[$field->name].'</p>';
-    }
-    return !$errors;
-  }
-
-
-  /*
-   * liefert true, falls $name fehlerhaft ausgefüllt wurde
-   */
-  function is_error($name) {
-    return $this->fields[$name]->error;   
-  }
-
-  /*
-   * Liefert die individuelle Fehlermeldung, falls $name fehlerhaft
-   * ausgefüllt wurde. Falls keine Meldung vorliegt, wird false
-   * geliefert.
-   */
-  function geterrormessage($name) {
-    if(isset($this->fields[$name]->errormessage))
-      return $this->fields[$name]->errormessage;
-    else
-      return false;
-  }
-
-  /*
-   * Zeigt gegebenenfalls eine Fehlermeldung an, falls $name nicht
-   * korrekt ausgefüllt wurde
-   */
-  function show_error($name) {
-    if($this->is_error($name)) {
-      echo "<p>fehler</p>";
-    }
-  }
-
-  /*
-   * Zeigt den Titel zu einem Feld an. Ist das zugehörige Feld fehlerhaft 
-   * ausgefüllt worden, wird es (z.B. farblich) markiert.
-   *
-   * $name: Name des Feldes
-   * $text: auszugebener Text
-   */
-  function show_title($name,$text) {
-    if($this->is_error($name))
-      echo '<font color="red"><b>'.$text.'</b></font>';
-    else
-      echo $text;
-  }
-
-  /*
-   * Zeigt die Daten an, die der Benutzer in das Formular, ob richtig oder
-   * falsch ist egal, eingegeben hatte.
-   */
-  function show_value($name) {
-    echo stripslashes($_REQUEST[$name]);
-  }
-
-  /*
-   * Liefert Variablenwerte ohne vorherige Umkodierung/Zusammenfassung
-   * zurück
-   */
-  function value($name) {
-    if(is_array($_REQUEST[$name])) {
-      $a=$_REQUEST[$name];
-      return $a;
-    }
-    return stripslashes($_REQUEST[$name]);
-  }
-
-  /* Liefert Variablenwerte mit vorheriger Umkodierung/Zusammenfassung
-   * zurück. Vor allem wichtig bei Typ check-text und radio-text, wo
-   * der eigentliche Inhalt über mehrere Variablen verteilt ist, bzw.
-   * teilweise gar nicht zum Zuge kommt (freies Textfeld ausgefüllt,
-   * aber nicht angeklickt)
-   */
-  function get_value($name) {
-    if(is_array($_REQUEST[$name])) {
-      $a=$_REQUEST[$name];
-      // Freies Textfeld?
-      if(in_array("_frei",$a)) {
-        if((isset($_REQUEST[$name.'_frei'])) &&
-           ($_REQUEST[$name.'_frei']!=""))
-          $a[]=$_REQUEST[$name.'_frei'];
-        unset($a[$name.'_frei']);
-      }
-
-      return $a;
-    } else if(($_REQUEST[$name]=='_frei') &&
-              ($this->fields[$name]->typ=='radio-text')) {
-      return stripslashes($_REQUEST[$name.'_frei']);
-    } else
-      return stripslashes($_REQUEST[$name]);
-  }
-  
-  /*
-   * gibt einfach nur " checked" aus, wenn $name den wert $value enthält.
-   * Nötig für das Vorselektieren von Knöpfen
-   */
-  function show_checked($name,$value) {
-    global $fields;
-    if(($this->fields[$name]->typ!="checkbox") &&
-       ($this->fields[$name]->typ!="check-text")) {
-      if($this->value($name)==$value) {
-        if($this->fields[$name]->typ=="pulldown")
-          echo ' selected';
-        else
-          echo ' checked';
-      }
-    } else {
-      if(in_array($value,$this->value($name))) 
-        echo ' checked';
-    }
-  }
-
-  function show_selected($name,$value) {
-    global $fields;
-    if(($this->fields[$name]->typ!="checkbox") &&
-       ($this->fields[$name]->typ!="check-text")) {
-      if($this->value($name)==$value) {
-        echo ' selected';
-      }
-    }
-  }
-
-
-  /*
-   * Registriert eine Variable als zum Formular gehörend
-   *
-   * $name:  Name der Variablen
-   * $typ:   Art der Eingabe:
-   *         - text:         Textfeld mit einfacher freier Eingabe
-   *         - textarea:     Mehrzeiliger Text mit freier Eingabe
-   *         - checkbox:     Ankreuzfelder, mehrere gleichzeitig
-   *         - radiobutton:  Ankreuzfelder, nur eins gleichzeitig
-   *         - pulldown:     Pulldown-Menu, nut eins gleichzeitig
-   *         - check-text:   Ankreuzfelder+Textfeld, mehrere gleichzeitig
-   *         - radio-text:   Ankreuzfelder+Textfeld, maximal eins
-   * $empty: Darf das entsprechende Feld leer gelassen werden?
-   *         bzw. mindestens kein angekreuzt bzw. ausgefüllt?
-   * $validator: Information, wie der Inhalt auf Korrektheit geprüft
-   *             werden soll
-   * $errmsg: Fehlermeldung, die bei erkanntem Fehler ausgegeben 
-   *          werden soll
-   */
-  function register($name,$typ,$empty=true,$validator=false,$errmsg=false) {
-    $var->name=$name;
-    $var->typ=$typ;
-    $var->empty=$empty;
-    $var->validator=$validator;
-    $var->errmsg=$errmsg;
-    $this->fields[$name]=$var;
-  }
-
-  /*
-   * der Konstruktor
-   */
-  function formvalidate() {
-  }
-}
-?>
diff --git a/newsgroup/newsportal-0.37.zip b/newsgroup/newsportal-0.37.zip
deleted file mode 100644 (file)
index a8f8d39..0000000
Binary files a/newsgroup/newsportal-0.37.zip and /dev/null differ
diff --git a/newsgroup/newsportal.php b/newsgroup/newsportal.php
deleted file mode 100644 (file)
index 22efe9d..0000000
+++ /dev/null
@@ -1,811 +0,0 @@
-<?
-/*  Newsportal NNTP<->HTTP Gateway
- *  Version: 0.36
- *  Download: http://florian-amrhein.de/newsportal
- *
- *  Copyright (C) 2002-2004 Florian Amrhein
- *  E-Mail: newsportal@florian-amrhein.de
- *  Web: http://florian-amrhein.de
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-include "lib/types.inc.php";
-include "lib/thread.inc.php";
-include "lib/message.inc.php";
-include "lib/post.inc.php";
-//include "lib/validator.inc.php";
-
-/*
- * opens the connection to the NNTP-Server
- *
- * $server: adress of the NNTP-Server
- * $port: port of the server
- */
-function nntp_open($nserver=0,$nport=0) {
-  global $text_error,$server_auth_user,$server_auth_pass,$readonly;
-  global $server,$port;
-  // echo "<br>NNTP OPEN<br>";
-  $authorize=((isset($server_auth_user)) && (isset($server_auth_pass)) &&
-              ($server_auth_user != ""));
-  if ($nserver==0) $nserver=$server;
-  if ($nport==0) $nport=$port;
-  $ns=@fsockopen($nserver,$nport);
-  $weg=line_read($ns);  // kill the first line
-  if (substr($weg,0,2) != "20") {
-    echo "<p>".$text_error["error:"].$weg."</p>";
-    fclose($ns);
-    $ns=false;
-  } else {
-    if ($ns != false) {
-      fputs($ns,"MODE reader\r\n");
-      $weg=line_read($ns);  // and once more
-      if ((substr($weg,0,2) != "20") && 
-          ((!$authorize) || ((substr($weg,0,3) != "480") && ($authorize)))) {
-        echo "<p>".$text_error["error:"].$weg."</p>";
-        fclose($ns);
-        $ns=false;
-      }
-    }
-    if ((isset($server_auth_user)) && (isset($server_auth_pass)) &&
-        ($server_auth_user != "")) {
-      fputs($ns,"AUTHINFO USER $server_auth_user\r\n");
-      $weg=line_read($ns);
-      fputs($ns,"AUTHINFO PASS $server_auth_pass\r\n"); 
-      $weg=line_read($ns);
-      if (substr($weg,0,3) != "281") {
-        echo "<p>".$text_error["error:"]."</p>";
-        echo "<p>".$text_error["auth_error"]."</p>";
-      }
-    }
-  }
-  if ($ns==false) echo "<p>".$text_error["connection_failed"]."</p>";
-  return $ns;
-}
-
-/*
- * Close a NNTP connection
- *
- * $ns: the handle of the connection
- */
-function nntp_close(&$ns) {
-  if ($ns != false) {
-    fputs($ns,"QUIT\r\n");
-    fclose($ns);
-  }
-}
-
-/*
- * Validates an email adress
- *
- * $address: a string containing the email-address to be validated
- *
- * returns true if the address passes the tests, false otherwise.
- */
-function validate_email($address)
-{
-  global $validate_email;
-  $return=true;
-  if (($validate_email >= 1) && ($return == true))
-    $return = (ereg('^[-!#$%&\'*+\\./0-9=?A-Z^_A-z{|}~]+'.'@'.
-               '[-!#$%&\'*+\\/0-9=?A-Z^_A-z{|}~]+\.'.
-               '[-!#$%&\'*+\\./0-9=?A-Z^_A-z{|}~]+$',$address));
-  if (($validate_email >= 2) && ($return == true)) {
-    $addressarray=address_decode($address,"garantiertungueltig");
-    $return=checkdnsrr($addressarray[0]["host"],"MX");
-    if (!$return) $return=checkdnsrr($addressarray[0]["host"],"A");
-  }
-  return($return);
-}
-
-/*
- * decodes a block of 7bit-data in uuencoded format to it's original
- * 8bit format.
- * The headerline containing filename and permissions doesn't have to
- * be included.
- * 
- * $data: The uuencoded data as a string
- *
- * returns the 8bit data as a string
- *
- * Note: this function is very slow and doesn't recognize incorrect code.
- */
-function uudecode_line($line) {
-  $data=substr($line,1);
-  $length=ord($line[0])-32;
-  $decoded="";
-  for ($i=0; $i<(strlen($data)>>2); $i++) {
-    $pack=substr($data,$i<<2,4);
-    $upack="";
-    $bitmaske=0;
-    for ($o=0; $o<4; $o++) {
-      $g=((ord($pack[3-$o])-32));
-      if ($g==64) $g=0;
-      $bitmaske=$bitmaske | ($g << (6*$o));
-    }
-    $schablone=255;
-    for ($o=0; $o<3; $o++) {
-      $c=($bitmaske & $schablone) >> ($o << 3);
-      $schablone=($schablone << 8);
-      $upack=chr($c).$upack;
-    }
-    $decoded.=$upack;
-  }
-  $decoded=substr($decoded,0,$length);
-  return $decoded;
-}
-
-/*
- * decodes uuencoded Attachments.
- *
- * $data: the encoded data
- *
- * returns the decoded data
- */
-function uudecode($data) {
-  $d=explode("\n",$data);
-  $u="";
-  for ($i=0; $i<count($d)-1; $i++)
-    $u.=uudecode_line($d[$i]);
-  return $u;
-}
-
-/*
- * returns the mimetype of an filename
- *
- * $name: the complete filename of a file
- *
- * returns a string containing the mimetype
- */
-function get_mimetype_by_filename($name) {
-  $ending=strtolower(strrchr($name,"."));
-  switch($ending) {
-    case ".jpg":
-    case ".jpeg":
-      $type="image/jpeg";
-      break;
-    case ".gif":
-      $type="image/gif";
-      break;
-    case ".png":
-      $type="image/png";
-      break;
-    case ".bmp":
-      $type="image/bmp";
-      break;
-    default:
-      $type="text/plain";
-  }
-  return $type;
-}
-
-/*
- * Test, if the access to a group is allowed. This is true, if $testgroup is
- * false or the groupname is in groups.txt
- *
- * $groupname: name of the group to be checked
- *
- * returns true, if access is allowed
- */
-function testGroup($groupname) {
-  global $testgroup,$file_groups;
-  if ($testgroup) {
-    $gf=fopen($file_groups,"r");
-    while (!feof($gf)) {
-      $read=trim(line_read($gf));
-      $pos=strpos($read," ");
-      if ($pos != false) {
-        if (substr($read,0,$pos)==trim($groupname)) return true;
-      } else {
-        if ($read == trim($groupname)) return true;
-      }
-    }
-    fclose($gf);
-    return false;
-  } else {
-    return true;
-  }
-}
-
-function testGroups($newsgroups) {
-  $groups=explode(",",$newsgroups);
-  $count=count($groups);
-  $return="";
-  $o=0;
-  for ($i=0; $i<$count; $i++) {
-    if (testgroup($groups[$i]) &&
-        (!function_exists("npreg_group_has_write_access") || 
-         npreg_group_has_write_access($groups[$i]))) {
-      if ($o>0) $return.=",";
-      $o++;
-      $return.=$groups[$i];
-    }
-  }
-  return($return);
-}
-
-/*
- * read one line from the NNTP-server
- */
-function line_read(&$ns) {
-  if ($ns != false) {
-    $t=str_replace("\n","",str_replace("\r","",fgets($ns,1200)));
-    return $t;
-  }
-}
-
-/*
- * Split an internet-address string into its parts. An address string could
- * be for example:
- * - user@host.domain (Realname)
- * - "Realname" <user@host.domain>
- * - user@host.domain
- *
- * The address will be split into user, host (incl. domain) and realname
- *
- * $adrstring: The string containing the address in internet format
- * $defaulthost: The name of the host which should be returned if the
- *               address-string doesn't contain a hostname.
- *
- * returns an hash containing the fields "mailbox", "host" and "personal"
- */
-function address_decode($adrstring,$defaulthost) {
-  $parsestring=trim($adrstring);
-  $len=strlen($parsestring);
-  $at_pos=strpos($parsestring,'@');     // find @
-  $ka_pos=strpos($parsestring,"(");     // find (
-  $kz_pos=strpos($parsestring,')');     // find )
-  $ha_pos=strpos($parsestring,'<');     // find <
-  $hz_pos=strpos($parsestring,'>');     // find >
-  $space_pos=strpos($parsestring,')');  // find ' '
-  $email="";
-  $mailbox="";
-  $host="";
-  $personal="";
-  if ($space_pos != false) {
-    if (($ka_pos != false) && ($kz_pos != false)) {
-      $personal=substr($parsestring,$ka_pos+1,$kz_pos-$ka_pos-1);
-      $email=trim(substr($parsestring,0,$ka_pos-1));
-    }
-  } else {
-    $email=$adrstring;
-  }
-  if (($ha_pos != false) && ($hz_pos != false)) {
-    $email=trim(substr($parsestring,$ha_pos+1,$hz_pos-$ha_pos-1));
-    $personal=substr($parsestring,0,$ha_pos-1);
-  }
-  if ($at_pos != false) {
-    $mailbox=substr($email,0,strpos($email,'@'));
-    $host=substr($email,strpos($email,'@')+1);
-  } else {
-    $mailbox=$email;
-    $host=$defaulthost;
-  }
-  $personal=trim($personal);
-  if (substr($personal,0,1) == '"') $personal=substr($personal,1);
-  if (substr($personal,strlen($personal)-1,1) == '"')
-    $personal=substr($personal,0,strlen($personal)-1);
-  $result["mailbox"]=trim($mailbox);
-  $result["host"]=trim($host);
-  if ($personal!="") $result["personal"]=$personal;
-  $complete[]=$result;
-  return ($complete);
-}
-
-/*
- * Read the groupnames from groups.txt, and get additional informations
- * of the groups from the newsserver
- */
-function groups_read($server,$port) {
-  global $gl_age,$file_groups,$spooldir,$cache_index;
-  // is there a cached version, and is it actual enough?
-  $cachefile=$spooldir.'/groups.dat';
-  if((file_exists($cachefile)) && (filemtime($cachefile)+$cache_index>time())) {
-    // cached file exists and is new enough. so lets read it out.
-    $file=fopen($cachefile,"r");
-    $data="";
-    while(!feof($file)) {
-      $data.=fgets($file,1000);
-    }
-    fclose($file);
-    $newsgroups=unserialize($data);
-  } else {
-    $ns=nntp_open($server,$port);
-    if ($ns == false) return false;
-    $gf=fopen($file_groups,"r");
-    // if we want to mark groups with new articles with colors, wie will later
-    // need the format of the overview
-    $overviewformat=thread_overview_read($ns);
-    while (!feof($gf)) {
-      $gruppe=new newsgroupType;
-      $tmp=trim(line_read($gf));
-      if(substr($tmp,0,1)==":") {
-        $gruppe->text=substr($tmp,1);
-        $newsgroups[]=$gruppe;  
-      } elseif(strlen(trim($tmp))>0) {
-        // is there a description in groups.txt?
-        $pos=strpos($tmp," ");
-        if ($pos != false) {
-          // yes.
-          $gruppe->name=substr($tmp,0,$pos);
-          $desc=substr($tmp,$pos);
-        } else {
-          // no, get it from the newsserver.
-          $gruppe->name=$tmp;
-          fputs($ns,"XGTITLE $gruppe->name\r\n");
-          $response=line_read($ns);
-          if (strcmp(substr($response,0,3),"282") == 0) {
-            $neu=line_read($ns);
-            do {
-              $response=$neu;
-              if ($neu != ".") $neu=line_read($ns);
-            } while ($neu != ".");
-            $desc=strrchr($response,"\t");
-            if (strcmp($response,".") == 0) {
-              $desc="-";
-            }
-          } else {
-            $desc=$response;
-          }
-          if (strcmp(substr($response,0,3),"500") == 0)
-            $desc="-";
-        }
-        if (strcmp($desc,"") == 0) $desc="-";
-        $gruppe->description=$desc;
-        fputs($ns,"GROUP ".$gruppe->name."\r\n"); 
-        $t=explode(" ",line_read($ns));
-        $gruppe->count=$t[1];
-        // mark group with new articles with colors
-        if($gl_age) {
-          fputs($ns,'XOVER '.$t[3]."\r\n");
-          $tmp=explode(" ",line_read($ns));
-          if($tmp[0]=="224") {
-            $tmp=line_read($ns);
-            if($tmp!=".") {
-              $head=thread_overview_interpret($tmp,$overviewformat,$gruppe->name);
-              $tmp=line_read($ns);
-              $gruppe->age=$head->date;
-            }
-          }
-        }
-        if ((strcmp(trim($gruppe->name),"") != 0) &&
-            (substr($gruppe->name,0,1) != "#"))
-          $newsgroups[]=$gruppe;
-      }
-    }
-    fclose($gf);
-    nntp_close($ns);
-    // write the data to the cachefile
-    $file=fopen($cachefile,"w");
-    fputs($file,serialize($newsgroups));
-    fclose($file);
-  }
-  return $newsgroups;
-}
-
-/*
- * print the group names from an array to the webpage
- */
-function groups_show($gruppen) {
-  global $gl_age;
-  if ($gruppen == false) return;
-  global $file_thread,$text_groups;
-  $c = count($gruppen);
-  echo '<div class="np_index_groupblock">';
-  $acttype="keins";
-  for($i = 0 ; $i < $c ; $i++) {
-    $g = $gruppen[$i];
-    if(isset($g->text)) {
-      if($acttype!="text") {
-        $acttype="text";
-        if($i>0)
-          echo '</div>';
-        echo '<div class="np_index_grouphead">';
-      }
-      echo $g->text;
-    } else {
-      if($acttype!="group") {
-        $acttype="group";
-        if($i>0)
-          echo '</div>';
-        echo '<div class="np_index_groupblock">';
-      }
-      echo '<div class="np_index_group">';
-      echo '<a ';
-      if ((isset($frame_threadframeset)) && ($frame_threadframeset != ""))
-        echo 'target="'.$frame_threadframeset.'" ';
-      echo 'href="'.$file_thread.'?group='.urlencode($g->name).'">'.$g->name."</a>\n";
-      if($gl_age)
-        $datecolor=thread_format_date_color($g->age);
-      echo '<small>(';
-      if($datecolor!="")
-        echo '<font color="'.$datecolor.'">'.$g->count.'</font>';
-      else
-        echo $g->count;
-      echo ')</small>';
-      if($g->description!="-")
-        echo '<br><small>'.$g->description.'</small>';
-      echo '</div>';
-    }
-    echo "\n";
-    flush();
-  }
-  echo "</div></div>\n";
-}
-
-/*
- * gets a list of aviable articles in the group $groupname
- */
-/*
-function getArticleList(&$ns,$groupname) {
-  fputs($ns,"LISTGROUP $groupname \r\n");
-  $line=line_read($ns);
-  $line=line_read($ns);
-  while(strcmp($line,".") != 0) {
-    $articleList[] = trim($line);
-    $line=line_read($ns);
-  }
-  if (!isset($articleList)) $articleList="-";
-  return $articleList;
-}
-*/
-
-/*
- * Decode quoted-printable or base64 encoded headerlines
- *
- * $value: The to be decoded line
- *
- * returns the decoded line
- */
-function headerDecode($value) {
-  if (eregi('=\?.*\?.\?.*\?=',$value)) { // is there anything encoded?
-    if (eregi('=\?.*\?Q\?.*\?=',$value)) {  // quoted-printable decoding
-
-      $charset=eregi_replace('(.*)=\?(.*)\?Q\?(.*)\?=(.*)','\2',$value);
-      $result1=eregi_replace('(.*)=\?.*\?Q\?(.*)\?=(.*)','\1',$value);
-      $result2=eregi_replace('(.*)=\?.*\?Q\?(.*)\?=(.*)','\2',$value);
-      $result3=eregi_replace('(.*)=\?.*\?Q\?(.*)\?=(.*)','\3',$value);
-      $result2=str_replace("_"," ",quoted_printable_decode($result2));
-      $newvalue=$result1.recode_charset($result2,$charset).$result3;
-    }
-    if (eregi('=\?.*\?B\?.*\?=',$value)) {  // base64 decoding
-      $result1=eregi_replace('(.*)=\?.*\?B\?(.*)\?=(.*)','\1',$value);
-      $result2=eregi_replace('(.*)=\?.*\?B\?(.*)\?=(.*)','\2',$value);
-      $result3=eregi_replace('(.*)=\?.*\?B\?(.*)\?=(.*)','\3',$value);
-      $result2=base64_decode($result2);
-      $newvalue=$result1.$result2.$result3;
-    }
-    if (!isset($newvalue)) // nothing of the above, must be an unknown encoding...
-      $newvalue=$value;
-    else
-      $newvalue=headerDecode($newvalue);  // maybe there are more encoded
-    return($newvalue);                    // parts
-  } else {   // there wasn't anything encoded, return the original string
-    return($value);
-  }
-}
-
-/*
- * calculates an Unix timestamp out of a Date-Header in an article
- *
- * $value: Value of the Date: header
- *
- * returns an Unix timestamp
- */
-function getTimestamp($value) {
-  global $timezone;
-  $months=array("Jan"=>1,"Feb"=>2,"Mar"=>3,"Apr"=>4,"May"=>5,"Jun"=>6,"Jul"=>7,"Aug"=>8,"Sep"=>9,"Oct"=>10,"Nov"=>11,"Dec"=>12);
-  $value=str_replace("  "," ",$value);
-  $d=split(" ",$value,6);
-  if (strcmp(substr($d[0],strlen($d[0])-1,1),",") == 0) {
-    $date[0]=$d[1];  // day
-    $date[1]=$d[2];  // month
-    $date[2]=$d[3];  // year
-    $date[3]=$d[4];  // hours:minutes:seconds
-    $gmt=$d[5];      // timezone
-  } else {
-    $date[0]=$d[0];  // day
-    $date[1]=$d[1];  // month
-    $date[2]=$d[2];  // year
-    $date[3]=$d[3];  // hours:minutes:seconds
-    $gmt=$d[4];      // timezone
-  }
-  $time=split(":",$date[3]);
-  // timezone handling
-  $msgtimezone=0;
-  if ($gmt[0]=='-') {
-    $msgtimezone=-substr($gmt,1,2);
-    $msgminzone=-substr($gmt,3,2);
-  } else if ($gmt[0]=='+') {
-    $msgtimezone=+substr($gmt,1,2);
-    $msgminzone=+substr($gmt,3,2);
-  }
-  $time[0]=$time[0]-$msgtimezone+$timezone;
-  $time[1]=$time[1]-$msgminzone+$minzone;
-  $timestamp=mktime($time[0],$time[1],$time[2],$months[$date[1]],$date[0],$date[2]);
-  return $timestamp;
-}
-
-function parse_header($hdr,$number="") {
-  for ($i=count($hdr)-1; $i>0; $i--)
-    if (preg_match("/^(\x09|\x20)/",$hdr[$i]))
-      $hdr[$i-1]=$hdr[$i-1]." ".ltrim($hdr[$i]);
-  $header = new headerType;
-  $header->isAnswer=false;
-  for ($count=0;$count<count($hdr);$count++) {
-    $variable=substr($hdr[$count],0,strpos($hdr[$count]," "));
-    $value=trim(substr($hdr[$count],strpos($hdr[$count]," ")+1));
-      switch (strtolower($variable)) {
-        case "from:": 
-          $fromline=address_decode(headerDecode($value),"nirgendwo");
-          if (!isset($fromline[0]["host"])) $fromline[0]["host"]="";
-          $header->from=$fromline[0]["mailbox"]."@".$fromline[0]["host"];
-          $header->username=$fromline[0]["mailbox"];
-          if (!isset($fromline[0]["personal"])) {
-            $header->name="";
-          } else {
-            $header->name=$fromline[0]["personal"];
-          }
-          break;
-        case "message-id:":
-          $header->id=$value;
-          break;
-        case "subject:":
-          $header->subject=headerDecode($value);
-          break;
-        case "newsgroups:":
-          $header->newsgroups=$value;
-          break;
-        case "organization:":
-          $header->organization=headerDecode($value);
-          break;
-        case "content-transfer-encoding:":
-          $header->content_transfer_encoding=trim(strtolower($value));
-          break; 
-        case "content-type:":
-          $header->content_type=array();
-          $subheader=split(";",$value);
-          $header->content_type[0]=strtolower(trim($subheader[0]));
-          for ($i=1; $i<count($subheader); $i++) {
-            $gleichpos=strpos($subheader[$i],"=");
-            if ($gleichpos) {
-              $subvariable=trim(substr($subheader[$i],0,$gleichpos));
-              $subvalue=trim(substr($subheader[$i],$gleichpos+1));
-              if (($subvalue[0]=='"') &&
-                  ($subvalue[strlen($subvalue)-1]=='"'))
-                $subvalue=substr($subvalue,1,strlen($subvalue)-2);
-              switch($subvariable) {
-                case "charset":
-                  $header->content_type_charset=array(strtolower($subvalue));
-                  break;
-                case "name":
-                  $header->content_type_name=array($subvalue);
-                  break;
-                case "boundary":
-                  $header->content_type_boundary=$subvalue;
-                  break;
-                case "format":
-                  $header->content_type_format=array($subvalue);
-              }
-            }
-          }
-          break;
-        case "references:":
-          $ref=trim($value);
-          while (strpos($ref,"> <") != false) {
-            $header->references[]=substr($ref,0,strpos($ref," "));
-            $ref=substr($ref,strpos($ref,"> <")+2);
-          }
-          $header->references[]=trim($ref);
-          break;
-        case "date:":
-          $header->date=getTimestamp(trim($value));
-          break;
-        case "followup-to:":
-          $header->followup=trim($value);
-          break;
-        case "x-newsreader:":
-        case "x-mailer:":
-        case "user-agent:":
-          $header->user_agent=trim($value);
-          break;
-        case "x-face:": // not ready
-//          echo "<p>-".base64_decode($value)."-</p>";
-          break;
-        case "x-no-archive:":
-          $header->xnoarchive=strtolower(trim($value));
-      }
-  }
-  if (!isset($header->content_type[0]))
-    $header->content_type[0]="text/plain";
-  if (!isset($header->content_transfer_encoding))
-    $header->content_transfer_encoding="8bit";
-  if ($number != "") $header->number=$number;
-  return $header;
-}
-
-/*
- * convert the charset of a text
- */
-function recode_charset($text,$source=false,$dest=false) {
-  global $iconv_enable,$www_charset;
-  if($dest==false)
-    $dest=$www_charset;
-  if(($iconv_enable) && ($source!=false)) {
-    $return=iconv($source,
-                 $dest."//TRANSLIT",$text);
-    if($return!="")
-      return $return;
-    else
-      return $text;
-  } else {
-    return $text;
-  }
-}
-
-function decode_body($body,$encoding) {
-  $bodyzeile="";
-  switch ($encoding) {
-    case "base64":
-      $body=base64_decode($body);
-      break;
-    case "quoted-printable":
-      $body=Quoted_printable_decode($body);
-      $body=str_replace("=\n","",$body);
-//    default:
-//      $body=str_replace("\n..\n","\n.\n",$body);
-  }
-
-  return $body;
-}
-
-/*
- * makes URLs clickable
- *
- * $text: A text-line probably containing links.
- *
- * the function returns the text-line with HTML-Links to the links or
- * email-adresses.
- */
-function html_parse($text) {
-  global $frame_externallink;
-  if ((isset($frame_externallink)) && ($frame_externallink != "")) { 
-    $target=' TARGET="'.$frame_externallink.'" ';
-  } else {
-    $target=' ';
-  }
-  // regular expressions that will be applied to every word in the text
-  $regexp_replace=array(
-    'http://((\.*([-a-z0-9_/~@?=%#;+]|&amp;)+)+)' =>
-      '<a'.$target.'href="http://\1">http://\1</a>',
-    '(www\.[-a-z]+\.(de|pl|cz|sk|tk|tv|cc|cx|biz|us|uk|info|int|eu|dk|org|net|at|ch|com))' =>
-      '<a'.$target.'href="http://\1">\1</a>',
-    'https://([-a-z0-9_./~@?=%#&;\n]+)' =>
-      '<a'.$target.'href="https://\1">https://\1</a>',
-    'gopher://([-a-z0-9_./~@?=%\n]+)' =>
-      '<a'.$target.'href="gopher://\1">gopher://\1</a>',
-    'news://([-a-z0-9_./~@?=%\n]+)' =>
-      '<a'.$target.'href="news://\1">news://\1</a>',
-    'ftp://([-a-z0-9_./~@?=%\n]+)' =>
-      '<a'.$target.'href="ftp://\1">ftp://\1</a>',
-    //'([-a-z0-9_./n]+)@([-a-z0-9_.]+)' =>
-    //  $_SESSION["loggedin"]!==true ? '(e-Mail)' :
-    //  '<a href="mailto:\1@\2">\1@\2</a>'
-  );
-  $ntext="";
-  // split every line into it's words
-  $words=explode(" ",$text);
-  $n=count($words);
-  for($i=0; $i<$n; $i++) {
-    $word=$words[$i];
-    // test, if we need the slow walk through all the regular expressions
-    if(eregi('www|\:|@',$word)) {
-      // apply the regular expressions to the word until a matching 
-      // expression is found
-      foreach ($regexp_replace as $key => $value) {
-        $nword=eregi_replace($key,$value,$word);
-        if($nword!=$word) {
-          $word=$nword;
-          break;
-        }
-      }
-    }
-    // add the spaces between the words
-    if($i>0)
-      $ntext.=" ";
-    $ntext.=$word;
-  }
-  return($ntext);
-}
-
-
-/*
- * read the header of an article in plaintext into an array
- * $articleNumber can be the number of an article or its message-id.
- */
-function readPlainHeader(&$ns,$group,$articleNumber) {
-  fputs($ns,"GROUP $group\r\n");
-  $line=line_read($ns);
-  fputs($ns,"HEAD $articleNumber\r\n");
-  $line=line_read($ns);
-  if (substr($line,0,3) != "221") {
-    echo $text_error["article_not_found"];
-    $header=false;
-  } else {
-    $line=line_read($ns);
-    $body="";
-    while(strcmp(trim($line),".") != 0) {
-      $body .= $line."\n";
-      $line=line_read($ns);
-    }
-    return split("\n",str_replace("\r\n","\n",$body));
-  }
-}
-
-/*
- * cancel an article on the newsserver
- *
- * DO NOT USE THIS FUNCTION, IF YOU DON'T KNOW WHAT YOU ARE DOING!
- *
- * $ns: The handler of the NNTP-Connection
- * $group: The group of the article
- * $id: the Number of the article inside the group or the message-id
- */
-function message_cancel($subject,$from,$newsgroups,$ref,$body,$id) {
-  global $server,$port,$send_poster_host,$organization,$text_error;
-  global $file_footer,$www_charset;
-  flush();
-  $ns=nntp_open($server,$port);
-  if ($ns != false) {
-    fputs($ns,"POST\r\n");
-    $weg=line_read($ns);
-    fputs($ns,'Subject: '.quoted_printable_encode($subject)."\r\n");
-    fputs($ns,'From: '.$from."\r\n");
-    fputs($ns,'Newsgroups: '.$newsgroups."\r\n");
-    fputs($ns,"Mime-Version: 1.0\r\n");
-    fputs($ns,"Content-Type: text/plain; charset=".$www_charset."\r\n");
-    fputs($ns,"Content-Transfer-Encoding: 8bit\r\n");
-    if ($send_poster_host)
-      fputs($ns,'X-HTTP-Posting-Host: '.gethostbyaddr(getenv("REMOTE_ADDR"))."\r\n");
-    if ($ref!=false) fputs($ns,'References: '.$ref."\r\n");
-    if (isset($organization))
-      fputs($ns,'Organization: '.quoted_printable_encode($organization)."\r\n");
-    fputs($ns,"Control: cancel ".$id."\r\n");
-    if ((isset($file_footer)) && ($file_footer!="")) {
-      $footerfile=fopen($file_footer,"r");
-      $body.="\n".fread($footerfile,filesize($file_footer));
-      fclose($footerfile);
-    }
-    $body=str_replace("\n.\r","\n..\r",$body);
-    $body=str_replace("\r",'',$body);
-    $b=split("\n",$body);
-    $body="";
-    for ($i=0; $i<count($b); $i++) {
-      if ((strpos(substr($b[$i],0,strpos($b[$i]," ")),">") != false ) | (strcmp(substr($b[$i],0,1),">") == 0)) {
-        $body .= textwrap(stripSlashes($b[$i]),78,"\r\n")."\r\n";
-      } else {
-        $body .= textwrap(stripSlashes($b[$i]),74,"\r\n")."\r\n";
-      }
-    }
-    fputs($ns,"\r\n".$body."\r\n.\r\n");
-    $message=line_read($ns);
-    nntp_close($ns);
-  } else {
-    $message=$text_error["post_failed"];
-  }
-  return $message;
-}
-
-?>
\ No newline at end of file
diff --git a/newsgroup/post.php b/newsgroup/post.php
deleted file mode 100644 (file)
index 2ef2075..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-<?
-/*  Newsportal NNTP<->HTTP Gateway
- *  Download: http://florian-amrhein.de/newsportal
- *
- *  Copyright (C) 2002-2004 Florian Amrhein
- *  E-Mail: florian.amrhein@gmx.de
- *  Web: http://florian-amrhein.de
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-@$newsgroups=$_REQUEST["newsgroups"];
-@$group=$_REQUEST["group"];
-@$type=$_REQUEST["type"];
-@$subject=stripslashes($_REQUEST["subject"]);
-@$name=$_REQUEST["name"];
-@$email=$_REQUEST["email"];
-@$body=stripslashes($_REQUEST["body"]);
-@$abspeichern=$_REQUEST["abspeichern"];
-@$references=$_REQUEST["references"];
-@$id=$_REQUEST["id"];
-if (!isset($group)) $group=$newsgroups;
-
-include "config.inc.php";
-include "auth.inc";
-
-// Save name and email in cookies
-if (($setcookies==true) && (isset($abspeichern)) && ($abspeichern=="ja")) {
-  setcookie("cookie_name",stripslashes($name),time()+(3600*24*90));
-  setcookie("cookie_email",$email,time()+(3600*24*90));
-} 
-if ((isset($post_server)) && ($post_server!=""))
-  $server=$post_server;
-if ((isset($post_port)) && ($post_port!=""))
-  $port=$post_port;
-
- include "head.inc";
- include $file_newsportal;
-
-
-?>
-<?
-
-  // has the user write-rights on the newsgroups?
-  if((function_exists("npreg_group_has_read_access") &&
-      !npreg_group_has_read_access($group)) ||
-     (function_exists("npreg_group_is_visible") &&
-      !npreg_group_is_visible($group)) ||
-     (function_exists("npreg_group_has_write_access") &&
-      !npreg_group_has_write_access($group))) {
-    die("access denied");
-  }
-
-
-// Load name and email from cookies
-if ($setcookies) {
-  if ((isset($_COOKIE["cookie_name"])) && (!isset($name)))
-    $name=$_COOKIE["cookie_name"];
-  if ((isset($_COOKIE["cookie_email"])) && (!isset($email)))
-    $email=$_COOKIE["cookie_email"];
-}
-
-// Load name and email from the registration system, if available
-if(function_exists("npreg_get_firstname")) {
-  $name=npreg_get_firstname();
-  $form_noname=true;
-  if(function_exists("npreg_get_lastname"))
-    $name.=" ".npreg_get_lastname();
-}
-
-if(function_exists("npreg_get_email")) {
-  $email=npreg_get_email();
-  $form_noemail=true;
-}
-
-if((!isset($references)) || ($references=="")) {
-  $references=false;
-}
-
-if (!isset($type)) {
-  $type="new";
-}
-
-if ($type=="new") {
-  $subject="";
-  $bodyzeile="";
-  $show=1;
-}
-
-
-
-// Is there a new article to be bost to the newsserver?
-if ($type=="post") {
-  $show=0;
-  // error handling
-  if (trim($body)=="") {
-    $type="retry";
-    $error=$text_post["missing_message"];
-  }
-  if ((trim($email)=="") && (!isset($anonym_address))) {
-    $type="retry";
-    $error=$text_post["missing_email"];
-  }
-  if (($email) && (!validate_email(trim($email)))) {
-    $type="retry";
-    $error=$text_post["error_wrong_email"];
-  }
-  if (trim($name)=="") {
-    $type="retry";
-    $error=$text_post["missing_name"];
-  }
-  if (trim($subject)=="") {
-    $type="retry";
-    $error=$text_post["missing_subject"];
-  }
-  if ($type=="post") {
-    if (!$readonly) {
-      // post article to the newsserver
-      if($references)
-        $references_array=explode(" ",$references);
-      else
-        $references_array=false;
-      if(($email=="") && (isset($anonym_address)))
-        $nemail=$anonym_address;
-      else
-        $nemail=$email;
-      $message=message_post(quoted_printable_encode($subject),
-                 $nemail." (".quoted_printable_encode($name).")",
-                 $newsgroups,$references_array,addslashes($body));
-      // Article sent without errors, or duplicate?
-      if ((substr($message,0,3)=="240") ||
-          (substr($message,0,7)=="441 435")) {
-?>
-
-<h1 class="np_post_headline"><? echo $text_post["message_posted"];?></h1>
-
-<p><? echo $text_post["message_posted2"];?></p>
-
-<p><a href="<? echo $file_thread.'?group='.urlencode($group).'">'.$text_post["button_back"].'</a> '
-     .$text_post["button_back2"].' '.urlencode($group) ?></p>
-<?
-      } else {
-        // article not accepted by the newsserver
-        $type="retry";
-        $error=$text_post["error_newsserver"]."<br><pre>$message</pre>";
-      }
-    } else {
-      echo $text_post["error_readonly"];
-    }
-  }
-}
-
-// A reply of an other article.
-if ($type=="reply") {
-  $message=message_read($id,0,$group);
-  $head=$message->header;
-  $body=explode("\n",$message->body[0]);
-  nntp_close($ns);
-  if ($head->name != "") {
-    $bodyzeile=$head->name;
-  } else {
-    $bodyzeile=$head->from;
-  }
-  $bodyzeile=$text_post["wrote_prefix"].$bodyzeile.
-             $text_post["wrote_suffix"]."\n\n";
-  for ($i=0; $i<=count($body)-1; $i++) {
-    if((isset($cutsignature)) && ($cutsignature==true) &&
-       ($body[$i]=='-- '))
-      break;
-    if (trim($body[$i])!="") {
-      if($body[$i][0]=='>')
-        $bodyzeile.=">".$body[$i]."\n";
-      else
-        $bodyzeile.="> ".$body[$i]."\n";
-    } else {
-      $bodyzeile.="\n";
-    }
-  }
-  $subject=$head->subject;
-  if (isset($head->followup) && ($head->followup != "")) {
-    $newsgroups=$head->followup;
-  } else {
-    $newsgroups=$head->newsgroups;
-  }
-  splitSubject($subject);
-  $subject="Re: ".$subject;
-  // Cut off old parts of a subject
-  // for example: 'foo (was: bar)' becomes 'foo'.
-  $subject=eregi_replace('(\(wa[sr]: .*\))$','',$subject);
-  $show=1;
-  $references=false;
-  if (isset($head->references[0])) {
-    for ($i=0; $i<=count($head->references)-1; $i++) {
-      $references .= $head->references[$i]." ";
-    }
-  }
-  $references .= $head->id;
-}
-
-if ($type=="retry") {
-  $show=1;
-  $bodyzeile=$body;
-}
-
-if ($show==1) {
-
-if ($testgroup) {
-  $testnewsgroups=testgroups($newsgroups);
-} else {
-  $testnewsgroups=$newsgroups;
-}
-
-if ($testnewsgroups == "") {
-  echo $text_post["followup_not_allowed"];
-  echo " ".$newsgroups;
-} else {
-  $newsgroups=$testnewsgroups;
-
-  echo '<h1 class="np_post_headline">'.$text_post["group_head"].$newsgroups
-    .$text_post["group_tail"].'</h1>';
-
-  if (isset($error)) echo "<p>$error</p>"; ?>
-
-<form action="<? echo $file_post?>" method="post" name="postform">
-
-<div class="np_post_header">
-<table>
-<tr><td align="right"><b><? echo $text_header["subject"] ?></b></td>
-<td><input type="text" name="subject" value="<?
-echo htmlspecialchars($subject);?>" size="40" maxlength="80"></td></tr>
-<tr><td align="right"><b><?=$text_post["name"]?></b></td>
- <td align="left">
- <?
- if($form_noname===true) {
-   echo htmlspecialchars($name);
- } else {
-   echo '<input type="text" name="name"';
-   if (isset($name)) echo 'value="'.
-    htmlspecialchars(stripslashes($name)).'"';
-   echo 'size="40" maxlength="40">';
- }
- ?>
- </td></tr>
- <tr><td align="right"><b><?=$text_post["email"]?></b></td>
- <td align="left">
- <?
- if($form_noemail===true) {
-   echo htmlspecialchars($email);
- } else {
-   echo '<input type="text" name="email"';
-   if (isset($email)) echo 'value="'.htmlspecialchars(stripslashes($email)).'"';
-   echo 'size="40" maxlength="40">';
- }
- ?>
- </td></tr>
-</table>
-</div>
-
-<div class="np_post_body">
-<table>
-<tr><td><b><? echo $text_post["message"];?></b><br>
-<textarea id="postbody" name="body" rows="20" cols="79" wrap="virtual"><?
-if ((isset($bodyzeile)) && ($post_autoquote))
-  echo htmlspecialchars($bodyzeile); ?>
-</textarea></td></tr>
-<tr><td>
-
-<? if(!$post_autoquote) { ?>
-<input type="hidden" id="hidebody" value="<?
-if (isset($bodyzeile)) echo htmlspecialchars(stripslashes($bodyzeile)); ?>">
-
-<script language="JavaScript">
-<!--
-function quoten() {
-  document.getElementById("postbody").value=document.getElementById("hidebody").value;
-  document.getElementById("hidebody").value="";
-}
-//-->
-</script>
-
-
-<input tabindex="100" type="Button" name="quote" value="<?=$text_post["quote"]?>" onclick="quoten()">
-
-<? } ?>
-
-<input type="submit"  value="<? echo $text_post["button_post"];?>">
-<? if ($setcookies==true) { ?>
-<input type="checkbox" name="abspeichern" value="ja">
-<? echo $text_post["remember"];?>
-<? } ?>
-</td>
-</tr>
-</table>
-</div>
-<input type="hidden" name="type" value="post">
-<input type="hidden" name="newsgroups" value="<?=htmlspecialchars($newsgroups); ?>">
-<input type="hidden" name="references" value="<?=htmlentities($references); ?>">
-<input type="hidden" name="group" value="<?=htmlspecialchars($group); ?>">
-</form>
-
-<? } } ?>
-
-<? include "tail.inc"; ?>
diff --git a/newsgroup/spool/groups.dat b/newsgroup/spool/groups.dat
deleted file mode 100644 (file)
index fefb157..0000000
+++ /dev/null
@@ -1 +0,0 @@
-a:4:{i:0;O:13:"newsgroupType":4:{s:4:"name";N;s:11:"description";N;s:5:"count";N;s:4:"text";s:21:"Computer Science Club";}i:1;O:13:"newsgroupType":5:{s:4:"name";s:6:"uw.csc";s:11:"description";s:22:"        Computer Science Club";s:5:"count";s:3:"115";s:4:"text";N;s:3:"age";i:1181337436;}i:2;O:13:"newsgroupType":4:{s:4:"name";s:15:"uw.csc.hardware";s:11:"description";s:16:"       No description.";s:5:"count";s:1:"0";s:4:"text";N;}i:3;O:13:"newsgroupType":5:{s:4:"name";s:15:"uw.csc.software";s:11:"description";s:16:"      No description.";s:5:"count";s:1:"3";s:4:"text";N;s:3:"age";i:1180792889;}}
\ No newline at end of file
diff --git a/newsgroup/spool/uw.csc-1-50.html b/newsgroup/spool/uw.csc-1-50.html
deleted file mode 100644 (file)
index c6d0be8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text"><font color="#999900">19.06.</font> </span></td><td nowrap class="np_thread_line1"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10971&group=uw.csc#10971">Tuesday, July 17th 2007: CSC Talk with very specia</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Gaelan D'costa</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text"><font color="#999900">19.06.</font> </span></td><td nowrap class="np_thread_line2"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10970&group=uw.csc#10970">Friday, July 6, 2007: CSC Talk with very special g</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Gaelan D'costa</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text"><font color="#999900">19.06.</font> </span></td><td nowrap class="np_thread_line1"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10969&group=uw.csc#10969">June 22, 2007 - CSC Talk: Email encryption and the</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Gaelan D'costa</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">12.06. </span></td><td nowrap class="np_thread_line2"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10946&group=uw.csc#10946">systems projects update</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Michael Spang</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">13.06. </span></td><td nowrap class="np_thread_line1"><img src="img/T.gif" alt="+" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10948&group=uw.csc#10948">Re: systems projects update</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Dave Vandervies</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">13.06. </span></td><td nowrap class="np_thread_line2"><img src="img/I.gif" alt="|" class="thread_image"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/s.gif" alt="-" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10949&group=uw.csc#10949">Re: systems projects update</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Ross Ridge</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">13.06. </span></td><td nowrap class="np_thread_line1"><img src="img/T.gif" alt="+" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10950&group=uw.csc#10950">Re: systems projects update</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Ross Ridge</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text"><font color="#00bb00">16.06.</font> </span></td><td nowrap class="np_thread_line2"><img src="img/I.gif" alt="|" class="thread_image"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10961&group=uw.csc#10961">Re: systems projects update</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Ross Ridge</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text"><font color="#00bb00">17.06.</font> </span></td><td nowrap class="np_thread_line1"><img src="img/I.gif" alt="|" class="thread_image"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10962&group=uw.csc#10962">Re: systems projects update</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Michael Spang</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text"><font color="#00bb00">17.06.</font> </span></td><td nowrap class="np_thread_line2"><img src="img/I.gif" alt="|" class="thread_image"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10963&group=uw.csc#10963">Re: systems projects update</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Ross Ridge</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text"><font color="#00bb00">17.06.</font> </span></td><td nowrap class="np_thread_line1"><img src="img/I.gif" alt="|" class="thread_image"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10964&group=uw.csc#10964">Re: systems projects update</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Michael Spang</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text"><font color="#00bb00">17.06.</font> </span></td><td nowrap class="np_thread_line2"><img src="img/I.gif" alt="|" class="thread_image"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/T.gif" alt="+" class="thread_image"><img src="img/s.gif" alt="-" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10965&group=uw.csc#10965">Re: systems projects update</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Michael Spang</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text"><font color="#999900">17.06.</font> </span></td><td nowrap class="np_thread_line1"><img src="img/I.gif" alt="|" class="thread_image"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10966&group=uw.csc#10966">Re: systems projects update</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Ross Ridge</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text"><font color="#999900">17.06.</font> </span></td><td nowrap class="np_thread_line2"><img src="img/I.gif" alt="|" class="thread_image"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10967&group=uw.csc#10967">Re: systems projects update</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Kyle Larose</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text"><font color="#999900">18.06.</font> </span></td><td nowrap class="np_thread_line1"><img src="img/I.gif" alt="|" class="thread_image"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/s.gif" alt="-" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10968&group=uw.csc#10968">Re: systems projects update</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Ross Ridge</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">13.06. </span></td><td nowrap class="np_thread_line2"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/s.gif" alt="-" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10951&group=uw.csc#10951">Re: systems projects update</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Colin Bell [UW CS241 S07 Tutor]</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text"><font color="#00bb00">14.06.</font> </span></td><td nowrap class="np_thread_line1"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10954&group=uw.csc#10954">Major Talks for Spring 2007 - Richard Stallman and</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Gaelan D'costa</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text"><font color="#00bb00">14.06.</font> </span></td><td nowrap class="np_thread_line2"><img src="img/T.gif" alt="+" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10956&group=uw.csc#10956">Re: Major Talks for Spring 2007 - Richard Stallman and</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Kyle Spaans</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text"><font color="#00bb00">14.06.</font> </span></td><td nowrap class="np_thread_line1"><img src="img/I.gif" alt="|" class="thread_image"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/s.gif" alt="-" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10957&group=uw.csc#10957">Re: Major Talks for Spring 2007 - Richard Stallman and</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Michael Ellis</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text"><font color="#00bb00">15.06.</font> </span></td><td nowrap class="np_thread_line2"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10958&group=uw.csc#10958">Re: Major Talks for Spring 2007 - Richard Stallman and</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Kyle Larose</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text"><font color="#00bb00">15.06.</font> </span></td><td nowrap class="np_thread_line1"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10959&group=uw.csc#10959">Re: Major Talks for Spring 2007 - Richard Stallman and</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Ross Ridge</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text"><font color="#00bb00">15.06.</font> </span></td><td nowrap class="np_thread_line2"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/s.gif" alt="-" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10960&group=uw.csc#10960">Re: Major Talks for Spring 2007 - Richard Stallman and</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Kyle Larose</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text"><font color="#00bb00">14.06.</font> </span></td><td nowrap class="np_thread_line1"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10955&group=uw.csc#10955">NeXT Stuff for sale</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Chris Reuter</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text"><font color="#00bb00">14.06.</font> </span></td><td nowrap class="np_thread_line2"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10952&group=uw.csc#10952">Distinguished Lecture Series - Dr. Vinton G. Cerf;</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Gaelan D'costa</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">13.06. </span></td><td nowrap class="np_thread_line1"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10947&group=uw.csc#10947">Employer Info Session: Google</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Sarah Uppal</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">12.06. </span></td><td nowrap class="np_thread_line2"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10945&group=uw.csc#10945">June 18th 2007 - Talk by Peter Macdonald</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Gaelan D'costa</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">04.06. </span></td><td nowrap class="np_thread_line1"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10934&group=uw.csc#10934">UNIX101 creation: June 9, 2007 @ 1:00pm</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Colin Bell [UW CS241 S07 Tutor]</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">04.06. </span></td><td nowrap class="np_thread_line2"><img src="img/T.gif" alt="+" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10935&group=uw.csc#10935">Re: UNIX101 creation: June 9, 2007 @ 1:00pm</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Michael Spang</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">04.06. </span></td><td nowrap class="np_thread_line1"><img src="img/I.gif" alt="|" class="thread_image"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10936&group=uw.csc#10936">Re: UNIX101 creation: June 9, 2007 @ 1:00pm</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Michael Spang</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">04.06. </span></td><td nowrap class="np_thread_line2"><img src="img/I.gif" alt="|" class="thread_image"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10937&group=uw.csc#10937">Re: UNIX101 creation: June 9, 2007 @ 1:00pm</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Mike Patterson</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">04.06. </span></td><td nowrap class="np_thread_line1"><img src="img/I.gif" alt="|" class="thread_image"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/e.gif" alt="&nbsp;" class="thread_image" width="12" height="9"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/s.gif" alt="-" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10938&group=uw.csc#10938">Re: UNIX101 creation: June 9, 2007 @ 1:00pm</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Michael Spang</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">12.06. </span></td><td nowrap class="np_thread_line2"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/s.gif" alt="-" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10944&group=uw.csc#10944">Re: UNIX101 creation: June 9, 2007 @ 1:00pm</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Colin Bell [UW CS241 S07 Tutor]</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">12.06. </span></td><td nowrap class="np_thread_line1"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10943&group=uw.csc#10943">Terry Talk rescheduled</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Gaelan D'costa</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">08.06. </span></td><td nowrap class="np_thread_line2"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10942&group=uw.csc#10942">Migrating mail to ~/.maildir</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Gaelan D'Costa</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">07.06. </span></td><td nowrap class="np_thread_line1"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10941&group=uw.csc#10941">Upcoming Talk - Michael Terry</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Gaelan D'Costa</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">07.06. </span></td><td nowrap class="np_thread_line2"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10940&group=uw.csc#10940">Employer Info Session: Lime Wire</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Sarah Uppal</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">22.02. </span></td><td nowrap class="np_thread_line1"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10832&group=uw.csc#10832">possible UW meeting for MSc in computer games desi</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Paul Kates</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">04.06. </span></td><td nowrap class="np_thread_line2"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/s.gif" alt="-" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10939&group=uw.csc#10939">Tuesday, 1:30: Using Second Life for Higher Educat</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Paul Kates</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">04.06. </span></td><td nowrap class="np_thread_line1"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10933&group=uw.csc#10933">New course: Computer Security and Privacy</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Ian Goldberg</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">31.05. </span></td><td nowrap class="np_thread_line2"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10932&group=uw.csc#10932">May 31, 2007 Meeting Replacement</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Erik Louie</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">30.05. </span></td><td nowrap class="np_thread_line1"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10931&group=uw.csc#10931">Re: Employer Info Session: Microsoft - Cancelled</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Sarah Uppal</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">30.05. </span></td><td nowrap class="np_thread_line2"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10930&group=uw.csc#10930">Employer Info Session: NeoEdge Networks</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Sarah Uppal</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">30.05. </span></td><td nowrap class="np_thread_line1"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10929&group=uw.csc#10929">Employer Info Session: Microsoft</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Sarah Uppal</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">30.05. </span></td><td nowrap class="np_thread_line2"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10928&group=uw.csc#10928">Employer Info Session: Amazon.com</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Sarah Uppal</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">30.05. </span></td><td nowrap class="np_thread_line1"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10927&group=uw.csc#10927">Employer Info Session: Safe Software</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Sarah Uppal</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">30.05. </span></td><td nowrap class="np_thread_line2"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10926&group=uw.csc#10926">Employer Info Session: National Instruments</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Sarah Uppal</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">30.05. </span></td><td nowrap class="np_thread_line1"><img src="img/k1.gif" alt="o" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10925&group=uw.csc#10925">Employer Info Session: Cigital Inc.</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Sarah Uppal</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">27.05. </span></td><td nowrap class="np_thread_line2"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10916&group=uw.csc#10916">Meeting Minutes for 05-17-07</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Secretary</span></td></tr><tr class="np_thread_line1"><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">29.05. </span></td><td nowrap class="np_thread_line1"><img src="img/L.gif" alt="`" class="thread_image"><img src="img/s.gif" alt="-" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10924&group=uw.csc#10924">Re: Meeting Minutes for 05-17-07</a></span></td><td></td><td class="np_thread_line1" nowrap="nowrap"><span class="np_thread_line_text">Michael Spang</span></td></tr><tr class="np_thread_line2"><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">27.05. </span></td><td nowrap class="np_thread_line2"><img src="img/k2.gif" alt="*" class="thread_image"><span class="np_thread_line_text">&nbsp;<a href="article.php?id=10917&group=uw.csc#10917">Meeting Minutes for 05-24-07</a></span></td><td></td><td class="np_thread_line2" nowrap="nowrap"><span class="np_thread_line_text">Erik Louie</span></td></tr>
\ No newline at end of file
diff --git a/newsgroup/spool/uw.csc-data.dat b/newsgroup/spool/uw.csc-data.dat
deleted file mode 100644 (file)
index b8c58ca..0000000
+++ /dev/null
@@ -1 +0,0 @@
-a:139:{s:35:"<f59j7h$uri$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:75:"Tuesday, July 17th 2007: CSC Talk with very special guest Bjarne Stroustrup";s:4:"from";s:20:"gdcosta@uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'costa";s:4:"date";i:1182286368;s:2:"id";s:35:"<f59j7h$uri$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10971";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1182286368;}s:35:"<f59ijc$ukd$3@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:74:"Friday, July 6, 2007: CSC Talk with very special guest Richard M. Stallman";s:4:"from";s:20:"gdcosta@uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'costa";s:4:"date";i:1182285724;s:2:"id";s:35:"<f59ijc$ukd$3@rumours.uwaterloo.ca>";s:6:"number";s:5:"10970";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1182285724;}s:35:"<f59hmm$u6f$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:68:"June 22, 2007 - CSC Talk: Email encryption and the GNU Privacy Guard";s:4:"from";s:20:"gdcosta@uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'costa";s:4:"date";i:1182284806;s:2:"id";s:35:"<f59hmm$u6f$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10969";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1182284806;}s:35:"<f53e3c$p0f$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:23:"systems projects update";s:4:"from";s:35:"rridge@caffeine.csclub.uwaterloo.ca";s:8:"username";s:6:"rridge";s:4:"name";s:10:"Ross Ridge";s:4:"date";i:1182084508;s:2:"id";s:35:"<f53e3c$p0f$1@rumours.uwaterloo.ca>";s:10:"references";a:4:{i:0;s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:35:"<f4p6hk$c3r$1@rumours.uwaterloo.ca>";i:2;s:35:"<f50n7t$t07$1@rumours.uwaterloo.ca>";i:3;s:52:"<slrnf79qg0.9io.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10963";s:8:"isAnswer";b:1;s:10:"threadsize";i:6;s:11:"date_thread";i:1182171593;s:13:"bestreference";s:52:"<slrnf79qg0.9io.mspang@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:52:"<slrnf7bdf8.68v.mspang@caffeine.csclub.uwaterloo.ca>";}}s:52:"<slrnf79qg0.9io.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:23:"systems projects update";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1182063600;s:2:"id";s:52:"<slrnf79qg0.9io.mspang@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:3:{i:0;s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:35:"<f4p6hk$c3r$1@rumours.uwaterloo.ca>";i:2;s:35:"<f50n7t$t07$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10962";s:8:"isAnswer";b:1;s:10:"threadsize";i:7;s:11:"date_thread";i:1182171593;s:13:"bestreference";s:35:"<f50n7t$t07$1@rumours.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:35:"<f53e3c$p0f$1@rumours.uwaterloo.ca>";}}s:35:"<f50n7t$t07$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:23:"systems projects update";s:4:"from";s:26:"rridge@csclub.uwaterloo.ca";s:8:"username";s:6:"rridge";s:4:"name";s:10:"Ross Ridge";s:4:"date";i:1181995565;s:2:"id";s:35:"<f50n7t$t07$1@rumours.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:35:"<f4p6hk$c3r$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10961";s:8:"isAnswer";b:1;s:10:"threadsize";i:8;s:11:"date_thread";i:1182171593;s:13:"bestreference";s:35:"<f4p6hk$c3r$1@rumours.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:52:"<slrnf79qg0.9io.mspang@caffeine.csclub.uwaterloo.ca>";}}s:35:"<f4p6hk$c3r$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:23:"systems projects update";s:4:"from";s:35:"rridge@caffeine.csclub.uwaterloo.ca";s:8:"username";s:6:"rridge";s:4:"name";s:10:"Ross Ridge";s:4:"date";i:1181749092;s:2:"id";s:35:"<f4p6hk$c3r$1@rumours.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10950";s:8:"isAnswer";b:1;s:10:"threadsize";i:9;s:11:"date_thread";i:1182171593;s:13:"bestreference";s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:35:"<f50n7t$t07$1@rumours.uwaterloo.ca>";}}s:52:"<slrnf7bdf8.68v.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:23:"systems projects update";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1182115800;s:2:"id";s:52:"<slrnf7bdf8.68v.mspang@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:5:{i:0;s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:35:"<f4p6hk$c3r$1@rumours.uwaterloo.ca>";i:2;s:35:"<f50n7t$t07$1@rumours.uwaterloo.ca>";i:3;s:52:"<slrnf79qg0.9io.mspang@caffeine.csclub.uwaterloo.ca>";i:4;s:35:"<f53e3c$p0f$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10964";s:8:"isAnswer";b:1;s:10:"threadsize";i:5;s:11:"date_thread";i:1182171593;s:13:"bestreference";s:35:"<f53e3c$p0f$1@rumours.uwaterloo.ca>";s:7:"answers";a:2:{i:0;s:52:"<slrnf7be30.68v.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:35:"<f54s58$7jf$1@rumours.uwaterloo.ca>";}}s:35:"<f54s58$7jf$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:23:"systems projects update";s:4:"from";s:35:"rridge@caffeine.csclub.uwaterloo.ca";s:8:"username";s:6:"rridge";s:4:"name";s:10:"Ross Ridge";s:4:"date";i:1182131671;s:2:"id";s:35:"<f54s58$7jf$1@rumours.uwaterloo.ca>";s:10:"references";a:4:{i:0;s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:52:"<slrnf79qg0.9io.mspang@caffeine.csclub.uwaterloo.ca>";i:2;s:35:"<f53e3c$p0f$1@rumours.uwaterloo.ca>";i:3;s:52:"<slrnf7bdf8.68v.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10966";s:8:"isAnswer";b:1;s:10:"threadsize";i:3;s:11:"date_thread";i:1182171593;s:13:"bestreference";s:52:"<slrnf7bdf8.68v.mspang@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:65:"<Pine.GSO.4.64.0706172324420.21029@cpu18.student.cs.uwaterloo.ca>";}}s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:23:"systems projects update";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1181700644;s:2:"id";s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10946";s:8:"isAnswer";b:0;s:10:"threadsize";i:13;s:11:"date_thread";i:1182171593;s:7:"answers";a:3:{i:0;s:35:"<f4p4d9$avd$1@rumours.uwaterloo.ca>";i:1;s:35:"<f4p6hk$c3r$1@rumours.uwaterloo.ca>";i:2;s:35:"<f4pcnf$e5m$2@rumours.uwaterloo.ca>";}}s:35:"<f5634p$iqr$1@rumours.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:23:"systems projects update";s:4:"from";s:35:"rridge@caffeine.csclub.uwaterloo.ca";s:8:"username";s:6:"rridge";s:4:"name";s:10:"Ross Ridge";s:4:"date";i:1182171593;s:2:"id";s:35:"<f5634p$iqr$1@rumours.uwaterloo.ca>";s:10:"references";a:4:{i:0;s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:52:"<slrnf7bdf8.68v.mspang@caffeine.csclub.uwaterloo.ca>";i:2;s:35:"<f54s58$7jf$1@rumours.uwaterloo.ca>";i:3;s:65:"<Pine.GSO.4.64.0706172324420.21029@cpu18.student.cs.uwaterloo.ca>";}s:6:"number";s:5:"10968";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1182171593;s:13:"bestreference";s:65:"<Pine.GSO.4.64.0706172324420.21029@cpu18.student.cs.uwaterloo.ca>";}s:65:"<Pine.GSO.4.64.0706172324420.21029@cpu18.student.cs.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:23:"systems projects update";s:4:"from";s:32:"kmlarose@student.cs.uwaterloo.ca";s:8:"username";s:8:"kmlarose";s:4:"name";s:11:"Kyle Larose";s:4:"date";i:1182133874;s:2:"id";s:65:"<Pine.GSO.4.64.0706172324420.21029@cpu18.student.cs.uwaterloo.ca>";s:10:"references";a:5:{i:0;s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:52:"<slrnf79qg0.9io.mspang@caffeine.csclub.uwaterloo.ca>";i:2;s:35:"<f53e3c$p0f$1@rumours.uwaterloo.ca>";i:3;s:52:"<slrnf7bdf8.68v.mspang@caffeine.csclub.uwaterloo.ca>";i:4;s:35:"<f54s58$7jf$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10967";s:8:"isAnswer";b:1;s:10:"threadsize";i:2;s:11:"date_thread";i:1182171593;s:13:"bestreference";s:35:"<f54s58$7jf$1@rumours.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:35:"<f5634p$iqr$1@rumours.uwaterloo.ca>";}}s:52:"<slrnf7be30.68v.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:23:"systems projects update";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1182116432;s:2:"id";s:52:"<slrnf7be30.68v.mspang@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:6:{i:0;s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:35:"<f4p6hk$c3r$1@rumours.uwaterloo.ca>";i:2;s:35:"<f50n7t$t07$1@rumours.uwaterloo.ca>";i:3;s:52:"<slrnf79qg0.9io.mspang@caffeine.csclub.uwaterloo.ca>";i:4;s:35:"<f53e3c$p0f$1@rumours.uwaterloo.ca>";i:5;s:52:"<slrnf7bdf8.68v.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10965";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1182116432;s:13:"bestreference";s:52:"<slrnf7bdf8.68v.mspang@caffeine.csclub.uwaterloo.ca>";}s:35:"<f4qliv$sqd$2@rumours.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:68:"Major Talks for Spring 2007 - Richard Stallman and Bjarne Stroustrup";s:4:"from";s:20:"gdcosta@uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'costa";s:4:"date";i:1181797263;s:2:"id";s:35:"<f4qliv$sqd$2@rumours.uwaterloo.ca>";s:6:"number";s:5:"10954";s:8:"isAnswer";b:0;s:10:"threadsize";i:6;s:11:"date_thread";i:1181965682;s:7:"answers";a:2:{i:0;s:59:"<20070614184523.08d6f811.kspaans@student.math.uwaterloo.ca>";i:1;s:64:"<Pine.GSO.4.64.0706151106470.9562@cpu18.student.cs.uwaterloo.ca>";}}s:64:"<Pine.GSO.4.64.0706151106470.9562@cpu18.student.cs.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:68:"Major Talks for Spring 2007 - Richard Stallman and Bjarne Stroustrup";s:4:"from";s:32:"kmlarose@student.cs.uwaterloo.ca";s:8:"username";s:8:"kmlarose";s:4:"name";s:11:"Kyle Larose";s:4:"date";i:1181916439;s:2:"id";s:64:"<Pine.GSO.4.64.0706151106470.9562@cpu18.student.cs.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:35:"<f4qliv$sqd$2@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10958";s:8:"isAnswer";b:1;s:10:"threadsize";i:3;s:11:"date_thread";i:1181965682;s:13:"bestreference";s:35:"<f4qliv$sqd$2@rumours.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:35:"<f4ug03$6ib$1@rumours.uwaterloo.ca>";}}s:35:"<f4ug03$6ib$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:68:"Major Talks for Spring 2007 - Richard Stallman and Bjarne Stroustrup";s:4:"from";s:35:"rridge@caffeine.csclub.uwaterloo.ca";s:8:"username";s:6:"rridge";s:4:"name";s:10:"Ross Ridge";s:4:"date";i:1181922611;s:2:"id";s:35:"<f4ug03$6ib$1@rumours.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:35:"<f4qliv$sqd$2@rumours.uwaterloo.ca>";i:1;s:64:"<Pine.GSO.4.64.0706151106470.9562@cpu18.student.cs.uwaterloo.ca>";}s:6:"number";s:5:"10959";s:8:"isAnswer";b:1;s:10:"threadsize";i:2;s:11:"date_thread";i:1181965682;s:13:"bestreference";s:64:"<Pine.GSO.4.64.0706151106470.9562@cpu18.student.cs.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:65:"<Pine.GSO.4.64.0706160046580.12398@cpu18.student.cs.uwaterloo.ca>";}}s:65:"<Pine.GSO.4.64.0706160046580.12398@cpu18.student.cs.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:68:"Major Talks for Spring 2007 - Richard Stallman and Bjarne Stroustrup";s:4:"from";s:32:"kmlarose@student.cs.uwaterloo.ca";s:8:"username";s:8:"kmlarose";s:4:"name";s:11:"Kyle Larose";s:4:"date";i:1181965682;s:2:"id";s:65:"<Pine.GSO.4.64.0706160046580.12398@cpu18.student.cs.uwaterloo.ca>";s:10:"references";a:3:{i:0;s:35:"<f4qliv$sqd$2@rumours.uwaterloo.ca>";i:1;s:64:"<Pine.GSO.4.64.0706151106470.9562@cpu18.student.cs.uwaterloo.ca>";i:2;s:35:"<f4ug03$6ib$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10960";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1181965682;s:13:"bestreference";s:35:"<f4ug03$6ib$1@rumours.uwaterloo.ca>";}s:55:"<1181866978.387635.119580@z28g2000prd.googlegroups.com>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:68:"Major Talks for Spring 2007 - Richard Stallman and Bjarne Stroustrup";s:4:"from";s:21:"zeppelin188@gmail.com";s:8:"username";s:11:"zeppelin188";s:4:"name";s:13:"Michael Ellis";s:4:"date";i:1181863378;s:2:"id";s:55:"<1181866978.387635.119580@z28g2000prd.googlegroups.com>";s:10:"references";a:4:{i:0;s:35:"<f4qliv$sqd$2@rumours.uwaterloo.ca>";i:1;s:0:"";i:2;s:0:"";i:3;s:59:"<20070614184523.08d6f811.kspaans@student.math.uwaterloo.ca>";}s:6:"number";s:5:"10957";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1181863378;s:13:"bestreference";s:59:"<20070614184523.08d6f811.kspaans@student.math.uwaterloo.ca>";}s:59:"<20070614184523.08d6f811.kspaans@student.math.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:68:"Major Talks for Spring 2007 - Richard Stallman and Bjarne Stroustrup";s:4:"from";s:33:"kspaans@student.math.uwaterloo.ca";s:8:"username";s:7:"kspaans";s:4:"name";s:11:"Kyle Spaans";s:4:"date";i:1181857523;s:2:"id";s:59:"<20070614184523.08d6f811.kspaans@student.math.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:35:"<f4qliv$sqd$2@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10956";s:8:"isAnswer";b:1;s:10:"threadsize";i:2;s:11:"date_thread";i:1181863378;s:13:"bestreference";s:35:"<f4qliv$sqd$2@rumours.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:55:"<1181866978.387635.119580@z28g2000prd.googlegroups.com>";}}s:32:"<t5ds4f.mgh.ln@ceterneh.blit.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:19:"NeXT Stuff for sale";s:4:"from";s:28:"cgreuter@csclub.uwaterloo.ca";s:8:"username";s:8:"cgreuter";s:4:"name";s:12:"Chris Reuter";s:4:"date";i:1181854189;s:2:"id";s:32:"<t5ds4f.mgh.ln@ceterneh.blit.ca>";s:6:"number";s:5:"10955";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1181854189;}s:35:"<f4qkvr$snk$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:64:"Distinguished Lecture Series - Dr. Vinton G. Cerf; June 21, 2007";s:4:"from";s:20:"gdcosta@uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'costa";s:4:"date";i:1181796650;s:2:"id";s:35:"<f4qkvr$snk$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10952";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1181796650;}s:35:"<f4pcnf$e5m$2@rumours.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:23:"systems projects update";s:4:"from";s:29:"cs241@student.cs.uwaterloo.ca";s:8:"username";s:5:"cs241";s:4:"name";s:31:"Colin Bell [UW CS241 S07 Tutor]";s:4:"date";i:1181755423;s:2:"id";s:35:"<f4pcnf$e5m$2@rumours.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10951";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1181755423;s:13:"bestreference";s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";}s:35:"<f4p4d9$avd$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:23:"systems projects update";s:4:"from";s:28:"dj3vande@csclub.uwaterloo.ca";s:8:"username";s:8:"dj3vande";s:4:"name";s:15:"Dave Vandervies";s:4:"date";i:1181746905;s:2:"id";s:35:"<f4p4d9$avd$1@rumours.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10948";s:8:"isAnswer";b:1;s:10:"threadsize";i:2;s:11:"date_thread";i:1181748689;s:13:"bestreference";s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:35:"<f4p651$c03$1@rumours.uwaterloo.ca>";}}s:35:"<f4p651$c03$1@rumours.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:23:"systems projects update";s:4:"from";s:35:"rridge@caffeine.csclub.uwaterloo.ca";s:8:"username";s:6:"rridge";s:4:"name";s:10:"Ross Ridge";s:4:"date";i:1181748689;s:2:"id";s:35:"<f4p651$c03$1@rumours.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:52:"<slrnf6uo1k.tte.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:35:"<f4p4d9$avd$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10949";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1181748689;s:13:"bestreference";s:35:"<f4p4d9$avd$1@rumours.uwaterloo.ca>";}s:35:"<f4oq85$7l1$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:29:"Employer Info Session: Google";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1181736483;s:2:"id";s:35:"<f4oq85$7l1$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10947";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1181736483;}s:59:"<9B63328F-A409-4314-9195-BAF04E9929C9%gdcosta@uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:40:"June 18th 2007 - Talk by Peter Macdonald";s:4:"from";s:20:"gdcosta@uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'costa";s:4:"date";i:1181690001;s:2:"id";s:59:"<9B63328F-A409-4314-9195-BAF04E9929C9%gdcosta@uwaterloo.ca>";s:6:"number";s:5:"10945";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1181690001;}s:35:"<f4mgrs$btt$1@rumours.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:39:"UNIX101 creation: June 9, 2007 @ 1:00pm";s:4:"from";s:29:"cs241@student.cs.uwaterloo.ca";s:8:"username";s:5:"cs241";s:4:"name";s:31:"Colin Bell [UW CS241 S07 Tutor]";s:4:"date";i:1181661355;s:2:"id";s:35:"<f4mgrs$btt$1@rumours.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:35:"<f417gp$duj$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10944";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1181661355;s:13:"bestreference";s:35:"<f417gp$duj$1@rumours.uwaterloo.ca>";}s:35:"<f417gp$duj$1@rumours.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:39:"UNIX101 creation: June 9, 2007 @ 1:00pm";s:4:"from";s:29:"cs241@student.cs.uwaterloo.ca";s:8:"username";s:5:"cs241";s:4:"name";s:31:"Colin Bell [UW CS241 S07 Tutor]";s:4:"date";i:1180963656;s:2:"id";s:35:"<f417gp$duj$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10934";s:8:"isAnswer";b:0;s:10:"threadsize";i:6;s:11:"date_thread";i:1181661355;s:7:"answers";a:2:{i:0;s:52:"<slrnf68b01.7gq.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:35:"<f4mgrs$btt$1@rumours.uwaterloo.ca>";}}s:59:"<8B3399A9-A7E1-4F86-9286-FF39FA82FA00%gdcosta@uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:22:"Terry Talk rescheduled";s:4:"from";s:20:"gdcosta@uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'costa";s:4:"date";i:1181625048;s:2:"id";s:59:"<8B3399A9-A7E1-4F86-9286-FF39FA82FA00%gdcosta@uwaterloo.ca>";s:6:"number";s:5:"10943";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1181625048;}s:64:"<Pine.LNX.4.64.0706081807370.23161@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:28:"Migrating mail to ~/.maildir";s:4:"from";s:27:"gdcosta@csclub.uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'Costa";s:4:"date";i:1181337436;s:2:"id";s:64:"<Pine.LNX.4.64.0706081807370.23161@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10942";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1181337436;}s:74:"<Pine.LNX.4.64.0706071655470.3475@artificial-flavours.csclub.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:29:"Upcoming Talk - Michael Terry";s:4:"from";s:47:"gdcosta@artificial-flavours.csclub.uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'Costa";s:4:"date";i:1181246343;s:2:"id";s:74:"<Pine.LNX.4.64.0706071655470.3475@artificial-flavours.csclub.uwaterloo.ca>";s:6:"number";s:5:"10941";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1181246343;}s:35:"<f491hi$agb$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:32:"Employer Info Session: Lime Wire";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1181219676;s:2:"id";s:35:"<f491hi$agb$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10940";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1181219676;}s:59:"<Pine.GSO.4.64.0706041601150.5226@cpu105.math.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:0;s:7:"subject";s:53:"Tuesday, 1:30: Using Second Life for Higher Education";s:4:"from";s:24:"pkates@math.uwaterloo.ca";s:8:"username";s:6:"pkates";s:4:"name";s:10:"Paul Kates";s:4:"date";i:1180988873;s:2:"id";s:59:"<Pine.GSO.4.64.0706041601150.5226@cpu105.math.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:65:"<F7F53D9097DF2B4281566EDA1C0C055601125674@mercury.algomau.auc.ca>";i:1;s:59:"<Pine.GSO.4.64.0702221306450.9014@cpu105.math.uwaterloo.ca>";}s:6:"number";s:5:"10939";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1180988873;s:13:"bestreference";s:59:"<Pine.GSO.4.64.0702221306450.9014@cpu105.math.uwaterloo.ca>";}s:59:"<Pine.GSO.4.64.0702221306450.9014@cpu105.math.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:0;s:7:"subject";s:63:"possible UW meeting for MSc in computer games design (Algoma U)";s:4:"from";s:24:"pkates@math.uwaterloo.ca";s:8:"username";s:6:"pkates";s:4:"name";s:10:"Paul Kates";s:4:"date";i:1172169751;s:2:"id";s:59:"<Pine.GSO.4.64.0702221306450.9014@cpu105.math.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:65:"<F7F53D9097DF2B4281566EDA1C0C055601125674@mercury.algomau.auc.ca>";}s:6:"number";s:5:"10832";s:8:"isAnswer";b:0;s:10:"threadsize";i:2;s:11:"date_thread";i:1180988873;s:7:"answers";a:1:{i:0;s:59:"<Pine.GSO.4.64.0706041601150.5226@cpu105.math.uwaterloo.ca>";}}s:52:"<slrnf68b01.7gq.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:39:"UNIX101 creation: June 9, 2007 @ 1:00pm";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1180966385;s:2:"id";s:52:"<slrnf68b01.7gq.mspang@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:35:"<f417gp$duj$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10935";s:8:"isAnswer";b:1;s:10:"threadsize";i:4;s:11:"date_thread";i:1180976392;s:13:"bestreference";s:35:"<f417gp$duj$1@rumours.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:52:"<slrnf68gln.dv4.mspang@caffeine.csclub.uwaterloo.ca>";}}s:52:"<slrnf68gln.dv4.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:39:"UNIX101 creation: June 9, 2007 @ 1:00pm";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1180972199;s:2:"id";s:52:"<slrnf68gln.dv4.mspang@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:35:"<f417gp$duj$1@rumours.uwaterloo.ca>";i:1;s:52:"<slrnf68b01.7gq.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10936";s:8:"isAnswer";b:1;s:10:"threadsize";i:3;s:11:"date_thread";i:1180976392;s:13:"bestreference";s:52:"<slrnf68b01.7gq.mspang@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:46:"<slrnf68iqh.lgj.mpatters@cscf.cs.uwaterloo.ca>";}}s:46:"<slrnf68iqh.lgj.mpatters@cscf.cs.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:39:"UNIX101 creation: June 9, 2007 @ 1:00pm";s:4:"from";s:24:"mpatters@cs.uwaterloo.ca";s:8:"username";s:8:"mpatters";s:4:"name";s:14:"Mike Patterson";s:4:"date";i:1180974401;s:2:"id";s:46:"<slrnf68iqh.lgj.mpatters@cscf.cs.uwaterloo.ca>";s:10:"references";a:3:{i:0;s:35:"<f417gp$duj$1@rumours.uwaterloo.ca>";i:1;s:52:"<slrnf68b01.7gq.mspang@caffeine.csclub.uwaterloo.ca>";i:2;s:52:"<slrnf68gln.dv4.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10937";s:8:"isAnswer";b:1;s:10:"threadsize";i:2;s:11:"date_thread";i:1180976392;s:13:"bestreference";s:52:"<slrnf68gln.dv4.mspang@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:52:"<slrnf68koo.ioe.mspang@caffeine.csclub.uwaterloo.ca>";}}s:52:"<slrnf68koo.ioe.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:39:"UNIX101 creation: June 9, 2007 @ 1:00pm";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1180976392;s:2:"id";s:52:"<slrnf68koo.ioe.mspang@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:4:{i:0;s:35:"<f417gp$duj$1@rumours.uwaterloo.ca>";i:1;s:52:"<slrnf68b01.7gq.mspang@caffeine.csclub.uwaterloo.ca>";i:2;s:52:"<slrnf68gln.dv4.mspang@caffeine.csclub.uwaterloo.ca>";i:3;s:46:"<slrnf68iqh.lgj.mpatters@cscf.cs.uwaterloo.ca>";}s:6:"number";s:5:"10938";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1180976392;s:13:"bestreference";s:46:"<slrnf68iqh.lgj.mpatters@cscf.cs.uwaterloo.ca>";}s:35:"<f410up$blm$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:41:"New course: Computer Security and Privacy";s:4:"from";s:20:"iang@cs.uwaterloo.ca";s:8:"username";s:4:"iang";s:4:"name";s:12:"Ian Goldberg";s:4:"date";i:1180956937;s:2:"id";s:35:"<f410up$blm$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10933";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1180956937;}s:52:"<slrnf5uql4.gnb.elouie@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:32:"May 31, 2007 Meeting Replacement";s:4:"from";s:29:"secretary@csclub.uwaterloo.ca";s:8:"username";s:9:"secretary";s:4:"name";s:10:"Erik Louie";s:4:"date";i:1180654740;s:2:"id";s:52:"<slrnf5uql4.gnb.elouie@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10932";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1180654740;}s:35:"<f3kb44$ncd$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:1;s:7:"subject";s:44:"Employer Info Session: Microsoft - Cancelled";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1180541355;s:2:"id";s:35:"<f3kb44$ncd$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10931";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1180541355;}s:35:"<f3k5b2$l5l$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:39:"Employer Info Session: NeoEdge Networks";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1180535435;s:2:"id";s:35:"<f3k5b2$l5l$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10930";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1180535435;}s:35:"<f3k57v$l10$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:32:"Employer Info Session: Microsoft";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1180535335;s:2:"id";s:35:"<f3k57v$l10$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10929";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1180535335;}s:35:"<f3k52t$ku8$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:33:"Employer Info Session: Amazon.com";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1180535173;s:2:"id";s:35:"<f3k52t$ku8$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10928";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1180535173;}s:35:"<f3k503$ks0$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:36:"Employer Info Session: Safe Software";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1180535072;s:2:"id";s:35:"<f3k503$ks0$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10927";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1180535072;}s:35:"<f3k4sg$kof$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:43:"Employer Info Session: National Instruments";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1180534951;s:2:"id";s:35:"<f3k4sg$kof$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10926";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1180534951;}s:35:"<f3k4ju$kj6$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:35:"Employer Info Session: Cigital Inc.";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1180534693;s:2:"id";s:35:"<f3k4ju$kj6$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10925";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1180534693;}s:52:"<slrnf5jq62.fi1.elouie@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:28:"Meeting Minutes for 05-17-07";s:4:"from";s:29:"secretary@csclub.uwaterloo.ca";s:8:"username";s:9:"secretary";s:4:"name";s:9:"Secretary";s:4:"date";i:1180293810;s:2:"id";s:52:"<slrnf5jq62.fi1.elouie@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10916";s:8:"isAnswer";b:0;s:10:"threadsize";i:2;s:11:"date_thread";i:1180495511;s:7:"answers";a:1:{i:0;s:52:"<slrnf5pv57.ena.mspang@caffeine.csclub.uwaterloo.ca>";}}s:52:"<slrnf5pv57.ena.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:28:"Meeting Minutes for 05-17-07";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1180495511;s:2:"id";s:52:"<slrnf5pv57.ena.mspang@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:52:"<slrnf5jq62.fi1.elouie@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10924";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1180495511;s:13:"bestreference";s:52:"<slrnf5jq62.fi1.elouie@caffeine.csclub.uwaterloo.ca>";}s:35:"<f3etl9$p8l$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:28:"Meeting Minutes for 05-24-07";s:4:"from";s:35:"rridge@caffeine.csclub.uwaterloo.ca";s:8:"username";s:6:"rridge";s:4:"name";s:10:"Ross Ridge";s:4:"date";i:1180363737;s:2:"id";s:35:"<f3etl9$p8l$1@rumours.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:52:"<slrnf5jrdh.fi1.elouie@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10919";s:8:"isAnswer";b:1;s:10:"threadsize";i:2;s:11:"date_thread";i:1180372833;s:13:"bestreference";s:52:"<slrnf5jrdh.fi1.elouie@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:35:"<f3f6hh$sqt$1@rumours.uwaterloo.ca>";}}s:52:"<slrnf5jrdh.fi1.elouie@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:28:"Meeting Minutes for 05-24-07";s:4:"from";s:29:"secretary@csclub.uwaterloo.ca";s:8:"username";s:9:"secretary";s:4:"name";s:10:"Erik Louie";s:4:"date";i:1180295073;s:2:"id";s:52:"<slrnf5jrdh.fi1.elouie@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10917";s:8:"isAnswer";b:0;s:10:"threadsize";i:4;s:11:"date_thread";i:1180372833;s:7:"answers";a:2:{i:0;s:35:"<f3etl9$p8l$1@rumours.uwaterloo.ca>";i:1;s:61:"<Pine.GSO.4.64.0705281332090.22199@student.math.uwaterloo.ca>";}}s:35:"<f3f6hh$sqt$1@rumours.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:28:"Meeting Minutes for 05-24-07";s:4:"from";s:28:"lsorense@csclub.uwaterloo.ca";s:8:"username";s:8:"lsorense";s:4:"name";s:16:"Lennart Sorensen";s:4:"date";i:1180372833;s:2:"id";s:35:"<f3f6hh$sqt$1@rumours.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:52:"<slrnf5jrdh.fi1.elouie@caffeine.csclub.uwaterloo.ca>";i:1;s:35:"<f3etl9$p8l$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10923";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1180372833;s:13:"bestreference";s:35:"<f3etl9$p8l$1@rumours.uwaterloo.ca>";}s:52:"<slrnf521s3.r5s.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:11:"new machine";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1179711859;s:2:"id";s:52:"<slrnf521s3.r5s.mspang@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10891";s:8:"isAnswer";b:0;s:10:"threadsize";i:10;s:11:"date_thread";i:1180371644;s:7:"answers";a:2:{i:0;s:52:"<slrnf52509.r5s.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:52:"<slrnf5m66c.ano.mspang@caffeine.csclub.uwaterloo.ca>";}}s:52:"<slrnf5m66c.ano.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:11:"new machine";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1180371644;s:2:"id";s:52:"<slrnf5m66c.ano.mspang@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:52:"<slrnf521s3.r5s.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10922";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1180371644;s:13:"bestreference";s:52:"<slrnf521s3.r5s.mspang@caffeine.csclub.uwaterloo.ca>";}s:61:"<Pine.GSO.4.64.0705281332090.22199@student.math.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:28:"Meeting Minutes for 05-24-07";s:4:"from";s:34:"dbelange@student.math.uwaterloo.ca";s:8:"username";s:8:"dbelange";s:4:"name";s:14:"David Belanger";s:4:"date";i:1180370183;s:2:"id";s:61:"<Pine.GSO.4.64.0705281332090.22199@student.math.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:52:"<slrnf5jrdh.fi1.elouie@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10921";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1180370183;s:13:"bestreference";s:52:"<slrnf5jrdh.fi1.elouie@caffeine.csclub.uwaterloo.ca>";}s:35:"<f3eu67$pg1$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:3:"trn";s:4:"from";s:38:"dj3vande@cpu08.student.cs.uwaterloo.ca";s:8:"username";s:8:"dj3vande";s:4:"name";s:15:"Dave Vandervies";s:4:"date";i:1180364279;s:2:"id";s:35:"<f3eu67$pg1$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10920";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1180364279;}s:63:"<Pine.LNX.4.64.0705241735290.5049@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:8:"RMS talk";s:4:"from";s:26:"hkarau@csclub.uwaterloo.ca";s:8:"username";s:6:"hkarau";s:4:"name";s:12:"Holden Karau";s:4:"date";i:1180038942;s:2:"id";s:63:"<Pine.LNX.4.64.0705241735290.5049@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:63:"<Pine.LNX.4.64.0705241651340.2261@caffeine.csclub.uwaterloo.ca>";i:1;s:35:"<f34v0b$kcf$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10913";s:8:"isAnswer";b:1;s:10:"threadsize";i:4;s:11:"date_thread";i:1180313628;s:13:"bestreference";s:35:"<f34v0b$kcf$1@rumours.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:54:"<1180098617.965641.39280@p47g2000hsd.googlegroups.com>";}}s:63:"<Pine.LNX.4.64.0705241651340.2261@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:8:"RMS talk";s:4:"from";s:26:"hkarau@csclub.uwaterloo.ca";s:8:"username";s:6:"hkarau";s:4:"name";s:12:"Holden Karau";s:4:"date";i:1180036602;s:2:"id";s:63:"<Pine.LNX.4.64.0705241651340.2261@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10911";s:8:"isAnswer";b:0;s:10:"threadsize";i:6;s:11:"date_thread";i:1180313628;s:7:"answers";a:1:{i:0;s:35:"<f34v0b$kcf$1@rumours.uwaterloo.ca>";}}s:35:"<f34v0b$kcf$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:8:"RMS talk";s:4:"from";s:35:"rridge@caffeine.csclub.uwaterloo.ca";s:8:"username";s:6:"rridge";s:4:"name";s:10:"Ross Ridge";s:4:"date";i:1180037435;s:2:"id";s:35:"<f34v0b$kcf$1@rumours.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:63:"<Pine.LNX.4.64.0705241651340.2261@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10912";s:8:"isAnswer";b:1;s:10:"threadsize";i:5;s:11:"date_thread";i:1180313628;s:13:"bestreference";s:63:"<Pine.LNX.4.64.0705241651340.2261@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:63:"<Pine.LNX.4.64.0705241735290.5049@caffeine.csclub.uwaterloo.ca>";}}s:64:"<Pine.LNX.4.64.0705251207320.24811@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:8:"RMS talk";s:4:"from";s:27:"gdcosta@csclub.uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'Costa";s:4:"date";i:1180105752;s:2:"id";s:64:"<Pine.LNX.4.64.0705251207320.24811@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:8:{i:0;s:63:"<Pine.LNX.4.64.0705241651340.2261@caffeine.csclub.uwaterloo.ca>";i:1;s:0:"";i:2;s:0:"";i:3;s:35:"<f34v0b$kcf$1@rumours.uwaterloo.ca>";i:4;s:0:"";i:5;s:0:"";i:6;s:63:"<Pine.LNX.4.64.0705241735290.5049@caffeine.csclub.uwaterloo.ca>";i:7;s:54:"<1180098617.965641.39280@p47g2000hsd.googlegroups.com>";}s:6:"number";s:5:"10915";s:8:"isAnswer";b:1;s:10:"threadsize";i:2;s:11:"date_thread";i:1180313628;s:13:"bestreference";s:54:"<1180098617.965641.39280@p47g2000hsd.googlegroups.com>";s:7:"answers";a:1:{i:0;s:54:"<1180317228.060989.90960@k79g2000hse.googlegroups.com>";}}s:54:"<1180317228.060989.90960@k79g2000hse.googlegroups.com>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:8:"RMS talk";s:4:"from";s:21:"zeppelin188@gmail.com";s:8:"username";s:11:"zeppelin188";s:4:"name";s:13:"Michael Ellis";s:4:"date";i:1180313628;s:2:"id";s:54:"<1180317228.060989.90960@k79g2000hse.googlegroups.com>";s:10:"references";a:13:{i:0;s:63:"<Pine.LNX.4.64.0705241651340.2261@caffeine.csclub.uwaterloo.ca>";i:1;s:0:"";i:2;s:0:"";i:3;s:35:"<f34v0b$kcf$1@rumours.uwaterloo.ca>";i:4;s:0:"";i:5;s:0:"";i:6;s:63:"<Pine.LNX.4.64.0705241735290.5049@caffeine.csclub.uwaterloo.ca>";i:7;s:0:"";i:8;s:0:"";i:9;s:54:"<1180098617.965641.39280@p47g2000hsd.googlegroups.com>";i:10;s:0:"";i:11;s:0:"";i:12;s:64:"<Pine.LNX.4.64.0705251207320.24811@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10918";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1180313628;s:13:"bestreference";s:64:"<Pine.LNX.4.64.0705251207320.24811@caffeine.csclub.uwaterloo.ca>";}s:54:"<1180098617.965641.39280@p47g2000hsd.googlegroups.com>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:8:"RMS talk";s:4:"from";s:21:"zeppelin188@gmail.com";s:8:"username";s:11:"zeppelin188";s:4:"name";s:13:"Michael Ellis";s:4:"date";i:1180095018;s:2:"id";s:54:"<1180098617.965641.39280@p47g2000hsd.googlegroups.com>";s:10:"references";a:7:{i:0;s:63:"<Pine.LNX.4.64.0705241651340.2261@caffeine.csclub.uwaterloo.ca>";i:1;s:0:"";i:2;s:0:"";i:3;s:35:"<f34v0b$kcf$1@rumours.uwaterloo.ca>";i:4;s:0:"";i:5;s:0:"";i:6;s:63:"<Pine.LNX.4.64.0705241735290.5049@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10914";s:8:"isAnswer";b:1;s:10:"threadsize";i:3;s:11:"date_thread";i:1180313628;s:13:"bestreference";s:63:"<Pine.LNX.4.64.0705241735290.5049@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:64:"<Pine.LNX.4.64.0705251207320.24811@caffeine.csclub.uwaterloo.ca>";}}s:35:"<f32h26$ohv$1@rumours.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:12:"machine list";s:4:"from";s:26:"dfevans@bcr10.uwaterloo.ca";s:8:"username";s:7:"dfevans";s:4:"name";s:11:"David Evans";s:4:"date";i:1179957622;s:2:"id";s:35:"<f32h26$ohv$1@rumours.uwaterloo.ca>";s:10:"references";a:4:{i:0;s:52:"<slrnf521s3.r5s.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:64:"<Pine.LNX.4.64.0705211056040.10848@caffeine.csclub.uwaterloo.ca>";i:2;s:46:"<slrnf55uv0.rd2.mpatters@cscf.cs.uwaterloo.ca>";i:3;s:35:"<f31bjq$ar5$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10910";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179957622;s:13:"bestreference";s:35:"<f31bjq$ar5$1@rumours.uwaterloo.ca>";}s:35:"<f31bjq$ar5$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:12:"machine list";s:4:"from";s:28:"dkeenan@tiercel.uwaterloo.ca";s:8:"username";s:7:"dkeenan";s:4:"name";s:11:"Dawn Keenan";s:4:"date";i:1179919274;s:2:"id";s:35:"<f31bjq$ar5$1@rumours.uwaterloo.ca>";s:10:"references";a:4:{i:0;s:52:"<slrnf521s3.r5s.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:35:"<f2s9od$lhj$1@rumours.uwaterloo.ca>";i:2;s:64:"<Pine.LNX.4.64.0705211056040.10848@caffeine.csclub.uwaterloo.ca>";i:3;s:46:"<slrnf55uv0.rd2.mpatters@cscf.cs.uwaterloo.ca>";}s:6:"number";s:5:"10906";s:8:"isAnswer";b:1;s:10:"threadsize";i:2;s:11:"date_thread";i:1179957622;s:13:"bestreference";s:46:"<slrnf55uv0.rd2.mpatters@cscf.cs.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:35:"<f32h26$ohv$1@rumours.uwaterloo.ca>";}}s:46:"<slrnf55uv0.rd2.mpatters@cscf.cs.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:12:"machine list";s:4:"from";s:24:"mpatters@cs.uwaterloo.ca";s:8:"username";s:8:"mpatters";s:4:"name";s:14:"Mike Patterson";s:4:"date";i:1179839952;s:2:"id";s:46:"<slrnf55uv0.rd2.mpatters@cscf.cs.uwaterloo.ca>";s:10:"references";a:4:{i:0;s:52:"<slrnf521s3.r5s.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:52:"<slrnf52509.r5s.mspang@caffeine.csclub.uwaterloo.ca>";i:2;s:35:"<f2s9od$lhj$1@rumours.uwaterloo.ca>";i:3;s:64:"<Pine.LNX.4.64.0705211056040.10848@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10901";s:8:"isAnswer";b:1;s:10:"threadsize";i:5;s:11:"date_thread";i:1179957622;s:13:"bestreference";s:64:"<Pine.LNX.4.64.0705211056040.10848@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:2:{i:0;s:52:"<slrnf569jb.4pg.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:35:"<f31bjq$ar5$1@rumours.uwaterloo.ca>";}}s:64:"<Pine.LNX.4.64.0705211056040.10848@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:12:"machine list";s:4:"from";s:27:"gdcosta@csclub.uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'Costa";s:4:"date";i:1179755961;s:2:"id";s:64:"<Pine.LNX.4.64.0705211056040.10848@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:3:{i:0;s:52:"<slrnf521s3.r5s.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:52:"<slrnf52509.r5s.mspang@caffeine.csclub.uwaterloo.ca>";i:2;s:35:"<f2s9od$lhj$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10894";s:8:"isAnswer";b:1;s:10:"threadsize";i:6;s:11:"date_thread";i:1179957622;s:13:"bestreference";s:35:"<f2s9od$lhj$1@rumours.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:46:"<slrnf55uv0.rd2.mpatters@cscf.cs.uwaterloo.ca>";}}s:35:"<f2s9od$lhj$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:12:"machine list";s:4:"from";s:35:"rridge@caffeine.csclub.uwaterloo.ca";s:8:"username";s:6:"rridge";s:4:"name";s:10:"Ross Ridge";s:4:"date";i:1179753533;s:2:"id";s:35:"<f2s9od$lhj$1@rumours.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:52:"<slrnf521s3.r5s.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:52:"<slrnf52509.r5s.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10893";s:8:"isAnswer";b:1;s:10:"threadsize";i:7;s:11:"date_thread";i:1179957622;s:13:"bestreference";s:52:"<slrnf52509.r5s.mspang@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:64:"<Pine.LNX.4.64.0705211056040.10848@caffeine.csclub.uwaterloo.ca>";}}s:52:"<slrnf52509.r5s.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:0;s:7:"subject";s:12:"machine list";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1179715065;s:2:"id";s:52:"<slrnf52509.r5s.mspang@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:52:"<slrnf521s3.r5s.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10892";s:8:"isAnswer";b:1;s:10:"threadsize";i:8;s:11:"date_thread";i:1179957622;s:13:"bestreference";s:52:"<slrnf521s3.r5s.mspang@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:35:"<f2s9od$lhj$1@rumours.uwaterloo.ca>";}}s:35:"<f32eld$nm9$1@rumours.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:20:"UNIX 101 Development";s:4:"from";s:29:"cs241@student.cs.uwaterloo.ca";s:8:"username";s:5:"cs241";s:4:"name";s:31:"Colin Bell [UW CS241 S07 Tutor]";s:4:"date";i:1179955165;s:2:"id";s:35:"<f32eld$nm9$1@rumours.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:35:"<f32dd3$n6g$1@rumours.uwaterloo.ca>";i:1;s:64:"<Pine.LNX.4.64.0705231802120.11237@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10909";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179955165;s:13:"bestreference";s:64:"<Pine.LNX.4.64.0705231802120.11237@caffeine.csclub.uwaterloo.ca>";}s:35:"<f32dd3$n6g$1@rumours.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:20:"UNIX 101 Development";s:4:"from";s:29:"cs241@student.cs.uwaterloo.ca";s:8:"username";s:5:"cs241";s:4:"name";s:31:"Colin Bell [UW CS241 S07 Tutor]";s:4:"date";i:1179953874;s:2:"id";s:35:"<f32dd3$n6g$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10907";s:8:"isAnswer";b:0;s:10:"threadsize";i:3;s:11:"date_thread";i:1179955165;s:7:"answers";a:1:{i:0;s:64:"<Pine.LNX.4.64.0705231802120.11237@caffeine.csclub.uwaterloo.ca>";}}s:64:"<Pine.LNX.4.64.0705231802120.11237@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:20:"UNIX 101 Development";s:4:"from";s:28:"dtbartle@csclub.uwaterloo.ca";s:8:"username";s:8:"dtbartle";s:4:"name";s:13:"David Bartley";s:4:"date";i:1179954240;s:2:"id";s:64:"<Pine.LNX.4.64.0705231802120.11237@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:35:"<f32dd3$n6g$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10908";s:8:"isAnswer";b:1;s:10:"threadsize";i:2;s:11:"date_thread";i:1179955165;s:13:"bestreference";s:35:"<f32dd3$n6g$1@rumours.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:35:"<f32eld$nm9$1@rumours.uwaterloo.ca>";}}s:31:"<46537470.7070200@uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:18:"Spring 2007 Budget";s:4:"from";s:21:"dtbartle@uwaterloo.ca";s:8:"username";s:8:"dtbartle";s:4:"name";s:13:"David Bartley";s:4:"date";i:1179870816;s:2:"id";s:31:"<46537470.7070200@uwaterloo.ca>";s:10:"references";a:1:{i:0;s:59:"<20070522173526.5dd8955e.kspaans@student.math.uwaterloo.ca>";}s:6:"number";s:5:"10905";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179870816;s:13:"bestreference";s:59:"<20070522173526.5dd8955e.kspaans@student.math.uwaterloo.ca>";}s:59:"<20070522173526.5dd8955e.kspaans@student.math.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:18:"Spring 2007 Budget";s:4:"from";s:33:"kspaans@student.math.uwaterloo.ca";s:8:"username";s:7:"kspaans";s:4:"name";s:11:"Kyle Spaans";s:4:"date";i:1179866126;s:2:"id";s:59:"<20070522173526.5dd8955e.kspaans@student.math.uwaterloo.ca>";s:6:"number";s:5:"10903";s:8:"isAnswer";b:0;s:10:"threadsize";i:2;s:11:"date_thread";i:1179870816;s:7:"answers";a:1:{i:0;s:31:"<46537470.7070200@uwaterloo.ca>";}}s:35:"<f2vp22$qbl$1@rumours.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:12:"machine list";s:4:"from";s:26:"dfevans@bcr10.uwaterloo.ca";s:8:"username";s:7:"dfevans";s:4:"name";s:11:"David Evans";s:4:"date";i:1179867506;s:2:"id";s:35:"<f2vp22$qbl$1@rumours.uwaterloo.ca>";s:10:"references";a:4:{i:0;s:52:"<slrnf521s3.r5s.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:64:"<Pine.LNX.4.64.0705211056040.10848@caffeine.csclub.uwaterloo.ca>";i:2;s:46:"<slrnf55uv0.rd2.mpatters@cscf.cs.uwaterloo.ca>";i:3;s:52:"<slrnf569jb.4pg.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10904";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179867506;s:13:"bestreference";s:52:"<slrnf569jb.4pg.mspang@caffeine.csclub.uwaterloo.ca>";}s:52:"<slrnf569jb.4pg.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:12:"machine list";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1179850843;s:2:"id";s:52:"<slrnf569jb.4pg.mspang@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:5:{i:0;s:52:"<slrnf521s3.r5s.mspang@caffeine.csclub.uwaterloo.ca>";i:1;s:52:"<slrnf52509.r5s.mspang@caffeine.csclub.uwaterloo.ca>";i:2;s:35:"<f2s9od$lhj$1@rumours.uwaterloo.ca>";i:3;s:64:"<Pine.LNX.4.64.0705211056040.10848@caffeine.csclub.uwaterloo.ca>";i:4;s:46:"<slrnf55uv0.rd2.mpatters@cscf.cs.uwaterloo.ca>";}s:6:"number";s:5:"10902";s:8:"isAnswer";b:1;s:10:"threadsize";i:2;s:11:"date_thread";i:1179867506;s:13:"bestreference";s:46:"<slrnf55uv0.rd2.mpatters@cscf.cs.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:35:"<f2vp22$qbl$1@rumours.uwaterloo.ca>";}}s:52:"<slrnf51hbm.c9e.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Removing Linux";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1179694950;s:2:"id";s:52:"<slrnf51hbm.c9e.mspang@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:34:"<f2pviu$gl$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10889";s:8:"isAnswer";b:1;s:10:"threadsize";i:6;s:11:"date_thread";i:1179831395;s:13:"bestreference";s:34:"<f2pviu$gl$1@rumours.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:35:"<f2qj8b$6m7$1@rumours.uwaterloo.ca>";}}s:35:"<f2qj8b$6m7$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Removing Linux";s:4:"from";s:21:"l2waldma@uwaterloo.ca";s:8:"username";s:8:"l2waldma";s:4:"name";s:12:"Lyle Waldman";s:4:"date";i:1179697723;s:2:"id";s:35:"<f2qj8b$6m7$1@rumours.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:34:"<f2pviu$gl$1@rumours.uwaterloo.ca>";i:1;s:52:"<slrnf51hbm.c9e.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10890";s:8:"isAnswer";b:1;s:10:"threadsize";i:5;s:11:"date_thread";i:1179831395;s:13:"bestreference";s:52:"<slrnf51hbm.c9e.mspang@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:32:"<m7qs2f.33a.ln@ceterneh.blit.ca>";}}s:32:"<m7qs2f.33a.ln@ceterneh.blit.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Removing Linux";s:4:"from";s:28:"cgreuter@csclub.uwaterloo.ca";s:8:"username";s:8:"cgreuter";s:4:"name";s:12:"Chris Reuter";s:4:"date";i:1179770406;s:2:"id";s:32:"<m7qs2f.33a.ln@ceterneh.blit.ca>";s:10:"references";a:3:{i:0;s:34:"<f2pviu$gl$1@rumours.uwaterloo.ca>";i:1;s:52:"<slrnf51hbm.c9e.mspang@caffeine.csclub.uwaterloo.ca>";i:2;s:35:"<f2qj8b$6m7$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10895";s:8:"isAnswer";b:1;s:10:"threadsize";i:4;s:11:"date_thread";i:1179831395;s:13:"bestreference";s:35:"<f2qj8b$6m7$1@rumours.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:35:"<f2to3m$4pf$1@rumours.uwaterloo.ca>";}}s:34:"<f2pviu$gl$1@rumours.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:14:"Removing Linux";s:4:"from";s:21:"l2waldma@uwaterloo.ca";s:8:"username";s:8:"l2waldma";s:4:"name";s:12:"Lyle Waldman";s:4:"date";i:1179677582;s:2:"id";s:34:"<f2pviu$gl$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10888";s:8:"isAnswer";b:0;s:10:"threadsize";i:7;s:11:"date_thread";i:1179831395;s:7:"answers";a:1:{i:0;s:52:"<slrnf51hbm.c9e.mspang@caffeine.csclub.uwaterloo.ca>";}}s:55:"<1179834994.913203.143290@x35g2000prf.googlegroups.com>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:14:"Removing Linux";s:4:"from";s:21:"zeppelin188@gmail.com";s:8:"username";s:11:"zeppelin188";s:4:"name";s:13:"Michael Ellis";s:4:"date";i:1179831395;s:2:"id";s:55:"<1179834994.913203.143290@x35g2000prf.googlegroups.com>";s:10:"references";a:13:{i:0;s:34:"<f2pviu$gl$1@rumours.uwaterloo.ca>";i:1;s:0:"";i:2;s:0:"";i:3;s:52:"<slrnf51hbm.c9e.mspang@caffeine.csclub.uwaterloo.ca>";i:4;s:0:"";i:5;s:0:"";i:6;s:35:"<f2qj8b$6m7$1@rumours.uwaterloo.ca>";i:7;s:0:"";i:8;s:0:"";i:9;s:32:"<m7qs2f.33a.ln@ceterneh.blit.ca>";i:10;s:0:"";i:11;s:0:"";i:12;s:35:"<f2to3m$4pf$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10900";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179831395;s:13:"bestreference";s:35:"<f2to3m$4pf$1@rumours.uwaterloo.ca>";}s:35:"<f2to3m$4pf$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Removing Linux";s:4:"from";s:21:"l2waldma@uwaterloo.ca";s:8:"username";s:8:"l2waldma";s:4:"name";s:12:"Lyle Waldman";s:4:"date";i:1179800999;s:2:"id";s:35:"<f2to3m$4pf$1@rumours.uwaterloo.ca>";s:10:"references";a:4:{i:0;s:34:"<f2pviu$gl$1@rumours.uwaterloo.ca>";i:1;s:52:"<slrnf51hbm.c9e.mspang@caffeine.csclub.uwaterloo.ca>";i:2;s:35:"<f2qj8b$6m7$1@rumours.uwaterloo.ca>";i:3;s:32:"<m7qs2f.33a.ln@ceterneh.blit.ca>";}s:6:"number";s:5:"10896";s:8:"isAnswer";b:1;s:10:"threadsize";i:3;s:11:"date_thread";i:1179831395;s:13:"bestreference";s:32:"<m7qs2f.33a.ln@ceterneh.blit.ca>";s:7:"answers";a:2:{i:0;s:35:"<f2u11b$7j1$1@rumours.uwaterloo.ca>";i:1;s:55:"<1179834994.913203.143290@x35g2000prf.googlegroups.com>";}}s:52:"<slrnf55aoe.k5u.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:30:"Brand new macbook pro for sale";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1179819262;s:2:"id";s:52:"<slrnf55aoe.k5u.mspang@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:53:"<1179809548.580490.58390@o5g2000hsb.googlegroups.com>";}s:6:"number";s:5:"10899";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179819262;s:13:"bestreference";s:53:"<1179809548.580490.58390@o5g2000hsb.googlegroups.com>";}s:53:"<1179809548.580490.58390@o5g2000hsb.googlegroups.com>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:30:"Brand new macbook pro for sale";s:4:"from";s:25:"azeemsarwarawan@gmail.com";s:8:"username";s:15:"azeemsarwarawan";s:4:"name";s:15:"azeemsarwarawan";s:4:"date";i:1179805948;s:2:"id";s:53:"<1179809548.580490.58390@o5g2000hsb.googlegroups.com>";s:6:"number";s:5:"10897";s:8:"isAnswer";b:0;s:10:"threadsize";i:2;s:11:"date_thread";i:1179819262;s:7:"answers";a:1:{i:0;s:52:"<slrnf55aoe.k5u.mspang@caffeine.csclub.uwaterloo.ca>";}}s:35:"<f2u11b$7j1$1@rumours.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:14:"Removing Linux";s:4:"from";s:37:"dj3vande@caffeine.csclub.uwaterloo.ca";s:8:"username";s:8:"dj3vande";s:4:"name";s:15:"Dave Vandervies";s:4:"date";i:1179810140;s:2:"id";s:35:"<f2u11b$7j1$1@rumours.uwaterloo.ca>";s:10:"references";a:4:{i:0;s:34:"<f2pviu$gl$1@rumours.uwaterloo.ca>";i:1;s:35:"<f2qj8b$6m7$1@rumours.uwaterloo.ca>";i:2;s:32:"<m7qs2f.33a.ln@ceterneh.blit.ca>";i:3;s:35:"<f2to3m$4pf$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10898";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179810140;s:13:"bestreference";s:35:"<f2to3m$4pf$1@rumours.uwaterloo.ca>";}s:64:"<Pine.LNX.4.64.0705151645210.30298@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:27:"gdcosta@csclub.uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'Costa";s:4:"date";i:1179258577;s:2:"id";s:64:"<Pine.LNX.4.64.0705151645210.30298@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:8:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";i:1;s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";i:2;s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";i:3;s:59:"<20070514090812.cb36ce54.kspaans@student.math.uwaterloo.ca>";i:4;s:52:"<slrnf4gvjt.5v1.elouie@caffeine.csclub.uwaterloo.ca>";i:5;s:35:"<f2a0vf$it9$1@rumours.uwaterloo.ca>";i:6;s:64:"<Pine.GSO.4.64.0705141215040.8274@cpu06.student.cs.uwaterloo.ca>";i:7;s:52:"<slrnf4k4v4.n5p.mspang@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10879";s:8:"isAnswer";b:1;s:10:"threadsize";i:4;s:11:"date_thread";i:1179508150;s:13:"bestreference";s:52:"<slrnf4k4v4.n5p.mspang@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:2:{i:0;s:55:"<1179287410.558127.198470@l77g2000hsb.googlegroups.com>";i:1;s:46:"<slrnf4rqu6.8a4.mpatters@cscf.cs.uwaterloo.ca>";}}s:59:"<20070514090812.cb36ce54.kspaans@student.math.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:33:"kspaans@student.math.uwaterloo.ca";s:8:"username";s:7:"kspaans";s:4:"name";s:11:"Kyle Spaans";s:4:"date";i:1179144492;s:2:"id";s:59:"<20070514090812.cb36ce54.kspaans@student.math.uwaterloo.ca>";s:10:"references";a:3:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";i:1;s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";i:2;s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";}s:6:"number";s:5:"10872";s:8:"isAnswer";b:1;s:10:"threadsize";i:9;s:11:"date_thread";i:1179508150;s:13:"bestreference";s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:52:"<slrnf4gvjt.5v1.elouie@caffeine.csclub.uwaterloo.ca>";}}s:52:"<slrnf4gvjt.5v1.elouie@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:26:"elouie@csclub.uwaterloo.ca";s:8:"username";s:6:"elouie";s:4:"name";s:10:"Erik Louie";s:4:"date";i:1179152493;s:2:"id";s:52:"<slrnf4gvjt.5v1.elouie@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:4:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";i:1;s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";i:2;s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";i:3;s:59:"<20070514090812.cb36ce54.kspaans@student.math.uwaterloo.ca>";}s:6:"number";s:5:"10873";s:8:"isAnswer";b:1;s:10:"threadsize";i:8;s:11:"date_thread";i:1179508150;s:13:"bestreference";s:59:"<20070514090812.cb36ce54.kspaans@student.math.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:35:"<f2a0vf$it9$1@rumours.uwaterloo.ca>";}}s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:32:"kmlarose@student.cs.uwaterloo.ca";s:8:"username";s:8:"kmlarose";s:4:"name";s:11:"Kyle Larose";s:4:"date";i:1178919243;s:2:"id";s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";s:6:"number";s:5:"10861";s:8:"isAnswer";b:0;s:10:"threadsize";i:19;s:11:"date_thread";i:1179508150;s:7:"answers";a:5:{i:0;s:35:"<f230lb$g8j$1@rumours.uwaterloo.ca>";i:1;s:35:"<f23ge2$l4s$1@rumours.uwaterloo.ca>";i:2;s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";i:3;s:55:"<1179256530.251434.156410@e65g2000hsc.googlegroups.com>";i:4;s:32:"<sind2f.9cr.ln@ceterneh.blit.ca>";}}s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:34:"dbelange@student.math.uwaterloo.ca";s:8:"username";s:8:"dbelange";s:4:"name";s:14:"David Belanger";s:4:"date";i:1179107383;s:2:"id";s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";i:1;s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";}s:6:"number";s:5:"10869";s:8:"isAnswer";b:1;s:10:"threadsize";i:11;s:11:"date_thread";i:1179508150;s:13:"bestreference";s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";s:7:"answers";a:2:{i:0;s:63:"<Pine.LNX.4.64.0705132346570.2791@caffeine.csclub.uwaterloo.ca>";i:1;s:59:"<20070514090812.cb36ce54.kspaans@student.math.uwaterloo.ca>";}}s:35:"<f2a0vf$it9$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:15:"cpb@tklogic.net";s:8:"username";s:3:"cpb";s:4:"name";s:10:"Colin Bell";s:4:"date";i:1179154719;s:2:"id";s:35:"<f2a0vf$it9$1@rumours.uwaterloo.ca>";s:10:"references";a:5:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";i:1;s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";i:2;s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";i:3;s:59:"<20070514090812.cb36ce54.kspaans@student.math.uwaterloo.ca>";i:4;s:52:"<slrnf4gvjt.5v1.elouie@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10874";s:8:"isAnswer";b:1;s:10:"threadsize";i:7;s:11:"date_thread";i:1179508150;s:13:"bestreference";s:52:"<slrnf4gvjt.5v1.elouie@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:64:"<Pine.GSO.4.64.0705141215040.8274@cpu06.student.cs.uwaterloo.ca>";}}s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:34:"dbelange@student.math.uwaterloo.ca";s:8:"username";s:8:"dbelange";s:4:"name";s:14:"David Belanger";s:4:"date";i:1179102231;s:2:"id";s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";}s:6:"number";s:5:"10867";s:8:"isAnswer";b:1;s:10:"threadsize";i:13;s:11:"date_thread";i:1179508150;s:13:"bestreference";s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";s:7:"answers";a:2:{i:0;s:65:"<Pine.GSO.4.64.0705132228010.23909@cpu18.student.cs.uwaterloo.ca>";i:1;s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";}}s:46:"<slrnf4rqu6.8a4.mpatters@cscf.cs.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:24:"mpatters@cs.uwaterloo.ca";s:8:"username";s:8:"mpatters";s:4:"name";s:14:"Mike Patterson";s:4:"date";i:1179508150;s:2:"id";s:46:"<slrnf4rqu6.8a4.mpatters@cscf.cs.uwaterloo.ca>";s:10:"references";a:9:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";i:1;s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";i:2;s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";i:3;s:59:"<20070514090812.cb36ce54.kspaans@student.math.uwaterloo.ca>";i:4;s:52:"<slrnf4gvjt.5v1.elouie@caffeine.csclub.uwaterloo.ca>";i:5;s:35:"<f2a0vf$it9$1@rumours.uwaterloo.ca>";i:6;s:64:"<Pine.GSO.4.64.0705141215040.8274@cpu06.student.cs.uwaterloo.ca>";i:7;s:52:"<slrnf4k4v4.n5p.mspang@caffeine.csclub.uwaterloo.ca>";i:8;s:64:"<Pine.LNX.4.64.0705151645210.30298@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10887";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179508150;s:13:"bestreference";s:64:"<Pine.LNX.4.64.0705151645210.30298@caffeine.csclub.uwaterloo.ca>";}s:52:"<slrnf4k4v4.n5p.mspang@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:26:"mspang@csclub.uwaterloo.ca";s:8:"username";s:6:"mspang";s:4:"name";s:13:"Michael Spang";s:4:"date";i:1179256276;s:2:"id";s:52:"<slrnf4k4v4.n5p.mspang@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:7:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";i:1;s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";i:2;s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";i:3;s:59:"<20070514090812.cb36ce54.kspaans@student.math.uwaterloo.ca>";i:4;s:52:"<slrnf4gvjt.5v1.elouie@caffeine.csclub.uwaterloo.ca>";i:5;s:35:"<f2a0vf$it9$1@rumours.uwaterloo.ca>";i:6;s:64:"<Pine.GSO.4.64.0705141215040.8274@cpu06.student.cs.uwaterloo.ca>";}s:6:"number";s:5:"10878";s:8:"isAnswer";b:1;s:10:"threadsize";i:5;s:11:"date_thread";i:1179508150;s:13:"bestreference";s:64:"<Pine.GSO.4.64.0705141215040.8274@cpu06.student.cs.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:64:"<Pine.LNX.4.64.0705151645210.30298@caffeine.csclub.uwaterloo.ca>";}}s:64:"<Pine.GSO.4.64.0705141215040.8274@cpu06.student.cs.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:29:"mtsay@student.cs.uwaterloo.ca";s:8:"username";s:5:"mtsay";s:4:"name";s:20:"Alex, Meng-Zane Tsay";s:4:"date";i:1179155716;s:2:"id";s:64:"<Pine.GSO.4.64.0705141215040.8274@cpu06.student.cs.uwaterloo.ca>";s:10:"references";a:6:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";i:1;s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";i:2;s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";i:3;s:59:"<20070514090812.cb36ce54.kspaans@student.math.uwaterloo.ca>";i:4;s:52:"<slrnf4gvjt.5v1.elouie@caffeine.csclub.uwaterloo.ca>";i:5;s:35:"<f2a0vf$it9$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10875";s:8:"isAnswer";b:1;s:10:"threadsize";i:6;s:11:"date_thread";i:1179508150;s:13:"bestreference";s:35:"<f2a0vf$it9$1@rumours.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:52:"<slrnf4k4v4.n5p.mspang@caffeine.csclub.uwaterloo.ca>";}}s:65:"<Pine.GSO.4.64.0705172123090.25503@cpu18.student.cs.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:7:"Minutes";s:4:"from";s:32:"kmlarose@student.cs.uwaterloo.ca";s:8:"username";s:8:"kmlarose";s:4:"name";s:11:"Kyle Larose";s:4:"date";i:1179447811;s:2:"id";s:65:"<Pine.GSO.4.64.0705172123090.25503@cpu18.student.cs.uwaterloo.ca>";s:6:"number";s:5:"10886";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1179447811;}s:65:"<Pine.GSO.4.64.0705162241040.27239@cpu18.student.cs.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:32:"kmlarose@student.cs.uwaterloo.ca";s:8:"username";s:8:"kmlarose";s:4:"name";s:11:"Kyle Larose";s:4:"date";i:1179366081;s:2:"id";s:65:"<Pine.GSO.4.64.0705162241040.27239@cpu18.student.cs.uwaterloo.ca>";s:10:"references";a:26:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";i:1;s:0:"";i:2;s:0:"";i:3;s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";i:4;s:0:"";i:5;s:0:"";i:6;s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";i:7;s:0:"";i:8;s:0:"";i:9;s:59:"<20070514090812.cb36ce54.kspaans@student.math.uwaterloo.ca>";i:10;s:0:"";i:11;s:0:"";i:12;s:52:"<slrnf4gvjt.5v1.elouie@caffeine.csclub.uwaterloo.ca>";i:13;s:0:"";i:14;s:0:"";i:15;s:35:"<f2a0vf$it9$1@rumours.uwaterloo.ca>";i:16;s:0:"";i:17;s:0:"";i:18;s:64:"<Pine.GSO.4.64.0705141215040.8274@cpu06.student.cs.uwaterloo.ca>";i:19;s:0:"";i:20;s:0:"";i:21;s:52:"<slrnf4k4v4.n5p.mspang@caffeine.csclub.uwaterloo.ca>";i:22;s:0:"";i:23;s:0:"";i:24;s:64:"<Pine.LNX.4.64.0705151645210.30298@caffeine.csclub.uwaterloo.ca>";i:25;s:55:"<1179287410.558127.198470@l77g2000hsb.googlegroups.com>";}s:6:"number";s:5:"10885";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179366081;s:13:"bestreference";s:55:"<1179287410.558127.198470@l77g2000hsb.googlegroups.com>";}s:55:"<1179287410.558127.198470@l77g2000hsb.googlegroups.com>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:21:"zeppelin188@gmail.com";s:8:"username";s:11:"zeppelin188";s:4:"name";s:13:"Michael Ellis";s:4:"date";i:1179283810;s:2:"id";s:55:"<1179287410.558127.198470@l77g2000hsb.googlegroups.com>";s:10:"references";a:25:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";i:1;s:0:"";i:2;s:0:"";i:3;s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";i:4;s:0:"";i:5;s:0:"";i:6;s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";i:7;s:0:"";i:8;s:0:"";i:9;s:59:"<20070514090812.cb36ce54.kspaans@student.math.uwaterloo.ca>";i:10;s:0:"";i:11;s:0:"";i:12;s:52:"<slrnf4gvjt.5v1.elouie@caffeine.csclub.uwaterloo.ca>";i:13;s:0:"";i:14;s:0:"";i:15;s:35:"<f2a0vf$it9$1@rumours.uwaterloo.ca>";i:16;s:0:"";i:17;s:0:"";i:18;s:64:"<Pine.GSO.4.64.0705141215040.8274@cpu06.student.cs.uwaterloo.ca>";i:19;s:0:"";i:20;s:0:"";i:21;s:52:"<slrnf4k4v4.n5p.mspang@caffeine.csclub.uwaterloo.ca>";i:22;s:0:"";i:23;s:0:"";i:24;s:64:"<Pine.LNX.4.64.0705151645210.30298@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10880";s:8:"isAnswer";b:1;s:10:"threadsize";i:2;s:11:"date_thread";i:1179366081;s:13:"bestreference";s:64:"<Pine.LNX.4.64.0705151645210.30298@caffeine.csclub.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:65:"<Pine.GSO.4.64.0705162241040.27239@cpu18.student.cs.uwaterloo.ca>";}}s:59:"<D9084592-D261-4103-A6CF-E33FD599C10C%gdcosta@uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:0;s:7:"subject";s:17:"Agenda for May 17";s:4:"from";s:20:"gdcosta@uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'costa";s:4:"date";i:1179352332;s:2:"id";s:59:"<D9084592-D261-4103-A6CF-E33FD599C10C%gdcosta@uwaterloo.ca>";s:10:"references";a:1:{i:0;s:30:"<46447E8F.7050209@tklogic.net>";}s:6:"number";s:5:"10884";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179352332;s:13:"bestreference";s:30:"<46447E8F.7050209@tklogic.net>";}s:30:"<46447E8F.7050209@tklogic.net>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:17:"UNIX Screen Casts";s:4:"from";s:15:"cpb@tklogic.net";s:8:"username";s:3:"cpb";s:4:"name";s:10:"Colin Bell";s:4:"date";i:1178890367;s:2:"id";s:30:"<46447E8F.7050209@tklogic.net>";s:6:"number";s:5:"10859";s:8:"isAnswer";b:0;s:10:"threadsize";i:6;s:11:"date_thread";i:1179352332;s:7:"answers";a:4:{i:0;s:64:"<Pine.LNX.4.64.0705111459590.10288@caffeine.csclub.uwaterloo.ca>";i:1;s:64:"<Pine.LNX.4.64.0705121353310.20723@caffeine.csclub.uwaterloo.ca>";i:2;s:59:"<3A2F7AC1-489E-426F-A6CD-D387294BAE64%gdcosta@uwaterloo.ca>";i:3;s:59:"<D9084592-D261-4103-A6CF-E33FD599C10C%gdcosta@uwaterloo.ca>";}}s:59:"<3A2F7AC1-489E-426F-A6CD-D387294BAE64%gdcosta@uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:17:"UNIX Screen Casts";s:4:"from";s:20:"gdcosta@uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'costa";s:4:"date";i:1179351075;s:2:"id";s:59:"<3A2F7AC1-489E-426F-A6CD-D387294BAE64%gdcosta@uwaterloo.ca>";s:10:"references";a:1:{i:0;s:30:"<46447E8F.7050209@tklogic.net>";}s:6:"number";s:5:"10883";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179351075;s:13:"bestreference";s:30:"<46447E8F.7050209@tklogic.net>";}s:35:"<f2fdk5$hdc$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:39:"Employer Information Session: Microsoft";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1179331502;s:2:"id";s:35:"<f2fdk5$hdc$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10882";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1179331502;}s:32:"<sind2f.9cr.ln@ceterneh.blit.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:28:"cgreuter@csclub.uwaterloo.ca";s:8:"username";s:8:"cgreuter";s:4:"name";s:12:"Chris Reuter";s:4:"date";i:1179276172;s:2:"id";s:32:"<sind2f.9cr.ln@ceterneh.blit.ca>";s:10:"references";a:1:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";}s:6:"number";s:5:"10881";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179276172;s:13:"bestreference";s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";}s:55:"<1179256530.251434.156410@e65g2000hsc.googlegroups.com>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:21:"zeppelin188@gmail.com";s:8:"username";s:11:"zeppelin188";s:4:"name";s:13:"Michael Ellis";s:4:"date";i:1179252930;s:2:"id";s:55:"<1179256530.251434.156410@e65g2000hsc.googlegroups.com>";s:10:"references";a:1:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";}s:6:"number";s:5:"10877";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179252930;s:13:"bestreference";s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";}s:64:"<Pine.LNX.4.64.0705121353310.20723@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:17:"UNIX Screen Casts";s:4:"from";s:27:"gdcosta@csclub.uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'Costa";s:4:"date";i:1178989466;s:2:"id";s:64:"<Pine.LNX.4.64.0705121353310.20723@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:30:"<46447E8F.7050209@tklogic.net>";}s:6:"number";s:5:"10865";s:8:"isAnswer";b:1;s:10:"threadsize";i:2;s:11:"date_thread";i:1179157640;s:13:"bestreference";s:30:"<46447E8F.7050209@tklogic.net>";s:7:"answers";a:1:{i:0;s:35:"<f2a3qp$juv$1@rumours.uwaterloo.ca>";}}s:35:"<f2a3qp$juv$1@rumours.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:17:"UNIX Screen Casts";s:4:"from";s:15:"cpb@tklogic.net";s:8:"username";s:3:"cpb";s:4:"name";s:10:"Colin Bell";s:4:"date";i:1179157640;s:2:"id";s:35:"<f2a3qp$juv$1@rumours.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:30:"<46447E8F.7050209@tklogic.net>";i:1;s:64:"<Pine.LNX.4.64.0705121353310.20723@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10876";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179157640;s:13:"bestreference";s:64:"<Pine.LNX.4.64.0705121353310.20723@caffeine.csclub.uwaterloo.ca>";}s:64:"<Pine.LNX.4.64.0705131505090.10021@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:12:"Cleaning Day";s:4:"from";s:27:"gdcosta@csclub.uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'Costa";s:4:"date";i:1179111337;s:2:"id";s:64:"<Pine.LNX.4.64.0705131505090.10021@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10871";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1179111337;}s:63:"<Pine.LNX.4.64.0705132346570.2791@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:27:"gdcosta@csclub.uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'Costa";s:4:"date";i:1179111077;s:2:"id";s:63:"<Pine.LNX.4.64.0705132346570.2791@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:3:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";i:1;s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";i:2;s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";}s:6:"number";s:5:"10870";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179111077;s:13:"bestreference";s:60:"<Pine.GSO.4.64.0705132210490.3229@student.math.uwaterloo.ca>";}s:65:"<Pine.GSO.4.64.0705132228010.23909@cpu18.student.cs.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:32:"kmlarose@student.cs.uwaterloo.ca";s:8:"username";s:8:"kmlarose";s:4:"name";s:11:"Kyle Larose";s:4:"date";i:1179106119;s:2:"id";s:65:"<Pine.GSO.4.64.0705132228010.23909@cpu18.student.cs.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";i:1;s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";}s:6:"number";s:5:"10868";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1179106119;s:13:"bestreference";s:61:"<Pine.GSO.4.64.0705132118020.28842@student.math.uwaterloo.ca>";}s:52:"<slrnf4etks.f04.elouie@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:32:"Minute Meetings for May 13, 2007";s:4:"from";s:29:"secretary@csclub.uwaterloo.ca";s:8:"username";s:9:"secretary";s:4:"name";s:9:"Secretary";s:4:"date";i:1179084940;s:2:"id";s:52:"<slrnf4etks.f04.elouie@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10866";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1179084940;}s:65:"<Pine.GSO.4.64.0705121107550.16112@cpu18.student.cs.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:32:"kmlarose@student.cs.uwaterloo.ca";s:8:"username";s:8:"kmlarose";s:4:"name";s:11:"Kyle Larose";s:4:"date";i:1178978927;s:2:"id";s:65:"<Pine.GSO.4.64.0705121107550.16112@cpu18.student.cs.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";i:1;s:35:"<f230lb$g8j$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10864";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1178978927;s:13:"bestreference";s:35:"<f230lb$g8j$1@rumours.uwaterloo.ca>";}s:35:"<f230lb$g8j$1@rumours.uwaterloo.ca>";O:8:"stdClass":14:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:35:"rridge@caffeine.csclub.uwaterloo.ca";s:8:"username";s:6:"rridge";s:4:"name";s:10:"Ross Ridge";s:4:"date";i:1178925019;s:2:"id";s:35:"<f230lb$g8j$1@rumours.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";}s:6:"number";s:5:"10862";s:8:"isAnswer";b:1;s:10:"threadsize";i:2;s:11:"date_thread";i:1178978927;s:13:"bestreference";s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";s:7:"answers";a:1:{i:0;s:65:"<Pine.GSO.4.64.0705121107550.16112@cpu18.student.cs.uwaterloo.ca>";}}s:35:"<f23ge2$l4s$1@rumours.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:14:"Naming Schemes";s:4:"from";s:37:"dj3vande@caffeine.csclub.uwaterloo.ca";s:8:"username";s:8:"dj3vande";s:4:"name";s:15:"Dave Vandervies";s:4:"date";i:1178941170;s:2:"id";s:35:"<f23ge2$l4s$1@rumours.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";}s:6:"number";s:5:"10863";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1178941170;s:13:"bestreference";s:65:"<Pine.GSO.4.64.0705111832450.24680@cpu18.student.cs.uwaterloo.ca>";}s:64:"<Pine.LNX.4.64.0705111459590.10288@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:17:"UNIX Screen Casts";s:4:"from";s:28:"dtbartle@csclub.uwaterloo.ca";s:8:"username";s:8:"dtbartle";s:4:"name";s:13:"David Bartley";s:4:"date";i:1178906639;s:2:"id";s:64:"<Pine.LNX.4.64.0705111459590.10288@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:30:"<46447E8F.7050209@tklogic.net>";}s:6:"number";s:5:"10860";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1178906639;s:13:"bestreference";s:30:"<46447E8F.7050209@tklogic.net>";}s:70:"<Pine.LNX.4.64.0705101954410.6806@phosphoric-acid.csclub.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:13:"Next meetings";s:4:"from";s:43:"gdcosta@phosphoric-acid.csclub.uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'Costa";s:4:"date";i:1178837809;s:2:"id";s:70:"<Pine.LNX.4.64.0705101954410.6806@phosphoric-acid.csclub.uwaterloo.ca>";s:6:"number";s:5:"10858";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178837809;}s:70:"<Pine.LNX.4.64.0705101926140.6806@phosphoric-acid.csclub.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:32:"Meeting Minutes for May 10, 2007";s:4:"from";s:43:"gdcosta@phosphoric-acid.csclub.uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'Costa";s:4:"date";i:1178837677;s:2:"id";s:70:"<Pine.LNX.4.64.0705101926140.6806@phosphoric-acid.csclub.uwaterloo.ca>";s:6:"number";s:5:"10857";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178837677;}s:70:"<Pine.LNX.4.64.0705101903400.6806@phosphoric-acid.csclub.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:28:"Spring 2007 Election Results";s:4:"from";s:43:"gdcosta@phosphoric-acid.csclub.uwaterloo.ca";s:8:"username";s:7:"gdcosta";s:4:"name";s:14:"Gaelan D'Costa";s:4:"date";i:1178835073;s:2:"id";s:70:"<Pine.LNX.4.64.0705101903400.6806@phosphoric-acid.csclub.uwaterloo.ca>";s:6:"number";s:5:"10856";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178835073;}s:35:"<f1t67o$fln$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:40:"Fw:  Employer Info Session: NexJ Systems";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1178734114;s:2:"id";s:35:"<f1t67o$fln$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10855";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178734114;}s:35:"<f1t5o4$fga$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:39:"Fw: Employer Info Session: Kaleidescape";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1178733613;s:2:"id";s:35:"<f1t5o4$fga$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10854";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178733613;}s:35:"<f1t5nn$ffm$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:36:"Fw: Employer Info Session: Platespin";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1178733600;s:2:"id";s:35:"<f1t5nn$ffm$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10853";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178733600;}s:35:"<f1t5nc$fch$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:40:"Fw: Employer Info Session: SOMA Networks";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1178733589;s:2:"id";s:35:"<f1t5nc$fch$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10852";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178733589;}s:35:"<f1t5mu$fbq$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:35:"Fw: Employer Info Session: QUALCOMM";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1178733576;s:2:"id";s:35:"<f1t5mu$fbq$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10851";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178733576;}s:35:"<f1t0e0$d66$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:32:"Employer Info Session - Deloitte";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1178728169;s:2:"id";s:35:"<f1t0e0$d66$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10850";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178728169;}s:35:"<f1aieo$c6p$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:58:"Employer Info Session: UW Information Systems & Technology";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1178124023;s:2:"id";s:35:"<f1aieo$c6p$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10849";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178124023;}s:35:"<f1ai67$bvv$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:43:"Employer Info Session: Infusion Development";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1178123760;s:2:"id";s:35:"<f1ai67$bvv$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10848";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178123760;}s:35:"<f1ahtg$br7$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:38:"Employer Info Session: Silicon Knights";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1178123480;s:2:"id";s:35:"<f1ahtg$br7$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10847";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178123480;}s:35:"<f1ahl4$bkv$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:38:"Employer Info Session: Autodesk Canada";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1178123213;s:2:"id";s:35:"<f1ahl4$bkv$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10846";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178123213;}s:35:"<f1aguk$b8t$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:35:"Employer Info Session: Epson Canada";s:4:"from";s:27:"suppal@admmail.uwaterloo.ca";s:8:"username";s:6:"suppal";s:4:"name";s:11:"Sarah Uppal";s:4:"date";i:1178122492;s:2:"id";s:35:"<f1aguk$b8t$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10845";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1178122492;}s:63:"<Pine.LNX.4.64.0705011634350.5983@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:25:"CSC Spring 2007 Elections";s:4:"from";s:28:"dtbartle@csclub.uwaterloo.ca";s:8:"username";s:8:"dtbartle";s:4:"name";s:13:"David Bartley";s:4:"date";i:1178048326;s:2:"id";s:63:"<Pine.LNX.4.64.0705011634350.5983@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:63:"<Pine.LNX.4.64.0705011606390.5057@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10844";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1178048326;s:13:"bestreference";s:63:"<Pine.LNX.4.64.0705011606390.5057@caffeine.csclub.uwaterloo.ca>";}s:63:"<Pine.LNX.4.64.0705011606390.5057@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:25:"CSC Spring 2007 Elections";s:4:"from";s:28:"dtbartle@csclub.uwaterloo.ca";s:8:"username";s:8:"dtbartle";s:4:"name";s:13:"David Bartley";s:4:"date";i:1178046668;s:2:"id";s:63:"<Pine.LNX.4.64.0705011606390.5057@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10843";s:8:"isAnswer";b:0;s:10:"threadsize";i:2;s:11:"date_thread";i:1178048326;s:7:"answers";a:1:{i:0;s:63:"<Pine.LNX.4.64.0705011634350.5983@caffeine.csclub.uwaterloo.ca>";}}s:64:"<Pine.LNX.4.64.0704270944230.13731@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:11:"j2simpso...";s:4:"from";s:28:"dbelange@csclub.uwaterloo.ca";s:8:"username";s:8:"dbelange";s:4:"name";s:14:"David Belanger";s:4:"date";i:1177678028;s:2:"id";s:64:"<Pine.LNX.4.64.0704270944230.13731@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10842";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1177678028;}s:55:"<1176827620.180307.248390@e65g2000hsc.googlegroups.com>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:16:"Database Servers";s:4:"from";s:23:"azndragon1987@gmail.com";s:8:"username";s:13:"azndragon1987";s:4:"name";s:12:"Andrew Chung";s:4:"date";i:1176824020;s:2:"id";s:55:"<1176827620.180307.248390@e65g2000hsc.googlegroups.com>";s:6:"number";s:5:"10841";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1176824020;}s:64:"<Pine.LNX.4.64.0703180335590.30050@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:6:"mdkess";s:4:"from";s:28:"dbelange@csclub.uwaterloo.ca";s:8:"username";s:8:"dbelange";s:4:"name";s:14:"David Belanger";s:4:"date";i:1174199855;s:2:"id";s:64:"<Pine.LNX.4.64.0703180335590.30050@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10839";s:8:"isAnswer";b:0;s:10:"threadsize";i:2;s:11:"date_thread";i:1174956692;s:7:"answers";a:1:{i:0;s:35:"<eu9tb6$guh$1@rumours.uwaterloo.ca>";}}s:35:"<eu9tb6$guh$1@rumours.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:6:"mdkess";s:4:"from";s:17:"adrianp@cogeco.ca";s:8:"username";s:7:"adrianp";s:4:"name";s:15:"Adrian Petrescu";s:4:"date";i:1174956692;s:2:"id";s:35:"<eu9tb6$guh$1@rumours.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:64:"<Pine.LNX.4.64.0703180335590.30050@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10840";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1174956692;s:13:"bestreference";s:64:"<Pine.LNX.4.64.0703180335590.30050@caffeine.csclub.uwaterloo.ca>";}s:54:"<slrnevfq46.nni.mtompset@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:18:"Getting married...";s:4:"from";s:28:"mtompset@csclub.uwaterloo.ca";s:8:"username";s:8:"mtompset";s:4:"name";s:13:"Mark Tompsett";s:4:"date";i:1173871222;s:2:"id";s:54:"<slrnevfq46.nni.mtompset@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10837";s:8:"isAnswer";b:0;s:10:"threadsize";i:2;s:11:"date_thread";i:1173894760;s:7:"answers";a:1:{i:0;s:32:"<o9g9te.u62.ln@ceterneh.blit.ca>";}}s:32:"<o9g9te.u62.ln@ceterneh.blit.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:18:"Getting married...";s:4:"from";s:28:"cgreuter@csclub.uwaterloo.ca";s:8:"username";s:8:"cgreuter";s:4:"name";s:12:"Chris Reuter";s:4:"date";i:1173894760;s:2:"id";s:32:"<o9g9te.u62.ln@ceterneh.blit.ca>";s:10:"references";a:1:{i:0;s:54:"<slrnevfq46.nni.mtompset@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10838";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1173894760;s:13:"bestreference";s:54:"<slrnevfq46.nni.mtompset@caffeine.csclub.uwaterloo.ca>";}s:63:"<Pine.LNX.4.64.0702232029160.1854@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:0;s:7:"subject";s:63:"ReactOS: An Open Source OS Platform for Learning (Feb 26, 2007)";s:4:"from";s:28:"dtbartle@csclub.uwaterloo.ca";s:8:"username";s:8:"dtbartle";s:4:"name";s:13:"David Bartley";s:4:"date";i:1172280594;s:2:"id";s:63:"<Pine.LNX.4.64.0702232029160.1854@caffeine.csclub.uwaterloo.ca>";s:6:"number";s:5:"10833";s:8:"isAnswer";b:0;s:10:"threadsize";i:2;s:11:"date_thread";i:1172522475;s:7:"answers";a:1:{i:0;s:64:"<Pine.GSO.4.64.0702261540340.9762@cpu18.student.cs.uwaterloo.ca>";}}s:64:"<Pine.GSO.4.64.0702261540340.9762@cpu18.student.cs.uwaterloo.ca>";O:8:"stdClass":13:{s:7:"isReply";b:1;s:7:"subject";s:63:"ReactOS: An Open Source OS Platform for Learning (Feb 26, 2007)";s:4:"from";s:32:"kmlarose@student.cs.uwaterloo.ca";s:8:"username";s:8:"kmlarose";s:4:"name";s:11:"Kyle Larose";s:4:"date";i:1172522475;s:2:"id";s:64:"<Pine.GSO.4.64.0702261540340.9762@cpu18.student.cs.uwaterloo.ca>";s:10:"references";a:1:{i:0;s:63:"<Pine.LNX.4.64.0702232029160.1854@caffeine.csclub.uwaterloo.ca>";}s:6:"number";s:5:"10834";s:8:"isAnswer";b:1;s:10:"threadsize";i:1;s:11:"date_thread";i:1172522475;s:13:"bestreference";s:63:"<Pine.LNX.4.64.0702232029160.1854@caffeine.csclub.uwaterloo.ca>";}s:35:"<erkj1c$frt$1@rumours.uwaterloo.ca>";O:8:"stdClass":11:{s:7:"isReply";b:0;s:7:"subject";s:24:"Free USENIX publications";s:4:"from";s:31:"rblander@beta.math.uwaterloo.ca";s:8:"username";s:8:"rblander";s:4:"name";s:20:"Robyn Landers [MFCF]";s:4:"date";i:1172164460;s:2:"id";s:35:"<erkj1c$frt$1@rumours.uwaterloo.ca>";s:6:"number";s:5:"10831";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1172164460;}s:62:"<Pine.LNX.4.64.0702211528080.692@caffeine.csclub.uwaterloo.ca>";O:8:"stdClass":12:{s:7:"isReply";b:1;s:7:"subject";s:65:"UW Software Start-ups: What Worked and What Did Not - Feb 8, 2007";s:4:"from";s:26:"hkarau@csclub.uwaterloo.ca";s:8:"username";s:6:"hkarau";s:4:"name";s:12:"Holden Karau";s:4:"date";i:1172089736;s:2:"id";s:62:"<Pine.LNX.4.64.0702211528080.692@caffeine.csclub.uwaterloo.ca>";s:10:"references";a:2:{i:0;s:64:"<Pine.LNX.4.64.0702080257110.22799@caffeine.csclub.uwaterloo.ca>";i:1;s:35:"<eqh1le$oi2$1@rumours.uwaterloo.ca>";}s:6:"number";s:5:"10830";s:8:"isAnswer";b:0;s:10:"threadsize";i:1;s:11:"date_thread";i:1172089736;}}
\ No newline at end of file
diff --git a/newsgroup/spool/uw.csc-info.txt b/newsgroup/spool/uw.csc-info.txt
deleted file mode 100644 (file)
index 72181c3..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-0.36,news,,400,100,0,0,iso-8859-15,1,1
-10826 10942 115\r
diff --git a/newsgroup/spool/uw.csc-lastarticleinfo.dat b/newsgroup/spool/uw.csc-lastarticleinfo.dat
deleted file mode 100644 (file)
index be4882d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-O:8:"stdClass":3:{s:4:"from";s:27:"gdcosta@csclub.uwaterloo.ca";s:4:"date";i:1181337436;s:4:"name";s:14:"Gaelan D'Costa";}
\ No newline at end of file
diff --git a/newsgroup/style.css b/newsgroup/style.css
deleted file mode 100644 (file)
index 64968af..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/* =========== Page Layout ================ */
-
-BODY {
-  color: black;
-  background: white;
-}
-
-/* =========== Index Layout ============== */
-
-/* headline */
-h1.np_index_headline {
-  font-size: large;
-}
-
-/* border around all groups */
-.np_index_groups {
-  background: #eeeeee;
-  padding: 0px;
-  border: solid 1px #26598f;
-}
-
-/* a block of groups */
-.np_index_groupblock {
-  margin-bottom: 20px;
-}
-
-/* headline of a group of blocks */
-.np_index_grouphead {
-  border: solid 1px #26598f;
-  background: #26598f;
-  color: white;
-}
-
-/* a single group */
-.np_index_group {
-  margin-left: 10px;
-  margin-bottom: 5px;
-}
-
-/* =========== Thread Layout ============== */
-
-/* Headline */
-h1.np_thread_headline {
-  font-size: large;
-}
-
-
-/* Table around the thread */
-table.np_thread_table {
-  width: 100%;
-  border: solid 1px #26598f;
-  border-spacing: 0px;
-  margin: 0px;
-  padding: 0px;
-}
-
-/* Head of the table */
-tr.np_thread_head,td.np_thread_head {
-  color: white;
-  background: #26598f;
-  margin: 0px;
-}
-
-
-
-/* Even line numbers in the thread */
-tr.np_thread_line1,td.np_thread_line1 {
-  padding-left:   3px;
-  padding-top:    0px;
-  padding-right:  0px;
-  padding-bottom: 0px;
-  background: #f9f9f9;
-  margin: 0px;
-}
-
-/* Odd line numbers in the thread */
-tr.np_thread_line2,td.np_thread_line2 {
-  padding-left: 3px;
-  padding-top:    0px;
-  padding-right:  0px;
-  padding-bottom: 0px;
-  background: #eeeeee;
-  margin: 0px;
-}
-
-/* Text inside a Line */
-span.np_thread_line_text {
-  font-size: small;
-}
-
-/* The small images, a thread consists of */
-img.thread_image {
-  vertical-align: bottom;
-}
-
-/* =========== Article Layout ============= */
-
-/* headline */
-h1.np_article_headline {
-  font-size: large;
-}
-
-
-/* Head of an article */
-div.np_article_header {
-  background: #eeeeee;
-  padding: 3px;
-  border: solid 1px #26598f;
-}
-
-/* Layout of the Text-Body */
-div.np_article_body {
-  margin-top: 20px;
-  font-family: "Lucida Console", "Courier New", Courier, "Andale Mono", monospace;
-}
-
-/* Layout of quoted text / graphic layout */
-blockquote.np_article_quote {
-  border-left: #002255 solid 1px;
-  padding-left: 5px;
-  color: #002277;
-  margin: 0px;
-}
-
-/* =========== Post layout =========== */
-
-/* headline */
-h1.np_post_headline {
-  font-size: large;
-}
-
-
-/* Head with the input fields for subject, name and email  */
-.np_post_header {
-  background: #eeeeee;
-  padding: 3px;
-  border: solid 1px #26598f;
-}
-
-/* Body with the message-field and the post-button in it */
-.np_post_body {
-  background: #eeeeee;
-  padding: 3px;
-  border: solid 1px #26598f;
-  margin-top: 10px;
-}
-
-
-/* =========== navigation buttons on top of every page =========== */
-
-.np_buttonbar {
-  background: #26598f;
-  padding: 1px;
-  margin-bottom: 10px;
-  color: black;
-}
-
-td.np_button {
-  padding-left: 5px;
-  padding-right: 5px;
-  border-right: solid white 1px;
-  color: white;
-  white-space: nowrap;
-}
-
-a.np_button {
-  color: white;
-  text-decoration: underline;
-}
-
-.np_pages {
-  color: white;
-}
-
-.np_pages_selected {
-  color: white:
-  text-weight: bold;
-  margin-left: 5px;
-}
-
-.np_pages_unselected {
-  color: white;
-  text-decoration: underline;
-  margin-left: 5px;
-}
diff --git a/newsgroup/tail.inc b/newsgroup/tail.inc
deleted file mode 100644 (file)
index 66b460b..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-<p align="right"><small>
-"<a href="http://florian-amrhein.de/newsportal/">News-Portal</a>"
-was written by <a href="http://florian-amrhein.de">Florian Amrhein</a>.
-</small></p>
-
-</body></html>
diff --git a/newsgroup/thread.php b/newsgroup/thread.php
deleted file mode 100644 (file)
index 29a9eac..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-<? header("Expires: ".gmdate("D, d M Y H:i:s",time()+7200)." GMT");
-
-// register parameters
-$group=$_REQUEST["group"];
-if(isset($_REQUEST["first"]))
-  $first=intval($_REQUEST["first"]);
-if(isset($_REQUEST["last"]))
-  $last=intval($_REQUEST["last"]);
-
-include "config.inc.php";
-include("$file_newsportal");
-include "auth.inc";
-$title.= ' - '.$group;
-include "head.inc";
-
-if((!function_exists("npreg_group_has_read_access") ||
-    npreg_group_has_read_access($group)) &&
-   (!function_exists("npreg_group_is_visible") ||
-    npreg_group_is_visible($group))) {
-
-?>
-
-<a name="top"></a>
-
-<h1 class="np_thread_headline"><?=htmlspecialchars($group); ?></h1>
-
-<?
-  echo '<table cellpadding="0" cellspacing="0" width="100%" class="np_buttonbar"><tr>';
-  echo '<td class="np_button"><a class="np_button" href="'.
-       $file_index.'">'.$text_thread["button_grouplist"].'</td></a>';
-  if (!$readonly && 
-      (!function_exists("npreg_group_has_write_access") ||
-       npreg_group_has_write_access($group)))
-    echo '<td class="np_button"><a class="np_button" href="'.
-         $file_post.'?newsgroups='.urlencode($group).'&amp;type=new">'.
-         $text_thread["button_write"]."</a></td>";
-// $ns=nntp_open($server,$port);
-  flush();
-  $headers = thread_load($group);
-  $article_count=count($headers);
-  if ($articles_per_page != 0) { 
-    if ((!isset($first)) || (!isset($last))) {
-      if ($startpage=="first") {
-        $first=1;
-        $last=$articles_per_page;
-      } else {
-        $first=$article_count - (($article_count -1) % $articles_per_page);
-        $last=$article_count;
-      }
-    }
-    echo '<td class="np_pages" width="100%" align="right">';
-    // Show the replies to an article in the thread view?
-    if($thread_show["replies"]) {
-      // yes, so the counting of the shown articles is very easy
-      $pagecount=count($headers);
-    } else {
-      // oh no, the replies will not be shown, this makes life hard...
-      $pagecount=0;
-      if(count($headers>0) && is_array($headers)) {
-        foreach($headers as $h) {
-          if($h->isAnswer==false)
-            $pagecount++;
-        }
-      }
-    }
-  
-    thread_pageselect($group,$pagecount,$first);
-    echo '</td>';
-  } else {
-    $first=0;
-    $last=$article_count;
-  }
-  echo '</tr></table>';
-  thread_show($headers,$group,$first,$last);
-} else {
-  echo $text_register["no_access_group"];
-}
-
-?> 
-<p align="right"><a href="#top"><? echo $text_thread["button_top"];?></a></p>
-
-<? include "tail.inc"; ?>
\ No newline at end of file