:orphan:

Release Statistics for U-Boot v2012.04
======================================

* Processed 773 csets from 126 developers

* 36 employers found

* A total of 132602 lines added, 56539 removed (delta 76063)

.. table:: Developers with the most changesets
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Simon Glass                       106 (13.7%)
   Marek Vasut                       69 (8.9%)
   Fabio Estevam                     38 (4.9%)
   Stefano Babic                     28 (3.6%)
   Tom Rini                          20 (2.6%)
   Mike Frysinger                    20 (2.6%)
   Eric Nelson                       18 (2.3%)
   Graeme Russ                       17 (2.2%)
   Christian Riesch                  16 (2.1%)
   Stefan Kristiansson               13 (1.7%)
   Wolfgang Denk                     12 (1.6%)
   Nobuhiro Iwamatsu                 11 (1.4%)
   Anatolij Gustschin                11 (1.4%)
   Heiko Schocher                    11 (1.4%)
   Thierry Reding                    11 (1.4%)
   Rob Herring                       10 (1.3%)
   Chander Kashyap                   10 (1.3%)
   Paul Gortmaker                    10 (1.3%)
   Stephan Linz                      9 (1.2%)
   Dirk Behme                        9 (1.2%)
   David Wagner                      9 (1.2%)
   Jason Liu                         9 (1.2%)
   Troy Kisky                        8 (1.0%)
   Vipin Kumar                       8 (1.0%)
   Simon Schwarz                     8 (1.0%)
   Scott Wood                        8 (1.0%)
   Macpaul Lin                       8 (1.0%)
   Peter Meerwald                    8 (1.0%)
   Thomas Weber                      7 (0.9%)
   Linus Walleij                     7 (0.9%)
   David Müller (ELSOFT AG)          7 (0.9%)
   Helmut Raiger                     7 (0.9%)
   Andreas Müller                    7 (0.9%)
   Christian Hitz                    7 (0.9%)
   Gabe Black                        7 (0.9%)
   Andreas Bießmann                  6 (0.8%)
   Govindraj.R                       6 (0.8%)
   Nikita Kiryanov                   6 (0.8%)
   Lukasz Majewski                   5 (0.6%)
   Joe Hershberger                   5 (0.6%)
   Tom Warren                        5 (0.6%)
   Robert Delien                     5 (0.6%)
   Hadli, Manjunath                  5 (0.6%)
   Matthias Fuchs                    5 (0.6%)
   Holger Brunck                     5 (0.6%)
   Albert ARIBAUD                    5 (0.6%)
   Chandan Nath                      5 (0.6%)
   Kyle Moffett                      5 (0.6%)
   Vikram Narayanan                  4 (0.5%)
   Igor Grinberg                     4 (0.5%)
   Minkyu Kang                       4 (0.5%)
   Ajay Bhargav                      4 (0.5%)
   Stephen Warren                    4 (0.5%)
   Horst Kronstorfer                 4 (0.5%)
   Phil Edworthy                     3 (0.4%)
   Amit Virdi                        3 (0.4%)
   Daniel Schwierzeck                3 (0.4%)
   Wolfgang Grandegger               3 (0.4%)
   Donggeun Kim                      3 (0.4%)
   Vincent Palatin                   3 (0.4%)
   Aneesh V                          3 (0.4%)
   Peter Barada                      3 (0.4%)
   HeungJun, Kim                     3 (0.4%)
   Michael Walle                     3 (0.4%)
   Vladimir Zapolskiy                3 (0.4%)
   Patil, Rachna                     3 (0.4%)
   Bernhard Walle                    2 (0.3%)
   Armando Visconti                  2 (0.3%)
   Jason Hobbs                       2 (0.3%)
   Matt Porter                       2 (0.3%)
   Vasily Khoruzhick                 2 (0.3%)
   Yoshihiro Shimoda                 2 (0.3%)
   Reinhard Arlt                     2 (0.3%)
   Sven Schnelle                     2 (0.3%)
   Allen Martin                      2 (0.3%)
   Prabhakar Lad                     2 (0.3%)
   Prabhakar Kushwaha                2 (0.3%)
   Daniel Gorsulowski                2 (0.3%)
   Alex Hornung                      2 (0.3%)
   Jan Kloetzke                      2 (0.3%)
   ramneek mehresh                   2 (0.3%)
   Dimitar Penev                     2 (0.3%)
   Sughosh Ganu                      2 (0.3%)
   Ilya Yanok                        2 (0.3%)
   Frans Meulenbroeks                2 (0.3%)
   Jens Scharsig (BuS Elektronik)    2 (0.3%)
   Sonny Rao                         2 (0.3%)
   Jens Scharsig                     1 (0.1%)
   Jeroen Hofstee                    1 (0.1%)
   Joel Fernandes                    1 (0.1%)
   Michael Jones                     1 (0.1%)
   Vikas Manocha                     1 (0.1%)
   Eric Miao                         1 (0.1%)
   Stefan Bigler                     1 (0.1%)
   Valentin Longchamp                1 (0.1%)
   Maximilian Schwerin               1 (0.1%)
   Yen Lin                           1 (0.1%)
   Doug Anderson                     1 (0.1%)
   jacopo mondi                      1 (0.1%)
   Grazvydas Ignotas                 1 (0.1%)
   Tim Kientzle                      1 (0.1%)
   Otavio Salvador                   1 (0.1%)
   Liming Wang                       1 (0.1%)
   Tao Hou                           1 (0.1%)
   Shiraz Hashim                     1 (0.1%)
   Detlev Zundel                     1 (0.1%)
   Chase Maupin                      1 (0.1%)
   Shawn Guo                         1 (0.1%)
   Robert Nelson                     1 (0.1%)
   Schuyler Patton                   1 (0.1%)
   Prafulla Wadaskar                 1 (0.1%)
   Stefan                            1 (0.1%)
   Ian Campbell                      1 (0.1%)
   Dechesne, Nicolas                 1 (0.1%)
   Grant Erickson                    1 (0.1%)
   Yegor Yefremov                    1 (0.1%)
   Pali Rohár                        1 (0.1%)
   Ben Gardiner                      1 (0.1%)
   Shengzhou Liu                     1 (0.1%)
   Zach Sadecki                      1 (0.1%)
   Veli-Pekka Peltola                1 (0.1%)
   Kumar Gala                        1 (0.1%)
   Marco Schmid                      1 (0.1%)
   Dirk Eibach                       1 (0.1%)
   Ira Snyder                        1 (0.1%)
   Sergei Shtylyov                   1 (0.1%)
   ================================  =====


