Founded: 1916
Stadium: BWT-Stadion am Hardtwald
Coach: Gerhard Kleppinger
3. Liga Form:
Overall Form:

Sandhausen home ground venue is BWT-Stadion am Hardtwald.

Gerhard Kleppinger is the current coach for Sandhausen.

Sandhausen 3. Liga Match Fixtures and Results

[ Home Overall Away  ]

Sandhausen have played a total of 19 matches in Germany 3. Liga. Their current statistics is 6 win, 2 draw and 11 lose.

Sandhausen did not win their last seven matches in the competition.

The overall results is shown by default. You can also analyze Sandhausen results for their home or away matches in 3. Liga 2024/2025.

Click on + to view detailed soccer statistics of the goal scorers, yellow and red cards for each match.
The match kick-off date and time is automatically converted to your local timezone.

Team Total Matches Win Draw Lose
Sandhausen 19 6 2 11
Date
Home
Score
Away
HT      
17/05/2025 Sandhausen
0 - 4
Viktoria Köln 0-3H2H O +
  0 - 1 16' Florian Engelhardt
  0 - 2 19' Sidny Cabral
Luan Simnica 26'  
  0 - 3 33' Said El Mala
Sebastian Stolze 40'  
Dominic Baumann 40'  
Stanislav Fehler 40'  
Marco Schikora 40'  
  57' Lex Lobinger
  57' Serhat-Semih Güler
  57' Florian Engelhardt
  57' Malek El Mala
Christoph Ehlich 57'  
Luca Zander 57'  
  0 - 4 60' Enrique Lofolomo
Edvinas Girdvainis 65'  
Diamant Lokaj 65'  
  72' Enrique Lofolomo
  72' Lucas Cueto
Besar Halimi 72'  
Yanis Outman 72'  
  72' Said El Mala
  72' Paul Friedrich Pöpperl
  84' Niklas May
  84' Albion Vrenezi
  90' Lucas Cueto
03/05/2025 Sandhausen
0 - 3
Hansa Rostock 0-0H2H O +
Marco Schikora 31'  
Luca Zander 36'  
  0 - 1 52' Adrien Lebeau
  53' Adrien Lebeau
Jeremias Lorch 56'  
  60' Adrien Lebeau
  60' Nils Fröling
  60' Adrien Lebeau
  60' Tim Krohn
  0 - 2 61' Tim Krohn
Besar Halimi 64'  
Dominic Baumann 64'  
Luca Zander 64'  
Justin Butler 64'  
Luca Zander 64'  
Niklas Kreuzer 64'  
Stanislav Fehler 78'  
Emmanuel Iwe 78'  
Jeremias Lorch 78'  
Luan Simnica 78'  
  81' Sigurd Haugen
  81' Cedric Harenbrock
  81' Sigurd Haugen
  81' Sima Suso
  0 - 3 87' Jan Mejdr
  88' Jan Mejdr
  88' Dario Gebuhr
19/04/2025 Sandhausen
0 - 2
Rot-Weiss Essen 0-2H2H O +
  0 - 1 17' Ramien Safi
  0 - 2 34' Julian Eitschberger
Stanislav Fehler 46'  
Emmanuel Iwe 46'  
Emmanuel Iwe 46'  
Luan Simnica 46'  
Lucas Wolf 46'  
Jonas Weik 52'  
  54' Tobias Kraulich
Jeremias Lorch 57'  
David Otto 68'  
Viktor Granath 68'  
Dominic Baumann 68'  
Sebastian Stolze 68'  
  69' Klaus Gjasula
Niklas Lang 74'  
Besar Halimi 74'  
  74' Ramien Safi
  74' Dominik Martinović
  74' Ahmet Arslan
  74' Torben Müsel
Jeremias Lorch 81'  
  86' Kaito Mizuta
  86' Kelsey Owusu Aninkorah-Meisel
  86' Julian Eitschberger
  86' Eric Voufack
  89' Tom Moustier
  89' Jimmy Kaparos
06/04/2025 Sandhausen
1 - 3
Verl 1-1H2H O +
  14' Yari Otto
  0 - 1 22' Berkan Taz
Dominic Baumann 28' 1 - 1  
Jeremias Lorch 37'  
Niklas Lang 37'  
Luan Simnica 45'  
  59' Dominik Steczyk
  59' Eduard Probst
  59' Yari Otto
  59' Julian Stark
