This file lists people who have contributed to libpcap.

The current maintainers (in alphabetical order):
    Denis Ovsienko                <denis at ovsienko dot info>
    Francois-Xavier Le Bail       <devel dot fx dot lebail at orange dot fr>
    Guy Harris                    <gharris at sonic dot net>
    Michael Richardson            <mcr at sandelman dot ottawa dot on dot ca>

Additional people who have contributed patches (in alphabetical order):
    Adrian Budau                  <adbudau at bitdefender dot com>
    Akos Vandra                   <axos88 at gmail dot com>
    Alan Bawden                   <Alan at LCS dot MIT dot EDU>
    Albert Chin                   <china at thewrittenword dot com>
    Alexander Galanin             <al at galanin dot nnov dot ru>
    Alexander 'Leo' Bergolth      <Leo dot Bergolth at wu-wien dot ac dot at>
    Alexey Kuznetsov              <kuznet at ms2 dot inr dot ac dot ru>
    Alex Smith                    <44322503+MadAlexUK at users dot noreply dot github dot com>
    Alfredo Alvarez Fernandez     <alfredoalvarezernandez at gmail dot com>
    Ali Abdulkadir                <autostart dot ini at gmail dot com>
    Alon Bar-Lev                  <alonbl at sourceforge dot net>
    Anders Broman                 <anders dot broman at ericsson dot com>
    Andres Perera                 <andres dot p at zoho dot com>
    Andrew Brown                  <atatat at atatdot dot net>
                                  <andy-1 at sourceforge dot net>
    Ani Sinha                     <ani at aristanetworks dot com>
    Anthony Kirby                 <Anthony dot Kirby at nominet dot uk>
    Antti Kantee                  <pooka at netbsd dot org>
    Arien Vijn                    <arienvijn at sourceforge dot net>
    Arkadiusz Miskiewicz          <misiek at pld dot org dot pl>
    Armando L. Caro Jr.           <acaro at mail dot eecis dot udel dot edu>
    Assar Westerlund              <assar at sics dot se>
    Atzm Watanabe                 <atzm at atzm dot org>
    Baptiste Peugnez              <baptiste dot peugnez at cea dot fr>
    Baruch Siach                  <baruch at tkos dot co dot il>
    Bill Parker                   <wp02855 at gmail dot com>
    blazeable                     <blazeable at blazeable dot eu>
    bleader                       <bleader at ratonland dot org>
    Brent Cook                    <brent at boundary dot com>
    Brian Ginsbach                <ginsbach at cray dot com>
    B. Scott Michel               <scooter dot phd at gmail dot com>
    Cedric Cellier                <rixed at happyleptic dot org>
    Charles M. Hannum             <mycroft at netbsd dot org>
    Chris G. Demetriou            <cgd at netbsd dot org>
    Chris Lightfoot               <cwrl at users dot sourceforge dot net>
    Chris Maynard                 <Chris dot Maynard at gtech dot com>
    Chris Pepper                  <pepper at mail dot reppep dot com>
    Christian Bell                <csbell at myri dot com>
    Christian Peron               <csjp at freebsd dot org>
    Christian Svensson            <blue at cmd dot nu>
    Christopher K Lee             <christopher dot lee at cspi dot com>
    Daniel Borkmann               <dborkman at redhat dot com>
    Daniele Orlandi               <daniele at orlandi dot com>
    Daniel Lublin                 <daniel at lublin dot se>
    Daniel Miller                 <dmiller at nmap dot org>
    Dario Lombardo                <lomato at gmail dot com>
    Darren Lim                    <darren dot lim at endace dot com>
    Darren Reed                   <darrenr at sun dot com>
    Dave Barach                   <dave at barachs dot net>
    David Clark                   <david dot clark at datasoft dot com>
    David Kaelbling               <drk at sgi dot com>
    David Ward                    <david dot ward at ll dot mit dot edu>
    David Young                   <dyoung at ojctech dot com>
    Dean Gaudet                   <dean at arctic dot org>
    dhruv                         <rsrivat at sourceforge dot net>
    Dmytro Ovdiienko              <dmitriy dot ovdienko at gmail dot com>
    Don Ebright                   <Don dot Ebright at compuware dot com>
    Dug Song                      <dugsong at monkey dot org>
    Dustin Spicuzza               <dustin at virtualroadside dot com>
    dzejarczech                   <dzejarczech at sourceforge dot net>
    Edward Sheldrake              <ejs1920 at sourceforge dot net>
    Eric Anderson                 <anderse at hpl dot hp dot com>
    Erik de Castro Lopo           <erik dot de dot castro dot lopo at sensorynetworks dot com>
    Fedor Sakharov                <fedor dot sakharov at gmail dot com>
    Felix Janda                   <felix dot janda at posteo dot de>
    Felix Obenhuber               <felix at obenhuber dot de>
    Florent Drouin                <Florent dot Drouin at alcatel-lucent dot fr>
    Florian Fainelli              <f dot fainelli at gmail dot com>
    François Revol                <revol at free dot fr>
    Franz Schaefer                <schaefer at mond dot at>
    frederich                     <frederich at sourceforge dot net>
    Fulko Hew                     <fulko dot hew at gmail dot com>
    Fumiyuki Shimizu              <fumifumi at abacustech dot jp>
    Gabor Tatarka                 <gabor dot tatarka at ericsson dot com>
    Garrett Cooper                <yaberauneya at sourceforge dot net>
    George Neville-Neil           <gnn at freebsd dot org>
    Gerald Combs                  <gerald at zing dot org>
    Gerard Garcia                 <nouboh at gmail dot com>
    Gianluca Varenni              <gianluca dot varenni at gmail dot com>
    Gilbert Hoyek                 <gil_hoyek at hotmail dot com>
    Gisle Vanem                   <gvanem at yahoo dot no>
    Graeme Hewson                 <ghewson at cix dot compulink dot co dot uk>
    Gregor Maier                  <gregor at net dot in dot tum dot de>
    Greg Stark                    <gsstark at mit dot edu>
    Greg Troxel                   <gdt at ir dot bbn dot com>
    Guillaume Pelat               <endymion_ at users dot sourceforge dot net>
    Gustavo Zacarias              <gustavo at zacarias dot com dot ar>
    Hagen Paul Pfeifer            <hagen at jauu dot net>
    Henri Doreau                  <hdoreau at sourceforge dot net>
    Hiroaki KAWAI                 <kawai at stratosphere dot co dot jp>
    Hyung Sik Yoon                <hsyn at kr dot ibm dot com>
    Igor Khristophorov            <igor at atdot dot org>
    Jakub Sitnicki                <jsitnicki at gmail dot com>
    Jakub Zawadzki                <darkjames at darkjames dot pl>
    James Ko                      <jck at exegin dot com>
    Jan-Philip Velders            <jpv at veldersjes dot net>
    Jason R. Thorpe               <thorpej at netbsd dot org>
    Javier Achirica               <achirica at ttd dot net>
    Jean-Louis Charton            <Jean-Louis dot CHARTON at oikialog dot com>
    Jean Tourrilhes               <jt at hpl dot hp dot com>
    Jefferson Ogata               <jogata at nodc dot noaa dot gov>
    Jerome Duval                  <jerome dot duval at gmail dot com>
    Jesper Dangaard Brouer        <hawk at comx dot dk>
    Jesper Peterson               <jesper at endace dot com>
    Jesse Gross                   <jesse at nicira dot com>
    JHA                           <jon dot anderson at oracle dot com>
    jingyu yang                   <jingleyang at users dot noreply dot github dot com>
    Jiri Slaby                    <jirislaby at gmail dot com>
    João Valverde                 <joao dot valverde at tecnico dot ulisboa dot pt>
    Joerg Mayer                   <jmayer at loplof dot de>
    John Bankier                  <jbankier at rainfinity dot com>
    Jon Lindgren                  <jonl at yubyub dot net>
    Jon Smirl                     <jonsmirl at gmail dot com>
    Jorge Boncompte [DTI2]        <jorge at dti2 dot net>
    jromanr                       <jromanr at hotmail dot com>
    Juergen Schoenwaelder         <schoenw at ibr dot cs dot tu-bs dot de>
    Julien Moutinho               <julm at savines dot alpes dot fr dot eu dot org>
    Jung-uk Kim                   <jkim at FreeBSD dot org>
    Kazushi Sugyo                 <sugyo at pb dot jp dot nec dot com>
    Kevin Boulain                 <kevin dot boulain at securactive dot net>
    Klaus Klein                   <kleink at netbsd dot org>
    Koryn Grant                   <koryn at endace dot com>
    Kris Katterjohn               <katterjohn at gmail dot com>
    Krzysztof Halasa              <khc at pm dot waw dot pl>
    Lennert Buytenhek             <buytenh at wantstofly dot org>
    lixiaoyan                     <lixiaoyan at google dot com>
    Lorenzo Cavallaro             <sullivan at sikurezza dot org>
    Loris Degioanni               <loris at netgroup-serv dot polito dot it>
    Love Hörnquist-Åstrand        <lha at stacken dot kth dot se>
    Luis MartinGarcia             <luis dot mgarc at gmail dot com>
    lxy                           <391861737 at qq dot com>
    Maciej W. Rozycki             <macro at ds2 dot pg dot gda dot pl>
    Mansour Behabadi              <mansour at oxplot dot com>
    Marcus Felipe Pereira         <marcus at task dot com dot br>
    Mario J. Rugiero              <mrugiero at gmail dot com>
    Mark C. Brown                 <mbrown at hp dot com>
    Mark Johnston                 <markjdb at gmail dot com>
    Mark Marshall                 <mark dot marshall at omicronenergy dot com>
    Mark Pizzolato                <List-tcpdump-workers at subscriptions dot pizzolato dot net>
    Markus Mayer                  <markus_mayer at sourceforge dot net>
    Martin Husemann               <martin at netbsd dot org>
    Márton Németh                 <nm127 at freemail dot hu>
    Matt Eaton                    <agnosticdev at gmail dot com>
    Matthew Luckie                <mjl at luckie dot org dot nz>
    Matthias Hannig               <matthias at hannig dot cc>
    Matwey V. Kornilov            <matwey dot kornilov at gmail dot com>
    maxice8                       <thinkabit dot ukim at gmail dot com>
    Max Laier                     <max at love2party dot net>
    Michal Kubecek                <mkubecek at suse dot cz>
    Michal Labedzki               <michal dot labedzki at tieto dot com>
    Michal Sekletar               <msekleta at redhat dot com>
    Mike Frysinger                <vapier at gmail dot com>
    Mike Kershaw                  <dragorn at kismetwireless dot net>
    Mike Wiacek                   <mike at iroot dot net>
    Milosz Kaniewski              <milosz dot kaniewski at gmail dot com>
    Miroslav Lichvar              <mlichvar at redhat dot com>
    Monroe Williams               <monroe at pobox dot com>
    Myricom Help                  <myri at users dot noreply dot github dot com>
    Nan Xiao                      <nan at chinadtrace dot org>
    Nick Kelsey                   <nickk at silicondust dot com>
    Nicolas Dade                  <ndade at nsd dot dyndns dot org>
    Niko Delarich                 <niko dot delarich at gmail dot com>
    N. Leiten                     <nleiten at sourceforge dot net>
    nnposter                      <nnposter at users dot noreply dot github dot com>
                                  <nvercamm at sourceforge dot net>
    Octavian Cerna                <tavy at ylabs dot com>
    Olaf Kirch                    <okir at caldera dot de>
    Ollie Wild                    <aaw at users dot sourceforge dot net>
    Ondřej Hošek                  <ondra dot hosek at gmail dot com>
    Onno van der Linden           <onno at simplex dot nl>
    Orgad Shaneh                  <orgad dot shaneh at audiocodes dot com>
    Ørjan Malde                   <red at foxi dot me>
    Paolo Abeni                   <pabeni at redhat dot com>
    Patrick Marie                 <mycroft at virgaria dot org>
    Patrick McHardy               <kaber at trash not net>
    Paul Mundt                    <lethal at linux-sh dot org>
    Pavel Kankovsky               <kan at dcit dot cz>
    Pawel Brzezinski              <pawel dot brzezinski at harman dot com>
    Pawel Pokrywka                <publicpp at gmail dot com>
    Peter Fales                   <peter at fales-lorenz dot net>
    Peter Jeremy                  <peter dot jeremy at alcatel dot com dot au>
    Peter Volkov                  <pva at gentoo dot org>
    Petr Vorel                    <pvorel at suse dot cz>
    Philippe Antoine              <contact at catenacyber dot fr>
    Phil Wood                     <cpw at lanl dot gov>
    Rafal Maszkowski              <rzm at icm dot edu dot pl>
                                  <rcb-isis at users dot sourceforge dot net>
    Richard Stearn                <richard at rns-stearn dot demon dot co dot uk>
    Rick Jones                    <raj at cup dot hp dot com>
    Robert Edmonds                <stu-42 at sourceforge dot net>
    Roberto Mariani               <jelot-tcpdump at jelot dot it>
    Roland Dreier                 <roland at purestorage dot com>
    Romain Francoise              <rfrancoise at debian dot org>
    Rongxi Li                     <rongxi dot li at chaitin dot com>
    Sagun Shakya                  <sagun dot shakya at sun dot com>
    Scott Barron                  <sb125499 at ohiou dot edu>
    Scott Gifford                 <sgifford at tir dot com>
    Scott Mcmillan                <scott dot a dot mcmillan at intel dot com>
    Sebastian Krahmer             <krahmer at cs dot uni-potsdam dot de>
    Sebastien Roy                 <Sebastien dot Roy at Sun dot COM>
    Sepherosa Ziehau              <sepherosa at gmail dot com>
    Shaun Clowes                  <delius at progsoc dot uts dot edu dot au>
    solofox                       <wensg100 at sina dot com>
    Solomon Peachy                <pizza at shaftnet dot org>
    Stefan Hudson                 <hudson at mbay dot net>
    Stephen Donnelly              <stephen at endace dot com>
    Steve Karg                    <skarg at users dot sourceforge dot net>
    stubbfel                      <stubbfel at gmail dot com>
    Takashi Yamamoto              <yamt at mwd dot biglobe dot ne dot jp>
    Tanaka Shin-ya                <zstanaka at archer dot livedoor dot com>
    Thomas Habets                 <habets at google dot com>
    Thomas Petazzoni              <thomas dot petazzoni at free-electrons dot com>
    Tobias Poschwatta             <posch at sourceforge dot net>
    Tomasz Moń                    <desowin at gmail dot com>
    Tommy Beadle                  <tbeadle at arbor dot net>
    Tony Li                       <tli at procket dot com>
    Torsten Landschoff            <torsten at debian dot org>
    Tymoteusz Blazejczyk          <tymoteusz dot blazejczyk at intel dot com>
    Uns Lider                     <unslider at miranda dot org>
    Uwe Girlich                   <Uwe dot Girlich at philosys dot de>
    Vitaly Lavrov                 <vel21ripn at gmail dot com>
    Vivien Didelot                <vivien dot didelot at gmail dot com>
    Vladimir Gladkov              <vovkos at gmail dot com>
    Vladimir Marek                <vlmarek at volny dot cz>
    Walter Schell                 <walterschell at users dot noreply dot github dot com>
    Wesley Shields                <wxs at FreeBSD dot org>
    Xianjie Zhang                 <xzhang at cup dot hp dot com>
    Xin Li                        <delphij at FreeBSD dot org>
    Xue Jiang Qing                <xuejianqing at star-net dot cn>
    Yang Luo                      <hsluoyz at qq dot com>
    Yen Yen Lim
    Yoann Vandoorselaere          <yoann at prelude-ids dot org>
    Yogesh Prasad                 <yogesh dot prasad at rockwellcollins dot com>
    Yvan Vanhullebus              <vanhu at sourceforge dot net>

The original LBL crew:
    Steve McCanne
    Craig Leres
    Van Jacobson

Past maintainers (in alphabetical order):
    Bill Fenner                   <fenner at research dot att dot com>
    Fulvio Risso                  <risso at polito dot it>
    Hannes Gredler                <hannes at gredler dot at>
    Jun-ichiro itojun Hagino      <itojun at iijlab dot net>		Also see: http://www.wide.ad.jp/itojun-award/