.. table:: Developers with the most changed lines
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Marek Vasut                       85149 (61.3%)
   Simon Glass                       9071 (6.5%)
   Stefan Kristiansson               4042 (2.9%)
   Chander Kashyap                   2956 (2.1%)
   Christian Hitz                    2867 (2.1%)
   Tom Rini                          2418 (1.7%)
   Stefano Babic                     2140 (1.5%)
   Stephan Linz                      1972 (1.4%)
   HeungJun, Kim                     1564 (1.1%)
   Gabe Black                        1538 (1.1%)
   Graeme Russ                       1319 (0.9%)
   Christian Riesch                  1232 (0.9%)
   Fabio Estevam                     1205 (0.9%)
   Ilya Yanok                        1102 (0.8%)
   David Müller (ELSOFT AG)          1049 (0.8%)
   Heiko Schocher                    1004 (0.7%)
   Thomas Weber                      934 (0.7%)
   Jason Liu                         887 (0.6%)
   Peter Barada                      747 (0.5%)
   Govindraj.R                       743 (0.5%)
   Yen Lin                           731 (0.5%)
   Robert Delien                     709 (0.5%)
   Thierry Reding                    666 (0.5%)
   Rob Herring                       659 (0.5%)
   Stefan                            646 (0.5%)
   Simon Schwarz                     636 (0.5%)
   Linus Walleij                     598 (0.4%)
   Sven Schnelle                     583 (0.4%)
   Joe Hershberger                   567 (0.4%)
   Dimitar Penev                     541 (0.4%)
   Chandan Nath                      479 (0.3%)
   Eric Nelson                       456 (0.3%)
   Patil, Rachna                     427 (0.3%)
   Paul Gortmaker                    385 (0.3%)
   Tom Warren                        365 (0.3%)
   Sughosh Ganu                      339 (0.2%)
   Troy Kisky                        300 (0.2%)
   Scott Wood                        283 (0.2%)
   Hadli, Manjunath                  282 (0.2%)
   Ajay Bhargav                      263 (0.2%)
   Wolfgang Grandegger               258 (0.2%)
   Macpaul Lin                       250 (0.2%)
   Sonny Rao                         246 (0.2%)
   Vipin Kumar                       240 (0.2%)
   Helmut Raiger                     238 (0.2%)
   Mike Frysinger                    225 (0.2%)
   Nikita Kiryanov                   224 (0.2%)
   Andreas Müller                    223 (0.2%)
   Stephen Warren                    198 (0.1%)
   Holger Brunck                     178 (0.1%)
   Prabhakar Lad                     175 (0.1%)
   Maximilian Schwerin               159 (0.1%)
   Wolfgang Denk                     151 (0.1%)
   Minkyu Kang                       147 (0.1%)
   Anatolij Gustschin                136 (0.1%)
   Kyle Moffett                      134 (0.1%)
   David Wagner                      105 (0.1%)
   Matthias Fuchs                    105 (0.1%)
   Lukasz Majewski                   100 (0.1%)
   Michael Walle                     98 (0.1%)
   Nobuhiro Iwamatsu                 97 (0.1%)
   Matt Porter                       94 (0.1%)
   Donggeun Kim                      86 (0.1%)
   Allen Martin                      78 (0.1%)
   Albert ARIBAUD                    72 (0.1%)
   Prafulla Wadaskar                 72 (0.1%)
   jacopo mondi                      65 (0.0%)
   Igor Grinberg                     60 (0.0%)
   Joel Fernandes                    57 (0.0%)
   Dirk Behme                        52 (0.0%)
   Peter Meerwald                    52 (0.0%)
   Amit Virdi                        49 (0.0%)
   Vincent Palatin                   46 (0.0%)
   Andreas Bießmann                  43 (0.0%)
   Vladimir Zapolskiy                43 (0.0%)
   Prabhakar Kushwaha                42 (0.0%)
   Doug Anderson                     42 (0.0%)
   Yoshihiro Shimoda                 36 (0.0%)
   Daniel Schwierzeck                35 (0.0%)
   Reinhard Arlt                     35 (0.0%)
   ramneek mehresh                   33 (0.0%)
   Vikas Manocha                     29 (0.0%)
   Alex Hornung                      23 (0.0%)
   Horst Kronstorfer                 22 (0.0%)
   Jan Kloetzke                      22 (0.0%)
   Dirk Eibach                       20 (0.0%)
   Vasily Khoruzhick                 19 (0.0%)
   Jason Hobbs                       17 (0.0%)
   Aneesh V                          15 (0.0%)
   Jens Scharsig                     14 (0.0%)
   Grazvydas Ignotas                 14 (0.0%)
   Marco Schmid                      14 (0.0%)
   Vikram Narayanan                  13 (0.0%)
   Shawn Guo                         13 (0.0%)
   Bernhard Walle                    11 (0.0%)
   Shiraz Hashim                     11 (0.0%)
   Grant Erickson                    11 (0.0%)
   Phil Edworthy                     10 (0.0%)
   Liming Wang                       10 (0.0%)
   Shengzhou Liu                     10 (0.0%)
   Ben Gardiner                      9 (0.0%)
   Daniel Gorsulowski                8 (0.0%)
   Robert Nelson                     7 (0.0%)
   Frans Meulenbroeks                6 (0.0%)
   Veli-Pekka Peltola                6 (0.0%)
   Armando Visconti                  5 (0.0%)
   Michael Jones                     5 (0.0%)
   Jens Scharsig (BuS Elektronik)    4 (0.0%)
   Zach Sadecki                      4 (0.0%)
   Tim Kientzle                      3 (0.0%)
   Jeroen Hofstee                    2 (0.0%)
   Eric Miao                         2 (0.0%)
   Stefan Bigler                     2 (0.0%)
   Valentin Longchamp                2 (0.0%)
   Tao Hou                           2 (0.0%)
   Detlev Zundel                     2 (0.0%)
   Dechesne, Nicolas                 2 (0.0%)
   Yegor Yefremov                    2 (0.0%)
   Pali Rohár                        2 (0.0%)
   Ira Snyder                        2 (0.0%)
   Sergei Shtylyov                   2 (0.0%)
   Otavio Salvador                   1 (0.0%)
   Chase Maupin                      1 (0.0%)
   Schuyler Patton                   1 (0.0%)
   Ian Campbell                      1 (0.0%)
   Kumar Gala                        1 (0.0%)
   ================================  =====


