Regular Stage | Playoff Stage Regular Stage Final Table: 1.SK Slavia Praha 30 23 4 3 71-19 73 [C] Skupina o Titul 2.FC Viktoria Plzeň 30 22 6 2 53-19 72 Skupina o Titul 3.AC Sparta Praha 30 20 6 4 65-32 66 Skupina o Titul 4.1. FC Slovácko 30 18 5 7 50-30 59 Skupina o Titul 5.FC Baník Ostrava 30 14 9 7 54-39 51 Skupina o Titul 6.FC Hradec Králové 30 9 13 8 38-40 40 [P] Skupina o Titul - - - - - - - - - - - - - - - - - - - - - - - - - - - 7.FK Mladá Boleslav 30 11 5 14 45-48 38 Skupina o Evropu 8.FC Slovan Liberec 30 10 7 13 29-38 37 [2 1 0 1 3-2 3] Skupina o Evropu 9.SK Sigma Olomouc 30 9 10 11 39-37 37 [2 1 0 1 1-2 3] Skupina o Evropu 10.SK Dynamo České Budějovice 30 9 9 12 40-46 36 Skupina o Evropu - - - - - - - - - - - - - - - - - - - - - - - - - - - 11.FC Fastav Zlín 30 8 6 16 36-53 30 Skupina o Záchranu 12.FK Teplice 30 8 3 19 29-49 27 Skupina o Záchranu 13.FK Jablonec 97 30 4 14 12 22-45 26 [2 1 1 0 4-3 4] Skupina o Záchranu 14.FC Bohemians 1905 Praha 30 6 8 16 34-56 26 [2 0 1 1 3-4 1] Skupina o Záchranu 15.FK Pardubice 30 5 9 16 35-67 24 Skupina o Záchranu 16.MFK OKD Karviná 30 3 8 19 30-52 17 Skupina o Záchranu Round 1 [Jul 24] Jablonec 1-0 Ostrava Pardubice 2-2 Karviná Hradec Králové 1-1 Bohemians Sparta 3-2 Olomouc [Jul 25] Plzeň 2-1 Mladá Boleslav České Budějovice 1-0 Teplice Liberec 0-1 Slovácko Zlín 0-1 Slavia Round 2 [Jul 30] Teplice 1-3 Slavia [Jul 31] Mladá Boleslav 3-0 Jablonec Olomouc 3-2 Pardubice Karviná 1-1 Hradec Králové Liberec 0-5 Sparta [Aug 1] Ostrava 5-1 Zlín Slovácko 1-0 České Budějovice Bohemians 1-2 Plzeň Round 3 [Aug 7] České Budějovice 1-3 Ostrava Hradec Králové 1-1 Liberec Sparta 2-0 Karviná Zlín 3-0 Teplice [Aug 8] Pardubice 1-1 Mladá Boleslav Jablonec 2-2 Bohemians Plzeň 2-1 Slovácko [Oct 27] Slavia 1-0 Olomouc Round 4 [Aug 14] Olomouc 3-3 České Budějovice Mladá Boleslav 0-2 Slavia Karviná 2-3 Zlín Bohemians 1-1 Sparta [Aug 15] Slovácko 1-0 Hradec Králové Teplice 1-0 Jablonec Ostrava 3-1 Pardubice Liberec 0-1 Plzeň Round 5 [Aug 21] Mladá Boleslav 3-1 Teplice Zlín 1-4 Olomouc Pardubice 3-0 Bohemians Sparta 4-0 Hradec Králové [Aug 22] České Budějovice 1-0 Liberec Plzeň 2-0 Karviná Jablonec 1-1 Slovácko Slavia 4-0 Ostrava Round 6 [Aug 28] Slovácko 2-1 Pardubice Ostrava 1-0 Mladá Boleslav Liberec 0-1 Zlín Sparta 1-0 České Budějovice [Aug 29] Hradec Králové 1-0 Plzeň Bohemians 4-2 Teplice Olomouc 4-0 Jablonec Karviná 3-3 Slavia Round 7 [Sep 11] Pardubice 2-2 Liberec Zlín 1-3 Bohemians Teplice 1-2 Ostrava Plzeň 3-2 Sparta [Sep 12] České Budějovice 0-1 Hradec Králové Mladá Boleslav 3-3 Olomouc Jablonec 1-0 Karviná Slavia 2-1 Slovácko Round 8 [Sep 17] Olomouc 1-1 Ostrava Hradec Králové 2-0 Pardubice [Sep 18] Liberec 2-1 Mladá Boleslav Slovácko 3-0 Zlín Plzeň 2-1 České Budějovice [Sep 19] Karviná 1-1 Teplice Sparta 1-1 Jablonec Bohemians 1-5 Slavia Round 9 [Sep 25] Ostrava 4-1 Bohemians České Budějovice 3-1 Karviná Pardubice 0-1 Plzeň Zlín 2-5 Sparta [Sep 26] Jablonec 0-1 Liberec Mladá Boleslav 3-5 Slovácko Teplice 0-0 Olomouc Slavia 4-1 Hradec Králové Round 10 [Oct 2] Slovácko 3-2 Teplice Bohemians 2-0 Olomouc České Budějovice 3-1 Pardubice Plzeň 2-1 Zlín [Oct 3] Hradec Králové 2-2 Jablonec Karviná 0-1 Mladá Boleslav Liberec 0-2 Ostrava Sparta 1-0 Slavia Round 11 [Oct 16] Ostrava 1-2 Slovácko Jablonec 2-2 České Budějovice Mladá Boleslav 4-1 Bohemians Slavia 3-1 Liberec [Oct 17] Zlín 2-3 Hradec Králové Teplice 0-1 Plzeň Olomouc 2-0 Karviná Pardubice 2-4 Sparta Round 12 [Oct 23] Slovácko 1-0 Bohemians Pardubice 0-0 Zlín Liberec 2-0 Olomouc [Oct 24] České Budějovice 2-2 Slavia Hradec Králové 3-0 Teplice Plzeň 5-0 Jablonec Sparta 1-0 Mladá Boleslav [Nov 24] Karviná 1-2 Ostrava Round 13 [Oct 30] Zlín 2-0 České Budějovice Teplice 1-2 Liberec Olomouc 0-3 Slovácko [Oct 31] Ostrava 2-2 Sparta Jablonec 1-1 Pardubice Mladá Boleslav 3-2 Hradec Králové Slavia 2-0 Plzeň [Dec 1] Bohemians 3-0 Karviná Round 14 [Nov 6] České Budějovice 2-1 Mladá Boleslav Hradec Králové 1-1 Ostrava Liberec 2-1 Bohemians Plzeň 0-0 Olomouc [Nov 7] Zlín 0-0 Jablonec Pardubice 0-5 Slavia Karviná 2-2 Slovácko Sparta 4-2 Teplice Round 15 [Nov 20] Bohemians 3-1 České Budějovice Olomouc 2-2 Hradec Králové Mladá Boleslav 1-0 Zlín Ostrava 2-2 Plzeň [Nov 21] Slovácko 4-0 Sparta Karviná 1-2 Liberec Teplice 1-2 Pardubice Slavia 5-0 Jablonec Round 16 [Nov 27] Pardubice 1-5 Olomouc České Budějovice 3-2 Slovácko Zlín 2-2 Ostrava Plzeň 6-0 Bohemians [Nov 28] Hradec Králové 1-0 Karviná Jablonec 0-1 Mladá Boleslav Slavia 3-0 Teplice Sparta 2-1 Liberec Round 17 [Dec 4] Karviná 1-2 Sparta Liberec 1-0 Hradec Králové Teplice 4-1 Zlín Olomouc 0-1 Slavia [Dec 5] Bohemians 1-2 Jablonec Mladá Boleslav 2-3 Pardubice Ostrava 4-1 České Budějovice Slovácko 1-2 Plzeň Round 18 [Dec 11] Hradec Králové 2-2 Slovácko Pardubice 0-3 Ostrava Zlín 2-1 Karviná Plzeň 2-0 Liberec [Dec 12] Slavia 2-0 Mladá Boleslav České Budějovice 2-1 Olomouc Jablonec 0-2 Teplice Sparta 5-1 Bohemians Round 19 [Dec 18] Karviná 0-1 Plzeň Bohemians 1-2 Pardubice Slovácko 2-1 Jablonec Hradec Králové 0-1 Sparta [Dec 19] Teplice 0-1 Mladá Boleslav Olomouc 1-1 Zlín Liberec 0-0 České Budějovice Ostrava 3-3 Slavia Round 20 [Feb 5] Slavia 0-1 Karviná Jablonec 1-0 Olomouc Teplice 1-0 Bohemians České Budějovice 0-0 Sparta [Feb 6] Mladá Boleslav 2-3 Ostrava Plzeň 1-0 Hradec Králové [Feb 15] Zlín 2-0 Liberec [Feb 22] Pardubice 0-0 Slovácko Round 21 [Feb 12] Hradec Králové 2-2 České Budějovice Bohemians 1-0 Zlín Ostrava 2-4 Teplice [Feb 13] Karviná 1-1 Jablonec Olomouc 2-1 Mladá Boleslav Slovácko 0-1 Slavia Sparta 2-2 Plzeň [Mar 9] Liberec 4-1 Pardubice Round 22 [Feb 19] Ostrava 1-0 Olomouc Zlín 1-0 Slovácko Pardubice 0-0 Hradec Králové České Budějovice 0-1 Plzeň [Feb 20] Mladá Boleslav 3-3 Liberec Teplice 1-0 Karviná Slavia 1-0 Bohemians [Mar 9] Jablonec 1-1 Sparta Round 23 [Feb 26] Slovácko 2-1 Mladá Boleslav Bohemians 0-2 Ostrava Liberec 1-1 Jablonec Plzeň 4-0 Pardubice [Feb 27] Hradec Králové 1-5 Slavia Karviná 2-2 České Budějovice Olomouc 0-0 Teplice Sparta 2-0 Zlín Round 24 [Mar 5] Zlín 1-2 Plzeň Pardubice 3-3 České Budějovice Olomouc 0-0 Bohemians Ostrava 1-1 Liberec [Mar 6] Jablonec 1-1 Hradec Králové Mladá Boleslav 1-0 Karviná Teplice 0-1 Slovácko Slavia 2-0 Sparta Round 25 [Mar 12] Slovácko 0-0 Ostrava Bohemians 2-2 Mladá Boleslav Hradec Králové 2-1 Zlín Plzeň 1-0 Teplice [Mar 13] České Budějovice 2-0 Jablonec Karviná 1-2 Olomouc Liberec 1-0 Slavia Sparta 3-1 Pardubice Round 26 [Mar 19] Ostrava 1-3 Karviná Bohemians 1-2 Slovácko Zlín 4-1 Pardubice Jablonec 0-0 Plzeň [Mar 20] Mladá Boleslav 0-3 Sparta Teplice 1-2 Hradec Králové Olomouc 1-0 Liberec Slavia 1-0 České Budějovice Round 27 [Apr 2] Slovácko 1-0 Olomouc České Budějovice 2-2 Zlín Liberec 0-1 Teplice Sparta 2-1 Ostrava [Apr 3] Pardubice 1-1 Jablonec Hradec Králové 2-2 Mladá Boleslav Karviná 1-1 Bohemians Plzeň 1-1 Slavia Round 28 [Apr 9] Slovácko 3-1 Karviná Bohemians 0-0 Liberec Olomouc 1-1 Plzeň Teplice 0-3 Sparta [Apr 10] Ostrava 0-0 Hradec Králové Jablonec 1-1 Zlín Mladá Boleslav 2-0 České Budějovice Slavia 4-0 Pardubice Round 29 [Apr 17] České Budějovice 2-1 Bohemians Zlín 1-2 Mladá Boleslav Jablonec 1-2 Slavia Pardubice 2-0 Teplice Hradec Králové 3-0 Olomouc Liberec 2-1 Karviná Sparta 3-1 Slovácko Plzeň 2-1 Ostrava Round 30 [Apr 20] Slovácko 2-0 Liberec Ostrava 1-0 Jablonec Bohemians 1-1 Hradec Králové Mladá Boleslav 0-2 Plzeň Teplice 2-1 České Budějovice Karviná 3-2 Pardubice Olomouc 2-0 Sparta Slavia 3-0 Zlín Final Table: 1.SK Slavia Praha 30 23 4 3 71-19 73 [C] Skupina o Titul 2.FC Viktoria Plzeň 30 22 6 2 53-19 72 Skupina o Titul 3.AC Sparta Praha 30 20 6 4 65-32 66 Skupina o Titul 4.1. FC Slovácko 30 18 5 7 50-30 59 Skupina o Titul 5.FC Baník Ostrava 30 14 9 7 54-39 51 Skupina o Titul 6.FC Hradec Králové 30 9 13 8 38-40 40 [P] Skupina o Titul - - - - - - - - - - - - - - - - - - - - - - - - - - - 7.FK Mladá Boleslav 30 11 5 14 45-48 38 Skupina o Evropu 8.FC Slovan Liberec 30 10 7 13 29-38 37 [2 1 0 1 3-2 3] Skupina o Evropu 9.SK Sigma Olomouc 30 9 10 11 39-37 37 [2 1 0 1 1-2 3] Skupina o Evropu 10.SK Dynamo České Budějovice 30 9 9 12 40-46 36 Skupina o Evropu - - - - - - - - - - - - - - - - - - - - - - - - - - - 11.FC Fastav Zlín 30 8 6 16 36-53 30 Skupina o Záchranu 12.FK Teplice 30 8 3 19 29-49 27 Skupina o Záchranu 13.FK Jablonec 97 30 4 14 12 22-45 26 [2 1 1 0 4-3 4] Skupina o Záchranu 14.FC Bohemians 1905 Praha 30 6 8 16 34-56 26 [2 0 1 1 3-4 1] Skupina o Záchranu 15.FK Pardubice 30 5 9 16 35-67 24 Skupina o Záchranu 16.MFK OKD Karviná 30 3 8 19 30-52 17 Skupina o Záchranu Playoff Stage Skupina o Titul | Skupina o Evropu | Skupina o Záchranu Skupina o Titul Final Table: 1.FC Viktoria Plzeň 35 26 7 2 63-21 85 Champions 2.SK Slavia Praha 35 24 6 5 80-27 78 [C] 3.AC Sparta Praha 35 22 7 6 72-40 73 4.1. FC Slovácko 35 21 5 9 59-38 68 5.FC Baník Ostrava 35 15 10 10 60-48 55 6.FC Hradec Králové 35 10 14 11 44-52 44 [P] Round 31 [Apr 23] Sparta 3-1 Ostrava [Apr 24] Plzeň 3-1 Slovácko Hradec Králové 4-3 Slavia Round 32 [Apr 30] Slovácko 3-1 Ostrava Sparta 1-1 Hradec Králové [May 1] Slavia 1-1 Plzeň Round 33 [May 7] Ostrava 3-1 Hradec Králové [May 8] Plzeň 3-0 Sparta Slavia 3-0 Slovácko Round 34 [May 11] Ostrava 1-1 Slavia Hradec Králové 0-2 Plzeň Sparta 1-2 Slovácko Round 35 [May 15] Slovácko 3-0 Hradec Králové Slavia 1-2 Sparta Plzeň 1-0 Ostrava Final Table: 1.FC Viktoria Plzeň 35 26 7 2 63-21 85 Champions 2.SK Slavia Praha 35 24 6 5 80-27 78 [C] 3.AC Sparta Praha 35 22 7 6 72-40 73 4.1. FC Slovácko 35 21 5 9 59-38 68 5.FC Baník Ostrava 35 15 10 10 60-48 55 6.FC Hradec Králové 35 10 14 11 44-52 44 [P] Skupina o Evropu Semifinals First Legs [Apr 24] České Budějovice 2-3 Mladá Boleslav Olomouc 1-0 Liberec Second Legs [Apr 30] Mladá Boleslav 1-0 České Budějovice Liberec 0-2 Olomouc Final First Leg [May 6] Olomouc 1-2 Mladá Boleslav Second Leg [May 13] Mladá Boleslav 2-2 Olomouc Skupina o Záchranu Final Table: 11.FK Pardubice 35 9 10 16 42-68 37 12.FC Fastav Zlín 35 9 9 17 43-60 36 13.FK Jablonec 97 35 6 16 13 27-48 34 - - - - - - - - - - - - - - - - - - - - - - - - - - - 14.FC Bohemians 1905 Praha 35 8 10 17 45-61 34 Relegation Playoff 15.FK Teplice 35 8 5 22 33-59 29 Relegation Playoff ----------------------------------------------------- 16.MFK OKD Karviná 35 3 10 22 33-63 19 Relegated Round 31 [Apr 23] Jablonec 0-1 Pardubice Teplice 2-2 Bohemians Karviná 1-1 Zlín Round 32 [May 1] Bohemians 0-1 Pardubice Zlín 3-0 Teplice Jablonec 2-0 Karviná Round 33 [May 7] Zlín 1-4 Bohemians Pardubice 2-0 Karviná Teplice 0-1 Jablonec Round 34 [May 10] Jablonec 1-1 Bohemians Pardubice 1-1 Zlín Karviná 2-2 Teplice Round 35 [May 14] Bohemians 4-0 Karviná Zlín 1-1 Jablonec Teplice 0-2 Pardubice Final Table: 11.FK Pardubice 35 9 10 16 42-68 37 12.FC Fastav Zlín 35 9 9 17 43-60 36 13.FK Jablonec 97 35 6 16 13 27-48 34 - - - - - - - - - - - - - - - - - - - - - - - - - - - 14.FC Bohemians 1905 Praha 35 8 10 17 45-61 34 Relegation Playoff 15.FK Teplice 35 8 5 22 33-59 29 Relegation Playoff ----------------------------------------------------- 16.MFK OKD Karviná 35 3 10 22 33-63 19 Relegated Promotion/Relegation Playoff First Legs [May 19] Teplice 3-0 Vlašim Opava 0-1 Bohemians Second Legs [May 22] Bohemians 2-0 Opava Vlašim 2-2 Teplice NB: all clubs remain at former level
1/8 Finals [Oct 26] Bohemians 1905 Praha 1-0 FC Vysočina Jihlava [Oct 27] FC Baník Ostrava 1-2 FC Hradec Králové FK Teplice 0-2 AC Sparta Praha FK Mladá Boleslav 2-0 FC Viktoria Plzeň [Nov 11] FK Jablonec 4-0 FK Varnsdorf [Nov 12] 1.FC Slovácko 3-1 MFK Karviná [Nov 23] SK Dynamo České Budějovice 1-1 SK Sigma Olomouc [aet, 4-5 pen] [Dec 15] SK Slavia Praha 3-1 FC Zlín Quarterfinals [Feb 9] SK Sigma Olomouc 0-0 1.FC Slovácko [aet, 2-4 pen] SK Slavia Praha 0-2 AC Sparta Praha [Feb 15] FC Hradec Králové 2-1 Bohemians 1905 Praha [aet] [Feb 16] FK Jablonec 4-0 FK Mladá Boleslav Semifinals [Mar 2] AC Sparta Praha 4-3 FK Jablonec [Mar 25] FC Hradec Králové 0-1 1.FC Slovácko Final [May 18, Uherské Hradiště] 1.FC Slovácko 3-1 AC Sparta Praha
Final Table: 1.FC Zbrojovka Brno 30 22 3 5 61-29 69 [R] Promoted ----------------------------------------------------- 2.FC Sellier & Bellot Vlašim 30 16 5 9 61-39 53 Promotion Playoff 3.Slezský FC Opava 30 14 9 7 47-33 51 [R] Promotion Playoff - - - - - - - - - - - - - - - - - - - - - - - - - - - 4.SK Líšeň 2019 30 14 8 8 45-33 50 5.AC Sparta Praha B 30 13 7 10 50-37 46 [P] 6.FK Varnsdorf 30 13 6 11 47-35 45 7.FC Vysočina Jihlava 30 11 9 10 29-34 42 8.FC MAS Táborsko 30 10 10 10 33-34 40 9.FK Dukla Praha 30 10 9 11 40-41 39 10.MFK Chrudim 30 9 11 10 32-36 38 11.1.SK Prostějov 30 11 4 15 32-50 37 12.MFK Vyškov 30 9 8 13 43-44 35 [P] 13.1.FK Příbram 30 9 8 13 38-51 35 [R] 14.FK Fotbal Třinec 30 9 6 15 38-54 33 ----------------------------------------------------- 15.FK Ústí nad Labem 30 6 10 14 26-49 28 Relegated 16.FK Viktoria Žižkov 30 3 9 18 29-52 18 Relegated
Česká fotbalová liga | Moravskoslezská fotbalová liga Česká fotbalová liga Skupina A | Skupina B | Baráž Skupina A Final Table: 1.SK Slavia Praha B 28 15 6 7 61-33 51 Baráž - - - - - - - - - - - - - - - - - - - - - - - - - - - 2.FK Králův Dvůr 28 14 9 5 47-31 51 3.FK Loko Vltavín 28 15 4 9 48-31 49 4.FC Viktoria Plzeň B 28 13 7 8 44-29 46 5.TJ Jiskra Domažlice 28 13 7 8 50-38 46 6.FK Motorlet Praha 28 13 6 9 44-39 45 7.FK Admira Praha 28 10 12 6 39-31 42 8.FC Písek 28 11 8 9 44-36 41 9.FC Slavia Karlovy Vary 28 10 6 12 42-36 36 10.Sokol Hostouň 28 9 8 11 41-37 35 11.SK Benešov 28 9 7 12 37-46 34 12.1. FK Příbram B 28 9 5 14 42-59 32 13.FK Baník Sokolov 1948 28 9 5 14 35-54 32 14.Povltavská fotbalová akad. 28 6 6 16 34-49 24 ----------------------------------------------------- 15.SK Rakovník 28 4 4 20 23-82 16 Relegated -.FC Slavoj Vyšehrad withdrew [R] Skupina B Final Table: 1.SK Zápy 30 17 8 5 45-33 59 Baráž - - - - - - - - - - - - - - - - - - - - - - - - - - - 2.FK Přepeře 30 18 3 9 66-49 57 3.TJ Sokol Živanice 30 16 4 10 52-41 52 4.FK Jablonec B 30 15 6 9 51-40 51 5.SK Sokol Brozany 30 13 9 8 43-38 48 6.FC Hradec Králové B 30 14 5 11 51-38 47 7.TJ Slovan Velvary 30 12 9 9 47-40 45 8.FK Chlumec nad Cidlinou 30 11 9 10 55-52 42 9.FK Teplice B 30 12 5 13 41-49 41 10.FK Dukla Praha B 30 11 6 13 50-51 39 11.FK Mladá Boleslav B 30 11 6 13 44-49 39 12.Bohemians Praha 1905 B 30 11 5 14 45-36 38 13.FK Zbuzany 1953 30 10 8 12 38-46 38 14.FK Pardubice B 30 10 2 18 43-67 32 ----------------------------------------------------- 15.FC Slovan Liberec B 30 6 5 19 35-46 23 Relegated 16.TJ Jiskra Ústí nad Orlicí 30 3 10 17 26-57 19 Relegated Baráž First Leg [Jun 15] Slavia B 2-1 Zápy Second Leg [Jun 18] Zápy 2-3 Slavia B NB: SK Slavia Praha B promoted Moravskoslezská fotbalová lig Final Table: 1.SK Sigma Olomouc B 32 25 5 2 86-24 80 Promoted ----------------------------------------------------- 2.SK Hanácká Slavia Kroměříž 32 22 4 6 71-34 70 3.FC Hlučín 32 20 3 9 75-31 63 4.FC Baník Ostrava B 32 19 6 7 71-41 63 5.FC Slovan Rosice 32 17 6 9 48-36 57 6.1. FC Slovácko B 32 14 8 10 67-49 50 7.SK Uničov 32 14 7 11 56-52 49 8.FK Frýdek-Místek 32 14 6 12 53-57 48 9.FC Velké Meziříčí 32 13 6 13 52-52 45 10.1. SC Znojmo 32 11 5 16 62-74 38 11.FK Blansko 32 11 5 16 51-66 38 [R] 12.ČSK Uherský Brod 32 9 8 15 40-49 35 13.FC Vratimov 32 10 3 19 42-74 33 Withdrew 14.FC Viktoria Otrokovice 32 8 6 18 44-70 30 15.FC Fastav Zlín B 32 8 5 19 38-55 29 16.SFK Vrchovina NMNM 32 7 7 18 28-62 28 [*] ----------------------------------------------------- 17.FC Vysočina Jihlava B 32 3 4 25 29-87 13 Relegated 18.FC Dolní Benešov withdrew [*] full name SFK Vrchovina z.s. Nové Město na Moravě
Prepared and maintained by Karel Stokkermans for the Rec.Sport.Soccer Statistics Foundation
Author: Karel Stokkermans
Last updated: 31 May 2024
(C) Copyright Karel Stokkermans and RSSSF 2021/24
You are free to copy this document in whole or part provided that proper
acknowledgement is given to the author. All rights reserved.