Besar Halimi 66'  
Patrick Greil 66'  
Luan Simnica 66'  
Diamant Lokaj 66'  
  67' Tobias Knost
  1 - 2 69' Eduard Probst
  75' Niko Kijewski
Luca Zander 77'  
Niklas Kreuzer 77'  
Viktor Granath 77'  
Richard Meier 77'  
  1 - 3 85' Lars Lokotsch
  89' Lars Lokotsch
  89' Jonas Arweiler
  89' Timur Gayret
  89' Konstantin Gerhardt
  90+2' Niko Kijewski
  90+2' Michel Stöcker
16/03/2025 Sandhausen
0 - 1
Energie Cottbus 0-0H2H O +
Sebastian Stolze 46'  
Justin Butler 46'  
  46' Phil Halbauer
  46' Maximilian Krauss
Taylan Duman 61'  
Lucas Wolf 61'  
Jeremias Lorch 70'  
Niklas Kreuzer 70'  
  0 - 1 71' Tolcay Ciğerci
Dominic Baumann 78'  
Viktor Granath 78'  
Jonas Weik 78'  
Besar Halimi 78'  
Luca Zander 78'  
Niklas Kreuzer 78'  
  79' Axel Borgmann
  79' Jonas Hofmann
Jakob Lewald 85'  
  88' Tolcay Ciğerci
  88' Janis Juckel
  88' Lucas Copado
  88' Joshua Putze
  90+3' Dominik Pelivan
08/03/2025 Sandhausen
2 - 2
Unterhaching 0-1H2H O +
  7' Luc Ihorst
  0 - 1 12' Leander Popp
Niklas Lang 46'  
Stanislav Fehler 46'  
  46' Luc Ihorst
  46' Lenn Jastremski
Sebastian Stolze 47' 1 - 1  
Besar Halimi 50' 2 - 1  
  2 - 2 56' Fabio Torsiello
  59' Fabio Torsiello
Besar Halimi 73'  
Lucas Wolf 73'  
Sebastian Stolze 73'  
Luca Zander 73'  
Taylan Duman 75'  
  77' Leander Popp
  77' Julian Kugel
David Otto 81'  
  82' Johannes Geis
  82' Robin Littig
David Otto 85'  
Dominic Baumann 85'  
Taylan Duman 85'  
Alexander Mühling 85'  
Jeremias Lorch 90+4'  
Jeremias Lorch 90+5'  
23/02/2025 Sandhausen
0 - 1
Wehen Wiesbaden 0-1H2H O +
David Richter 6'  
  0 - 1 28' Moritz Flotho
Justin Butler 46'  
Viktor Granath 46'  
Christoph Ehlich 46'  
Niklas Kreuzer 46'  
  58' Nikolas Agrafiotis
  58' Ole Wohlers
Stanislav Fehler 64'  
Emmanuel Iwe 64'  
  75' Tarık Gözüşirin
  75' Bjarke Jacobsen
  75' Thijmen Goppel
  75' Ben Nink
Jeremias Lorch 75'  
Luan Simnica 75'  
Besar Halimi 75'  
Sebastian Stolze 75'  
  87' Moritz Flotho
  87' Ivan Franjić
07/02/2025 Sandhausen
1 - 0
DSC Arminia Bielefeld 1-0H2H O +
Marco Schikora 27' 1 - 0  
Jeremias Lorch 31'  
  45' Felix Hagmann
Emmanuel Iwe 46'  
Stanislav Fehler 46'  
Jeremias Lorch 46'  
Luan Simnica 46'  
Patrick Greil 60'  
Besar Halimi 60'  
  68' Joel Grodowski
  68' Merveille Biankadi
  68' Noah Joel Sarenren Bazee
  68' Julian Kania
  68' Felix Hagmann
  68' Louis Oppie
Justin Butler 78'  
Edvinas Girdvainis 78'  
Stanislav Fehler 79'  
  80' Marius Wörl
  80' Lukas Kunze
Niklas Kreuzer 90'  
Luca Zander 90'  
25/01/2025 Sandhausen
3 - 4
Saarbrücken 1-1H2H O +
  0 - 1 2' Kai Brünker
  27' Kai Brünker
  35' Joel Bichsel