.. table:: Developers with the most lines removed
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Tom Rini                          1564 (2.8%)
   David Müller (ELSOFT AG)          660 (1.2%)
   Sven Schnelle                     502 (0.9%)
   Sughosh Ganu                      213 (0.4%)
   Prabhakar Lad                     169 (0.3%)
   Holger Brunck                     113 (0.2%)
   Allen Martin                      49 (0.1%)
   Joel Fernandes                    48 (0.1%)
   Andreas Bießmann                  34 (0.1%)
   Igor Grinberg                     29 (0.1%)
   Vladimir Zapolskiy                17 (0.0%)
   Vikram Narayanan                  6 (0.0%)
   Veli-Pekka Peltola                6 (0.0%)
   Jason Hobbs                       2 (0.0%)
   Michael Jones                     2 (0.0%)
   Eric Miao                         1 (0.0%)
   Valentin Longchamp                1 (0.0%)
   Yegor Yefremov                    1 (0.0%)
   ================================  =====


.. table:: Developers with the most signoffs (total 233)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Tom Warren                        66 (28.3%)
   Mike Frysinger                    15 (6.4%)
   Minkyu Kang                       14 (6.0%)
   Kyungmin Park                     13 (5.6%)
   Scott Wood                        13 (5.6%)
   Tom Rini                          12 (5.2%)
   Kumar Gala                        12 (5.2%)
   Amit Virdi                        12 (5.2%)
   Kim Phillips                      9 (3.9%)
   Stefan Roese                      8 (3.4%)
   Igor Grinberg                     6 (2.6%)
   Wolfgang Denk                     6 (2.6%)
   Nobuhiro Iwamatsu                 5 (2.1%)
   Stefano Babic                     4 (1.7%)
   Thomas Chou                       3 (1.3%)
   Anatolij Gustschin                3 (1.3%)
   Andreas Bießmann                  2 (0.9%)
   Poonam Aggrwal                    2 (0.9%)
   Maximilian Schwerin               2 (0.9%)
   Chandan Nath                      2 (0.9%)
   Rob Herring                       2 (0.9%)
   Simon Glass                       2 (0.9%)
   Holger Brunck                     1 (0.4%)
   Jason Hobbs                       1 (0.4%)
   Eric Miao                         1 (0.4%)
   Valentin Longchamp                1 (0.4%)
   Their Name                        1 (0.4%)
   Jason Kridner                     1 (0.4%)
   Michal Simek                      1 (0.4%)
   Stefan Herbrechtsmeier            1 (0.4%)
   Philip, Avinash                   1 (0.4%)
   Hebbar, Gururaja                  1 (0.4%)
   Martin Mueller                    1 (0.4%)
   Dirk Behme                        1 (0.4%)
   Doug Anderson                     1 (0.4%)
   Prafulla Wadaskar                 1 (0.4%)
   Troy Kisky                        1 (0.4%)
   Christian Riesch                  1 (0.4%)
   Fabio Estevam                     1 (0.4%)
   Thomas Weber                      1 (0.4%)
   Heiko Schocher                    1 (0.4%)
   HeungJun, Kim                     1 (0.4%)
   ================================  =====


