4 $Text::Wrap::columns = 80;
5 my ($committer, $patch, $log,$date);
8 my ($rank, $percentage, $cumulative, $reverse, $ta, @authors, %authors,
9 %untraced, %patchers, %committers, %real_names);
10 my $result = GetOptions ("rank" => \$rank, # rank authors
11 "thanks-applied" => \$ta, # ranks committers
12 "acknowledged=s" => \@authors , # authors files
13 "percentage" => \$percentage, # show as %age
14 "cumulative" => \$cumulative,
15 "reverse" => \$reverse,
18 if (!$result or (($rank||0) + ($ta||0) + (@authors ? 1 : 0) != 1) or !@ARGV) {
20 $0 --rank Changelogs # rank authors by patches
21 $0 --acknowledged <authors file> Changelogs # Display unacknowledged authors
22 $0 --thanks-applied Changelogs # ranks committers
23 $0 --percentage ... # show rankings as percentages
24 $0 --cumulative ... # show rankings cumulatively
25 $0 --reverse ... # show rankings in reverse
26 Specify stdin as - if needs be. Remember that option names can be abbreviated.
38 if (my ($correct, $alias) = /^\s*([^#\s]\S*)\s+(.*\S)/) {
39 $correct =~ s/^\\043/#/;
40 if ($correct eq '+') {$correct = $prev} else {$prev = $correct}
41 $map {$alias} = $correct;
46 # Email addresses for we do not have names.
49 "agrow\100thegotonerd.com",
50 "alexander_bluhm\100genua.de",
51 "alexander_gernler\100genua.de",
52 "ammon\100rhythm.com",
53 "andrew\100sundale.net",
54 "bah\100longitude.com",
55 "bbucklan\100jpl-devvax.jpl.nasa.gov",
56 "ben\100linuxgazette.net",
58 "blino\100mandriva.com",
59 "bob\100starlabs.net",
60 "bonefish\100cs.tu-berlin.de",
61 "bstrand\100switchmanagement.com",
62 "cygwin\100cygwin.com",
63 "david\100dhaller.de",
64 "dformosa\100dformosa.zeta.org.au",
66 "erik\100cs.uni-jena.de",
67 "glasser\100tang-eleven-seventy-nine.mit.edu",
68 "gml4410\100ggr.co.uk",
69 "grommel\100sears.com",
70 "ilmari\100vesla.ilmari.org",
72 "info\100lingo.kiev.ua",
73 "jms\100mathras.comcast.net",
76 "kaminsky\100math.huji.ac.il",
77 "knew-p5p\100pimb.org",
79 "lemkemch\100t-online.de",
80 "mauzo\100csv.warwick.ac.uk",
81 "mlelstv\100serpens.de",
84 "pancho\100pancho.name",
85 "perlbug\100veggiechinese.net",
87 "premchai21\100yahoo.com",
89 "raf\100tradingpost.com.au",
90 "scott\100perlcode.org",
91 "smoketst\100hp46t243.cup.hp.com",
92 "yath-perlbug\100yath.de",
96 # Email addresses for people that don't have an email address in AUTHORS
97 # Presumably deliberately?
101 # Nick Ing-Simmons has passed away (2006-09-25).
102 "nick\100ing-simmons.net",
103 "nik\100tiuk.ti.com",
104 "nick.ing-simmons\100elixent.com",
105 "nick\100ni-s.u-net.com",
106 "nick.ing-simmons\100tiuk.ti.com",
108 # Iain Truskett has passed away (2003-12-29).
109 "perl\100dellah.anu.edu.au",
110 "spoon\100dellah.org",
114 "me-02\100ton.iguana.be",
115 "perl-5.8.0\100ton.iguana.be",
116 "perl5-porters\100ton.iguana.be",
119 "beau\100beaucox.com",
122 "ml-perl\100thepierianspring.org",
124 # perl internal addresses
125 "perl5-porters\100africa.nicoh.com",
126 "perlbug\100perl.org",,
127 "perl5-porters.nicoh.com",
128 "perlbug-followup\100perl.org",
129 "perlbug-comment\100perl.org",
130 "bug-module-corelist\100rt.cpan.org",
131 "bug-storable\100rt.cpan.org",
132 "bugs-perl5\100bugs6.perl.org",
134 "unknown\100unknown",
135 "unknown\100perl.org",
143 foreach my $filename (@authors) {
144 open FH, "<$filename" or die "Can't open $filename: $!";
151 } elsif (/^([-A-Za-z0-9 .\'À-ÖØöø-ÿ]+)[\t\n]/) {
156 warn "Can't parse line '$_'";
160 foreach (keys %raw) {
161 print "E-mail $_ occurs $raw{$_} times\n" if $raw{$_} > 1;
163 $authors{$map{$_} || $_}++;
169 my @lines = split(/^commit\s*/sm,join('',<>));
172 next if m/^(\S*?)^Merge:/ism; # skip merge commits
173 if (m/^(.*?)^Author:\s*(.*?)^Date:\s*(.*?)^(.*)$/gism) {
175 ($patch, $committer, $date,$log) = ($1,$2,$3,$4);
177 unless ($committer) { die $_}
178 &process ($committer, $patch, $log);
179 } else { die "XXX $_ did not match";}
184 &display_ordered(\%patchers);
186 &display_ordered(\%committers);
189 foreach (sort keys %patchers) {
190 next if $authors{$_};
191 # Sort by number of patches, then name.
192 $missing{$patchers{$_}}->{$_}++;
194 foreach my $patches (sort {$b <=> $a} keys %missing) {
195 print "\n\n=head1 $patches patch(es)\n\n";
196 foreach my $author (sort keys %{$missing{$patches}}) {
197 my $xauthor = $author;
198 $xauthor =~ s/@/\\100/g; # xxx temp hack
199 print "".($real_names{$author}||$author) ."\t\t\t<" . $xauthor.">\n" ;
204 sub display_ordered {
208 while (my ($name, $count) = each %$what) {
209 push @{$sorted[$count]}, $name;
214 return unless @sorted;
216 foreach my $i ($reverse ? 0 .. $#sorted : reverse 0 .. $#sorted) {
217 next unless $sorted[$i];
219 $sum += $i * @{$sorted[$i]};
220 # Value to display is either this one, or the cumulative sum.
221 my $value = $cumulative ? $sum : $i;
223 $prefix = sprintf "%6.2f:\t", 100 * $value / $total;
225 $prefix = "$value:\t";
227 print wrap ($prefix, "\t", join (" ", sort @{$sorted[$i]}), "\n");
232 my ($committer, $patch, $log) = @_;
233 return unless $committer;
234 my @authors = $log =~ /From:\s+.*?([^"\@ \t\n<>]+\@[^"\@ \t\n<>]+)/gm;
237 foreach my $addr (@authors) {
239 $patchers{_raw_address($addr)}++;
241 # print "$patch: @authors\n";
242 $committers{_raw_address($committer)}++;
244 # print "$patch: $committer\n";
245 # Not entirely fair as this means that the maint pumpking scores for
246 # everything intergrated that wasn't a third party patch in blead
247 $patchers{_raw_address($committer)}++;
254 if ($addr =~ /<.*>/) {
255 $addr =~ s/^\s*(.*)\s*<\s*(.*?)\s*>.*$/$2/ ;
259 $addr = $map{$addr} || $addr;
261 if ($real_name) { $real_names{$addr} = $real_name};
269 # List of mappings. First entry the "correct" email address, as appears
270 # in the AUTHORS file. Second is any "alias" mapped to it.
272 # If the "correct" email address is a '+', the entry above is reused;
273 # this for addresses with more than one alias.
275 # Note that all entries are in lowercase. Further, no '@' signs should
276 # appear; use \100 instead.
281 adi enache\100rdslink.ro
282 alanbur alan.burlison\100sun.com
283 + alan.burlison\100uk.sun.com
284 + aburlison\100cix.compulink.co.uk
285 ams ams\100toroid.org
287 chip chip\100pobox.com
289 + salzench\100nielsenmedia.com
290 + chip\100atlantic.net
291 + chip\100rio.atlantic.net
292 + salzench\100dun.nielsen.com
293 craigb craig.berry\100psinetcs.com
294 + craig.berry\100metamorgs.com
295 + craig.berry\100signaltreesolutions.com
296 + craigberry\100mac.com
297 + craig.a.berry\100gmail.com
299 davem davem\100fdgroup.com
300 + davem\100iabyn.nospamdeletethisbit.com
302 + davem\100fdgroup.co.uk
303 + davem\100fdisolutions.com
305 demerphq demerphq\100gmail.com
306 + yves.orton\100de.mci.com
307 + yves.orton\100mciworldcom.de
308 + demerphq\100dromedary.booking.com
309 + demerphq\100gemini.(none)
310 + demerphq\100camel.booking.com
311 + demerphq\100hotmail.com
312 doughera doughera\100lafayette.edu
313 + doughera\100lafcol.lafayette.edu
314 + doughera\100fractal.phys.lafayette.edu
315 + doughera.lafayette.edu
316 + doughera\100newton.phys.lafayette.edu
318 gbarr gbarr\100pobox.com
319 + bodg\100tiuk.ti.com
321 + graham.barr\100tiuk.ti.com
322 gisle gisle\100activestate.com
325 + aas\100bergen.sn.no
326 gsar gsar\100activestate.com
328 + gsar\100engin.umich.edu
329 hv hv\100crypt.compulink.co.uk
333 + jhietaniemi\100gmail.com
335 + jhi\100alpha.hut.fi
338 + jarkko.hietaniemi\100nokia.com
339 + jarkko.hietaniemi\100cc.hut.fi
340 jesse jesse\100bestpractical.com
343 merijn h.m.brand\100xs4all.nl
344 + h.m.brand\100hccnet.nl
345 + merijn\100l1.procura.nl
346 + merijn\100a5.(none)
348 + merijnb\100iloquent.nl
349 + merijnb\100iloquent.com
350 mhx mhx-perl\100gmx.net
352 nicholas nick\100unfortu.net
354 + nick\100talking.bollo.cx
355 + nick\100plum.flirble.org
356 + nick\100babyhippo.co.uk
357 + nick\100bagpuss.unfortu.net
358 + Nicholas Clark (sans From field in mail header)
359 pudge pudge\100pobox.com
360 rgs rgarciasuarez\100free.fr
361 + rgarciasuarez\100mandrakesoft.com
362 + rgarciasuarez\100mandriva.com
363 + rgarciasuarez\100gmail.com
364 + raphel.garcia-suarez\100hexaflux.com
365 sky sky\100nanisky.com
366 + artur\100contiller.se
367 + arthur\100contiller.se
368 steveh stevehay\100planit.com
369 + steve.hay\100uk.radan.com
370 stevep steve\100fisharerojo.org
371 + steve.peters\100gmail.com
372 timb Tim.Bunce\100pobox.com
373 + tim.bunce\100ig.co.uk
379 \043####\100juerd.nl juerd\100cpan.org
380 + juerd\100convolution.nl
381 7k8lrvf02\100sneakemail.com kjx9zthh3001\100sneakemail.com
382 + dtr8sin02\100sneakemail.com
383 + rt8363b02\100sneakemail.com
384 + o6hhmk002\100sneakemail.com
385 + smueller\100cpan.org
386 + l2ot9pa02\100sneakemail.com
387 + wyp3rlx02\100sneakemail.com
388 + 0mgwtfbbq\100sneakemail.com
390 a.r.ferreira\100gmail.com aferreira\100shopzilla.com
391 abe\100ztreet.demon.nl abeltje\100cpan.org
392 abela\100hsc.fr abela\100geneanet.org
393 abigail\100abigail.be abigail\100foad.org
394 + abigail\100abigail.nl
396 aburt\100isis.cs.du.edu isis!aburt
397 ach\100mpe.mpg.de ach\100rosat.mpe-garching.mpg.de
398 adavies\100ptc.com alex.davies\100talktalk.net
399 ajohnson\100nvidia.com ajohnson\100wischip.com
400 alexm\100netli.com alexm\100w-m.ru
401 alex-p5p\100earth.li alex\100rcon.rog
402 alexmv\100mit.edu alex\100chmrr.net
403 alian\100cpan.org alian\100alianwebserver.com
404 allen\100grumman.com allen\100gateway.grumman.com
405 allen\100huarp.harvard.edu nort\100bottesini.harvard.edu
407 allens\100cpan.org easmith\100beatrice.rutgers.edu
408 andreas.koenig\100anima.de andreas.koenig.gmwojprw\100franz.ak.mind.de
409 + andreas.koenig.7os6vvqr\100franz.ak.mind.de
410 + a.koenig\100mind.de
411 + k\100anna.in-berlin.de
413 + koenig\100anna.mind.de
415 + root\100ak-71.mind.de
416 + root\100ak-75.mind.de
417 + k\100sissy.in-berlin.de
418 + a.koenig\100kulturbox.de
419 + k\100sissy.in-berlin.de
420 anno4000\100lublin.zrz.tu-berlin.de anno4000\100mailbox.tu-berlin.de
421 + siegel\100zrz.tu-berlin.de
422 ash\100cpan.org ash_cpan\100firemirror.com
423 avarab\100gmail.com avar\100cpan.org
425 bailey\100newman.upenn.edu bailey\100hmivax.humgen.upenn.edu
426 + bailey\100genetics.upenn.edu
427 + bailey.charles\100gmail.com
428 bah\100ecnvantage.com bholzman\100longitude.com
429 bcarter\100gumdrop.flyinganvil.org q.eibcartereio.=~m-b.{6}-cgimosx\100gumdrop.flyinganvil.org
430 ben_tilly\100operamail.com btilly\100gmail.com
431 + ben_tilly\100hotmail.com
432 ben\100morrow.me.uk mauzo\100csv.warwick.ac.uk
433 BQW10602\100nifty.com sadahiro\100cpan.org
435 chromatic\100wgz.org chromatic\100rmci.net
436 clintp\100geeksalad.org cpierce1\100ford.com
437 clkao\100clkao.org clkao\100bestpractical.com
438 corion\100corion.net corion\100cpan.org
439 cp\100onsitetech.com publiustemp-p5p\100yahoo.com
440 + publiustemp-p5p3\100yahoo.com
441 cpan\100audreyt.org autrijus\100egb.elixus.org
442 + autrijus\100geb.elixus.org
443 + autrijus\100gmail.com
444 + autrijus\100ossf.iis.sinica.edu.tw
445 + autrijus\100autrijus.org
446 + audreyt\100audreyt.org
447 crt\100kiski.net perl\100ctweten.amsite.com
449 damian\100conway.org damian\100cs.monash.edu.au
450 dagolden\100cpan.org xdaveg\100gmail.com
451 dan\100sidhe.org sugalsd\100lbcc.cc.or.us
452 + sugalskd\100osshe.edu
453 david.dyck\100fluke.com dcd\100tc.fluke.com
454 david\100kineticode.com david\100wheeler.com
455 + david\100wheeler.net
456 djberg86\100attbi.com djberg96\100attbi.com
457 domo\100computer.org shouldbedomo\100mac.com
458 + domo\100slipper.ip.lu
460 dougm\100covalent.net dougm\100opengroup.org
462 dougw\100cpan.org doug_wilson\100intuit.com
464 egf7\100columbia.edu efifer\100sanwaint.com
465 eggert\100twinsun.com eggert\100sea.sm.unisys.com
466 epeschko\100den-mdev1 esp5\100pge.com
468 fugazi\100zyx.net larrysh\100cpan.org
469 + lshatzer\100islanddata.com
471 gbacon\100itsc.uah.edu gbacon\100adtrn-srv4.adtran.com
472 gfuji\100cpan.org g.psy.va\100gmail.com
473 gibreel\100pobox.com stephen.zander\100interlock.mckesson.com
475 gnat\100frii.com gnat\100prometheus.frii.com
476 gp\100familiehaase.de gerrit\100familiehaase.de
477 grazz\100pobox.com grazz\100nyc.rr.com
478 gward\100ase.com greg\100bic.mni.mcgill.ca
479 hansmu\100xs4all.nl hansm\100icgroup.nl
482 + hansm\100euronet.nl
483 hio\100ymir.co.jp hio\100hio.jp
484 hops\100sco.com hops\100scoot.pdev.sco.com
486 james\100mastros.biz theorb\100desert-island.me.uk
487 jand\100activestate.com jan.dubois\100ibm.net
488 japhy\100pobox.com japhy\100pobox.org
489 + japhy\100perlmonk.org
491 + jeffp\100crusoe.net
492 jari.aalto\100poboxes.com jari.aalto\100cante.net
493 jcromie\100divsol.com jcromie\100cpan.org
494 + jim.cromie\100gmail.com
495 jidanni\100jidanni.org jidanni\100hoffa.dreamhost.com
496 jdhedden\100cpan.org jerry\100hedden.us
497 + jdhedden\1001979.usna.com
498 + jdhedden\100gmail.com
499 + jdhedden\100yahoo.com
500 + jhedden\100pn100-02-2-356p.corp.bloomberg.com
501 jeremy\100zawodny.com jzawodn\100wcnet.org
502 jesse\100sig.bsh.com jesse\100ginger
503 jfriedl\100yahoo.com jfriedl\100yahoo-inc.com
504 jhannah\100omnihotels.com jay\100jays.net
505 jjore\100cpan.org twists\100gmail.com
506 jns\100integration-house.com jns\100gellyfish.com
507 + gellyfish\100gellyfish.com
508 john\100atlantech.com john\100titanic.atlantech.com
509 john\100johnwright.org john.wright\100hp.com
510 joseph\100cscaper.com joseph\1005sigma.com
511 joshua\100rodd.us jrodd\100pbs.org
512 jtobey\100john-edwin-tobey.org jtobey\100user1.channel1.com
513 jpeacock\100rowman.com john.peacock\100havurah-software.org
514 + jpeacock\100havurah-software.org
515 + jpeacock\100dsl092-147-156.wdc1.dsl.speakeasy.net
516 jql\100accessone.com jql\100jql.accessone.com
517 jsm28\100hermes.cam.ac.uk jsm28\100cam.ac.uk
519 kane\100dwim.org kane\100xs4all.net
524 ken\100mathforum.org kenahoo\100gmail.com
525 kroepke\100dolphin-services.de kay\100dolphin-services.de
526 kstar\100wolfetech.com kstar\100cpan.org
527 + kurt_starsinic\100ml.com
528 + kstar\100www.chapin.edu
529 + kstar\100chapin.edu
530 larry\100wall.org lwall\100jpl-devvax.jpl.nasa.gov
531 + lwall\100netlabs.com
532 + larry\100netlabs.com
534 + lwall\100scalpel.netlabs.com
535 laszlo.molnar\100eth.ericsson.se molnarl\100cdata.tvnet.hu
536 lewart\100uiuc.edu lewart\100vadds.cvm.uiuc.edu
537 + d-lewart\100uiuc.edu
538 lstein\100cshl.org lstein\100formaggio.cshl.org
539 + lstein\100genome.wi.mit.edu
540 lupe\100lupe-christoph.de lupe\100alanya.m.isar.de
541 lutherh\100stratcom.com lutherh\100infinet.com
542 mab\100wdl.loral.com markb\100rdcf.sm.unisys.com
543 marcel\100codewerk.com gr\100univie.ac.at
544 mark.p.lutz\100boeing.com tecmpl1\100triton.ca.boeing.com
545 mats\100sm6sxl.net mats\100sm5sxl.net
546 mauzo\100csv.warwick.ac.uk mauzo\100.(none)
547 mbarbon\100dsi.unive.it mattia.barbon\100libero.it
548 mcmahon\100ibiblio.org mcmahon\100metalab.unc.edu
549 merlyn\100stonehenge.com merlyn\100gadget.cscaper.com
550 mgjv\100comdyn.com.au mgjv\100tradingpost.com.au
551 mlh\100swl.msd.ray.com webtools\100uewrhp03.msd.ray.com
552 michael.schroeder\100informatik.uni-erlangen.de mls\100suse.de
553 mike\100stok.co.uk mike\100exegenix.com
554 mjtg\100cam.ac.uk mjtg\100cus.cam.ac.uk
555 mikedlr\100tardis.ed.ac.uk mikedlr\100it.com.pl
556 moritz\100casella.verplant.org moritz\100faui2k3.org
560 neeracher\100mac.com neeri\100iis.ee.ethz.ch
561 neil\100bowers.com neilb\100cre.canon.co.uk
562 nospam-abuse\100bloodgate.com tels\100bloodgate.com
563 + perl_dummy\100bloodgate.com
565 ian.phillipps\100iname.com ian_phillipps\100yahoo.co.uk
566 ignasi.roca\100fujitsu-siemens.com ignasi.roca\100fujitsu.siemens.es
567 ilya\100math.berkeley.edu ilya\100math.ohio-state.edu
568 + nospam-abuse\100ilyaz.org
570 okamoto\100corp.hp.com okamoto\100hpcc123.corp.hp.com
571 orwant\100oreilly.com orwant\100media.mit.edu
573 p5-authors\100crystalflame.net perl\100crystalflame.net
574 + rs\100crystalflame.net
575 + coral\100eekeek.org
576 + coral\100moonlight.crystalflame.net
577 + rs\100oregonnet.com
578 paul.green\100stratus.com paul_greenvos\100vos.stratus.com
579 + pgreen\100seussnt.stratus.com
580 paul.marquess\100btinternet.com paul_marquess\100yahoo.co.uk
581 + paul.marquess\100ntlworld.com
582 + paul.marquess\100openwave.com
583 + pmarquess\100bfsec.bt.co.uk
585 pcg\100goof.com schmorp\100schmorp.de
586 perl\100cadop.com cdp\100hpescdp.fc.hp.com
587 perl\100greerga.m-l.org greerga\100m-l.org
588 perl\100profvince.com vince\100profvince.com
589 perl-rt\100wizbit.be p5p\100perl.wizbit.be
590 # Maybe we should special case this to get real names out?
591 Peter.Dintelmann\100Dresdner-Bank.com peter.dintelmann\100dresdner-bank.com
592 # NOTE: There is an intentional trailing space in the line above
593 pfeifer\100wait.de pfeifer\100charly.informatik.uni-dortmund.de
595 phil\100perkpartners.com phil\100finchcomputer.com
596 pimlott\100idiomtech.com andrew\100pimlott.net
597 + pimlott\100abel.math.harvard.edu
598 pne\100cpan.org philip.newton\100gmx.net
599 + philip.newton\100datenrevision.de
601 pprymmer\100factset.com pvhp\100forte.com
602 public\100khwilliamson.com khw\100karl.(none)
604 radu\100netsoft.ro rgreab\100fx.ro
605 raphael.manfredi\100pobox.com raphael_manfredi\100grenoble.hp.com
606 renee.baecker\100smart-websolutions.de reneeb\100reneeb-desktop.(none)
607 richard.foley\100ubsw.com richard.foley\100t-online.de
608 + richard.foley\100ubs.com
609 + richard.foley\100rfi.net
610 rick\100consumercontact.com rick\100bort.ca
611 + rick.delaney\100rogers.com
613 + rick.delaney\100home.com
614 rjbs\100cpan.org rjbs-perl-p5p\100lists.manxome.org
615 + perl.p5p\100rjbs.manxome.org
616 rjk\100linguist.dartmouth.edu rjk\100linguist.thayer.dartmouth.edu
617 + rjk-perl-p5p\100tamias.net
618 rjray\100redhat.com rjray\100uswest.com
619 rmgiroux\100acm.org rmgiroux\100hotmail.com
620 + mgiroux\100bear.com
621 rmbarker\100cpan.org rmb1\100cise.npl.co.uk
622 + robin.barker\100npl.co.uk
623 + rmb\100cise.npl.co.uk
624 robertmay\100cpan.org rob\100themayfamily.me.uk
625 roberto\100keltia.freenix.fr roberto\100eurocontrol.fr
626 robin\100cpan.org robin\100kitsite.com
627 roderick\100argon.org roderick\100gate.net
628 + roderick\100ibcinc.com
629 rootbeer\100teleport.com rootbeer\100redcat.com
630 + tomphoenix\100unknown
631 schubiger\100cpan.org steven\100accognoscere.org
632 + sts\100accognoscere.org
633 + schubiger\100gmail.com
634 schwern\100pobox.com schwern\100gmail.com
635 + schwern\100athens.arena-i.com
636 + schwern\100blackrider.aocn.com
637 + schwern\100ool-18b93024.dyn.optonline.net
638 schotth\100sgi.com author scotth\100sgi.com 842220273 +0000
639 schwab\100suse.de schwab\100issan.informatik.uni-dortmund.de
640 + schwab\100ls5.informatik.uni-dortmund.de
641 sebastien\100aperghis.net maddingue\100free.fr
643 shlomif\100vipe.technion.ac.il shlomif\100iglu.org.il
644 simon\100simon-cozens.org simon\100pembro4.pmb.ox.ac.uk
645 + simon\100brecon.co.uk
646 + simon\100othersideofthe.earth.li
647 + simon\100cozens.net
648 + simon\100netthink.co.uk
649 slaven\100rezic.de slaven.rezic\100berlin.de
650 + srezic\100iconmobile.com
652 + eserte\100cs.tu-berlin.de
653 smcc\100mit.edu smcc\100ocf.berkeley.edu
654 + smcc\100csua.berkeley.edu
656 + smccam\100uclink4.berkeley.edu
657 spider\100orb.nashua.nh.us spider\100web.zk3.dec.com
658 + spider\100leggy.zk3.dec.com
659 + spider-perl\100orb.nashua.nh.us
660 + spider\100peano.zk3.dec.com
661 + spider.boardman\100orb.nashua.nh.us>
663 + spider.boardman\100orb.nashua.nh.us
664 spp\100ds.net spp\100psa.pencom.com
665 + spp\100psasolar.colltech.com
666 + spp\100spotter.yi.org
667 stef\100mongueurs.net stef\100payrard.net
668 + s.payrard\100wanadoo.fr
669 + properler\100freesurf.fr
670 + stef\100francenet.fr
671 sthoenna\100efn.org ysth\100raven.shiftboard.com
673 tassilo.parseval\100post.rwth-aachen.de tassilo.von.parseval\100rwth-aachen.de
674 tchrist\100perl.com tchrist\100mox.perl.com
675 + tchrist\100jhereg.perl.com
676 thomas.dorner\100start.de tdorner\100amadeus.net
677 tjenness\100cpan.org t.jenness\100jach.hawaii.edu
678 + timj\100jach.hawaii.edu
679 tom.horsley\100mail.ccur.com tom.horsley\100ccur.com
680 + tom\100amber.ssd.hcsc.com
682 vkonovalov\100lucent.com vkonovalov\100peterstar.ru
683 + konovalo\100mail.wplus.net
684 + vadim\100vkonovalov.ru
685 + vkonovalov\100spb.lucent.com
686 + vkonovalov\100alcatel-lucent.com
688 whatever\100davidnicol.com davidnicol\100gmail.com
689 wolfgang.laun\100alcatel.at wolfgang.laun\100chello.at
690 + wolfgang.laun\100thalesgroup.com
691 + wolfgang.laun\100gmail.com