Patrick Greil 45+2' 1 - 1  
  46' Philip Fahrner
  46' Lasse Wilhelm
  46' Tim Civeja
  46' Manuel Zeitz
Jeremias Lorch 56' 2 - 1  
Patrick Greil 66'  
  2 - 2 67' Kasim Rabihic
Justin Butler 68'  
Viktor Granath 68'  
  73' Kai Brünker
  73' Maurice Multhaup
  73' Joel Bichsel
  73' Patrick Schmidt
  2 - 3 74' Sebastian Vasiliadis
David Otto 75'  
Dominic Baumann 75'  
Niklas Kreuzer 76'  
Luca Zander 76'  
Patrick Greil 76'  
Stanislav Fehler 76'  
  84' Kasim Rabihic
  84' Bjarne Thoelke
Luca Zander 87' 3 - 3  
Niklas Lang 90'  
Alexander Fuchs 90'  
  3 - 4 90+2' Maurice Multhaup
14/12/2024 Sandhausen
4 - 6
Erzgebirge Aue 1-3H2H O +
Jakob Lewald 10' 1 - 0  
  15' Niko Vukančić
Alexander Mühling 22'  
  1 - 1 26' Omar Sijarić
  1 - 2 31' Kilian Jakob
Jeremias Lorch 32'  
  1 - 3 40' Omar Sijarić
  42' Steffen Nkansah
Stanislav Fehler 46'  
Emmanuel Iwe 46'  
Patrick Greil 46'  
David Otto 46'  
Sebastian Stolze 57' 2 - 3  
  2 - 4 58' Omar Sijarić
Christoph Ehlich 59'  
Jonas Carls 59'  
  67' Kilian Jakob
  67' Tim Maciejewski
Lucas Wolf 67'  
Sean Seitz 67'  
  2 - 5 70' Ali Loune
Sebastian Stolze 74'  
Niklas Kreuzer 74'  
Dominic Baumann 76' 3 - 5  
  3 - 6 77' Sean Seitz
Tim Maciejewski 79'  
  83' Omar Sijarić
  83' Ricky Bornschein
Marco Schikora 85'  
  89' Ali Loune
  89' Maxim Burghardt
  89' Pascal Fallmann
  89' Mika Clausen
  90' Borys Tashchy
  90' Jonah Fabisch
Jeremias Lorch 90+5' 4 - 6  
30/11/2024 Sandhausen
2 - 4
Dynamo Dresden 2-1H2H O +
Dominic Baumann 24' 1 - 0  
  1 - 1 29' Christoph Daferner
  41' Vinko Šapina
David Otto 42' 2 - 1  
  45+2' Jonas Sterner
  2 - 2 53' Christoph Daferner
Alexander Mühling 57'  
Patrick Greil 57'  
  2 - 3 59' Vinko Šapina
  2 - 4 62' Jonas Oehmichen
David Otto 66'  
Stanislav Fehler 66'  
Lucas Wolf 66'  
Emmanuel Iwe 66'  
  72' Jonas Oehmichen
  76' Christoph Daferner
  76' Stefan Kutschke
  76' David Kubatta
  76' Robin Meißner
Emmanuel Iwe 77'  
Jakob Lewald 79'  
Jonas Carls 83'  
Christoph Ehlich 83'  
Sebastian Stolze 84'  
Niklas Kreuzer 84'  
Besar Halimi 89'  
  90+1' Jonas Oehmichen
  90+1' Tom Kaspar Berger
Timo Königsmann 90+4'  
  90+6' Jakob Lemmer
  90+6' Oliver Batista Meier
09/11/2024 Sandhausen
4 - 0
Alemannia Aachen 1-0H2H O +
  3' Gianluca Gaudino
Marco Schikora 8'  
Richard Meier 29'  
David Otto 29'  
Lucas Wolf 39' 1 - 0  
  46' Jan Luca Rumpf
  46' Kevin Goden
Emmanuel Iwe 54'  
Stanislav Fehler 54'  
Marco Schikora 54'  
Alexander Fuchs 54'  
  60' Florian Heister
  60' Anas Bakhat
  60' Thilo Töpken
  60' Nils Winter
David Otto 62' 2 - 0  
  64' Kevin Goden