.. table:: Developers with the most reviews (total 0)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   ================================  =====


.. table:: Developers with the most test credits (total 58)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Jason Liu                         9 (15.5%)
   Stefano Babic                     8 (13.8%)
   Marek Vasut                       8 (13.8%)
   Heiko Schocher                    6 (10.3%)
   Simon Glass                       5 (8.6%)
   Fabio Estevam                     5 (8.6%)
   Dirk Behme                        2 (3.4%)
   Tom Rini                          1 (1.7%)
   Holger Brunck                     1 (1.7%)
   Their Name                        1 (1.7%)
   Thomas Weber                      1 (1.7%)
   Will Deacon                       1 (1.7%)
   Peter A. Bigot                    1 (1.7%)
   Sebastien Jan                     1 (1.7%)
   Robert P. J. Day                  1 (1.7%)
   Raúl Porcel                       1 (1.7%)
   Robert Nelson                     1 (1.7%)
   Grant Erickson                    1 (1.7%)
   Lukasz Majewski                   1 (1.7%)
   Andreas Müller                    1 (1.7%)
   Stephen Warren                    1 (1.7%)
   Wolfgang Grandegger               1 (1.7%)
   ================================  =====


.. table:: Developers who gave the most tested-by credits (total 58)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Eric Nelson                       6 (10.3%)
   Thierry Reding                    6 (10.3%)
   Tom Rini                          5 (8.6%)
   Govindraj.R                       5 (8.6%)
   Marek Vasut                       3 (5.2%)
   Fabio Estevam                     3 (5.2%)
   Christian Riesch                  3 (5.2%)
   Matthias Fuchs                    3 (5.2%)
   Robert Delien                     3 (5.2%)
   Stefano Babic                     2 (3.4%)
   Stephen Warren                    2 (3.4%)
   Wolfgang Denk                     2 (3.4%)
   Aneesh V                          2 (3.4%)
   Jason Liu                         1 (1.7%)
   Dirk Behme                        1 (1.7%)
   Tom Warren                        1 (1.7%)
   Chandan Nath                      1 (1.7%)
   Sughosh Ganu                      1 (1.7%)
   Ian Campbell                      1 (1.7%)
   Dechesne, Nicolas                 1 (1.7%)
   Peter Meerwald                    1 (1.7%)
   Vincent Palatin                   1 (1.7%)
   Matt Porter                       1 (1.7%)
   Linus Walleij                     1 (1.7%)
   Simon Schwarz                     1 (1.7%)
   Ilya Yanok                        1 (1.7%)
   ================================  =====