Stanislav Fehler 64' 3 - 0  
  66' Bentley Baxter Bahn
  66' Bentley Baxter Bahn
  66' Frederic Baum
  66' Saša Strujić
  66' Felix Meyer
Mika Timothy Hanraths 68'  
Jeremias Lorch 68'  
Jeremias Lorch 68'  
Jonas Carls 78'  
Christoph Ehlich 78'  
Besar Halimi 78'  
Patrick Greil 78'  
Dominic Baumann 85' 4 - 0  
02/11/2024 Sandhausen
0 - 3
1860 München 0-2H2H O +
Sebastian Stolze 3'  
  0 - 1 10' Max Reinthaler
Lucas Wolf 22'  
  31' Florian Bähr
  0 - 2 33' Soichiro Kozuki
Sebastian Stolze 57'  
Niklas Kreuzer 57'  
David Otto 57'  
Richard Meier 57'  
  66' Julian Guttau
  66' David Philipp
  66' Patrick Hobsch
  66' Maximilian Wolfram
Stanislav Fehler 71'  
Emmanuel Iwe 71'  
Patrick Greil 72'  
Alexander Mühling 72'  
  78' Maximilian Wolfram
  86' Soichiro Kozuki
  86' Raphael Schifferl
Jakob Lewald 87'  
  88' Morris Schröter
  90+1' Max Reinthaler
  90+1' Tim Kloss
  90+1' Morris Schröter
  90+1' Fabian Schubert
  0 - 3 90+3' David Philipp
22/10/2024 Sandhausen
1 - 1
Stuttgart II 1-1H2H O +
  0 - 1 7' Michael Glück
  9' Thomas Kastanaras
Emmanuel Iwe 13' 1 - 1  
Besar Halimi 41'  
Alexander Mühling 46'  
Patrick Greil 46'  
David Otto 46'  
Richard Meier 46'  
  56' Samuele Di Benedetto
  56' Luan Simnica
  61' Luca Mack
Emmanuel Iwe 65'  
Stanislav Fehler 65'  
Besar Halimi 65'  
Lucas Wolf 65'  
  69' Leon Reichardt
  69' Kaden Amaniampong
  69' Leny Meyer
  69' Frederik Schumann
Stanislav Fehler 70'  
  79' Leonhard Münst
  79' Christopher Olivier
  79' Thomas Kastanaras
  79' David Tritschler
Sebastian Stolze 88'  
Niklas Kreuzer 88'  
05/10/2024 Sandhausen
2 - 1
Waldhof Mannheim 1-1H2H O +
  12' Samuel Abifade
Christoph Ehlich 24' 1 - 0  
  1 - 1 28' Julian Rieckmann
Besar Halimi 34'  
Dominic Baumann 61' 2 - 1  
  62' Julian Rieckmann
  62' Julian Rieckmann
Marco Schikora 65'  
Alexander Fuchs 65'  
Stanislav Fehler 65'  
Richard Meier 65'  
  65' Nicklas Shipnoski
  65' Kennedy Okpala
Besar Halimi 71'  
Patrick Greil 71'  
  73' Kennedy Okpala
  78' Rico Benatelli
  78' Adrian Fein
  83' Samuel Abifade
  83' Kelvin Arase
Christoph Ehlich 85'  
Christoph Ehlich 85'  
Jonas Carls 85'  
Dominic Baumann 85'  
Emmanuel Iwe 85'  
  89' Julian Rieckmann
Alexander Mühling 90'  
Alexander Mühling 90+1'  
24/09/2024 Sandhausen
4 - 3
Ingolstadt 1-1H2H O +
Besar Halimi 16' 1 - 0  
  1 - 1 19' Dennis Borkowski
Sebastian Stolze 38'  
  40' Yannick Deichmann
Alexander Mühling 49'  
Jeremias Lorch 51'  
  1 - 2 53' Lukas Fröde
Alexander Mühling 56'  
Patrick Greil 56'  
Emmanuel Iwe 56'  
Richard Meier 56'  
  57' Yannick Deichmann
  57' Felix Keidel
Dominic Baumann 60' 2 - 2  
Jeremias Lorch 65' 3 - 2  
  65' Marius Funk
Sebastian Stolze 72'  
Niklas Kreuzer 72'  
Jeremias Lorch 72'  
Edvinas Girdvainis 72'  
  74' Maximilian Dittgen
  74' Benjamin Kanuric
David Otto 78' 4 - 2  
Dominic Baumann 81'  
Stanislav Fehler 81'  
  84' Dennis Borkowski
  84' Sebastian Grønning
  84' Lukas Fröde
  84' David Kopacz
  84' Pascal Testroet
  84' Deniz Zeitler
  90+1' Ryan Malone
  4 - 3 90+2' Benjamin Kanuric
13/09/2024 Sandhausen
3 - 1
Borussia Dortmund II 1-0H2H O +
Jakob Lewald 2' 1 - 0  
  49' Franz Roggow
Jeremias Lorch 50'  
Patrick Greil 57'  
David Otto 57'  
Dominic Baumann 59' 2 - 0  
  62' Niklas Jessen
  62' Patrick Göbel
  62' Ben Huning
  62' Felix Paschke
  62' Rodney Elongo-Yombo
  62' Jordi Paulina
  64' Michael Eberwein
  72' Babis Drakas
  72' Antonio Foti
Lucas Wolf 76'  
Alexander Fuchs 76'  
Emmanuel Iwe 76'  
Richard Meier 76'  
  80'
Alexander Mühling 82'  
Besar Halimi 82'  
Dominic Baumann 84' 3 - 0  
  86' Michael Eberwein
  86' Justin Butler
  3 - 1 90+3' Franz Roggow
24/08/2024 Sandhausen
0 - 1
Hannover 96 II 0-1H2H O +
Patrick Greil 4'  
  17' Michel Dammeier
  0 - 1 21' Lukas Wallner
  24' Montell Ndikom
Besar Halimi 33'  
Alexander Mühling 33'  
  46' Keanu Brandt
  46' Noah Engelbreth
David Otto 46'  
Lucas Mika Wolf 46'  
  58' Fynn Arkenberg
Dominic Baumann 64'  
Tim Maciejewski 64'  
Emmanuel Iwe 64'  
Richard Meier 64'  
  70' Sean Busch
  70' Nick-Elias Meier
  70' Michel Dammeier
  70' Jeremie Niklaus
Christoph Ehlich 79'  
Edvinas Girdvainis 79'  
  80' Nick-Elias Meier
  80' Hayate Matsuda
Lucas Mika Wolf 85'  
  89' Robin Kalem
  89' Jayson Videira Pereira
Marco Schikora 90'  
  90' Ben Westermeier
Patrick Greil 90+4'  
  90+4' Tom Sanne
  90+4' Felix Göttlicher
03/08/2024 Sandhausen
1 - 0
Osnabrück 0-0H2H O +
  43' Lars Kehl
  43' Aday Ercan
Besar Halimi 61'  
Tim Maciejewski 64'  
Alexander Mühling 64'  
David Otto 76'  
Emmanuel Iwe 76'  
Besar Halimi 76'  
Lucas Mika Wolf 76'  
  78' Niklas Niehoff
  78' Brian Beyer
  78' Jannes Wulff
  78' Liridon Mulaj
Patrick Greil 83'  
Markus Pink 83'  
Dominic Baumann 84'  
Alexander Fuchs 84'  
  90+1' Joël Zwarts
  90+1' Erik Engelhardt
Emmanuel Iwe 90+3' 1 - 0  

Chart Analysis

The graph shows the performance and results of Sandhausen in 3. Liga.

Statistics & Analysis of Sandhausen

Achievement Statistics
Longest winning run
3
Longest losing streak
5
Longest run without loss
4
Longest run without win
7
Clean sheets
3
Matches over 2.25 goals
12
Matches under 2.25 goals
7
Matches First Half Over 0.5
16
Matches First Half Under 0.5
3
Matches odd
10
Matches even
9
Average goals scored
1.47
Average goals allowed
2.11
Failure to score
7
Biggest victory
4 - 0
Biggest defeat
0 - 4
Missed penalties
0
Penalty goals
0
Own goals
0
Goalless draw at home match
0 (0%)
Goalless draw at away match
0
Comeback win
0

Sandhausen Talk

Create a New Post





Submit Cancel

3. Liga 2024/2025 - Regular Season Table

Sandhausen are in the 19th position of 3. Liga and they are in contention for Relegation.