.. table:: Developers with the most report credits (total 10)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Michal Simek                      3 (30.0%)
   Wolfgang Denk                     2 (20.0%)
   Marek Vasut                       1 (10.0%)
   Sughosh Ganu                      1 (10.0%)
   Mike Frysinger                    1 (10.0%)
   Otavio Salvador                   1 (10.0%)
   Jim Lentz                         1 (10.0%)
   ================================  =====


.. table:: Developers who gave the most report credits (total 10)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   Stephan Linz                      3 (30.0%)
   Linus Walleij                     2 (20.0%)
   Fabio Estevam                     1 (10.0%)
   Christian Riesch                  1 (10.0%)
   Nobuhiro Iwamatsu                 1 (10.0%)
   Jason Hobbs                       1 (10.0%)
   Ira Snyder                        1 (10.0%)
   ================================  =====


.. table:: Top changeset contributors by employer
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         206 (26.6%)
   DENX Software Engineering         135 (17.5%)
   Google, Inc.                      119 (15.4%)
   Linaro                            28 (3.6%)
   Texas Instruments                 27 (3.5%)
   Boundary Devices                  26 (3.4%)
   Freescale                         23 (3.0%)
   Analog Devices                    20 (2.6%)
   Konsulko Group                    20 (2.6%)
   Graeme Russ                       17 (2.2%)
   Samsung                           15 (1.9%)
   ST Microelectronics               15 (1.9%)
   Calxeda                           12 (1.6%)
   Renesas Electronics               12 (1.6%)
   CompuLab                          10 (1.3%)
   Wind River                        10 (1.3%)
   ESD Electronics                   9 (1.2%)
   Free Electrons                    9 (1.2%)
   NVidia                            9 (1.2%)
   bct electronic GmbH               8 (1.0%)
   Bosch                             8 (1.0%)
   Keymile                           8 (1.0%)
   Boeing                            5 (0.6%)
   National Instruments              5 (0.6%)
   Nobuhiro Iwamatsu                 4 (0.5%)
   BuS Elektronik                    2 (0.3%)
   EmCraft Systems                   2 (0.3%)
   Bluegiga Technologies             1 (0.1%)
   Guntermann & Drunck               1 (0.1%)
   Marvell                           1 (0.1%)
   Matrix Vision                     1 (0.1%)
   MontaVista                        1 (0.1%)
   O.S. Systems                      1 (0.1%)
   OVRO                              1 (0.1%)
   Dirk Behme                        1 (0.1%)
   Grazvydas Ignotas                 1 (0.1%)
   ================================  =====