# Soccer Team MP W D L F A D P Last 5 Matches
1
DSC Arminia Bielefeld 38 21 9 8 64 36 +28 72
2
Dynamo Dresden 38 20 10 8 71 40 +31 70
3
Saarbrücken 38 18 11 9 59 47 +12 65
4
Energie Cottbus 38 18 8 12 64 54 +10 62
5
Hansa Rostock 38 18 6 14 54 46 +8 60
6
Viktoria Köln 38 18 5 15 59 48 +11 59
7
Verl 38 15 12 11 62 55 +7 57
8
Rot-Weiss Essen 38 16 8 14 55 54 +1 56
9
Wehen Wiesbaden 38 15 10 13 59 60 -1 55
10
Ingolstadt 38 14 12 12 72 63 +9 54
11
1860 München 38 15 8 15 57 61 -4 53
12
Alemannia Aachen 38 12 14 12 44 44 +0 50
13
Erzgebirge Aue 38 15 5 18 52 65 -13 50
14
Osnabrück 38 13 9 16 46 55 -9 48
15
Stuttgart II 38 12 11 15 49 59 -10 47
16
Waldhof Mannheim 38 11 13 14 43 45 -2 46
17
Borussia Dortmund II 38 11 10 17 53 60 -7 43
18
Hannover 96 II 38 9 10 19 51 70 -19 37
19
Sandhausen 38 9 8 21 49 69 -20 35
20
Unterhaching 38 4 13 21 40 72 -32 25
 
 
Promotion
 
 
Promotion Play-off
 
 
Relegation

Sandhausen Squad

Detailed statistics of each Sandhausen player with their photo, nationality, jersey number, position and caps.

If you want to bet on the players, you should see who are the Sandhausen top goal scorers and which players have a disciplinary problem with the the most yellow or red cards.

Click on the players to get in-depth players' profile. Such as the players' age, place of birth, height, weight and his entire soccer career path.

# Photo Name of Player N A
1
Nikolai Rehnen 270 3
2
Edvinas Girdvainis 163 4 3 1
3
Christoph Ehlich 720 9 1 2 1 2
4
Tim Knipping
5
Lion Schuster
6
Jeremias Lorch 792 9 1 2 4
7
Stanislav Fehler 148 5 3 2
7
Joseph Richardson
8
Alexander Fuchs 225 7 5 1 0
9
Richard Christian Meier 214 9 9 2
9
Franck Evina
11
Besar Halimi 511 9 2 6 1 3
11
Livan Burcu
13
Emmanuel Iwe 532 10 3 7 1
14
Jakob Lewald 900 10 1 1
15
Alexander Mühling 626 10 3 4 3
16
Niklas Kreuzer 115 4 3 1 1
17
David Otto 610 10 3 5 2
19
Luca-Milan Zander
20
Tim Maciejewski 90 2 1 1
21
Marco Schikora 831 10 2 1
22
Timo Königsmann 630 7 1
23
Niklas Lang 2 1 1
24
Patrick Greil 424 8 4 3 2 1
26
Jonas Carls 5 1 1
27
Lucas Mika Wolf 302 7 4 3 2
28
Dominic Baumann 739 9 7 5
30
Luis Idjaković
31
Jonas Weik 180 2 1
32
Markus Pink 12 2 2
33
Philipp Lambert
35
Dennis Gorka
36
Sebastian Stolze 769 9 0 4 2
37
Diamant Lokaj
Germany Football
Season:
  • Bundesliga
  • 2. Bundesliga
  • 3. Liga
  • Regionalliga: Nord
  • Regionalliga: Bayern
  • Regionalliga: Nordost
  • Regionalliga: Südwest
  • Regionalliga: West
  • DFB Pokal
  • Oberliga: Baden-Wurttemberg
  • More
  • Results and Fixtures
    Top Soccer Tipsters
    Tipsters Competition Review
    Superior H2H Statistics
    H2H Home Team Advantage
    H2H Away Team Advantage
    Top Football Clubs
    Worst Football Clubs
    Top Draw Teams
    Good Home Teams
    Poor Away Teams
    Platinum Membership Testimonial

    Soccer Fixtures Calendar

    Choose a date to view the past soccer results or upcoming match fixtures.

    Pick a Country or Region

    Get the listings of soccer leagues and competitions for each region, including past seasons results and football statistics.

    Match Preview and News

    Copyright © 2002-2026 SoccerPunter Pte. Ltd. All rights reserved.