.. table:: Top lines changed by employer
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   DENX Software Engineering         88840 (63.9%)
   (Unknown)                         20221 (14.5%)
   Google, Inc.                      10943 (7.9%)
   Linaro                            4456 (3.2%)
   Konsulko Group                    2418 (1.7%)
   Texas Instruments                 2044 (1.5%)
   Samsung                           1897 (1.4%)
   Graeme Russ                       1319 (0.9%)
   EmCraft Systems                   1102 (0.8%)
   NVidia                            1016 (0.7%)
   Boundary Devices                  756 (0.5%)
   Calxeda                           676 (0.5%)
   Freescale                         576 (0.4%)
   National Instruments              567 (0.4%)
   Wind River                        385 (0.3%)
   ST Microelectronics               334 (0.2%)
   CompuLab                          284 (0.2%)
   Analog Devices                    225 (0.2%)
   Keymile                           196 (0.1%)
   ESD Electronics                   148 (0.1%)
   Boeing                            134 (0.1%)
   Renesas Electronics               122 (0.1%)
   Free Electrons                    105 (0.1%)
   Marvell                           72 (0.1%)
   bct electronic GmbH               52 (0.0%)
   Bosch                             50 (0.0%)
   Nobuhiro Iwamatsu                 21 (0.0%)
   Guntermann & Drunck               20 (0.0%)
   Grazvydas Ignotas                 14 (0.0%)
   Bluegiga Technologies             6 (0.0%)
   Matrix Vision                     5 (0.0%)
   BuS Elektronik                    4 (0.0%)
   MontaVista                        2 (0.0%)
   OVRO                              2 (0.0%)
   Dirk Behme                        2 (0.0%)
   O.S. Systems                      1 (0.0%)
   ================================  =====


.. table:: Employers with the most signoffs (total 233)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   NVidia                            66 (28.3%)
   Freescale                         36 (15.5%)
   Samsung                           28 (12.0%)
   DENX Software Engineering         22 (9.4%)
   Texas Instruments                 17 (7.3%)
   Analog Devices                    15 (6.4%)
   (Unknown)                         12 (5.2%)
   ST Microelectronics               12 (5.2%)
   CompuLab                          6 (2.6%)
   Nobuhiro Iwamatsu                 5 (2.1%)
   Google, Inc.                      3 (1.3%)
   Calxeda                           3 (1.3%)
   Keymile                           2 (0.9%)
   Bosch                             2 (0.9%)
   Linaro                            1 (0.4%)
   Boundary Devices                  1 (0.4%)
   Marvell                           1 (0.4%)
   Funky                             1 (0.4%)
   ================================  =====


.. table:: Employers with the most hackers (total 130)
   :widths: auto

   ================================  =====
   Name                              Count
   ================================  =====
   (Unknown)                         48 (36.9%)
   Texas Instruments                 9 (6.9%)
   DENX Software Engineering         7 (5.4%)
   Freescale                         6 (4.6%)
   ST Microelectronics               5 (3.8%)
   Google, Inc.                      5 (3.8%)
   Linaro                            5 (3.8%)
   NVidia                            4 (3.1%)
   Samsung                           4 (3.1%)
   Keymile                           4 (3.1%)
   ESD Electronics                   3 (2.3%)
   Renesas Electronics               3 (2.3%)
   CompuLab                          2 (1.5%)
   Calxeda                           2 (1.5%)
   Boundary Devices                  2 (1.5%)
   Analog Devices                    1 (0.8%)
   Nobuhiro Iwamatsu                 1 (0.8%)
   Bosch                             1 (0.8%)
   Marvell                           1 (0.8%)
   Konsulko Group                    1 (0.8%)
   Graeme Russ                       1 (0.8%)
   EmCraft Systems                   1 (0.8%)
   National Instruments              1 (0.8%)
   Wind River                        1 (0.8%)
   Boeing                            1 (0.8%)
   Free Electrons                    1 (0.8%)
   bct electronic GmbH               1 (0.8%)
   Guntermann & Drunck               1 (0.8%)
   Grazvydas Ignotas                 1 (0.8%)
   Bluegiga Technologies             1 (0.8%)
   Matrix Vision                     1 (0.8%)
   BuS Elektronik                    1 (0.8%)
   MontaVista                        1 (0.8%)
   OVRO                              1 (0.8%)
   Dirk Behme                        1 (0.8%)
   O.S. Systems                      1 (0.8%)
   ================================  =====
