From 1da1260af72b20126176e2b8f73f7b7fd5952ce1 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Tue, 12 Dec 2023 21:27:08 +0100 Subject: Split tests into unit and dw (graphical) Graphical tests for the dw (Dillo Widget) are moved to test/dw, while unit tests are placed into test/unit. All tests are compiled with "make check" but only the tests that can run without intervention and without a graphic display are executed. --- configure.ac | 2 + test/Anna_Karenina_1.html | 25 - test/KHM1-shy.html | 56 - test/KHM1.html | 39 - test/KHM1b.html | 14 - test/KHM1c.html | 10 - test/Makefile.am | 230 +- test/anchors.html | 650 -- test/containers.cc | 157 - test/cookies.c | 1164 --- test/doxygen.html | 477 -- test/dw/Makefile.am | 63 + test/dw/dw_anchors_test.cc | 164 + test/dw/dw_border_test.cc | 127 + test/dw/dw_example.cc | 105 + test/dw/dw_find_test.cc | 157 + test/dw/dw_float_test.cc | 145 + test/dw/dw_image_background.cc | 196 + test/dw/dw_images_scaled.cc | 155 + test/dw/dw_images_scaled2.cc | 150 + test/dw/dw_images_simple.cc | 154 + test/dw/dw_imgbuf_mem_test.cc | 108 + test/dw/dw_links.cc | 163 + test/dw/dw_links2.cc | 192 + test/dw/dw_lists.cc | 136 + test/dw/dw_resource_test.cc | 102 + test/dw/dw_simple_container.cc | 245 + test/dw/dw_simple_container.hh | 57 + test/dw/dw_simple_container_test.cc | 114 + test/dw/dw_table.cc | 116 + test/dw/dw_table_aligned.cc | 121 + test/dw/dw_ui_test.cc | 245 + test/dw/form.cc | 263 + test/dw/form.hh | 164 + test/dw_anchors_test.cc | 164 - test/dw_border_test.cc | 127 - test/dw_example.cc | 105 - test/dw_find_test.cc | 157 - test/dw_float_test.cc | 145 - test/dw_image_background.cc | 196 - test/dw_images_scaled.cc | 155 - test/dw_images_scaled2.cc | 150 - test/dw_images_simple.cc | 154 - test/dw_imgbuf_mem_test.cc | 108 - test/dw_links.cc | 163 - test/dw_links2.cc | 192 - test/dw_lists.cc | 136 - test/dw_resource_test.cc | 102 - test/dw_simple_container.cc | 245 - test/dw_simple_container.hh | 57 - test/dw_simple_container_test.cc | 114 - test/dw_table.cc | 116 - test/dw_table_aligned.cc | 121 - test/dw_ui_test.cc | 245 - test/floats-and-absolute.html | 51 - test/floats-and-margins.html | 40 - test/floats-table.html | 24 - test/floats-worm.html | 42 - test/floats1.html | 46 - test/floats2.html | 17 - test/floats3.html | 16 - test/floats4.html | 63 - test/floats5.html | 16 - test/form.cc | 263 - test/form.hh | 164 - test/html/Anna_Karenina_1.html | 25 + test/html/KHM1-shy.html | 56 + test/html/KHM1.html | 39 + test/html/KHM1b.html | 14 + test/html/KHM1c.html | 10 + test/html/anchors.html | 650 ++ test/html/doxygen.html | 477 ++ test/html/floats-and-absolute.html | 51 + test/html/floats-and-margins.html | 40 + test/html/floats-table.html | 24 + test/html/floats-worm.html | 42 + test/html/floats1.html | 46 + test/html/floats2.html | 17 + test/html/floats3.html | 16 + test/html/floats4.html | 63 + test/html/floats5.html | 16 + test/html/hyphenate-nbsp.html | 3 + test/html/hyphens-etc.html | 6 + test/html/lang.html | 27 + test/html/table-1.html | 21 + test/html/table-h1.html | 37 + test/html/table-narrow.html | 9 + test/html/table-thead-tfoot.html | 41 + test/html/white-space.html | 24 + test/hyph-de-1996.pat | 14236 ---------------------------------- test/hyph-en-us.pat | 4960 ------------ test/hyphenate-nbsp.html | 3 - test/hyphens-etc.html | 6 - test/identity.cc | 55 - test/lang.html | 27 - test/liang.cc | 79 - test/notsosimplevector.cc | 63 - test/shapes.cc | 40 - test/table-1.html | 21 - test/table-h1.html | 37 - test/table-narrow.html | 9 - test/table-thead-tfoot.html | 41 - test/trie.cc | 14 - test/unicode_test.cc | 39 - test/unit/Makefile.am | 59 + test/unit/containers.cc | 157 + test/unit/cookies.c | 1164 +++ test/unit/hyph-de.pat | 14236 ++++++++++++++++++++++++++++++++++ test/unit/hyph-en-us.pat | 4960 ++++++++++++ test/unit/identity.cc | 55 + test/unit/liang.cc | 79 + test/unit/notsosimplevector.cc | 63 + test/unit/shapes.cc | 40 + test/unit/trie.cc | 14 + test/unit/unicode_test.cc | 39 + test/white-space.html | 24 - 116 files changed, 26065 insertions(+), 26169 deletions(-) delete mode 100644 test/Anna_Karenina_1.html delete mode 100644 test/KHM1-shy.html delete mode 100644 test/KHM1.html delete mode 100644 test/KHM1b.html delete mode 100644 test/KHM1c.html delete mode 100644 test/anchors.html delete mode 100644 test/containers.cc delete mode 100644 test/cookies.c delete mode 100644 test/doxygen.html create mode 100644 test/dw/Makefile.am create mode 100644 test/dw/dw_anchors_test.cc create mode 100644 test/dw/dw_border_test.cc create mode 100644 test/dw/dw_example.cc create mode 100644 test/dw/dw_find_test.cc create mode 100644 test/dw/dw_float_test.cc create mode 100644 test/dw/dw_image_background.cc create mode 100644 test/dw/dw_images_scaled.cc create mode 100644 test/dw/dw_images_scaled2.cc create mode 100644 test/dw/dw_images_simple.cc create mode 100644 test/dw/dw_imgbuf_mem_test.cc create mode 100644 test/dw/dw_links.cc create mode 100644 test/dw/dw_links2.cc create mode 100644 test/dw/dw_lists.cc create mode 100644 test/dw/dw_resource_test.cc create mode 100644 test/dw/dw_simple_container.cc create mode 100644 test/dw/dw_simple_container.hh create mode 100644 test/dw/dw_simple_container_test.cc create mode 100644 test/dw/dw_table.cc create mode 100644 test/dw/dw_table_aligned.cc create mode 100644 test/dw/dw_ui_test.cc create mode 100644 test/dw/form.cc create mode 100644 test/dw/form.hh delete mode 100644 test/dw_anchors_test.cc delete mode 100644 test/dw_border_test.cc delete mode 100644 test/dw_example.cc delete mode 100644 test/dw_find_test.cc delete mode 100644 test/dw_float_test.cc delete mode 100644 test/dw_image_background.cc delete mode 100644 test/dw_images_scaled.cc delete mode 100644 test/dw_images_scaled2.cc delete mode 100644 test/dw_images_simple.cc delete mode 100644 test/dw_imgbuf_mem_test.cc delete mode 100644 test/dw_links.cc delete mode 100644 test/dw_links2.cc delete mode 100644 test/dw_lists.cc delete mode 100644 test/dw_resource_test.cc delete mode 100644 test/dw_simple_container.cc delete mode 100644 test/dw_simple_container.hh delete mode 100644 test/dw_simple_container_test.cc delete mode 100644 test/dw_table.cc delete mode 100644 test/dw_table_aligned.cc delete mode 100644 test/dw_ui_test.cc delete mode 100644 test/floats-and-absolute.html delete mode 100644 test/floats-and-margins.html delete mode 100644 test/floats-table.html delete mode 100644 test/floats-worm.html delete mode 100644 test/floats1.html delete mode 100644 test/floats2.html delete mode 100644 test/floats3.html delete mode 100644 test/floats4.html delete mode 100644 test/floats5.html delete mode 100644 test/form.cc delete mode 100644 test/form.hh create mode 100644 test/html/Anna_Karenina_1.html create mode 100644 test/html/KHM1-shy.html create mode 100644 test/html/KHM1.html create mode 100644 test/html/KHM1b.html create mode 100644 test/html/KHM1c.html create mode 100644 test/html/anchors.html create mode 100644 test/html/doxygen.html create mode 100644 test/html/floats-and-absolute.html create mode 100644 test/html/floats-and-margins.html create mode 100644 test/html/floats-table.html create mode 100644 test/html/floats-worm.html create mode 100644 test/html/floats1.html create mode 100644 test/html/floats2.html create mode 100644 test/html/floats3.html create mode 100644 test/html/floats4.html create mode 100644 test/html/floats5.html create mode 100644 test/html/hyphenate-nbsp.html create mode 100644 test/html/hyphens-etc.html create mode 100644 test/html/lang.html create mode 100644 test/html/table-1.html create mode 100644 test/html/table-h1.html create mode 100644 test/html/table-narrow.html create mode 100644 test/html/table-thead-tfoot.html create mode 100644 test/html/white-space.html delete mode 100644 test/hyph-de-1996.pat delete mode 100644 test/hyph-en-us.pat delete mode 100644 test/hyphenate-nbsp.html delete mode 100644 test/hyphens-etc.html delete mode 100644 test/identity.cc delete mode 100644 test/lang.html delete mode 100644 test/liang.cc delete mode 100644 test/notsosimplevector.cc delete mode 100644 test/shapes.cc delete mode 100644 test/table-1.html delete mode 100644 test/table-h1.html delete mode 100644 test/table-narrow.html delete mode 100644 test/table-thead-tfoot.html delete mode 100644 test/trie.cc delete mode 100644 test/unicode_test.cc create mode 100644 test/unit/Makefile.am create mode 100644 test/unit/containers.cc create mode 100644 test/unit/cookies.c create mode 100644 test/unit/hyph-de.pat create mode 100644 test/unit/hyph-en-us.pat create mode 100644 test/unit/identity.cc create mode 100644 test/unit/liang.cc create mode 100644 test/unit/notsosimplevector.cc create mode 100644 test/unit/shapes.cc create mode 100644 test/unit/trie.cc create mode 100644 test/unit/unicode_test.cc delete mode 100644 test/white-space.html diff --git a/configure.ac b/configure.ac index b436a9a6..d574cce5 100644 --- a/configure.ac +++ b/configure.ac @@ -535,6 +535,8 @@ AC_CONFIG_FILES([ src/Makefile src/IO/Makefile test/Makefile + test/unit/Makefile + test/dw/Makefile ]) AC_OUTPUT diff --git a/test/Anna_Karenina_1.html b/test/Anna_Karenina_1.html deleted file mode 100644 index 6deb470d..00000000 --- a/test/Anna_Karenina_1.html +++ /dev/null @@ -1,25 +0,0 @@ -
-

Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему.

-

Все смешалось в доме Облонских. Жена узнала, что муж был в связи с бывшею в их доме француженкою-гувернанткой, и объявила мужу, что не может жить с ним в одном доме. Положение это продолжалось уже третий день и мучительно чувствовалось и самими супругами, и всеми членами семьи, и домочадцами. Все члены семьи и домочадцы чувствовали, что нет смысла в их сожительстве и что на каждом постоялом дворе случайно сошедшиеся люди более связаны между собой, чем они, члены семьи и домочадцы Облонских. Жена не выходила из своих комнат, мужа третий день не было дома. Дети бегали по всему дому, как потерянные; англичанка поссорилась с экономкой и написала записку приятельнице, прося приискать ей новое место; повар ушел вчера со двора, во время самого обеда; черная кухарка и кучер просили расчета.

-

На третий день после ссоры князь Степан Аркадьич Облонский — Стива, как его звали в свете, — в обычный час, то есть в восемь часов утра, проснулся не в спальне жены, а в своем кабинете, на сафьянном диване. Он повернул свое полное, выхоленное тело на пружинах дивана, как бы желая опять заснуть надолго, с другой стороны крепко обнял подушку и прижался к ней щекой; но вдруг вскочил, сел на диван и открыл глаза.

-

«Да, да, как это было? — думал он, вспоминая сон. — Да, -как это было? Да! Алабин давал обед в Дармштадте; нет, не в -Дармштадте, а что-то американское. Да, но там Дармштадт был в -Америке. Да, Алабин давал обед на стеклянных столах, да, — и -столы пели: Il mio tesoro, и -не Il mio tesoro, а что-то лучше, и какие-то -маленькие графинчики, и они же женщины», — вспоминал он.

- -

Глаза Степана Аркадьича весело заблестели, и он задумался, улыбаясь. «Да, хорошо было, очень хорошо. Много еще что-то там было отличного, да не скажешь словами и мыслями даже наяву не выразишь». И, заметив полосу света, пробившуюся сбоку одной из суконных стор, он весело скинул ноги с дивана, отыскал ими шитые женой (подарок ко дню рождения в прошлом году), обделанные в золотистый сафьян туфли и по старой, девятилетней привычке, не вставая, потянулся рукой к тому месту, где в спальне у него висел халат. И тут он вспомнил вдруг, как и почему он спит не в спальне жены, а в кабинете; улыбка исчезла с его лица, он сморщил лоб.

-

«Ах, ах, ах! Ааа!..» — замычал он, вспоминая все, что было. И его воображению представились опять все подробности ссоры с женою, вся безвыходность его положения и мучительнее всего собственная вина его.

-

«Да! она не простит и не может простить. И всего ужаснее то, что виной всему я, виной я, а не виноват. В этом-то вся драма, — думал он. — Ах, ах, ах!» — приговаривал он с отчаянием, вспоминая самые тяжелые для себя впечатления из этой ссоры.

-

Неприятнее всего была та первая минута, когда он, вернувшись из театра, веселым и довольным, с огромною грушей для жены в руке, не нашел жены в гостиной; к удивлению, не нашел ее и в кабинете и, наконец, увидал ее в спальне с несчастною, открывшею все, запиской в руке.

-

Она, эта вечно озабоченная, и хлопотливая, и недалекая, какою он считал ее, Долли, неподвижно сидела с запиской в руке и с выражением ужаса, отчаяния и гнева смотрела на него.

-

— Что это? это? — спрашивала она, указывая на записку.

- -

И при этом воспоминании, как это часто бывает, мучало Степана Аркадьича не столько самое событие, сколько то, как он ответил на эти слова жены.

-

С ним случилось в эту минуту то, что случается с людьми, когда они неожиданно уличены в чем-нибудь слишком постыдном. Он не сумел приготовить свое лицо к тому положению, в которое он становился пред женой после открытия его вины. Вместо того чтоб оскорбиться, отрекаться, оправдываться, просить прощения, оставаться даже равнодушным — все было бы лучше того, что он сделал! — его лицо совершенно невольно («рефлексы головного мозга», — подумал Степан Аркадьич, который любил физиологию), совершенно невольно вдруг улыбнулось привычною, доброю и потому глупою улыбкой.

-

Эту глупую улыбку он не мог простить себе. Увидав эту улыбку, Долли вздрогнула, как от физической боли, разразилась, со свойственною ей горячностью, потоком жестоких слов и выбежала из комнаты. С тех пор она не хотела видеть мужа.

-

«Всему виной эта глупая улыбка», — думал Степан Аркадьич.

-

«Но что ж делать? что ж делать?» — с отчаянием говорил он себе и не находил ответа.

-
diff --git a/test/KHM1-shy.html b/test/KHM1-shy.html deleted file mode 100644 index b3924409..00000000 --- a/test/KHM1-shy.html +++ /dev/null @@ -1,56 +0,0 @@ -
-

In den al­ten Zei­ten, wo das Wün­schen noch -ge­hol­fen hat, leb­te ein Kö­nig, des­sen -Töch­ter wa­ren al­le schön, aber die jüng­ste war so -schön, daß die Son­ne sel­ber, die doch so vie­les -ge­se­hen hat, sich ver­wun­der­te so oft sie ihr -ins Ge­sicht schien. Na­he bei dem Schlos­se des -Kö­nigs lag ein gro­ßer dunk­ler Wald, und in dem -Wal­de un­ter ei­ner al­ten Lin­de war ein -Brun­nen: wenn nun der Tag recht heiß war, so ging das -Kö­nigs­kind hin­aus in den Wald und setz­te sich an -den Rand des küh­len Brun­nens: und wenn sie -Lan­ge­wei­le hat­te, so nahm sie eine -gol­de­ne Ku­gel, warf sie in die Hö­he und fieng sie -wie­der; und das war ihr liebs­tes Spiel­werk.

-

Nun trug es sich ein­mal zu, daß die gol­de­ne -Ku­gel der Kön­igs­toch­ter nicht in ihr Händ­chen -fiel, das sie in die Hö­he ge­hal­ten hat­te, -son­dern vor­bei auf die Er­de schlug und -ge­ra­de­zu ins Was­ser hin­ein roll­te. Die -Kö­nigs­toch­ter folg­te ihr mit den Aug­en nach, -aber die Ku­gel ver­schwand, und der Brun­nen war tief, so -tief daß man kei­nen Grund sah. Da fieng sie an zu wei­nen und -wein­te im­mer lau­ter und konn­te sich gar nicht -trös­ten. Und wie sie so klag­te, rief ihr je­mand zu „was -hast du vor, Kö­nigs­toch­ter, du schreist ja daß sich ein -Stein er­bar­men möchte.“ Sie sah sich um, wo­her die -Stim­me kä­me, da er­blick­te sie einen Frosch, der -sei­nen di­cken häß­li­chen Kopf aus dem Was­ser -streck­te. „Ach, du bists, al­ter -Was­ser­pat­scher,“ sag­te sie, „ich wei­ne über -mei­ne gol­de­ne Ku­gel, die mir in den Brun­nen -hin­ab ge­fal­len ist.“ „Sei still und wei­ne nicht,“ -ant­wor­te­te der Frosch, „ich kann wohl Rath -schaf­fen, aber was gibst du mir, wenn ich dein Spiel­werk -wie­der her­auf­ho­le?“ „Was du ha­ben willst, -lie­ber Frosch,“ sag­te sie, „mei­ne Klei­der, -mei­ne Per­len und Edel­stei­ne, auch noch die -gol­de­ne Kro­ne, die ich tra­ge.“ Der Frosch -ant­wor­te­te „dei­ne Klei­der, dei­ne -Per­len und Edel­stei­ne, und dei­ne gol­de­ne -Kro­ne, die mag ich nicht: aber wenn du mich lieb ha­ben -willst, und ich soll dein Ge­sel­le und -Spiel­ka­me­rad sein, an dei­nem Tisch­lein -ne­ben dir si­tzen, von dei­nem gol­de­nen -Tel­ler­lein es­sen, aus dei­nem Be­cher­lein -trin­ken, in dei­nem Bett­lein schla­fen: wenn du mir -das ver­sprichst, so will ich hin­un­ter stei­gen und -dir die gol­de­ne Ku­gel wie­der her­auf -ho­len.“ „Ach ja,“ sag­te sie, „ich ver­spre­che dir -alles, was du willst, wenn du mir nur die Ku­gel wie­der -bringst.“ Sie dach­te aber „was der ein­fäl­ti­ge -Frosch schwätzt, der sitzt im Was­ser bei sei­nes -Glei­chen und quackt, und kann kei­nes Men­schen -Ge­sel­le sein.“

-
diff --git a/test/KHM1.html b/test/KHM1.html deleted file mode 100644 index c1665f00..00000000 --- a/test/KHM1.html +++ /dev/null @@ -1,39 +0,0 @@ -
-

In den alten Zeiten, wo das Wünschen noch geholfen hat, lebte ein -König, dessen Töchter waren alle schön, aber die jüngste war so schön, -daß die Sonne selber, die doch so vieles gesehen hat, sich verwunderte -so oft sie ihr ins Gesicht schien. Nahe bei dem Schlosse des Königs -lag ein großer dunkler Wald, und in dem Walde unter einer alten Linde -war ein Brunnen: wenn nun der Tag recht heiß war, so ging das -Königskind hinaus in den Wald und setzte sich an den Rand des kühlen -Brunnens: und wenn sie Langeweile hatte, so nahm sie eine goldene -Kugel, warf sie in die Höhe und fieng sie wieder; und das war ihr -liebstes Spielwerk.

-

Nun trug es sich einmal zu, daß die goldene Kugel der Königstochter -nicht in ihr Händchen fiel, das sie in die Höhe gehalten hatte, -sondern vorbei auf die Erde schlug und geradezu ins Wasser hinein -rollte. Die Königstochter folgte ihr mit den Augen nach, aber die -Kugel verschwand, und der Brunnen war tief, so tief daß man keinen -Grund sah. Da fieng sie an zu weinen und weinte immer lauter und -konnte sich gar nicht trösten. Und wie sie so klagte, rief ihr jemand -zu „was hast du vor, Königstochter, du schreist ja daß sich ein Stein -erbarmen möchte.“ Sie sah sich um, woher die Stimme käme, da erblickte -sie einen Frosch, der seinen dicken häßlichen Kopf aus dem Wasser -streckte. „Ach, du bists, alter Wasserpatscher,“ sagte sie, „ich weine -über meine goldene Kugel, die mir in den Brunnen hinab gefallen ist.“ -„Sei still und weine nicht,“ antwortete der Frosch, „ich kann wohl -Rath schaffen, aber was gibst du mir, wenn ich dein Spielwerk wieder -heraufhole?“ „Was du haben willst, lieber Frosch,“ sagte sie, „meine -Kleider, meine Perlen und Edelsteine, auch noch die goldene Krone, die -ich trage.“ Der Frosch antwortete „deine Kleider, deine Perlen und -Edelsteine, und deine goldene Krone, die mag ich nicht: aber wenn du -mich lieb haben willst, und ich soll dein Geselle und Spielkamerad -sein, an deinem Tischlein neben dir sitzen, von deinem goldenen -Tellerlein essen, aus deinem Becherlein trinken, in deinem Bettlein -schlafen: wenn du mir das versprichst, so will ich hinunter steigen -und dir die goldene Kugel wieder herauf holen.“ „Ach ja,“ sagte sie, -„ich verspreche dir alles, was du willst, wenn du mir nur die Kugel -wieder bringst.“ Sie dachte aber „was der einfältige Frosch schwätzt, -der sitzt im Wasser bei seines Gleichen und quackt, und kann keines -Menschen Geselle sein.“

-
diff --git a/test/KHM1b.html b/test/KHM1b.html deleted file mode 100644 index adefc1ef..00000000 --- a/test/KHM1b.html +++ /dev/null @@ -1,14 +0,0 @@ -

In den al­ten Zei­ten, wo das -Wün­schen noch ge­hol­fen hat, leb­te ein Kö­nig, -des­sen Töch­ter wa­ren al­le schön, aber die -jüng­ste war so schön, daß die Son­ne sel­ber, die doch so -vie­les ge­se­hen hat, sich ver­wun­der­te so -oft sie ihr ins Ge­sicht schien. Na­he bei dem Schlos­se -des Kö­nigs lag ein gro­ßer dunk­ler Wald, und in dem -Wal­de un­ter ei­ner al­ten Lin­de war ein -Brun­nen: wenn nun der Tag recht heiß war, so ging das -Kö­nigs­kind hin­aus in den Wald und setz­te sich an -den Rand des küh­len Brun­nens: und wenn sie -Lan­ge­wei­le hat­te, so nahm sie eine -gol­de­ne Ku­gel, warf sie in die Hö­he und fieng sie -wie­der; und das war ihr liebs­tes Spiel­werk.

diff --git a/test/KHM1c.html b/test/KHM1c.html deleted file mode 100644 index 3f3271fc..00000000 --- a/test/KHM1c.html +++ /dev/null @@ -1,10 +0,0 @@ -

In den alten Zeiten, wo das Wünschen -noch geholfen hat, lebte ein König, dessen Töchter waren alle schön, -aber die jüngste war so schön, daß die Sonne selber, die doch so -vieles gesehen hat, sich verwunderte so oft sie ihr ins Gesicht -schien. Nahe bei dem Schlosse des Königs lag ein großer dunkler Wald, -und in dem Walde unter einer alten Linde war ein Brunnen: wenn nun der -Tag recht heiß war, so ging das Königskind hinaus in den Wald und -setzte sich an den Rand des kühlen Brunnens: und wenn sie Langeweile -hatte, so nahm sie eine goldene Kugel, warf sie in die Höhe und fieng -sie wieder; und das war ihr liebstes Spielwerk.

diff --git a/test/Makefile.am b/test/Makefile.am index fd3252dc..43e92f71 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,229 +1 @@ -AM_CPPFLAGS = \ - -I$(top_srcdir) \ - -DCUR_WORKING_DIR='"@BASE_CUR_WORKING_DIR@/test"' - -AM_CFLAGS = @LIBFLTK_CFLAGS@ -AM_CXXFLAGS = @LIBFLTK_CXXFLAGS@ - -noinst_PROGRAMS = \ - dw-anchors-test \ - dw-example \ - dw-find-test \ - dw-float-test \ - dw-links \ - dw-links2 \ - dw-image-background \ - dw-images-simple \ - dw-images-scaled \ - dw-images-scaled2 \ - dw-lists \ - dw-simple-container-test \ - dw-table-aligned \ - dw-table \ - dw-border-test \ - dw-imgbuf-mem-test \ - dw-resource-test \ - dw-ui-test \ - containers \ - identity \ - shapes \ - cookies \ - liang \ - trie \ - notsosimplevector \ - unicode-test - -dw_anchors_test_SOURCES = dw_anchors_test.cc -dw_anchors_test_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_example_SOURCES = dw_example.cc -dw_example_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_find_test_SOURCES = dw_find_test.cc -dw_find_test_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_float_test_SOURCES = dw_float_test.cc -dw_float_test_LDADD = \ - ../dw/libDw-widgets.a \ - ../dw/libDw-fltk.a \ - ../dw/libDw-core.a \ - ../lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_links_SOURCES = dw_links.cc -dw_links_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_links2_SOURCES = dw_links2.cc -dw_links2_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_image_background_SOURCES = dw_image_background.cc -dw_image_background_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_images_simple_SOURCES = dw_images_simple.cc -dw_images_simple_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_images_scaled_SOURCES = dw_images_scaled.cc -dw_images_scaled_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_images_scaled2_SOURCES = dw_images_scaled2.cc -dw_images_scaled2_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_lists_SOURCES = dw_lists.cc -dw_lists_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_simple_container_test_SOURCES = \ - dw_simple_container.hh \ - dw_simple_container.cc \ - dw_simple_container_test.cc -dw_simple_container_test_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ - -dw_table_aligned_SOURCES = dw_table_aligned.cc -dw_table_aligned_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_table_SOURCES = dw_table.cc -dw_table_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_border_test_SOURCES = dw_border_test.cc -dw_border_test_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - - -dw_imgbuf_mem_test_SOURCES = dw_imgbuf_mem_test.cc -dw_imgbuf_mem_test_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_resource_test_SOURCES = dw_resource_test.cc -dw_resource_test_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -dw_ui_test_SOURCES = \ - dw_ui_test.cc \ - form.cc \ - form.hh -dw_ui_test_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -shapes_SOURCES = shapes.cc -shapes_LDADD = \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a - -containers_SOURCES = containers.cc -containers_LDADD = $(top_builddir)/lout/liblout.a - -identity_SOURCES = identity.cc -identity_LDADD = $(top_builddir)/lout/liblout.a - -cookies_SOURCES = cookies.c -cookies_LDADD = \ - $(top_builddir)/dpip/libDpip.a \ - $(top_builddir)/dlib/libDlib.a - -liang_SOURCES = liang.cc - -liang_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -trie_SOURCES = trie.cc - -trie_LDADD = \ - $(top_builddir)/dw/libDw-widgets.a \ - $(top_builddir)/dw/libDw-fltk.a \ - $(top_builddir)/dw/libDw-core.a \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ - -notsosimplevector_SOURCES = notsosimplevector.cc - -notsosimplevector_LDADD = $(top_builddir)/lout/liblout.a - -unicode_test_SOURCES = unicode_test.cc - -unicode_test_LDADD = \ - $(top_builddir)/lout/liblout.a \ - @LIBFLTK_LIBS@ @LIBX11_LIBS@ +SUBDIRS = unit dw diff --git a/test/anchors.html b/test/anchors.html deleted file mode 100644 index c04fdddc..00000000 --- a/test/anchors.html +++ /dev/null @@ -1,650 +0,0 @@ -

Nach -unten. Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung. -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung. -Hier ist unten. (Nicht ganz.) Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung. -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung. -

diff --git a/test/containers.cc b/test/containers.cc deleted file mode 100644 index af317d7e..00000000 --- a/test/containers.cc +++ /dev/null @@ -1,157 +0,0 @@ -#include "../lout/object.hh" -#include "../lout/container.hh" - -using namespace lout::object; -using namespace lout::container::typed; - -class ReverseComparator: public Comparator -{ -private: - Comparator *reversed; - -public: - ReverseComparator (Comparator *reversed) { this->reversed = reversed; } - int compare(Object *o1, Object *o2) { return - reversed->compare (o1, o2); } -}; - -void testHashSet () -{ - puts ("--- testHashSet ---"); - - HashSet h(true); - - h.put (new String ("one")); - h.put (new String ("two")); - h.put (new String ("three")); - - puts (h.toString()); -} - -void testHashTable () -{ - puts ("--- testHashTable ---"); - - HashTable h(true, true); - - h.put (new String ("one"), new Integer (1)); - h.put (new String ("two"), new Integer (2)); - h.put (new String ("three"), new Integer (3)); - - puts (h.toString()); - - h.put (new String ("one"), new Integer (4)); - h.put (new String ("two"), new Integer (5)); - h.put (new String ("three"), new Integer (6)); - - puts (h.toString()); -} - -void testVector1 () -{ - ReverseComparator reverse (&standardComparator); - - puts ("--- testVector (1) ---"); - - Vector v (true, 1); - - v.put (new String ("one")); - v.put (new String ("two")); - v.put (new String ("three")); - puts (v.toString()); - - v.sort (&reverse); - puts (v.toString()); - - v.sort (); - puts (v.toString()); -} - -void testVector2 () -{ - puts ("--- testVector (2) ---"); - - Vector v (true, 1); - - v.insertSorted (new String ("one")); - puts (v.toString()); - - v.insertSorted (new String ("two")); - puts (v.toString()); - - v.insertSorted (new String ("three")); - puts (v.toString()); - - v.insertSorted (new String ("five")); - puts (v.toString()); - - v.insertSorted (new String ("six")); - puts (v.toString()); - - v.insertSorted (new String ("four")); - puts (v.toString()); - - for (int b = 0; b < 2; b++) { - bool mustExist = b; - printf ("mustExist = %s\n", mustExist ? "true" : "false"); - - String k ("alpha"); - printf (" '%s' -> %d\n", k.chars(), v.bsearch (&k, mustExist)); - - for (Iterator it = v.iterator(); it.hasNext(); ) { - String *k1 = it.getNext(); - printf (" '%s' -> %d\n", k1->chars(), v.bsearch (k1, mustExist)); - - char buf[64]; - strcpy (buf, k1->chars()); - strcat (buf, "-var"); - String k2 (buf); - printf (" '%s' -> %d\n", k2.chars(), v.bsearch (&k2, mustExist)); - } - } -} - -void testVector3 () -{ - // Regression test: resulted once incorrently (0, 2, 3), should - // result in (1, 2, 3). - - puts ("--- testVector (3) ---"); - - Vector v (true, 1); - String k ("omega"); - - v.put (new String ("alpha")); - printf (" -> %d\n", v.bsearch (&k, false)); - v.put (new String ("beta")); - printf (" -> %d\n", v.bsearch (&k, false)); - v.put (new String ("gamma")); - printf (" -> %d\n", v.bsearch (&k, false)); -} - -void testStackAsQueue () -{ - puts ("--- testStackAsQueue ---"); - - Stack s (true); - - for (int i = 1; i <= 10; i++) - s.pushUnder (new Integer (i)); - - while (s.size () > 0) { - Integer *i = s.getTop (); - printf ("%d\n", i->getValue ()); - s.pop (); - } -} - -int main (int argc, char *argv[]) -{ - testHashSet (); - testHashTable (); - testVector1 (); - testVector2 (); - testVector3 (); - testStackAsQueue (); - - return 0; -} diff --git a/test/cookies.c b/test/cookies.c deleted file mode 100644 index eaa0f59d..00000000 --- a/test/cookies.c +++ /dev/null @@ -1,1164 +0,0 @@ -/* - * Dillo cookies test - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -/* - * This has a big blob of the current src/IO/dpi.c in it. - * I hope there's a better way. - */ - -#include /* malloc, etc. */ -#include /* read, etc. */ -#include -#include /* va_list */ -#include /* strchr */ -#include -#include -#include -/* net */ -#include -#include -#include -#include - - -#define _MSG(...) - -#define MSG_INNARDS(prefix, ...) \ - D_STMT_START { \ - printf(prefix __VA_ARGS__); \ - fflush (stdout); \ - } D_STMT_END - -#define MSG(...) MSG_INNARDS("", __VA_ARGS__) -#define MSG_WARN(...) MSG_INNARDS("** WARNING **: ", __VA_ARGS__) -#define MSG_ERR(...) MSG_INNARDS("** ERROR **: ", __VA_ARGS__) - - -#include "../dlib/dlib.h" -#include "../dpip/dpip.h" - -static uint_t failed = 0; -static uint_t passed = 0; - -static char SharedKey[32]; - -/* - * Read all the available data from a filedescriptor. - * This is intended for short answers, i.e. when we know the server - * will write it all before being preempted. For answers that may come - * as an stream with delays, non-blocking is better. - * Return value: read data, or NULL on error and no data. - */ -static char *Dpi_blocking_read(int fd) -{ - int st; - const int buf_sz = 8*1024; - char buf[buf_sz], *msg = NULL; - Dstr *dstr = dStr_sized_new(buf_sz); - - do { - st = read(fd, buf, buf_sz); - if (st < 0) { - if (errno == EINTR) { - continue; - } else { - MSG_ERR("[Dpi_blocking_read] %s\n", dStrerror(errno)); - break; - } - } else if (st > 0) { - dStr_append_l(dstr, buf, st); - } - } while (st == buf_sz); - - msg = (dstr->len > 0) ? dstr->str : NULL; - dStr_free(dstr, (dstr->len > 0) ? FALSE : TRUE); - return msg; -} - -static void Dpi_close_fd(int fd) -{ - int st; - - dReturn_if (fd < 0); - do - st = close(fd); - while (st < 0 && errno == EINTR); -} - -static int Dpi_make_socket_fd() -{ - int fd, ret = -1; - - if ((fd = socket(AF_INET, SOCK_STREAM, 0)) != -1) { - ret = fd; - } - return ret; -} - -/* - * Read dpid's communication keys from its saved file. - * Return value: 1 on success, -1 on error. - */ -static int Dpi_read_comm_keys(int *port) -{ - FILE *In; - char *fname, *rcline = NULL, *tail; - int i, ret = -1; - - fname = dStrconcat(dGethomedir(), "/.dillo/dpid_comm_keys", NULL); - if ((In = fopen(fname, "r")) == NULL) { - MSG_ERR("[Dpi_read_comm_keys] %s\n", dStrerror(errno)); - } else if ((rcline = dGetline(In)) == NULL) { - MSG_ERR("[Dpi_read_comm_keys] empty file: %s\n", fname); - } else { - *port = strtol(rcline, &tail, 10); - for (i = 0; *tail && isxdigit(tail[i+1]); ++i) - SharedKey[i] = tail[i+1]; - SharedKey[i] = 0; - ret = 1; - } - if (In) - fclose(In); - dFree(rcline); - dFree(fname); - - return ret; -} - -static int Dpi_check_dpid_ids() -{ - struct sockaddr_in sin; - const socklen_t sin_sz = sizeof(sin); - int sock_fd, dpid_port, ret = -1; - - /* socket connection test */ - memset(&sin, 0, sizeof(sin)); - sin.sin_family = AF_INET; - sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - - if (Dpi_read_comm_keys(&dpid_port) != -1) { - sin.sin_port = htons(dpid_port); - if ((sock_fd = Dpi_make_socket_fd()) == -1) { - MSG("Dpi_check_dpid_ids: sock_fd=%d %s\n", sock_fd, dStrerror(errno)); - } else if (connect(sock_fd, (struct sockaddr *)&sin, sin_sz) == -1) { - MSG("Dpi_check_dpid_ids: %s\n", dStrerror(errno)); - } else { - Dpi_close_fd(sock_fd); - ret = 1; - } - } - return ret; -} - -static int Dpi_blocking_write(int fd, const char *msg, int msg_len) -{ - int st, sent = 0; - - while (sent < msg_len) { - st = write(fd, msg + sent, msg_len - sent); - if (st < 0) { - if (errno == EINTR) { - continue; - } else { - MSG_ERR("[Dpi_blocking_write] %s\n", dStrerror(errno)); - break; - } - } - sent += st; - } - - return (sent == msg_len) ? 1 : -1; -} - -/* - * Start dpid. - * Return: 0 starting now, 1 Error. - */ -static int Dpi_start_dpid(void) -{ - pid_t pid; - int st_pipe[2], ret = 1; - char *answer; - - /* create a pipe to track our child's status */ - if (pipe(st_pipe)) - return 1; - - pid = fork(); - if (pid == 0) { - /* This is the child process. Execute the command. */ - char *path1 = dStrconcat(dGethomedir(), "/.dillo/dpid", NULL); - Dpi_close_fd(st_pipe[0]); - if (execl(path1, "dpid", (char*)NULL) == -1) { - dFree(path1); - if (execlp("dpid", "dpid", (char*)NULL) == -1) { - MSG("Dpi_start_dpid (child): %s\n", dStrerror(errno)); - if (Dpi_blocking_write(st_pipe[1], "ERROR", 5) == -1) { - MSG("Dpi_start_dpid (child): can't write to pipe.\n"); - } - Dpi_close_fd(st_pipe[1]); - _exit (EXIT_FAILURE); - } - } - } else if (pid < 0) { - /* The fork failed. Report failure. */ - MSG("Dpi_start_dpid: %s\n", dStrerror(errno)); - /* close the unused pipe */ - Dpi_close_fd(st_pipe[0]); - Dpi_close_fd(st_pipe[1]); - - } else { - /* This is the parent process, check our child status... */ - Dpi_close_fd(st_pipe[1]); - if ((answer = Dpi_blocking_read(st_pipe[0])) != NULL) { - MSG("Dpi_start_dpid: can't start dpid\n"); - dFree(answer); - } else { - ret = 0; - } - Dpi_close_fd(st_pipe[0]); - } - - return ret; -} - -/* - * Confirm that the dpid is running. If not, start it. - * Return: 0 running OK, 1 starting (EAGAIN), 2 Error. - */ -static int Dpi_check_dpid(int num_tries) -{ - static int starting = 0; - int check_st = 1, ret = 2; - - check_st = Dpi_check_dpid_ids(); - _MSG("Dpi_check_dpid: check_st=%d\n", check_st); - - if (check_st == 1) { - /* connection test with dpi server passed */ - starting = 0; - ret = 0; - } else { - if (!starting) { - /* start dpid */ - if (Dpi_start_dpid() == 0) { - starting = 1; - ret = 1; - } - } else if (++starting < num_tries) { - /* starting */ - ret = 1; - } else { - /* we waited too much, report an error... */ - starting = 0; - } - } - - _MSG("Dpi_check_dpid:: %s\n", - (ret == 0) ? "OK" : (ret == 1 ? "EAGAIN" : "ERROR")); - return ret; -} - - -static int Dpi_blocking_start_dpid(void) -{ - int cst, try = 0, - n_tries = 12; /* 3 seconds */ - - /* test the dpid, and wait a bit for it to start if necessary */ - while ((cst = Dpi_check_dpid(n_tries)) == 1) { - MSG("Dpi_blocking_start_dpid: try %d\n", ++try); - usleep(250000); /* 1/4 sec */ - } - return cst; -} - - -/* - * Return the dpi server's port number, or -1 on error. - * (A query is sent to dpid and then its answer parsed) - * note: as the available servers and/or the dpi socket directory can - * change at any time, we'll ask each time. If someday we find - * that connecting each time significantly degrades performance, - * an optimized approach can be tried. - */ -static int Dpi_get_server_port(const char *server_name) -{ - int sock_fd = -1, dpi_port = -1; - int dpid_port, ok = 0; - struct sockaddr_in sin; - char *cmd, *request, *rply = NULL, *port_str; - socklen_t sin_sz; - - dReturn_val_if_fail (server_name != NULL, dpi_port); - _MSG("Dpi_get_server_port:: server_name = [%s]\n", server_name); - - /* Read dpid's port from saved file */ - if (Dpi_read_comm_keys(&dpid_port) != -1) { - ok = 1; - } - if (ok) { - /* Connect a socket with dpid */ - ok = 0; - sin_sz = sizeof(sin); - memset(&sin, 0, sizeof(sin)); - sin.sin_family = AF_INET; - sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - sin.sin_port = htons(dpid_port); - if ((sock_fd = Dpi_make_socket_fd()) == -1 || - connect(sock_fd, (struct sockaddr *)&sin, sin_sz) == -1) { - MSG("Dpi_get_server_port: %s\n", dStrerror(errno)); - } else { - ok = 1; - } - } - if (ok) { - /* ask dpid to check the dpi and send its port number back */ - ok = 0; - request = a_Dpip_build_cmd("cmd=%s msg=%s", "check_server", server_name); - _MSG("[%s]\n", request); - - if (Dpi_blocking_write(sock_fd, request, strlen(request)) == -1) { - MSG("Dpi_get_server_port: %s\n", dStrerror(errno)); - } else { - ok = 1; - } - dFree(request); - } - if (ok) { - /* Get the reply */ - ok = 0; - if ((rply = Dpi_blocking_read(sock_fd)) == NULL) { - MSG("Dpi_get_server_port: can't read server port from dpid.\n"); - } else { - ok = 1; - } - } - if (ok) { - /* Parse reply */ - ok = 0; - cmd = a_Dpip_get_attr(rply, "cmd"); - if (strcmp(cmd, "send_data") == 0) { - port_str = a_Dpip_get_attr(rply, "msg"); - _MSG("Dpi_get_server_port: rply=%s\n", rply); - _MSG("Dpi_get_server_port: port_str=%s\n", port_str); - dpi_port = strtol(port_str, NULL, 10); - dFree(port_str); - ok = 1; - } - dFree(cmd); - } - dFree(rply); - Dpi_close_fd(sock_fd); - - return ok ? dpi_port : -1; -} - - -static int Dpi_connect_socket(const char *server_name) -{ - struct sockaddr_in sin; - int sock_fd, dpi_port, ret = -1; - char *cmd = NULL; - - /* Query dpid for the port number for this server */ - if ((dpi_port = Dpi_get_server_port(server_name)) == -1) { - _MSG("Dpi_connect_socket:: can't get port number for %s\n", server_name); - return -1; - } - _MSG("Dpi_connect_socket: server=%s port=%d\n", server_name, dpi_port); - - /* connect with this server's socket */ - memset(&sin, 0, sizeof(sin)); - sin.sin_family = AF_INET; - sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - sin.sin_port = htons(dpi_port); - - if ((sock_fd = Dpi_make_socket_fd()) == -1) { - perror("[dpi::socket]"); - } else if (connect(sock_fd, (void*)&sin, sizeof(sin)) == -1) { - MSG("[dpi::connect] errno:%d %s\n", errno, dStrerror(errno)); - - /* send authentication Key (the server closes sock_fd on auth error) */ - } else if (!(cmd = a_Dpip_build_cmd("cmd=%s msg=%s", "auth", SharedKey))) { - MSG_ERR("[Dpi_connect_socket] Can't make auth message.\n"); - } else if (Dpi_blocking_write(sock_fd, cmd, strlen(cmd)) == -1) { - MSG_ERR("[Dpi_connect_socket] Can't send auth message.\n"); - } else { - ret = sock_fd; - } - dFree(cmd); - if (sock_fd != -1 && ret == -1) /* can't send cmd? */ - Dpi_close_fd(sock_fd); - - return ret; -} - - -char *a_Dpi_send_blocking_cmd(const char *server_name, const char *cmd) -{ - int cst, sock_fd; - char *ret = NULL; - - /* test the dpid, and wait a bit for it to start if necessary */ - if ((cst = Dpi_blocking_start_dpid()) != 0) { - return ret; - } - - if ((sock_fd = Dpi_connect_socket(server_name)) == -1) { - MSG_ERR("[a_Dpi_send_blocking_cmd] Can't connect to server.\n"); - } else if (Dpi_blocking_write(sock_fd, cmd, strlen(cmd)) == -1) { - MSG_ERR("[a_Dpi_send_blocking_cmd] Can't send message.\n"); - } else if ((ret = Dpi_blocking_read(sock_fd)) == NULL) { - MSG_ERR("[a_Dpi_send_blocking_cmd] Can't read message.\n"); - } - Dpi_close_fd(sock_fd); - - return ret; -} - - - -void a_Cookies_set(const char *cookie, const char *host, const char *path, - const char *date) -{ - char *cmd, *dpip_tag; - - if (date) - cmd = a_Dpip_build_cmd("cmd=%s cookie=%s host=%s path=%s date=%s", - "set_cookie", cookie, - host, path, date); - else - cmd = a_Dpip_build_cmd("cmd=%s cookie=%s host=%s path=%s", - "set_cookie", cookie, - host, path); - - dpip_tag = a_Dpi_send_blocking_cmd("cookies", cmd); - _MSG("a_Cookies_set: dpip_tag = {%s}\n", dpip_tag); - dFree(dpip_tag); - dFree(cmd); -} - - -char *a_Cookies_get_query(const char *scheme, const char *host, - const char *path) -{ - char *cmd, *dpip_tag, *query; - - cmd = a_Dpip_build_cmd("cmd=%s scheme=%s host=%s path=%s", - "get_cookie", scheme, - host, path); - - /* Get the answer from cookies.dpi */ - _MSG("cookies.c: a_Dpi_send_blocking_cmd cmd = {%s}\n", cmd); - dpip_tag = a_Dpi_send_blocking_cmd("cookies", cmd); - _MSG("cookies.c: after a_Dpi_send_blocking_cmd resp={%s}\n", dpip_tag); - dFree(cmd); - - if (dpip_tag != NULL) { - query = a_Dpip_get_attr(dpip_tag, "cookie"); - dFree(dpip_tag); - } else { - query = dStrdup(""); - } - - return query; -} - -static void expect(int lineno, const char *exp_reply, - const char *scheme, const char *host, const char *path) -{ - char *reply = a_Cookies_get_query(scheme, host, path); - - if (strcmp(reply, exp_reply)) { - MSG("line %d: EXPECTED: %s GOT: %s\n", lineno, exp_reply, reply); - failed++; - } else { - passed++; - } -} - -static void toomany() -{ - a_Cookies_set("1=1", "toomany.com", "/", NULL); - a_Cookies_set("2=1", "toomany.com", "/", NULL); - a_Cookies_set("3=1", "toomany.com", "/", NULL); - a_Cookies_set("4=1", "toomany.com", "/", NULL); - a_Cookies_set("5=1", "toomany.com", "/", NULL); - a_Cookies_set("6=1", "toomany.com", "/", NULL); - a_Cookies_set("7=1", "toomany.com", "/path/", NULL); - a_Cookies_set("8=1", "toomany.com", "/", NULL); - a_Cookies_set("9=1", "toomany.com", "/", NULL); - a_Cookies_set("10=1", "toomany.com", "/", NULL); - a_Cookies_set("11=1", "toomany.com", "/", NULL); - a_Cookies_set("12=1", "toomany.com", "/", NULL); - a_Cookies_set("13=1", "toomany.com", "/", NULL); - a_Cookies_set("14=1", "toomany.com", "/", NULL); - a_Cookies_set("15=1", "toomany.com", "/", NULL); - a_Cookies_set("16=1", "toomany.com", "/", NULL); - a_Cookies_set("17=1", "toomany.com", "/", NULL); - a_Cookies_set("18=1", "toomany.com", "/", NULL); - a_Cookies_set("19=1", "toomany.com", "/", NULL); - a_Cookies_set("20=1", "toomany.com", "/", NULL); - a_Cookies_set("21=1", "toomany.com", "/", NULL); - /* 1 was oldest and discarded */ - expect(__LINE__, "Cookie: 7=1; 2=1; 3=1; 4=1; 5=1; 6=1; 8=1; 9=1; 10=1; " - "11=1; 12=1; 13=1; 14=1; 15=1; 16=1; 17=1; 18=1; 19=1; " - "20=1; 21=1\r\n", "http", "toomany.com", "/path/"); - sleep(1); - /* touch all of them except #7 (path matching) */ - expect(__LINE__, "Cookie: 2=1; 3=1; 4=1; 5=1; 6=1; 8=1; 9=1; 10=1; " - "11=1; 12=1; 13=1; 14=1; 15=1; 16=1; 17=1; 18=1; 19=1; " - "20=1; 21=1\r\n", "http", "toomany.com", "/"); - a_Cookies_set("22=1", "toomany.com", "/", NULL); - /* 7 was oldest and discarded */ - expect(__LINE__, "Cookie: 2=1; 3=1; 4=1; 5=1; 6=1; 8=1; 9=1; 10=1; " - "11=1; 12=1; 13=1; 14=1; 15=1; 16=1; 17=1; 18=1; 19=1; " - "20=1; 21=1; 22=1\r\n", "http", "toomany.com", "/path/"); -} - -static void maxage() -{ - time_t t = time(NULL)+1000; - char *server_date = dStrdup(ctime(&t)); - - a_Cookies_set("name=val; max-age=0", "maxage0.com", "/", NULL); - expect(__LINE__, "", "http", "maxage0.com", "/"); - - a_Cookies_set("name=val; max-age=-0", "maxage-0.com", "/", NULL); - expect(__LINE__, "", "http", "maxage-0.com", "/"); - - a_Cookies_set("name=val; max-age=100", "maxage100.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "maxage100.com", "/"); - - a_Cookies_set("name=val; max-age=-100", "maxage-100.com", "/", NULL); - expect(__LINE__, "", "http", "maxage-100.com", "/"); - - a_Cookies_set("name=val; max-age=2000000000", "maxage2bil.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "maxage2bil.com", "/"); - - a_Cookies_set("name=val; max-age=3000000000", "maxage3bil.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "maxage3bil.com", "/"); - - a_Cookies_set("name=val; max-age=7000000000", "maxage7bil.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "maxage7bil.com", "/"); - - a_Cookies_set("name=val; max-age=-2000000000", "maxage-2bil.com", "/",NULL); - expect(__LINE__, "", "http", "maxage-2bil.com", "/"); - - a_Cookies_set("name=val; max-age=-3000000000", "maxage-3bil.com", "/",NULL); - expect(__LINE__, "", "http", "maxage-3bil.com", "/"); - - a_Cookies_set("name=val; max-age=-7000000000", "maxage-7bil.com", "/",NULL); - expect(__LINE__, "", "http", "maxage-7bil.com", "/"); - - /* just having a server date shouldn't matter */ - - a_Cookies_set("name=val; max-age=0", "maxage0s.com", "/", server_date); - expect(__LINE__, "", "http", "maxage0s.com", "/"); - - a_Cookies_set("name=val; max-age=100", "maxage100s.com", "/", server_date); - expect(__LINE__, "Cookie: name=val\r\n", "http", "maxage100s.com", "/"); - - a_Cookies_set("name=val; max-age=-100", "maxage-100s.com", "/",server_date); - expect(__LINE__, "", "http", "maxage-100s.com", "/"); - - /* MAX-AGE and EXPIRES */ - a_Cookies_set("name=val; max-age=90; expires=Wed Jan 20 01:26:32 2010", - "maxagelater.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "maxagelater.com", "/"); - - a_Cookies_set("name=val; max-age=90; expires=Wed Jan 20 01:26:32 2010", - "maxagelaters.com", "/", server_date); - expect(__LINE__, "Cookie: name=val\r\n", "http", "maxagelaters.com", "/"); - - dFree(server_date); -} - -static void expires_server_ahead() -{ - char *string; - time_t t = time(NULL)+1000; - char *server_date = dStrdup(ctime(&t)); - time_t expt = t + 1000; - char *exp_date = dStrdup(ctime(&expt)); - - string = dStrconcat("name=val; expires=", exp_date, NULL); - a_Cookies_set(string, "e2000s1000.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "e2000s1000.com", "/"); - - a_Cookies_set(string, "e2000s1000s.com", "/", server_date); - expect(__LINE__, "Cookie: name=val\r\n", "http", "e2000s1000s.com", "/"); - - expt = t - 500; /* past for the server, future for us */ - dFree(exp_date); - exp_date = dStrdup(ctime(&expt)); - - string = dStrconcat("name=val; expires=", exp_date, NULL); - a_Cookies_set(string, "e500s1000.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "e500s1000.com", "/"); - - a_Cookies_set(string, "e500s1000s.com", "/", server_date); - expect(__LINE__, "", "http", "e500s1000s.com", "/"); - - expt = t; /* expire at future-for-us server date */ - dFree(exp_date); - exp_date = dStrdup(ctime(&expt)); - - string = dStrconcat("name=val; expires=", exp_date, NULL); - a_Cookies_set(string, "e1000s1000.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "e1000s1000.com", "/"); - - a_Cookies_set(string, "e1000s1000s.com", "/", server_date); - expect(__LINE__, "", "http", "e1000s1000s.com", "/"); - - expt = time(NULL); /* now */ - dFree(exp_date); - exp_date = dStrdup(ctime(&expt)); - - string = dStrconcat("name=val; expires=", exp_date, NULL); - a_Cookies_set(string, "e0s1000.com", "/", NULL); - expect(__LINE__, "", "http", "e0s1000.com", "/"); - - a_Cookies_set(string, "e0s1000s.com", "/", server_date); - expect(__LINE__, "", "http", "e0s1000s.com", "/"); - - dFree(exp_date); - dFree(server_date); -} - -static void expires_server_behind() -{ - char *string; - time_t t = time(NULL)-1000; - char *server_date = dStrdup(ctime(&t)); - - time_t expt = t + 1000; - char *exp_date = dStrdup(ctime(&expt)); - - string = dStrconcat("name=val; expires=", exp_date, NULL); - a_Cookies_set(string, "e0s-1000.com", "/", NULL); - expect(__LINE__, "", "http", "e0s-1000.com", "/"); - - a_Cookies_set(string, "e0s-1000s.com", "/", server_date); - expect(__LINE__, "Cookie: name=val\r\n", "http", "e0s-1000s.com","/"); - - expt = t + 500; /* future for the server, past for us */ - dFree(exp_date); - exp_date = dStrdup(ctime(&expt)); - - string = dStrconcat("name=val; expires=", exp_date, NULL); - a_Cookies_set(string, "e-500s-1000.com", "/", NULL); - expect(__LINE__, "", "http", "e-500s-1000.com", "/"); - - a_Cookies_set(string, "e-500s-1000s.com", "/", server_date); - expect(__LINE__, "Cookie: name=val\r\n", "http", "e-500s-1000s.com", "/"); - - expt = t; /* expire at past-for-us server date */ - dFree(exp_date); - exp_date = dStrdup(ctime(&expt)); - - string = dStrconcat("name=val; expires=", exp_date, NULL); - a_Cookies_set(string, "e-1000s-1000.com", "/", NULL); - expect(__LINE__, "", "http", "e-1000s-1000.com", "/"); - - a_Cookies_set(string, "e-1000s-1000s.com", "/", server_date); - expect(__LINE__, "", "http", "e-1000s-1000s.com", "/"); - - dFree(server_date); - dFree(exp_date); -} - -static void expires_extremes() -{ - time_t t; - char *server_date; - - a_Cookies_set("name=val; expires=Fri Dec 13 20:45:52 1801", "expmin.com", - "/", NULL); - expect(__LINE__, "", "http", "expmin.com", "/"); - - a_Cookies_set("name=val; expires=Fri Dec 13 20:45:52 1901", "expmin2.com", - "/", NULL); - expect(__LINE__, "", "http", "expmin2.com", "/"); - - a_Cookies_set("name=val; expires=Wed Dec 31 23:59:59 1969", "expneg.com", - "/", NULL); - expect(__LINE__, "", "http", "expneg.com", "/"); - - a_Cookies_set("name=val; expires=Thu, 01-January-70 00:00:00 GMT", - "expepoch.com", "/", NULL); - expect(__LINE__, "", "http", "expepoch.com", "/"); - - /* TODO: revisit these tests in a few decades */ - a_Cookies_set("name=val; expires=Tue Jan 19 03:14:07 2038", "expmax.com", - "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "expmax.com", "/"); - - a_Cookies_set("name=val; expires=Sun January 1 00:00:00 2040", - "pastmax.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "pastmax.com", "/"); - - t = time(NULL)+1000; - server_date = dStrdup(ctime(&t)); - - a_Cookies_set("name=val; expires=Fri Dec 13 20:45:52 1901", "expmina.com", - "/", server_date); - expect(__LINE__, "", "http", "expmina.com", "/"); - - a_Cookies_set("name=val; expires=Wed Dec 31 23:59:59 1969", "expnega.com", - "/", server_date); - expect(__LINE__, "", "http", "expnega.com", "/"); - - a_Cookies_set("name=val; expires=Thu Jan 1 00:00:00 1970", "expepocha.com", - "/", server_date); - expect(__LINE__, "", "http", "expepocha.com", "/"); - - a_Cookies_set("name=val; expires=Tue Jan 19 03:14:07 2038", "expmaxa.com", - "/", server_date); - expect(__LINE__, "Cookie: name=val\r\n", "http", "expmaxa.com", "/"); - - a_Cookies_set("name=val; expires=Thu, 01-Jan-40 00:00:00 GMT", - "pastmaxa.com", "/", server_date); - expect(__LINE__, "Cookie: name=val\r\n", "http", "pastmaxa.com", "/"); - - t = time(NULL)-1000; - dFree(server_date); - server_date = dStrdup(ctime(&t)); - - a_Cookies_set("name=val; expires=Fri Dec 13 20:45:52 1901", "expminb.com", - "/", server_date); - expect(__LINE__, "", "http", "expminb.com", "/"); - - a_Cookies_set("name=val; expires=Wed Dec 31 23:59:59 1969", "expnegb.com", - "/", server_date); - expect(__LINE__, "", "http", "expnegb.com", "/"); - - a_Cookies_set("name=val; expires=Thu Jan 1 00:00:00 1970", "expepochb.com", - "/", server_date); - expect(__LINE__, "", "http", "expepochb.com", "/"); - - a_Cookies_set("name=val; expires=Tue Jan 19 03:14:07 2038", "expmaxb.com", - "/", server_date); - expect(__LINE__, "Cookie: name=val\r\n", "http", "expmaxb.com", "/"); - - a_Cookies_set("name=val; expires=Sun Jan 1 00:00:00 2040", "pastmaxb.com", - "/", server_date); - expect(__LINE__, "Cookie: name=val\r\n", "http", "pastmaxb.com", "/"); - - dFree(server_date); -} - -/* - * On 11 Aug 2009, Dan Winship posted to the http-state list with a bunch of - * date formats he'd gathered. Let's work from that. I'll include his comments - * below in double quotes. - */ -static void expires_date_formats() -{ - /* "Revised Netscape spec format" */ - a_Cookies_set("name=val; expires=Mon, 10-Dec-2037 17:02:24 GMT", - "format1.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "format1.com", "/"); - - /* "rfc1123-date" */ - a_Cookies_set("name=val; expires=Wed, 09 Dec 2037 16:27:23 GMT", - "format2.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "format2.com", "/"); - - /* "4-digit-year version of Netscape spec example (see below). - * Seems to only come from sites using PHP, but it's not PHP - * itself; maybe some framework?" - */ - a_Cookies_set("name=val; expires=Thursday, 01-Jan-2036 00:00:00 GMT", - "format3.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "format3.com", "/"); - - /* "The not-quite-asctime format used by Amazon." */ - a_Cookies_set("name=val; expires=Mon Dec 10 16:32:30 2037 GMT", - "format4.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "format4.com", "/"); - - /* "The syntax used by the example text in the Netscape spec, - * although the actual grammar uses abbreviated weekday names" - */ - a_Cookies_set("name=val; expires=Wednesday, 01-Jan-37 00:00:00 GMT", - "format5.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "format5.com", "/"); - - /* "Original Netscape spec" */ - a_Cookies_set("name=val; expires=Mon, 10-Dec-37 20:35:03 GMT", - "format6.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "format6.com", "/"); - - /* "If this had '01 Jan' it would be an rfc1123-date. This *is* a - * legitimate rfc822 date, though not an rfc2822 date because 'GMT' - * is deprecated in favor of '+0000' there." - */ - a_Cookies_set("name=val; expires=Wed, 1 Jan 2035 00:00:00 GMT", - "format7.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "format7.com", "/"); - - /* "Would match the 'weird php' syntax above if it was '08-Dec'" */ - a_Cookies_set("name=val; expires=Saturday, 8-Dec-2035 21:24:09 GMT", - "format8.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "format8.com", "/"); - - /* "God only knows what they were thinking. This came from a hit-tracker - * site, and it's possible that it's just totally broken and no one parses - * it 'correctly'" - */ - a_Cookies_set("name=val; expires=Thu, 31 Dec 23:55:55 2037 GMT", - "format9.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "format9.com", "/"); - - /* "Another kind of rfc822 / nearly-rfc1123 date, using superfluous - * whitespace." - */ - a_Cookies_set("name=val; expires=Sun, 9 Dec 2036 13:42:05 GMT", - "formata.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "formata.com", "/"); - - /* "Another kind of 'lets throw components together at random'. The - * site that this cookie came has apparently been fixed since then. - * (It uses the Netscape spec format now.)" - */ - a_Cookies_set("name=val; expires=Wed Dec 12 2037 08:44:07 GMT-0500 (EST)", - "formatb.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "formatb.com", "/"); - - a_Cookies_set("name=val; expires=Sun, 1-Jan-2035 00:00:00 GMT", - "formatc.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "formatc.com", "/"); - - /* ...and the remaining handful that he encountered once or twice were - * far too broken to deserve our attention (e.g., times like "13:57:2"). - */ - - /* Now here's what github was sending in 2015. */ - a_Cookies_set("name=val; expires=Sat, 07 Jul 2035 21:41:24 -0000", - "formatd.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "formatd.com", "/"); - -} - -static void path() -{ - a_Cookies_set("name=val; path=/", "p1.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "p1.com", "/"); - - a_Cookies_set("name=val; path=/dir1", "p2.com", "/dir2", NULL); - expect(__LINE__, "", "http", "p2.com", "/"); - expect(__LINE__, "", "http", "p2.com", "/d"); - expect(__LINE__, "Cookie: name=val\r\n", "http", "p2.com", "/dir1"); - expect(__LINE__, "Cookie: name=val\r\n", "http", "p2.com", "/dir1/"); - expect(__LINE__, "", "http", "p2.com", "/dir2"); - expect(__LINE__, "", "http", "p2.com", "/dir11"); - - a_Cookies_set("name=val; path=dir1", "p3.com", "/dir2", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "p3.com", "/"); - expect(__LINE__, "Cookie: name=val\r\n", "http", "p3.com", "/dir1"); - expect(__LINE__, "Cookie: name=val\r\n", "http", "p3.com", "/dir2"); - - a_Cookies_set("name=val; path=/dir1/", "p4.com", "/dir2", NULL); - expect(__LINE__, "", "http", "p4.com", "/"); - /* this next one strikes me as a bit odd, personally, but I suppose it's not - * a big deal */ - expect(__LINE__, "", "http", "p4.com", "/dir1"); - expect(__LINE__, "", "http", "p4.com", "/dir11"); - expect(__LINE__, "Cookie: name=val\r\n", "http", "p4.com", "/dir1/"); - expect(__LINE__, "Cookie: name=val\r\n", "http", "p4.com", "/dir1/sub"); - - a_Cookies_set("name=val", "p5.com", "/dir/subdir", NULL); - expect(__LINE__, "", "http", "p5.com", "/"); - expect(__LINE__, "", "http", "p5.com", "/bir"); - expect(__LINE__, "Cookie: name=val\r\n", "http", "p5.com", "/dir"); - expect(__LINE__, "Cookie: name=val\r\n", "http", "p5.com", "/dir/"); - - a_Cookies_set("name=val", "p6.com", "/dir/subdir/", NULL); - expect(__LINE__, "", "http", "p6.com", "/dir/"); - expect(__LINE__, "Cookie: name=val\r\n", "http", "p6.com", "/dir/subdir"); - expect(__LINE__, "Cookie: name=val\r\n", "http", "p6.com", "/dir/subdir/s"); -} - -int Cookies_rc_check() -{ - const int line_maxlen = 4096; - FILE *stream; - char *filename; - char line[line_maxlen]; - bool_t default_deny = TRUE; - - /* Get a file pointer */ - filename = dStrconcat(dGethomedir(), "/.dillo/cookiesrc", NULL); - stream = fopen(filename, "r"); - dFree(filename); - - if (!stream) { - MSG_ERR("Cannot run test; cannot open cookiesrc.\n"); - return 1; - } - - /* Get all lines in the file */ - while (!feof(stream)) { - char *rc; - - line[0] = '\0'; - rc = fgets(line, line_maxlen, stream); - if (!rc && ferror(stream)) { - MSG_ERR("Error while reading rule from cookiesrc: %s\n", - dStrerror(errno)); - fclose(stream); - return 2; - } - - /* Remove leading and trailing whitespaces */ - dStrstrip(line); - - if (line[0] != '\0' && line[0] != '#') { - int domain_end, i = 0; - const char *rule; - - /* Get the domain */ - while (line[i] != '\0' && !dIsspace(line[i])) - i++; - domain_end = i; - - /* Skip past whitespace */ - while (dIsspace(line[i])) - i++; - line[domain_end] = '\0'; - - /* Get the rule */ - rule = line + i; - while (line[i] != '\0' && !dIsspace(line[i])) - i++; - line[i] = '\0'; - - if (!dStrAsciiCasecmp(line, "DEFAULT")) { - if (!dStrAsciiCasecmp(rule, "ACCEPT") || - !dStrAsciiCasecmp(rule, "ACCEPT_SESSION")) - default_deny = FALSE; - } else { - if (!dStrAsciiCasecmp(rule, "DENY")) - MSG_WARN("DENY rules in cookiesrc can interfere with test.\n"); - } - } - } - fclose(stream); - - if (default_deny) { - MSG_ERR("Cannot run test with cookiesrc default of deny.\n"); - return 1; - } else { - return 0; - } -} - -int main() -{ - if (Cookies_rc_check()) { - MSG("If you change cookiesrc, remember to stop the DPIs via dpidc.\n"); - return 1; - } - - a_Cookies_set("name=val", "ordinary.com", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "ordinary.com", "/"); - - toomany(); - maxage(); - expires_server_ahead(); - expires_server_behind(); - expires_extremes(); - expires_date_formats(); - - a_Cookies_set("name=val; expires=\"Sun Jan 10 00:00:00 2038\"", - "quoted-date.org", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "quoted-date.org", "/"); - - a_Cookies_set("name=val; expires=\"Sun Jan 11 00:00:00 1970\"", - "quoted-pastdate.org", "/", NULL); - expect(__LINE__, "", "http", "quoted-pastdate.org", "/"); - - path(); - - /* LEADING/TRAILING DOTS AND A LITTLE PUBLIC SUFFIX */ - a_Cookies_set("name=val; domain=co.il", "www.co.il", "/", NULL); - expect(__LINE__, "", "http", "www.co.il", "/"); - - a_Cookies_set("name=val; domain=.co.il", "www.co.il", "/", NULL); - expect(__LINE__, "", "http", "www.co.il", "/"); - - a_Cookies_set("name=val; domain=co.il.", "www.co.il.", "/", NULL); - expect(__LINE__, "", "http", "www.co.il.", "/"); - - a_Cookies_set("name=val; domain=.co.il.", "www.co.il.", "/", NULL); - expect(__LINE__, "", "http", ".www.co.il.", "/"); - - a_Cookies_set("name=val; domain=co.org", "www.co.org", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "www.co.org", "/"); - - a_Cookies_set("name=val; domain=.cp.org", "www.cp.org", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "www.cp.org", "/"); - - - /* DOTDOMAIN */ - a_Cookies_set("name=val; domain=.dotdomain.org", "dotdomain.org", "/", - NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "dotdomain.org", "/"); - expect(__LINE__, "Cookie: name=val\r\n", "http", "www.dotdomain.org", "/"); - - /* HOST_ONLY */ - a_Cookies_set("name=val; domain=.hostonly.org", "hostonly.org", "/", NULL); - a_Cookies_set("name2=val2", "hostonly.org", "/", NULL); - a_Cookies_set("name3=val3; domain=hostonly.org", "hostonly.org", "/", NULL); - expect(__LINE__, "Cookie: name=val; name2=val2; name3=val3\r\n", "http", - "hostonly.org", "/"); - a_Cookies_set("name=new; domain=.hostonly.org", "hostonly.org", "/", NULL); - expect(__LINE__, "Cookie: name=new; name2=val2; name3=val3\r\n", "http", - "hostonly.org", "/"); - a_Cookies_set("name2=new2", "hostonly.org", "/", NULL); - expect(__LINE__, "Cookie: name=new; name2=new2; name3=val3\r\n", "http", - "hostonly.org", "/"); - a_Cookies_set("name3=new3; domain=hostonly.org", "hostonly.org", "/", NULL); - expect(__LINE__, "Cookie: name=new; name2=new2; name3=new3\r\n", "http", - "hostonly.org", "/"); - - /* SUBDOMAIN */ - a_Cookies_set("name=val; domain=www.subdomain.com", "subdomain.com", "/", - NULL); - a_Cookies_set("name=val; domain=.www.subdomain.com", "subdomain.com", "/", - NULL); - expect(__LINE__, "", "http", "subdomain.com", "/"); - expect(__LINE__, "", "http", "www.subdomain.com", "/"); - - /* SUPERDOMAIN(?) */ - a_Cookies_set("name=val; domain=.supdomain.com", "www.supdomain.com", "/", - NULL); - a_Cookies_set("name2=val2; domain=supdomain.com", "www.supdomain.com", "/", - NULL); - expect(__LINE__, "Cookie: name=val; name2=val2\r\n", "http", - "sub2.sub.supdomain.com", "/"); - expect(__LINE__, "Cookie: name=val; name2=val2\r\n", "http", - "www.supdomain.com", "/"); - expect(__LINE__, "Cookie: name=val; name2=val2\r\n", "http", - "supdomain.com", "/"); - - /* UNRELATED */ - a_Cookies_set("name=val; domain=another.com", "unrelated.com", "/", NULL); - expect(__LINE__, "", "http", "another.com", "/"); - a_Cookies_set("name=val; domain=another.com", "a.org", "/", NULL); - expect(__LINE__, "", "http", "another.com", "/"); - a_Cookies_set("name=val; domain=another.com", "badguys.com", "/", NULL); - expect(__LINE__, "", "http", "another.com", "/"); - a_Cookies_set("name=val; domain=another.com", "more.badguys.com", "/", - NULL); - expect(__LINE__, "", "http", "another.com", "/"); - a_Cookies_set("name=val; domain=another.com", "verybadguys.com", "/", NULL); - expect(__LINE__, "", "http", "another.com", "/"); - - a_Cookies_set("name=val; domain=similar.com", "imilar.com", "/", NULL); - a_Cookies_set("name2=val2; domain=similar.com", "ssimilar.com", "/", NULL); - a_Cookies_set("name3=val3; domain=.similar.com", "imilar.com", "/", NULL); - a_Cookies_set("name4=val4; domain=.similar.com", "timilar.com", "/", NULL); - a_Cookies_set("name4=val4; domain=.similar.com", "tiimilar.com", "/", NULL); - expect(__LINE__, "", "http", "similar.com", "/"); - - /* SECURE */ - a_Cookies_set("name=val; secure", "secure.com", "/", NULL); - expect(__LINE__, "", "http", "secure.com", "/"); - expect(__LINE__, "Cookie: name=val\r\n", "https", "secure.com", "/"); - - /* HTTPONLY */ - a_Cookies_set("name=val; HttpOnly", "httponly.net", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "httponly.net", "/"); - - /* GIBBERISH ATTR IGNORED */ - a_Cookies_set("name=val; ldkfals", "gibberish.net", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "gibberish.net", "/"); - - /* WHITESPACE/DELIMITERS */ - a_Cookies_set(" name=val ", "whitespace.net", "/", NULL); - a_Cookies_set("name2=val2;", "whitespace.net", "/", NULL); - expect(__LINE__, "Cookie: name=val; name2=val2\r\n", "http", - "whitespace.net", "/"); - - /* NAMELESS/VALUELESS */ - a_Cookies_set("value", "nonameval.org", "/", NULL); - a_Cookies_set("name=", "nonameval.org", "/", NULL); - a_Cookies_set("name2= ", "nonameval.org", "/", NULL); - expect(__LINE__, "Cookie: name=; name2=\r\n", "http", "nonameval.org", "/"); - a_Cookies_set("=val2", "nonameval.org", "/", NULL); - expect(__LINE__, "Cookie: name=; name2=\r\n", "http", "nonameval.org", "/"); - - - /* SOME IP ADDRS */ - - a_Cookies_set("name=val", "FEDC:BA98:7654:3210:FEDC:BA98:7654:3210", - "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", - "FEDC:BA98:7654:3210:FEDC:BA98:7654:3210", "/"); - - a_Cookies_set("name=val", "::FFFF:129.144.52.38", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "::FFFF:129.144.52.38", - "/"); - - a_Cookies_set("name=val", "127.0.0.1", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "127.0.0.1", "/"); - - a_Cookies_set("name=val; domain=128.0.0.1", "128.0.0.1", "/", NULL); - expect(__LINE__, "Cookie: name=val\r\n", "http", "128.0.0.1", "/"); - - a_Cookies_set("name=val; domain=130.0.0.1", "129.0.0.1", "/", NULL); - expect(__LINE__, "", "http", "129.0.0.1", "/"); - expect(__LINE__, "", "http", "130.0.0.1", "/"); - - a_Cookies_set("name=val", "2.0.0.1", "/", NULL); - a_Cookies_set("name=bad; domain=22.0.0.1", "2.0.0.1", "/", NULL); - a_Cookies_set("name=bad; domain=.0.0.1", "2.0.0.1", "/", NULL); - a_Cookies_set("name=bad; domain=not-ip.org", "2.0.0.1", "/", NULL); - expect(__LINE__, "", "http", "22.0.0.1", "/"); - expect(__LINE__, "", "http", "not-ip.org", "/"); - expect(__LINE__, "Cookie: name=val\r\n", "http", "2.0.0.1", "/"); - -#if 0 -HAD BEEN PLAYING AROUND WITH REAL PUBLIC SUFFIX -a_Cookies_set("name=val;domain=sub.sub.yokohama.jp", "sub.sub.yokohama.jp", "/", NULL); -MSG("sub sub yokohama should work: %s\n", - a_Cookies_get_query("http", "sub.sub.yokohama.jp", "/")); -a_Cookies_set("name=val; domain=sub.tokyo.jp", "sub.sub.tokyo.jp", "/", NULL); -MSG("sub tokyo jp should fail: %s\n", - a_Cookies_get_query("http", "sub.sub.tokyo.jp", "/")); -a_Cookies_set("name=val; domain=pref.chiba.jp", "sub.pref.chiba.jp", "/", NULL); -MSG("pref chiba jp should succeed: %s\n", - a_Cookies_get_query("http", "sub.pref.chiba.jp", "/")); -a_Cookies_set("name=val; domain=org", "www.dillo.org", "/", NULL); -a_Cookies_set("name=val; domain=org", "dillo.org", "/", NULL); -a_Cookies_set("name=val; domain=org", ".dillo.org", "/", NULL); -a_Cookies_set("name=val; domain=org.", ".dillo.org", "/", NULL); -a_Cookies_set("name=val; domain=org.", ".dillo.org.", "/", NULL); -MSG("org should fail: %s\n", - a_Cookies_get_query("http", "www.dillo.org", "/")); -#endif - - MSG("TESTS: passed: %u failed: %u\n", passed, failed); - - MSG("Now that everything is full of fake cookies, you should run " - "'dpidc stop', plus delete cookies.txt if necessary.\n"); - - return 0; -} diff --git a/test/doxygen.html b/test/doxygen.html deleted file mode 100644 index 24d7326e..00000000 --- a/test/doxygen.html +++ /dev/null @@ -1,477 +0,0 @@ - - - - - - - -avr-libc: AVR Libc - - - - - - - - - - - -
-
- - - - - - - -
-
avr-libc -  2.0.0 -
-
Standard C library for AVR-GCC
-
- - - - - - -
-
- - - - - - - - - - - - - -

AVR Libc Home Page

AVRs

AVR Libc Development Pages

Main Page

User Manual

Library Reference

FAQ

Example Projects

-
- - - -
- -
-
- - -
- -
- -
-
-
AVR Libc
-
-
-

-Introduction

-

The latest version of this document is always available from http://savannah.nongnu.org/projects/avr-libc/

-

The AVR Libc package provides a subset of the standard C library for Atmel AVR 8-bit RISC microcontrollers. In addition, the library provides the basic startup code needed by most applications.

-

There is a wealth of information in this document which goes beyond simply describing the interfaces and routines provided by the library. We hope that this document provides enough information to get a new AVR developer up to speed quickly using the freely available development tools: binutils, gcc avr-libc and many others.

-

If you find yourself stuck on a problem which this document doesn't quite address, you may wish to post a message to the avr-gcc mailing list. Most of the developers of the AVR binutils and gcc ports in addition to the devleopers of avr-libc subscribe to the list, so you will usually be able to get your problem resolved. You can subscribe to the list at http://lists.nongnu.org/mailman/listinfo/avr-gcc-list . Before posting to the list, you might want to try reading the Frequently Asked Questions chapter of this document.

-
Note
If you think you've found a bug, or have a suggestion for an improvement, either in this documentation or in the library itself, please use the bug tracker at https://savannah.nongnu.org/bugs/?group=avr-libc to ensure the issue won't be forgotten.
-

-General information about this library

-

In general, it has been the goal to stick as best as possible to established standards while implementing this library. Commonly, this refers to the C library as described by the ANSI X3.159-1989 and ISO/IEC 9899:1990 ("ANSI-C") standard, as well as parts of their successor ISO/IEC 9899:1999 ("C99"). Some additions have been inspired by other standards like IEEE Std 1003.1-1988 ("POSIX.1"), while other extensions are purely AVR-specific (like the entire program-space string interface).

-

Unless otherwise noted, functions of this library are not guaranteed to be reentrant. In particular, any functions that store local state are known to be non-reentrant, as well as functions that manipulate IO registers like the EEPROM access routines. If these functions are used within both standard and interrupt contexts undefined behaviour will result. See the FAQ for a more detailed discussion.

-

-Supported Devices

-

-

The following is a list of AVR devices currently supported by the library. Note that actual support for some newer devices depends on the ability of the compiler/assembler to support these devices at library compile-time.

-
megaAVR Devices:
-
    -
  • atmega103
  • -
  • atmega128
  • -
  • atmega128a
  • -
  • atmega1280
  • -
  • atmega1281
  • -
  • atmega1284
  • -
  • atmega1284p
  • -
  • atmega16
  • -
  • atmega161
  • -
  • atmega162
  • -
  • atmega163
  • -
  • atmega164a
  • -
  • atmega164p
  • -
  • atmega164pa
  • -
  • atmega165
  • -
  • atmega165a
  • -
  • atmega165p
  • -
  • atmega165pa
  • -
  • atmega168
  • -
  • atmega168a
  • -
  • atmega168p
  • -
  • atmega168pa
  • -
  • atmega16a
  • -
  • atmega2560
  • -
  • atmega2561
  • -
  • atmega32
  • -
  • atmega32a
  • -
  • atmega323
  • -
  • atmega324a
  • -
  • atmega324p
  • -
  • atmega324pa
  • -
  • atmega325
  • -
  • atmega325a
  • -
  • atmega325p
  • -
  • atmega325pa
  • -
  • atmega3250
  • -
  • atmega3250a
  • -
  • atmega3250p
  • -
  • atmega3250pa
  • -
  • atmega328
  • -
  • atmega328p
  • -
  • atmega48
  • -
  • atmega48a
  • -
  • atmega48pa
  • -
  • atmega48pb
  • -
  • atmega48p
  • -
  • atmega64
  • -
  • atmega64a
  • -
  • atmega640
  • -
  • atmega644
  • -
  • atmega644a
  • -
  • atmega644p
  • -
  • atmega644pa
  • -
  • atmega645
  • -
  • atmega645a
  • -
  • atmega645p
  • -
  • atmega6450
  • -
  • atmega6450a
  • -
  • atmega6450p
  • -
  • atmega8
  • -
  • atmega8a
  • -
  • atmega88
  • -
  • atmega88a
  • -
  • atmega88p
  • -
  • atmega88pa
  • -
  • atmega88pb
  • -
  • atmega8515
  • -
  • atmega8535
  • -
-
tinyAVR Devices:
-
    -
  • attiny4
  • -
  • attiny5
  • -
  • attiny10
  • -
  • attiny11 [1]
  • -
  • attiny12 [1]
  • -
  • attiny13
  • -
  • attiny13a
  • -
  • attiny15 [1]
  • -
  • attiny20
  • -
  • attiny22
  • -
  • attiny24
  • -
  • attiny24a
  • -
  • attiny25
  • -
  • attiny26
  • -
  • attiny261
  • -
  • attiny261a
  • -
  • attiny28 [1]
  • -
  • attiny2313
  • -
  • attiny2313a
  • -
  • attiny40
  • -
  • attiny4313
  • -
  • attiny43u
  • -
  • attiny44
  • -
  • attiny44a
  • -
  • attiny441
  • -
  • attiny45
  • -
  • attiny461
  • -
  • attiny461a
  • -
  • attiny48
  • -
  • attiny828
  • -
  • attiny84
  • -
  • attiny84a
  • -
  • attiny841
  • -
  • attiny85
  • -
  • attiny861
  • -
  • attiny861a
  • -
  • attiny87
  • -
  • attiny88
  • -
  • attiny1634
  • -
-
Automotive AVR Devices:
-
    -
  • atmega16m1
  • -
  • atmega32c1
  • -
  • atmega32m1
  • -
  • atmega64c1
  • -
  • atmega64m1
  • -
  • attiny167
  • -
  • ata5505
  • -
  • ata5272
  • -
  • ata5702m322
  • -
  • ata5782
  • -
  • ata5790
  • -
  • ata5790n
  • -
  • ata5831
  • -
  • ata5795
  • -
  • ata6612c
  • -
  • ata6613c
  • -
  • ata6614q
  • -
  • ata6616c
  • -
  • ata6617c
  • -
  • ata664251
  • -
-
CAN AVR Devices:
-
    -
  • at90can32
  • -
  • at90can64
  • -
  • at90can128
  • -
-
LCD AVR Devices:
-
    -
  • atmega169
  • -
  • atmega169a
  • -
  • atmega169p
  • -
  • atmega169pa
  • -
  • atmega329
  • -
  • atmega329a
  • -
  • atmega329p
  • -
  • atmega329pa
  • -
  • atmega3290
  • -
  • atmega3290a
  • -
  • atmega3290p
  • -
  • atmega3290pa
  • -
  • atmega649
  • -
  • atmega649a
  • -
  • atmega6490
  • -
  • atmega6490a
  • -
  • atmega6490p
  • -
  • atmega649p
  • -
-
Lighting AVR Devices:
-
    -
  • at90pwm1
  • -
  • at90pwm2
  • -
  • at90pwm2b
  • -
  • at90pwm216
  • -
  • at90pwm3
  • -
  • at90pwm3b
  • -
  • at90pwm316
  • -
  • at90pwm161
  • -
  • at90pwm81
  • -
-
Smart Battery AVR Devices:
-
    -
  • atmega8hva
  • -
  • atmega16hva
  • -
  • atmega16hva2
  • -
  • atmega16hvb
  • -
  • atmega16hvbrevb
  • -
  • atmega32hvb
  • -
  • atmega32hvbrevb
  • -
  • atmega64hve
  • -
  • atmega64hve2
  • -
  • atmega406
  • -
-
USB AVR Devices:
-
    -
  • at90usb82
  • -
  • at90usb162
  • -
  • at90usb646
  • -
  • at90usb647
  • -
  • at90usb1286
  • -
  • at90usb1287
  • -
  • atmega8u2
  • -
  • atmega16u2
  • -
  • atmega16u4
  • -
  • atmega32u2
  • -
  • atmega32u4
  • -
  • atmega32u6
  • -
-
XMEGA Devices:
-
    -
  • atxmega8e5
  • -
  • atxmega16a4
  • -
  • atxmega16a4u
  • -
  • atxmega16c4
  • -
  • atxmega16d4
  • -
  • atxmega32a4
  • -
  • atxmega32a4u
  • -
  • atxmega32c3
  • -
  • atxmega32c4
  • -
  • atxmega32d3
  • -
  • atxmega32d4
  • -
  • atxmega32e5
  • -
  • atxmega64a1
  • -
  • atxmega64a1u
  • -
  • atxmega64a3
  • -
  • atxmega64a3u
  • -
  • atxmega64a4u
  • -
  • atxmega64b1
  • -
  • atxmega64b3
  • -
  • atxmega64c3
  • -
  • atxmega64d3
  • -
  • atxmega64d4
  • -
  • atxmega128a1
  • -
  • atxmega128a1u
  • -
  • atxmega128a3
  • -
  • atxmega128a3u
  • -
  • atxmega128a4u
  • -
  • atxmega128b1
  • -
  • atxmega128b3
  • -
  • atxmega128c3
  • -
  • atxmega128d3
  • -
  • atxmega128d4
  • -
  • atxmega192a3
  • -
  • atxmega192a3u
  • -
  • atxmega192c3
  • -
  • atxmega192d3
  • -
  • atxmega256a3
  • -
  • atxmega256a3u
  • -
  • atxmega256a3b
  • -
  • atxmega256a3bu
  • -
  • atxmega256c3
  • -
  • atxmega256d3
  • -
  • atxmega384c3
  • -
  • atxmega384d3
  • -
-
Wireless AVR devices:
-
    -
  • atmega644rfr2
  • -
  • atmega64rfr2
  • -
  • atmega128rfa1
  • -
  • atmega1284rfr2
  • -
  • atmega128rfr2
  • -
  • atmega2564rfr2
  • -
  • atmega256rfr2
  • -
-
Miscellaneous Devices:
-
    -
  • at94K [2]
  • -
  • at76c711 [3]
  • -
  • at43usb320
  • -
  • at43usb355
  • -
  • at86rf401
  • -
  • at90scr100
  • -
  • ata6285
  • -
  • ata6286
  • -
  • ata6289
  • -
  • m3000 [4]
  • -
-
Classic AVR Devices:
-
    -
  • at90s1200 [1]
  • -
  • at90s2313
  • -
  • at90s2323
  • -
  • at90s2333
  • -
  • at90s2343
  • -
  • at90s4414
  • -
  • at90s4433
  • -
  • at90s4434
  • -
  • at90s8515
  • -
  • at90c8534
  • -
  • at90s8535
  • -
-

Note
[1] Assembly only. There is no direct support for these devices to be programmed in C since they do not have a RAM based stack. Still, it could be possible to program them in C, see the FAQ for an option.
-

Note
[2] The at94K devices are a combination of FPGA and AVR microcontroller. [TRoth-2002/11/12: Not sure of the level of support for these. More information would be welcomed.]
-

Note
[3] The at76c711 is a USB to fast serial interface bridge chip using an AVR core.
-

Note
[4] The m3000 is a motor controller AVR ASIC from Intelligent Motion Systems (IMS) / Schneider Electric.
-

-avr-libc License

-

avr-libc can be freely used and redistributed, provided the following license conditions are met.

-
Portions of avr-libc are Copyright (c) 1999-2016
-Werner Boellmann,
-Dean Camera,
-Pieter Conradie,
-Brian Dean,
-Keith Gudger,
-Wouter van Gulik,
-Bjoern Haase,
-Steinar Haugen,
-Peter Jansen,
-Reinhard Jessich,
-Magnus Johansson,
-Harald Kipp,
-Carlos Lamas,
-Cliff Lawson,
-Artur Lipowski,
-Marek Michalkiewicz,
-Todd C. Miller,
-Rich Neswold,
-Colin O'Flynn,
-Bob Paddock,
-Andrey Pashchenko,
-Reiner Patommel,
-Florin-Viorel Petrov,
-Alexander Popov,
-Michael Rickman,
-Theodore A. Roth,
-Juergen Schilling,
-Philip Soeberg,
-Anatoly Sokolov,
-Nils Kristian Strom,
-Michael Stumpf,
-Stefan Swanepoel,
-Helmut Wallner,
-Eric B. Weddington,
-Joerg Wunsch,
-Dmitry Xmelkov,
-Atmel Corporation,
-egnite Software GmbH,
-The Regents of the University of California. 
-All rights reserved.
-
-   Redistribution and use in source and binary forms, with or without
-   modification, are permitted provided that the following conditions are met:
-
-   * Redistributions of source code must retain the above copyright
-     notice, this list of conditions and the following disclaimer.
-
-   * Redistributions in binary form must reproduce the above copyright
-     notice, this list of conditions and the following disclaimer in
-     the documentation and/or other materials provided with the
-     distribution.
-
-   * Neither the name of the copyright holders nor the names of
-     contributors may be used to endorse or promote products derived
-     from this software without specific prior written permission.
-
-   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-   POSSIBILITY OF SUCH DAMAGE.
-
- - - - - diff --git a/test/dw/Makefile.am b/test/dw/Makefile.am new file mode 100644 index 00000000..39bb8440 --- /dev/null +++ b/test/dw/Makefile.am @@ -0,0 +1,63 @@ +AM_CPPFLAGS = \ + -I$(top_srcdir) \ + -DCUR_WORKING_DIR='"@BASE_CUR_WORKING_DIR@/test"' + +AM_CFLAGS = @LIBFLTK_CFLAGS@ +AM_CXXFLAGS = @LIBFLTK_CXXFLAGS@ + +LDADD = \ + $(top_builddir)/dw/libDw-widgets.a \ + $(top_builddir)/dw/libDw-fltk.a \ + $(top_builddir)/dw/libDw-core.a \ + $(top_builddir)/lout/liblout.a \ + @LIBFLTK_LIBS@ @LIBX11_LIBS@ + +check_PROGRAMS = \ + dw-anchors-test \ + dw-border-test \ + dw-example \ + dw-find-test \ + dw-float-test \ + dw-image-background \ + dw-images-scaled \ + dw-images-scaled2 \ + dw-images-simple \ + dw-imgbuf-mem-test \ + dw-links \ + dw-links2 \ + dw-lists \ + dw-resource-test \ + dw-simple-container-test \ + dw-table \ + dw-table-aligned \ + dw-ui-test + +# Don't run most tests yet, as they require graphical display and human +# intervention. +TESTS = \ + dw-imgbuf-mem-test + +dw_anchors_test_SOURCES = dw_anchors_test.cc +dw_border_test_SOURCES = dw_border_test.cc +dw_example_SOURCES = dw_example.cc +dw_find_test_SOURCES = dw_find_test.cc +dw_float_test_SOURCES = dw_float_test.cc +dw_links_SOURCES = dw_links.cc +dw_links2_SOURCES = dw_links2.cc +dw_image_background_SOURCES = dw_image_background.cc +dw_images_simple_SOURCES = dw_images_simple.cc +dw_images_scaled_SOURCES = dw_images_scaled.cc +dw_images_scaled2_SOURCES = dw_images_scaled2.cc +dw_lists_SOURCES = dw_lists.cc +dw_simple_container_test_SOURCES = \ + dw_simple_container.hh \ + dw_simple_container.cc \ + dw_simple_container_test.cc +dw_table_aligned_SOURCES = dw_table_aligned.cc +dw_table_SOURCES = dw_table.cc +dw_imgbuf_mem_test_SOURCES = dw_imgbuf_mem_test.cc +dw_resource_test_SOURCES = dw_resource_test.cc +dw_ui_test_SOURCES = \ + dw_ui_test.cc \ + form.cc \ + form.hh diff --git a/test/dw/dw_anchors_test.cc b/test/dw/dw_anchors_test.cc new file mode 100644 index 00000000..d7201053 --- /dev/null +++ b/test/dw/dw_anchors_test.cc @@ -0,0 +1,164 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/textblock.hh" + +using namespace lout::container::typed; +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +static FltkPlatform *platform; +static Layout *layout; +static Fl_Window *window; +static FltkViewport *viewport; +static Style *topWidgetStyle, *widgetStyle, *wordStyle, *headingStyle; +static Textblock *topTextblock = NULL; +static int textblockNo = 0; + +static const char *numbers[10] = { + "one", "two", "three", "four", "five", + "six", "seven", "eight", "nine", "ten" +}; + +static void anchorCallback (Fl_Widget *widget, void *data) +{ + layout->setAnchor (numbers[(long)data]); +} + +static void textTimeout (void *data) +{ + Textblock *oldTop = topTextblock; + topTextblock = new Textblock (false); + + if (oldTop) { + oldTop->addLinebreak (wordStyle); + oldTop->addWidget (topTextblock, widgetStyle); + } else { + topTextblock->setStyle (topWidgetStyle); + layout->setWidget (topTextblock); + } + + topTextblock->addAnchor (numbers[textblockNo], headingStyle); + + char buf[16]; + strcpy (buf, numbers[textblockNo]); + buf[0] = lout::misc::AsciiToupper (buf[0]); + topTextblock->addText (buf, headingStyle); + topTextblock->addParbreak (5, headingStyle); + + for (int i = 0; i < 30; i++) { + strcpy (buf, numbers[textblockNo]); + if (i == 0) + buf[0] = lout::misc::AsciiToupper (buf[0]); + strcat (buf, i == 29 ? "." : ","); + + topTextblock->addText (buf, wordStyle); + topTextblock->addSpace (wordStyle); + } + + topTextblock->flush (); + + textblockNo++; + if (textblockNo < 10) + Fl::repeat_timeout (1, textTimeout, NULL); + +} + +int main(int argc, char **argv) +{ + char *buttonLabel[10]; + + platform = new FltkPlatform (); + layout = new Layout (platform); + + window = new Fl_Window(250, 200, "Dw Anchors Test"); + window->box(FL_NO_BOX); + window->begin(); + + viewport = new FltkViewport (50, 0, 200, 200); + viewport->end(); + layout->attachView (viewport); + + for (int i = 0; i < 10; i++) { + char buf[16]; + strcpy (buf, numbers[i]); + buf[0] = lout::misc::AsciiToupper (buf[0]); + buttonLabel[i] = strdup(buf); + Fl_Button *button = new Fl_Button(0, 20 * i, 50, 20, buttonLabel[i]); + button->callback (anchorCallback, (void*)(long)i); + button->when (FL_WHEN_RELEASE); + } + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + styleAttrs.margin.setVal (5); + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + topWidgetStyle = Style::create (&styleAttrs); + + styleAttrs.margin.left = 20; + styleAttrs.margin.right = 0; + styleAttrs.backgroundColor = NULL; + widgetStyle = Style::create (&styleAttrs); + + styleAttrs.margin.left = 0; + wordStyle = Style::create (&styleAttrs); + + fontAttrs.size = 28; + fontAttrs.weight = 700; + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + headingStyle = Style::create (&styleAttrs); + + Fl::add_timeout (0, textTimeout, NULL); + + window->resizable(viewport); + window->show(); + + int errorCode = Fl::run(); + + topWidgetStyle->unref (); + widgetStyle->unref (); + wordStyle->unref (); + headingStyle->unref (); + for (int i = 0; i < 10; i++) + free(buttonLabel[i]); + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_border_test.cc b/test/dw/dw_border_test.cc new file mode 100644 index 00000000..ec5a09a5 --- /dev/null +++ b/test/dw/dw_border_test.cc @@ -0,0 +1,127 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/textblock.hh" +#include "../dw/listitem.hh" + +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +int main(int argc, char **argv) +{ + FltkPlatform *platform = new FltkPlatform (); + Layout *layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(200, 300, "Dw Border Test"); + window->box(FL_NO_BOX); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, 0, 200, 300); + layout->attachView (viewport); + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + styleAttrs.borderWidth.setVal (2); + styleAttrs.setBorderColor (Color::create (layout, 0xffffff)); + styleAttrs.setBorderStyle (BORDER_INSET); + styleAttrs.padding.setVal (5); + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + + Style *widgetStyle1 = Style::create (&styleAttrs); + + styleAttrs.backgroundColor = Color::create (layout, 0xffff80); + styleAttrs.margin.setVal (0); + styleAttrs.borderWidth.setVal (1); + styleAttrs.setBorderColor (Color::create (layout, 0x4040ff)); + styleAttrs.setBorderStyle (BORDER_SOLID); + styleAttrs.padding.setVal (1); + + Style *widgetStyle2 = Style::create (&styleAttrs); + + Textblock *textblock1 = new Textblock (false); + textblock1->setStyle (widgetStyle1); + layout->setWidget (textblock1); + + widgetStyle1->unref(); + + styleAttrs.borderWidth.setVal (0); + styleAttrs.padding.setVal (0); + styleAttrs.backgroundColor = NULL; + styleAttrs.cursor = CURSOR_TEXT; + + Style *wordStyle = Style::create (&styleAttrs); + + const char *words1[] = { "Some", "random", "text.", NULL }; + const char *words2[] = { "A", "nested", "paragraph.", NULL }; + + for(int i = 0; words1[i]; i++) { + if(i != 0) + textblock1->addSpace (wordStyle); + textblock1->addText (words1[i], wordStyle); + } + + for(int i = 0; i < 1; i++) { + textblock1->addParbreak(0, wordStyle); + + Textblock *textblock2 = new Textblock (false); + textblock1->addWidget (textblock2, widgetStyle2); + + for(int j = 0; words2[j]; j++) { + if(j != 0) + textblock2->addSpace (wordStyle); + textblock2->addText (words2[j], wordStyle); + } + + textblock2->flush (); + } + + textblock1->flush (); + + window->resizable(viewport); + window->show(); + int errorCode = Fl::run(); + + widgetStyle2->unref(); + wordStyle->unref(); + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_example.cc b/test/dw/dw_example.cc new file mode 100644 index 00000000..259650cf --- /dev/null +++ b/test/dw/dw_example.cc @@ -0,0 +1,105 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/textblock.hh" + + +int main(int argc, char **argv) +{ + dw::fltk::FltkPlatform *platform = new dw::fltk::FltkPlatform (); + dw::core::Layout *layout = new dw::core::Layout (platform); + + Fl_Window *window = new Fl_Window(200, 300, "Dw Example"); + window->box(FL_NO_BOX); + window->begin(); + + dw::fltk::FltkViewport *viewport = + new dw::fltk::FltkViewport (0, 0, 200, 300); + layout->attachView (viewport); + + dw::core::style::StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + + dw::core::style::FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = dw::core::style::FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = dw::core::style::FONT_VARIANT_NORMAL; + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + + styleAttrs.color = + dw::core::style::Color::create (layout, 0x000000); + styleAttrs.backgroundColor = + dw::core::style::Color::create (layout, 0xffffff); + + dw::core::style::Style *widgetStyle = + dw::core::style::Style::create (&styleAttrs); + + dw::Textblock *textblock = new dw::Textblock (false); + textblock->setStyle (widgetStyle); + layout->setWidget (textblock); + + widgetStyle->unref(); + + styleAttrs.margin.setVal (0); + styleAttrs.backgroundColor = NULL; + + dw::core::style::Style *wordStyle = + dw::core::style::Style::create (&styleAttrs); + + for(int i = 1; i <= 10; i++) { + char buf[4]; + sprintf(buf, "%d.", i); + + const char *words[] = { "This", "is", "the", buf, "paragraph.", + "Here", "comes", "some", "more", "text", + "to", "demonstrate", "word", "wrapping.", + NULL }; + + for(int j = 0; words[j]; j++) { + textblock->addText(words[j], wordStyle); + textblock->addSpace(wordStyle); + } + + textblock->addParbreak(10, wordStyle); + } + + wordStyle->unref(); + + textblock->flush (); + + window->resizable(viewport); + window->show(); + int errorCode = Fl::run(); + + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_find_test.cc b/test/dw/dw_find_test.cc new file mode 100644 index 00000000..5bddda10 --- /dev/null +++ b/test/dw/dw_find_test.cc @@ -0,0 +1,157 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include +#include +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/textblock.hh" + +using namespace lout::container::typed; +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +static FltkPlatform *platform; +static Layout *layout; +static Fl_Window *window; +static FltkViewport *viewport; +static Fl_Button *findButton, *resetButton; +static Fl_Widget *resultLabel; + +static void findCallback (Fl_Widget *widget, void *data) +{ + //switch(layout->search ("worm", true)) { + switch(layout->search ("WORM", false, false)) { + case FindtextState::SUCCESS: + resultLabel->label("SUCCESS"); + break; + + case FindtextState::RESTART: + resultLabel->label("RESTART"); + break; + + case FindtextState::NOT_FOUND: + resultLabel->label("NOT_FOUND"); + break; + } + + resultLabel->redraw (); +} + +static void resetCallback (Fl_Widget *widget, void *data) +{ + layout->resetSearch (); + resultLabel->label("---"); + resultLabel->redraw (); +} + +int main(int argc, char **argv) +{ + platform = new FltkPlatform (); + layout = new Layout (platform); + + window = new Fl_Window(200, 300, "Dw Find Test"); + window->box(FL_NO_BOX); + window->begin(); + + viewport = new FltkViewport (0, 0, 200, 280); + viewport->end(); + layout->attachView (viewport); + + findButton = new Fl_Button(0, 280, 50, 20, "Find"); + findButton->callback (findCallback, NULL); + findButton->when (FL_WHEN_RELEASE); + findButton->clear_visible_focus (); + + resetButton = new Fl_Button(50, 280, 50, 20, "Reset"); + resetButton->callback (resetCallback, NULL); + resetButton->when (FL_WHEN_RELEASE); + resetButton->clear_visible_focus (); + + resultLabel = new Fl_Box(100, 280, 100, 20, "---"); + resultLabel->box(FL_FLAT_BOX); + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + styleAttrs.margin.setVal (10); + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + Style *topWidgetStyle = Style::create (&styleAttrs); + + styleAttrs.margin.setVal (0); + styleAttrs.margin.left = 30; + styleAttrs.backgroundColor = NULL; + Style *widgetStyle = Style::create (&styleAttrs); + + styleAttrs.margin.left = 0; + Style *wordStyle = Style::create (&styleAttrs); + + Textblock *textblock = new Textblock (false); + textblock->setStyle (topWidgetStyle); + layout->setWidget (textblock); + + Stack *stack = new Stack (false); + stack->push (textblock); + + for(int i = 0; i < 10; i++) + for(int j = 0; j < 10; j++) { + Textblock *current; + if(j < 5) { + current = new Textblock (false); + stack->getTop()->addWidget (current, widgetStyle); + stack->push (current); + } else { + stack->getTop()->flush (); + stack->pop (); + current = stack->getTop (); + } + + current->addText ((i == j ? "worm" : "apple"), wordStyle); + current->addLinebreak (wordStyle); + } + + stack->getTop()->flush (); + + topWidgetStyle->unref (); + widgetStyle->unref (); + wordStyle->unref (); + + window->resizable(viewport); + window->show(); + int errorCode = Fl::run(); + + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_float_test.cc b/test/dw/dw_float_test.cc new file mode 100644 index 00000000..807002b2 --- /dev/null +++ b/test/dw/dw_float_test.cc @@ -0,0 +1,145 @@ +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/textblock.hh" + +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +static Textblock *firstFloat; +static Style *wordStyle; + +static void addTextToFloatTimeout (void *data) +{ + printf("addTextToFloatTimeout\n"); + + const char *fWords[] = { "This", "is", "a", "float,", "which", "is", + "set", "aside", "from", "the", "main", + "text.", NULL }; + + for(int k = 0; fWords[k]; k++) { + firstFloat->addText(fWords[k], wordStyle); + firstFloat->addSpace(wordStyle); + } + + firstFloat->flush(); + + Fl::repeat_timeout (2, addTextToFloatTimeout, NULL); +} + +int main(int argc, char **argv) +{ + FltkPlatform *platform = new FltkPlatform (); + Layout *layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(400, 600, "Dw Floats Example"); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, 0, 400, 600); + layout->attachView (viewport); + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + styleAttrs.font = core::style::Font::create (layout, &fontAttrs); + + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + + Style *widgetStyle = Style::create (&styleAttrs); + + styleAttrs.borderWidth.setVal (1); + styleAttrs.setBorderColor (Color::create (layout, 0x808080)); + styleAttrs.setBorderStyle (BORDER_DASHED); + styleAttrs.width = createAbsLength(100); + styleAttrs.vloat = FLOAT_LEFT; + Style *leftFloatStyle = Style::create (&styleAttrs); + + styleAttrs.width = createAbsLength(80); + styleAttrs.vloat = FLOAT_RIGHT; + Style *rightFloatStyle = Style::create (&styleAttrs); + + Textblock *textblock = new Textblock (false); + textblock->setStyle (widgetStyle); + layout->setWidget (textblock); + + widgetStyle->unref(); + + styleAttrs.borderWidth.setVal (0); + styleAttrs.width = LENGTH_AUTO; + styleAttrs.vloat = FLOAT_NONE; + styleAttrs.margin.setVal (0); + styleAttrs.backgroundColor = NULL; + + wordStyle = Style::create (&styleAttrs); + + for(int i = 1; i <= 10; i++) { + char buf[16]; + snprintf(buf, sizeof(buf), "%d%s", + i, (i == 1 ? "st" : (i == 2 ? "nd" : (i == 3 ? "rd" : "th")))); + + const char *words[] = { "This", "is", "the", buf, "paragraph.", + "Here", "comes", "some", "more", "text", + "to", "demonstrate", "word", "wrapping.", + NULL }; + + for(int j = 0; words[j]; j++) { + textblock->addText(words[j], wordStyle); + textblock->addSpace(wordStyle); + + if ((i == 3 || i == 5) && j == 8) { + textblock->addText("[float]", wordStyle); + textblock->addSpace(wordStyle); + + Textblock *vloat = new Textblock (false); + textblock->addWidget(vloat, i == 3 ? leftFloatStyle : rightFloatStyle); + + const char *fWords[] = { "This", "is", "a", "float,", "which", "is", + "set", "aside", "from", "the", "main", + "text.", NULL }; + + vloat->addText(i == 3 ? "Left:" : "Right:", wordStyle); + vloat->addSpace(wordStyle); + + for(int k = 0; fWords[k]; k++) { + vloat->addText(fWords[k], wordStyle); + vloat->addSpace(wordStyle); + } + + vloat->flush (); + + if(i == 3) + firstFloat = vloat; + } + } + + textblock->addParbreak(10, wordStyle); + } + + leftFloatStyle->unref(); + rightFloatStyle->unref(); + + textblock->flush (); + + window->resizable(viewport); + window->show(); + Fl::add_timeout (2, addTextToFloatTimeout, NULL); + int errorCode = Fl::run(); + + wordStyle->unref(); + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_image_background.cc b/test/dw/dw_image_background.cc new file mode 100644 index 00000000..14cb7b97 --- /dev/null +++ b/test/dw/dw_image_background.cc @@ -0,0 +1,196 @@ +/* + * Dillo Widget + * + * Copyright 2013 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include + +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/textblock.hh" +#include "../dw/image.hh" + +using namespace lout::signal; +using namespace lout::misc; +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +class ImageStyleDeletionReceiver: public ObservedObject::DeletionReceiver +{ +public: + void deleted (ObservedObject *object); +}; + +static StyleImage *image1 = NULL, *image2 = NULL; +static Layout *layout; +static int imgRow1 = 0, imgRow2 = 0; +static ImageStyleDeletionReceiver isdr; + +void ImageStyleDeletionReceiver::deleted (ObservedObject *object) +{ + if ((StyleImage*)object == image1) + image1 = NULL; + else if ((StyleImage*)object == image2) + image2 = NULL; + else + assertNotReached (); +} + +static void imageInitTimeout (void *data) +{ + if (image1) { + Imgbuf *imgbuf1 = layout->createImgbuf (Imgbuf::RGB, 400, 200, 1); + image1->getMainImgRenderer()->setBuffer (imgbuf1, false); + } + + if (image2) { + Imgbuf *imgbuf2 = layout->createImgbuf (Imgbuf::RGB, 100, 100, 1); + image2->getMainImgRenderer()->setBuffer (imgbuf2, false); + } +} + +static void imageDrawTimeout (void *data) +{ + Imgbuf *imgbuf1 = image1 ? image1->getImgbufSrc () : NULL; + Imgbuf *imgbuf2 = image2 ? image2->getImgbufSrc () : NULL; + + if (imgbuf1 && imgRow1 < 200) { + byte buf[3 * 400]; + for(int x = 0; x < 400; x++) { + buf[3 * x + 0] = 128 + x * 127 / 399; + buf[3 * x + 1] = 128 + (399 - x) * 127 / 399; + buf[3 * x + 2] = 128 + imgRow1 * 127 / 199; + } + + imgbuf1->copyRow (imgRow1, buf); + image1->getMainImgRenderer()->drawRow (imgRow1); + imgRow1++; + } + + if (imgbuf2 && imgRow2 < 100) { + byte buf[3 * 100]; + for(int x = 0; x < 100; x++) { + int r = 128 + rand () % 127; + buf[3 * x + 0] = buf[3 * x + 1] = buf[3 * x + 2] = r; + } + + imgbuf2->copyRow (imgRow2, buf); + image2->getMainImgRenderer()->drawRow (imgRow2); + imgRow2++; + } + + if(imgRow1 < 200 || imgRow2 < 100) + Fl::repeat_timeout (0.5, imageDrawTimeout, NULL); +} + +int main(int argc, char **argv) +{ + FltkPlatform *platform = new FltkPlatform (); + layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(200, 300, "Dw Example"); + window->box(FL_NO_BOX); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, 0, 200, 300); + layout->attachView (viewport); + + image1 = StyleImage::create (); + image1->connectDeletion (&isdr); + layout->setBgImage (image1, BACKGROUND_REPEAT_Y, + BACKGROUND_ATTACHMENT_SCROLL, createPerLength (0.5), + createAbsLength (30)); + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + styleAttrs.x_lang[0] = 'e'; + styleAttrs.x_lang[1] = 'n'; + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + styleAttrs.font = style::Font::create (layout, &fontAttrs); + + styleAttrs.color = Color::create (layout, 0x000000); + //styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + + Style *widgetStyle = Style::create (&styleAttrs); + + Textblock *textblock = new Textblock (false); + textblock->setStyle (widgetStyle); + layout->setWidget (textblock); + + widgetStyle->unref(); + + styleAttrs.margin.setVal (0); + styleAttrs.backgroundColor = NULL; + styleAttrs.backgroundImage = NULL; + + Style *wordStyle = Style::create (&styleAttrs); + + image2 = styleAttrs.backgroundImage = StyleImage::create (); + image2->connectDeletion (&isdr); + styleAttrs.backgroundRepeat = BACKGROUND_REPEAT; + styleAttrs.backgroundPositionX = createPerLength (0); + styleAttrs.backgroundPositionY = createPerLength (0); + Style *wordStyleBg = Style::create (&styleAttrs); + + for(int i = 1; i <= 1; i++) { + char buf[4]; + sprintf(buf, "%d.", i); + + const char *words[] = { "This", "is", "the", buf, "paragraph.", + "Here", "comes", "some", "more", "text", + "to", "demonstrate", "word", "wrapping.", + NULL }; + + for(int j = 0; words[j]; j++) { + textblock->addText(words[j], j == 11 ? wordStyleBg : wordStyle); + textblock->addSpace(wordStyle); + } + + textblock->addParbreak(10, wordStyle); + } + + wordStyle->unref(); + wordStyleBg->unref(); + + textblock->flush (); + + window->resizable(viewport); + window->show(); + + Fl::add_timeout (1.0, imageInitTimeout, NULL); + Fl::add_timeout (0.1, imageDrawTimeout, NULL); + + int errorCode = Fl::run(); + + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_images_scaled.cc b/test/dw/dw_images_scaled.cc new file mode 100644 index 00000000..e31abfaa --- /dev/null +++ b/test/dw/dw_images_scaled.cc @@ -0,0 +1,155 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/textblock.hh" +#include "../dw/image.hh" + +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +static Layout *layout; +static Image *image; +static core::Imgbuf *imgbuf = NULL; +static int imgRow = 0; + +static void imageInitTimeout (void *data) +{ + //imgbuf = layout->createImgbuf (Imgbuf::RGBA, 400, 200); + imgbuf = layout->createImgbuf (Imgbuf::RGB, 400, 200, 1); + image->setBuffer (imgbuf); +} + +/* +static void imageDrawTimeout (void *data) +{ + if (imgbuf) { + for (int i = 0; i < 1; i++) { + byte buf[4 * 400]; + for(int x = 0; x < 400; x++) { + buf[4 * x + 0] = x * 255 / 399; + buf[4 * x + 1] = (399 - x) * 255 / 399; + buf[4 * x + 2] = imgRow * 255 / 199; + buf[4 * x + 3] = (199 - imgRow) * 255 / 199; + } + + imgbuf->copyRow (imgRow, buf); + image->drawRow (imgRow); + imgRow++; + } + } + + if(imgRow < 200) + ::fltk::repeat_timeout (0.5, imageDrawTimeout, NULL); +} +*/ + +static void imageDrawTimeout (void *data) +{ + if (imgbuf) { + for (int i = 0; i < 1; i++) { + byte buf[3 * 400]; + for(int x = 0; x < 400; x++) { + buf[3 * x + 0] = x * 255 / 399; + buf[3 * x + 1] = (399 - x) * 255 / 399; + buf[3 * x + 2] = imgRow * 255 / 199; + } + + imgbuf->copyRow (imgRow, buf); + image->drawRow (imgRow); + imgRow++; + } + } + + if(imgRow < 200) + Fl::repeat_timeout (0.5, imageDrawTimeout, NULL); +} + +int main(int argc, char **argv) +{ + FltkPlatform *platform = new FltkPlatform (); + layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(410, 210, "Dw Scaled Image"); + window->box(FL_NO_BOX); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, 0, 410, 210); + layout->attachView (viewport); + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + styleAttrs.width = createPerLength (1.0); + styleAttrs.height = createPerLength (1.0); + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + + Style *widgetStyle = Style::create (&styleAttrs); + + Textblock *textblock = new Textblock (false); + textblock->setStyle (widgetStyle); + layout->setWidget (textblock); + + widgetStyle->unref(); + + styleAttrs.margin.setVal (0); + styleAttrs.backgroundColor = NULL; + + Style *imageStyle = Style::create (&styleAttrs); + + image = new dw::Image (""); + textblock->addWidget (image, imageStyle); + textblock->addSpace (imageStyle); + + imageStyle->unref(); + + textblock->flush (); + + window->resizable(viewport); + window->show(); + + Fl::add_timeout (2.0, imageInitTimeout, NULL); + Fl::add_timeout (0.1, imageDrawTimeout, NULL); + + int errorCode = Fl::run(); + + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_images_scaled2.cc b/test/dw/dw_images_scaled2.cc new file mode 100644 index 00000000..01a55bcf --- /dev/null +++ b/test/dw/dw_images_scaled2.cc @@ -0,0 +1,150 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/textblock.hh" +#include "../dw/image.hh" + +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +static Layout *layout; +static Image *image1, *image2; +static core::Imgbuf *imgbuf = NULL; +static int imgRow = 0; + +static void imageInitTimeout (void *data) +{ + imgbuf = layout->createImgbuf (Imgbuf::RGB, 400, 200, 1); + image1->setBuffer (imgbuf); + image2->setBuffer (imgbuf); +} + +static void imageDrawTimeout (void *data) +{ + if (imgbuf) { + for (int i = 0; i < 1; i++) { + byte buf[3 * 400]; + for(int x = 0; x < 400; x++) { + buf[3 * x + 0] = x * 255 / 399; + buf[3 * x + 1] = (399 - x) * 255 / 399; + buf[3 * x + 2] = imgRow * 255 / 199; + } + + imgbuf->copyRow (imgRow, buf); + image1->drawRow (imgRow); + image2->drawRow (imgRow); + imgRow++; + } + } + + if(imgRow < 200) + Fl::repeat_timeout (0.5, imageDrawTimeout, NULL); +} + +int main(int argc, char **argv) +{ + FltkPlatform *platform = new FltkPlatform (); + layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(410, 210, "Dw Scaled Image 2"); + window->box(FL_NO_BOX); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, 0, 410, 210); + layout->attachView (viewport); + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + + Style *widgetStyle = Style::create (&styleAttrs); + + Textblock *textblock = new Textblock (false); + textblock->setStyle (widgetStyle); + layout->setWidget (textblock); + + widgetStyle->unref(); + + styleAttrs.margin.setVal (0); + styleAttrs.borderWidth.setVal (0); + styleAttrs.padding.setVal (0); + styleAttrs.backgroundColor = NULL; + + Style *wordStyle = Style::create (&styleAttrs); + + styleAttrs.borderWidth.setVal (1); + styleAttrs.setBorderColor (Color::create (layout, 0x000080)); + styleAttrs.setBorderStyle (BORDER_SOLID); + styleAttrs.padding.setVal (1); + styleAttrs.backgroundColor = NULL; + styleAttrs.width = createPerLength (0.25); + styleAttrs.height = createPerLength (0.25); + + Style *imageStyle1 = Style::create (&styleAttrs); + image1 = new dw::Image ("A longer ALT Text to demonstrate clipping."); + textblock->addWidget (image1, imageStyle1); + imageStyle1->unref(); + + textblock->addParbreak (10, wordStyle); + + styleAttrs.width = LENGTH_AUTO; + styleAttrs.height = LENGTH_AUTO; + + Style *imageStyle2 = Style::create (&styleAttrs); + image2 = new dw::Image ("A longer ALT Text to demonstrate clipping."); + textblock->addWidget (image2, imageStyle2); + imageStyle2->unref(); + + wordStyle->unref (); + textblock->flush (); + + window->resizable(viewport); + window->show(); + + Fl::add_timeout (3.0, imageInitTimeout, NULL); + Fl::add_timeout (0.1, imageDrawTimeout, NULL); + + int errorCode = Fl::run(); + + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_images_simple.cc b/test/dw/dw_images_simple.cc new file mode 100644 index 00000000..361ede68 --- /dev/null +++ b/test/dw/dw_images_simple.cc @@ -0,0 +1,154 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/textblock.hh" +#include "../dw/image.hh" + +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +static Layout *layout; +static Image *image; +static core::Imgbuf *imgbuf = NULL; +static int imgRow = 0; + +static void imageInitTimeout (void *data) +{ + const bool resize = true; + //imgbuf = layout->createImgbuf (Imgbuf::RGBA, 400, 200); + imgbuf = layout->createImgbuf (Imgbuf::RGB, 400, 200, 1); + image->setBuffer (imgbuf, resize); +} + +/* +static void imageDrawTimeout (void *data) +{ + if (imgbuf) { + for (int i = 0; i < 1; i++) { + byte buf[4 * 400]; + for(int x = 0; x < 400; x++) { + buf[4 * x + 0] = x * 255 / 399; + buf[4 * x + 1] = (399 - x) * 255 / 399; + buf[4 * x + 2] = imgRow * 255 / 199; + buf[4 * x + 3] = (199 - imgRow) * 255 / 199; + } + + imgbuf->copyRow (imgRow, buf); + image->drawRow (imgRow); + imgRow++; + } + } + + if(imgRow < 200) + Fl::repeat_timeout (0.5, imageDrawTimeout, NULL); +} +*/ + +static void imageDrawTimeout (void *data) +{ + if (imgbuf) { + for (int i = 0; i < 1; i++) { + byte buf[3 * 400]; + for(int x = 0; x < 400; x++) { + buf[3 * x + 0] = x * 255 / 399; + buf[3 * x + 1] = (399 - x) * 255 / 399; + buf[3 * x + 2] = imgRow * 255 / 199; + } + + imgbuf->copyRow (imgRow, buf); + image->drawRow (imgRow); + imgRow++; + } + } + + if(imgRow < 200) + Fl::repeat_timeout (0.5, imageDrawTimeout, NULL); +} + +int main(int argc, char **argv) +{ + FltkPlatform *platform = new FltkPlatform (); + layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(410, 210, "Dw Simple Image"); + window->box(FL_NO_BOX); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, 0, 410, 210); + layout->attachView (viewport); + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + + Style *widgetStyle = Style::create (&styleAttrs); + + Textblock *textblock = new Textblock (false); + textblock->setStyle (widgetStyle); + layout->setWidget (textblock); + + widgetStyle->unref(); + + styleAttrs.margin.setVal (0); + styleAttrs.backgroundColor = NULL; + + Style *imageStyle = Style::create (&styleAttrs); + + image = new dw::Image (""); + textblock->addWidget (image, imageStyle); + textblock->addSpace (imageStyle); + + imageStyle->unref(); + + textblock->flush (); + + window->resizable(viewport); + window->show(); + + Fl::add_timeout (2.0, imageInitTimeout, NULL); + Fl::add_timeout (0.1, imageDrawTimeout, NULL); + + int errorCode = Fl::run(); + + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_imgbuf_mem_test.cc b/test/dw/dw_imgbuf_mem_test.cc new file mode 100644 index 00000000..e2532ea7 --- /dev/null +++ b/test/dw/dw_imgbuf_mem_test.cc @@ -0,0 +1,108 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" + +using namespace lout::signal; +using namespace dw::core; +using namespace dw::fltk; + +void solution1 () +{ + FltkPlatform *platform = new FltkPlatform (); + Layout *layout = new Layout (platform); + + Imgbuf *rootbuf = layout->createImgbuf (Imgbuf::RGB, 100, 100, 1); + rootbuf->ref (); // Extra reference by the dicache. + printf ("=== Can be deleted? %s.\n", + rootbuf->lastReference () ? "Yes" : "No"); + Imgbuf *scaledbuf = rootbuf->getScaledBuf (50, 50); + printf ("=== Can be deleted? %s.\n", + rootbuf->lastReference () ? "Yes" : "No"); + rootbuf->unref (); + printf ("=== Can be deleted? %s.\n", + rootbuf->lastReference () ? "Yes" : "No"); + scaledbuf->unref (); + printf ("=== Can be deleted? %s.\n", + rootbuf->lastReference () ? "Yes" : "No"); + rootbuf->unref (); // Extra reference by the dicache. + + delete layout; +} + +void solution2 () +{ + FltkPlatform *platform = new FltkPlatform (); + Layout *layout = new Layout (platform); + + Imgbuf *rootbuf = layout->createImgbuf (Imgbuf::RGB, 100, 100, 1); + rootbuf->setDeleteOnUnref (false); + printf ("=== Can be deleted? %s.\n", + !rootbuf->isReferred () ? "Yes" : "No"); + Imgbuf *scaledbuf = rootbuf->getScaledBuf (50, 50); + printf ("=== Can be deleted? %s.\n", + !rootbuf->isReferred () ? "Yes" : "No"); + rootbuf->unref (); + printf ("=== Can be deleted? %s.\n", + !rootbuf->isReferred () ? "Yes" : "No"); + scaledbuf->unref (); + printf ("=== Can be deleted? %s.\n", + !rootbuf->isReferred () ? "Yes" : "No"); + delete rootbuf; + + delete layout; +} + +class RootbufDeletionReceiver: public ObservedObject::DeletionReceiver +{ + void deleted (ObservedObject *object); +}; + +void RootbufDeletionReceiver::deleted (ObservedObject *object) +{ + printf ("=== Is deleted now.\n"); + delete this; +} + +void solution3 () +{ + FltkPlatform *platform = new FltkPlatform (); + Layout *layout = new Layout (platform); + + Imgbuf *rootbuf = layout->createImgbuf (Imgbuf::RGB, 100, 100, 1); + rootbuf->connectDeletion (new RootbufDeletionReceiver ()); + Imgbuf *scaledbuf = rootbuf->getScaledBuf (50, 50); + rootbuf->unref (); + scaledbuf->unref (); + + delete layout; +} + +int main (int argc, char **argv) +{ + printf ("========== SOLUTION 1 ==========\n"); + solution1 (); + printf ("========== SOLUTION 2 ==========\n"); + solution2 (); + printf ("========== SOLUTION 3 ==========\n"); + solution3 (); + + return 0; +} diff --git a/test/dw/dw_links.cc b/test/dw/dw_links.cc new file mode 100644 index 00000000..79ccbb54 --- /dev/null +++ b/test/dw/dw_links.cc @@ -0,0 +1,163 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/textblock.hh" + +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +class LinkTestReceiver: public Layout::LinkReceiver +{ + bool enter (Widget *widget, int link, int img, int x, int y); + bool press (Widget *widget, int link, int img, int x, int y, + EventButton *event); + bool release (Widget *widget, int link, int img, int x, int y, + EventButton *event); + bool click (Widget *widget, int link, int img, + int x, int y, EventButton *event); +}; + +bool LinkTestReceiver::enter (Widget *widget, int link, int img, int x, int y) +{ + printf ("enter: %d\n", link); + return true; +} + +bool LinkTestReceiver::press (Widget *widget, int link, int img, int x, int y, + EventButton *event) +{ + printf ("press: %d\n", link); + return true; +} + +bool LinkTestReceiver::release (Widget *widget, int link, int img, int x,int y, + EventButton *event) +{ + printf ("release: %d\n", link); + return true; +} + +bool LinkTestReceiver::click (Widget *widget, int link, int img, int x, int y, + EventButton *event) +{ + printf ("click: %d\n", link); + return true; +} + +int main(int argc, char **argv) +{ + LinkTestReceiver linkTestReceiver; + FltkPlatform *platform = new FltkPlatform (); + Layout *layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(200, 300, "Dw Links"); + window->box(FL_NO_BOX); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, 0, 200, 300); + layout->attachView (viewport); + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + + Style *widgetStyle = Style::create (&styleAttrs); + + Textblock *textblock = new Textblock (false); + textblock->setStyle (widgetStyle); + layout->setWidget (textblock); + + layout->connectLink (&linkTestReceiver); + + widgetStyle->unref(); + + styleAttrs.margin.setVal (0); + styleAttrs.backgroundColor = NULL; + styleAttrs.cursor = CURSOR_TEXT; + + Style *wordStyle = Style::create (&styleAttrs); + + styleAttrs.color = Color::create (layout, 0x0000ff); + styleAttrs.textDecoration = TEXT_DECORATION_UNDERLINE; + styleAttrs.cursor = CURSOR_POINTER; + + for(int i = 1; i <= 10; i++) { + char buf[4]; + sprintf(buf, "%d.", i); + + const char *words1[] = { + "This", "is", "the", buf, "paragraph.", + "Here", "comes", "some", "more", "text", + "to", "demonstrate", "word", "wrapping.", + NULL }; + const char *words2[] = { + "Click", "here", "for", "more..", NULL }; + + for(int j = 0; words1[j]; j++) { + textblock->addText(words1[j], wordStyle); + textblock->addSpace(wordStyle); + } + + styleAttrs.x_link = i; + Style *linkStyle = Style::create (&styleAttrs); + + for(int j = 0; words2[j]; j++) { + textblock->addText(words2[j], linkStyle); + textblock->addSpace(wordStyle); + } + + linkStyle->unref (); + + textblock->addParbreak(10, wordStyle); + } + + wordStyle->unref(); + + textblock->flush (); + + window->resizable(viewport); + window->show(); + int errorCode = Fl::run(); + + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_links2.cc b/test/dw/dw_links2.cc new file mode 100644 index 00000000..acb095f3 --- /dev/null +++ b/test/dw/dw_links2.cc @@ -0,0 +1,192 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/textblock.hh" + +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +class LinkTestReceiver: public Layout::LinkReceiver +{ + bool enter (Widget *widget, int link, int img, int x, int y); + bool press (Widget *widget, int link, int img, int x, int y, + EventButton *event); + bool release (Widget *widget, int link, int img, int x, int y, + EventButton *event); + bool click (Widget *widget, int link, int img, int x, int y, + EventButton *event); +}; + +bool LinkTestReceiver::enter (Widget *widget, int link, int img, int x, int y) +{ + printf ("enter: %d\n", link); + return true; +} + +bool LinkTestReceiver::press (Widget *widget, int link, int img, int x, int y, + EventButton *event) +{ + printf ("press: %d\n", link); + return true; +} + +bool LinkTestReceiver::release (Widget *widget, int link, int img, int x,int y, + EventButton *event) +{ + printf ("release: %d\n", link); + return true; +} + +bool LinkTestReceiver::click (Widget *widget, int link, int img, int x, int y, + EventButton *event) +{ + printf ("click: %d\n", link); + return true; +} + +int main(int argc, char **argv) +{ + int MainIdx; + int ww = 200, wh = 300, lh = 24; + + FltkPlatform *platform = new FltkPlatform (); + Layout *layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(200, 300, "Dw Links2"); + window->box(FL_NO_BOX); + window->begin(); + Fl_Widget *Panel = new Fl_Box(0, 0, ww, lh, "CONTROL PANEL"); + + Panel->color(FL_GRAY_RAMP + 3); + Panel->labelcolor(FL_WHITE); + Panel->box(FL_FLAT_BOX); + Fl_Widget *Main = new Fl_Box(0, lh, ww, wh - 2*lh, "MAIN RENDERING AREA"); + Main->color(FL_GRAY_RAMP + 4); + Main->labelcolor(FL_WHITE); + MainIdx = window->find(Main); + /* status bar */ + Fl_Widget *Bar = new Fl_Box(0, wh - lh, 200, lh, "STATUS BAR..."); + Bar->color(FL_GRAY_RAMP + 3); + Bar->labelcolor(FL_WHITE); + Bar->box(FL_FLAT_BOX); + + window->resizable(Main); + window->end(); + + // + // Create the main Dw and add some text there. + // + window->remove(MainIdx); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, lh, ww, wh - 2*lh); + layout->attachView (viewport); + + window->end(); + + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + + Style *widgetStyle = Style::create (&styleAttrs); + + Textblock *textblock = new Textblock (false); + textblock->setStyle (widgetStyle); + layout->setWidget (textblock); + + layout->connectLink (new LinkTestReceiver ()); + + widgetStyle->unref(); + + styleAttrs.margin.setVal (0); + styleAttrs.backgroundColor = NULL; + styleAttrs.cursor = CURSOR_TEXT; + + Style *wordStyle = Style::create (&styleAttrs); + + styleAttrs.color = Color::create (layout, 0x0000ff); + styleAttrs.textDecoration = TEXT_DECORATION_UNDERLINE; + styleAttrs.cursor = CURSOR_POINTER; + + for(int i = 1; i <= 30; i++) { + char buf[4]; + sprintf(buf, "%d.", i); + + const char *words1[] = { + "This", "is", "the", buf, "paragraph.", + "Here", "comes", "some", "more", "text", + "to", "demonstrate", "word", "wrapping.", + NULL }; + const char *words2[] = { + "Click", "here", "for", "more..", NULL }; + + for(int j = 0; words1[j]; j++) { + textblock->addText (words1[j], wordStyle); + textblock->addSpace(wordStyle); + } + + styleAttrs.x_link = i; + Style *linkStyle = Style::create (&styleAttrs); + + for(int j = 0; words2[j]; j++) { + textblock->addText (words2[j], linkStyle); + textblock->addSpace(wordStyle); + } + + linkStyle->unref (); + + textblock->addParbreak(10, wordStyle); + } + + wordStyle->unref(); + + textblock->flush (); + + window->resizable(viewport); + window->show(); + int errorCode = Fl::run(); + + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_lists.cc b/test/dw/dw_lists.cc new file mode 100644 index 00000000..2aa0abb7 --- /dev/null +++ b/test/dw/dw_lists.cc @@ -0,0 +1,136 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/textblock.hh" +#include "../dw/listitem.hh" + +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +int main(int argc, char **argv) +{ + FltkPlatform *platform = new FltkPlatform (); + Layout *layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(200, 300, "Dw Lists"); + window->box(FL_NO_BOX); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, 0, 200, 300); + layout->attachView (viewport); + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + + Style *widgetStyle = Style::create (&styleAttrs); + + Textblock *textblock = new Textblock (false); + textblock->setStyle (widgetStyle); + layout->setWidget (textblock); + + widgetStyle->unref(); + + styleAttrs.margin.setVal (0); + styleAttrs.backgroundColor = NULL; + styleAttrs.cursor = CURSOR_TEXT; + + Style *wordStyle = Style::create (&styleAttrs); + + styleAttrs.margin.setVal (5); + styleAttrs.padding.setVal (5); + styleAttrs.backgroundColor = Color::create (layout, 0xffff40); + styleAttrs.setBorderColor (Color::create (layout, 0x000000)); + styleAttrs.setBorderStyle (BORDER_SOLID); + styleAttrs.borderWidth.setVal (1); + + Style *itemStyle = Style::create (&styleAttrs); + + const char *wordsPar[] = { + "This", "is", "a", "normal", "paragraph.", "And", + "some", "list", "items", "follow:", NULL }; + const char *wordsItem[] = { + "This", "is", "a", "list", "item.", "Here", + "comes", "some", "more", "text", "to", + "demonstrate", "word", "wrapping.", NULL }; + + + for(int i = 0; wordsPar[i]; i++) { + if(i != 0) + textblock->addSpace (wordStyle); + textblock->addText (wordsPar[i], wordStyle); + } + textblock->addParbreak (5, wordStyle); + + ListItem *refItem = NULL; + + for(int i = 1; i <= 100; i++) { + ListItem *listItem = new ListItem (refItem, false); + refItem = listItem; + + textblock->addWidget (listItem, itemStyle); + textblock->addParbreak (2, wordStyle); + + char buf[16]; + sprintf (buf, "%d.", i); + listItem->initWithText (buf, wordStyle); + + for(int j = 0; wordsItem[j]; j++) { + if(j != 0) + listItem->addSpace (wordStyle); + listItem->addText (wordsItem[j], wordStyle); + } + + listItem->flush (); + } + + wordStyle->unref(); + + textblock->flush (); + + window->resizable(viewport); + window->show(); + int errorCode = Fl::run(); + + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_resource_test.cc b/test/dw/dw_resource_test.cc new file mode 100644 index 00000000..e8a8b227 --- /dev/null +++ b/test/dw/dw_resource_test.cc @@ -0,0 +1,102 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/textblock.hh" +#include "../dw/ui.hh" + +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::core::ui; +using namespace dw::fltk; + +int main(int argc, char **argv) +{ + FltkPlatform *platform = new FltkPlatform (); + Layout *layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(410, 210, "Dw Resource test"); + window->box(FL_NO_BOX); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, 0, 410, 210); + layout->attachView (viewport); + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + + Style *widgetStyle = Style::create (&styleAttrs); + + Textblock *textblock = new Textblock (false); + textblock->setStyle (widgetStyle); + layout->setWidget (textblock); + + widgetStyle->unref(); + + styleAttrs.margin.setVal (0); + styleAttrs.backgroundColor = NULL; + + widgetStyle = Style::create (&styleAttrs); + + SelectionResource *res = layout->getResourceFactory()->createListResource + (ListResource::SELECTION_AT_MOST_ONE, 4); + //SelectionResource *res = + // layout->getResourceFactory()->createOptionMenuResource (); + + Embed *embed = new Embed (res); + textblock->addWidget (embed, widgetStyle); + textblock->addSpace (widgetStyle); + + widgetStyle->unref(); + + for(int i = 0; i < 50; i++) + res->addItem ("Hello, world!", true, i == 0 ? true : false); + + textblock->flush (); + + window->resizable(viewport); + window->show(); + + int errorCode = Fl::run(); + + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_simple_container.cc b/test/dw/dw_simple_container.cc new file mode 100644 index 00000000..e7fa563c --- /dev/null +++ b/test/dw/dw_simple_container.cc @@ -0,0 +1,245 @@ +/* + * Dillo Widget + * + * Copyright 2014 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include + +#include "dw_simple_container.hh" + +using namespace dw::core; +using namespace dw::core::style; +using namespace lout::misc; + +namespace dw { + +int SimpleContainer::CLASS_ID = -1; + +// ---------------------------------------------------------------------- + +SimpleContainer::SimpleContainerIterator::SimpleContainerIterator +(SimpleContainer *simpleContainer, Content::Type mask, bool atEnd) : + Iterator (simpleContainer, mask, atEnd) +{ + content.type = atEnd ? Content::END : Content::START; +} + +lout::object::Object *SimpleContainer::SimpleContainerIterator::clone () +{ + SimpleContainerIterator *sci = + new SimpleContainerIterator ((SimpleContainer*)getWidget(), + getMask(), false); + sci->content = content; + return sci; +} + +int SimpleContainer::SimpleContainerIterator::index () +{ + switch (content.type) { + case Content::START: + return 0; + case Content::WIDGET_IN_FLOW: + return 1; + case Content::END: + return 2; + default: + assertNotReached (); + return 0; + } +} + +int SimpleContainer::SimpleContainerIterator::compareTo +(lout::object::Comparable *other) +{ + return index () - ((SimpleContainerIterator*)other)->index (); +} + +bool SimpleContainer::SimpleContainerIterator::next () +{ + SimpleContainer *simpleContainer = (SimpleContainer*)getWidget(); + + if (content.type == Content::END) + return false; + + // simple containers only contain widgets: + if ((getMask() & Content::WIDGET_IN_FLOW) == 0) { + content.type = Content::END; + return false; + } + + if (content.type == Content::START) { + if (simpleContainer->child != NULL) { + content.type = Content::WIDGET_IN_FLOW; + content.widget = simpleContainer->child; + return true; + } else { + content.type = Content::END; + return false; + } + } else /* if (content.type == Content::WIDGET) */ { + content.type = Content::END; + return false; + } +} + +bool SimpleContainer::SimpleContainerIterator::prev () +{ + SimpleContainer *simpleContainer = (SimpleContainer*)getWidget(); + + if (content.type == Content::START) + return false; + + // simple containers only contain widgets: + if ((getMask() & Content::WIDGET_IN_FLOW) == 0) { + content.type = Content::START; + return false; + } + + if (content.type == Content::END) { + if (simpleContainer->child != NULL) { + content.type = Content::WIDGET_IN_FLOW; + content.widget = simpleContainer->child; + return true; + } else { + content.type = Content::START; + return false; + } + } else /* if (content.type == Content::WIDGET) */ { + content.type = Content::START; + return false; + } +} + +void SimpleContainer::SimpleContainerIterator::highlight (int start, + int end, + HighlightLayer layer) +{ + /** todo Needs this an implementation? */ +} + +void SimpleContainer::SimpleContainerIterator::unhighlight (int direction, + HighlightLayer + layer) +{ + /** todo Needs this an implementation? */ +} + +void SimpleContainer::SimpleContainerIterator::getAllocation (int start, + int end, + Allocation + *allocation) +{ + /** \bug Not implemented. */ +} + +// ---------------------------------------------------------------------- + +SimpleContainer::SimpleContainer () +{ + registerName ("dw::SimpleContainer", &CLASS_ID); + child = NULL; +} + +SimpleContainer::~SimpleContainer () +{ + if (child) + delete child; +} + +void SimpleContainer::sizeRequestSimpl (Requisition *requisition) +{ + Requisition childReq; + if (child) + child->sizeRequest (&childReq); + else + childReq.width = childReq.ascent = childReq.descent = 0; + + requisition->width = childReq.width + boxDiffWidth (); + requisition->ascent = childReq.ascent + boxOffsetY (); + requisition->descent = childReq.descent + boxRestHeight (); + + correctRequisition (requisition, splitHeightPreserveAscent, true, true); +} + + +void SimpleContainer::getExtremesSimpl (Extremes *extremes) +{ + Extremes childExtr; + if (child) + child->getExtremes (&childExtr); + else + childExtr.minWidth = childExtr.minWidthIntrinsic = childExtr.maxWidth = + childExtr.maxWidthIntrinsic = extremes->adjustmentWidth = 0; + + extremes->minWidth = childExtr.minWidth + boxDiffWidth (); + extremes->minWidthIntrinsic = childExtr.minWidthIntrinsic + boxDiffWidth (); + extremes->maxWidth = childExtr.maxWidth + boxDiffWidth (); + extremes->maxWidthIntrinsic = childExtr.maxWidthIntrinsic + boxDiffWidth (); + extremes->adjustmentWidth = childExtr.adjustmentWidth + boxDiffWidth (); + + correctExtremes (extremes, true); +} + +void SimpleContainer::sizeAllocateImpl (Allocation *allocation) +{ + Allocation childAlloc; + + if (child) { + childAlloc.x = allocation->x + boxOffsetX (); + childAlloc.y = allocation->y + boxOffsetY (); + childAlloc.width = allocation->width - boxDiffWidth (); + childAlloc.ascent = allocation->ascent - boxOffsetY (); + childAlloc.descent = allocation->descent - boxRestHeight (); + child->sizeAllocate (&childAlloc); + } +} + +void SimpleContainer::draw (View *view, Rectangle *area, + DrawingContext *context) +{ + drawWidgetBox (view, area, false); + Rectangle childArea; + if (child && child->intersects (this, area, &childArea)) + child->draw (view, &childArea, context); +} + +Iterator *SimpleContainer::iterator (Content::Type mask, bool atEnd) +{ + return new SimpleContainerIterator (this, mask, atEnd); +} + +void SimpleContainer::removeChild (Widget *child) +{ + assert (child == this->child); + this->child = NULL; + + queueResize (0, true); +} + +void SimpleContainer::setChild (Widget *child) +{ + if (this->child) + delete this->child; + + this->child = child; + if (this->child) + this->child->setParent (this); + + queueResize (0, true); +} + +} // namespace dw diff --git a/test/dw/dw_simple_container.hh b/test/dw/dw_simple_container.hh new file mode 100644 index 00000000..bd40b41e --- /dev/null +++ b/test/dw/dw_simple_container.hh @@ -0,0 +1,57 @@ +#ifndef __DW_SIMPLE_CONTAINER_HH__ +#define __DW_SIMPLE_CONTAINER_HH__ + +#include "dw/core.hh" + +namespace dw { + +/** + * Simple widget used for testing concepts. + */ +class SimpleContainer: public core::Widget +{ +private: + class SimpleContainerIterator: public core::Iterator + { + private: + int index (); + + public: + SimpleContainerIterator (SimpleContainer *simpleContainer, + core::Content::Type mask, + bool atEnd); + + lout::object::Object *clone (); + int compareTo (lout::object::Comparable *other); + + bool next (); + bool prev (); + void highlight (int start, int end, core::HighlightLayer layer); + void unhighlight (int direction, core::HighlightLayer layer); + void getAllocation (int start, int end, core::Allocation *allocation); + }; + + Widget *child; + +protected: + void sizeRequestSimpl (core::Requisition *requisition); + void getExtremesSimpl (core::Extremes *extremes); + void sizeAllocateImpl (core::Allocation *allocation); + +public: + static int CLASS_ID; + + SimpleContainer (); + ~SimpleContainer (); + + void draw (core::View *view, core::Rectangle *area, + core::DrawingContext *context); + core::Iterator *iterator (core::Content::Type mask, bool atEnd); + void removeChild (Widget *child); + + void setChild (core::Widget *child); +}; + +} // namespace dw + +#endif // __DW_SIMPLE_CONTAINER_HH__ diff --git a/test/dw/dw_simple_container_test.cc b/test/dw/dw_simple_container_test.cc new file mode 100644 index 00000000..83d0a77f --- /dev/null +++ b/test/dw/dw_simple_container_test.cc @@ -0,0 +1,114 @@ +/* + * Dillo Widget + * + * Copyright 2014 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "dw_simple_container.hh" +#include "../dw/textblock.hh" + +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +int main(int argc, char **argv) +{ + FltkPlatform *platform = new FltkPlatform (); + Layout *layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(200, 300, "Dw Example"); + window->box(FL_NO_BOX); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, 0, 200, 300); + layout->attachView (viewport); + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + styleAttrs.font = style::Font::create (layout, &fontAttrs); + + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + + Style *textblockStyle1 = Style::create (&styleAttrs); + + styleAttrs.backgroundColor = NULL; + styleAttrs.margin.setVal (0); + + Style *textblockStyle2 = Style::create (&styleAttrs); + Style *wordStyle = Style::create (&styleAttrs); + + styleAttrs.borderWidth.setVal (5); + styleAttrs.setBorderColor (Color::create (layout, 0x800080)); + styleAttrs.setBorderStyle (BORDER_DASHED); + styleAttrs.padding.setVal (5); + + Style *containerStyle = Style::create (&styleAttrs); + + Textblock *textblock1 = new Textblock (false); + textblock1->setStyle (textblockStyle1); + layout->setWidget (textblock1); + + SimpleContainer *simpleContainer = new SimpleContainer (); + simpleContainer->setStyle (containerStyle); + textblock1->addWidget (simpleContainer, containerStyle); + + Textblock *textblock2 = new Textblock (false); + textblock2->setStyle (textblockStyle2); + simpleContainer->setChild (textblock2); + + const char *words[] = { "This", "is", "only", "a", "short", "paragraph.", + NULL }; + + for(int j = 0; words[j]; j++) { + textblock2->addText(words[j], wordStyle); + textblock2->addSpace(wordStyle); + } + + textblockStyle1->unref(); + textblockStyle2->unref(); + containerStyle->unref(); + wordStyle->unref(); + + textblock1->flush (); + textblock2->flush (); + + window->resizable(viewport); + window->show(); + int errorCode = Fl::run(); + + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_table.cc b/test/dw/dw_table.cc new file mode 100644 index 00000000..9bec1a09 --- /dev/null +++ b/test/dw/dw_table.cc @@ -0,0 +1,116 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/table.hh" + +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +int main(int argc, char **argv) +{ + FltkPlatform *platform = new FltkPlatform (); + Layout *layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(300, 300, "Dw Table"); + window->box(FL_NO_BOX); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, 0, 300, 300); + layout->attachView (viewport); + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + styleAttrs.padding.setVal (0); + styleAttrs.borderWidth.setVal (1); + styleAttrs.setBorderStyle (BORDER_OUTSET); + styleAttrs.setBorderColor (Color::create (layout, 0xffffff)); + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + styleAttrs.hBorderSpacing = 5; + styleAttrs.vBorderSpacing = 5; + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + + Style *tableStyle = Style::create (&styleAttrs); + + Table *table = new Table (false); + table->setStyle (tableStyle); + layout->setWidget (table); + + tableStyle->unref(); + + styleAttrs.setBorderStyle (BORDER_INSET); + styleAttrs.backgroundColor = NULL; + styleAttrs.margin.setVal (0); + styleAttrs.padding.setVal (5); + + Style *cellStyle = Style::create (&styleAttrs); + + styleAttrs.borderWidth.setVal (0); + styleAttrs.margin.setVal (0); + styleAttrs.cursor = CURSOR_TEXT; + styleAttrs.textAlignChar = '.'; + + Style *wordStyle = Style::create (&styleAttrs); + + for (int i = 0; i < 4; i++) { + table->addRow (wordStyle); + + for (int j = 0; j < 4; j++) { + Textblock *cell = new Textblock (false); + cell->setStyle (cellStyle); + table->addCell (cell, 1, 1); + + char buf[10]; + sprintf (buf, "cell %c", 'A' + 4 * i + j); + + cell->addText (buf, wordStyle); + cell->flush (); + } + } + + wordStyle->unref(); + cellStyle->unref(); + + window->resizable(viewport); + window->show(); + int errorCode = Fl::run(); + + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_table_aligned.cc b/test/dw/dw_table_aligned.cc new file mode 100644 index 00000000..bef3d521 --- /dev/null +++ b/test/dw/dw_table_aligned.cc @@ -0,0 +1,121 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/table.hh" +#include "../dw/alignedtablecell.hh" + +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::fltk; + +int main(int argc, char **argv) +{ + FltkPlatform *platform = new FltkPlatform (); + Layout *layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(200, 300, "Dw Table Aligned"); + window->box(FL_NO_BOX); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, 0, 200, 300); + layout->attachView (viewport); + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + styleAttrs.borderWidth.setVal (1); + styleAttrs.setBorderStyle (BORDER_OUTSET); + styleAttrs.setBorderColor (Color::create (layout, 0x808080)); + + FontAttrs fontAttrs; + fontAttrs.name = "Bitstream Charter"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xa0a0a0); + styleAttrs.hBorderSpacing = 5; + styleAttrs.vBorderSpacing = 5; + + Style *tableStyle = Style::create (&styleAttrs); + + Table *table = new Table (false); + table->setStyle (tableStyle); + layout->setWidget (table); + + tableStyle->unref(); + + styleAttrs.borderWidth.setVal (1); + styleAttrs.setBorderStyle (BORDER_INSET); + + Style *cellStyle = Style::create (&styleAttrs); + + styleAttrs.borderWidth.setVal (0); + styleAttrs.margin.setVal (0); + styleAttrs.backgroundColor = NULL; + styleAttrs.cursor = CURSOR_TEXT; + styleAttrs.textAlignChar = '.'; + + Style *wordStyle = Style::create (&styleAttrs); + + AlignedTableCell *ref = NULL; + for(int i = 0; i < 10; i++) { + //for(int i = 0; i < 1; i++) { + AlignedTableCell *cell = new AlignedTableCell (ref, false); + cell->setStyle (cellStyle); + ref = cell; + table->addRow (wordStyle); + table->addCell (cell, 1, 1); + + char buf[16]; + for(int j = 0; j < i; j++) + buf[j] = '0' + j; + buf[i] = '.'; + for(int j = i + 1; j < 11; j++) + buf[j] = '0' + (j - 1); + buf[11] = 0; + + cell->addText (buf, wordStyle); + cell->flush (); + } + + wordStyle->unref(); + cellStyle->unref(); + + window->resizable(viewport); + window->show(); + int errorCode = Fl::run(); + + delete layout; + + return errorCode; +} diff --git a/test/dw/dw_ui_test.cc b/test/dw/dw_ui_test.cc new file mode 100644 index 00000000..f24cc9b9 --- /dev/null +++ b/test/dw/dw_ui_test.cc @@ -0,0 +1,245 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include +#include + +#include "../dw/core.hh" +#include "../dw/fltkcore.hh" +#include "../dw/fltkviewport.hh" +#include "../dw/table.hh" +#include "../dw/textblock.hh" +#include "../dw/ui.hh" +#include "form.hh" + +using namespace lout::object; +using namespace lout::container::typed; +using namespace dw; +using namespace dw::core; +using namespace dw::core::style; +using namespace dw::core::ui; +using namespace dw::fltk; + +int main(int argc, char **argv) +{ + FltkPlatform *platform = new FltkPlatform (); + Layout *layout = new Layout (platform); + + Fl_Window *window = new Fl_Window(400, 400, "Dw UI Test"); + window->box(FL_NO_BOX); + window->begin(); + + FltkViewport *viewport = new FltkViewport (0, 0, 400, 400); + layout->attachView (viewport); + + StyleAttrs styleAttrs; + styleAttrs.initValues (); + styleAttrs.margin.setVal (5); + styleAttrs.color = Color::create (layout, 0x000000); + styleAttrs.backgroundColor = Color::create (layout, 0xffffff); + + FontAttrs fontAttrs; + fontAttrs.name = "Helvetica"; + fontAttrs.size = 14; + fontAttrs.weight = 400; + fontAttrs.style = FONT_STYLE_NORMAL; + fontAttrs.letterSpacing = 0; + fontAttrs.fontVariant = FONT_VARIANT_NORMAL; + styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); + + Style *tableStyle = Style::create (&styleAttrs); + + Table *table = new Table (false); + table->setStyle (tableStyle); + layout->setWidget (table); + + tableStyle->unref(); + + styleAttrs.backgroundColor = NULL; + styleAttrs.margin.setVal (0); + + Style *cellStyle = Style::create (&styleAttrs); + + // First of all, the resources. Later, they are embedded into the + // widget tree. + EntryResource *entryres1 = + layout->getResourceFactory()->createEntryResource (10, false, NULL,NULL); + entryres1->setText ("Hi!"); + EntryResource *entryres2 = + layout->getResourceFactory()->createEntryResource (10, true, NULL, + "password field!"); + MultiLineTextResource *textres = + layout->getResourceFactory()->createMultiLineTextResource (15,3, + "textarea placeholder!"); + RadioButtonResource *radiores1 = + layout->getResourceFactory()->createRadioButtonResource (NULL, false); + RadioButtonResource *radiores2 = + layout->getResourceFactory()->createRadioButtonResource (radiores1, + false); + CheckButtonResource *checkres = + layout->getResourceFactory()->createCheckButtonResource (true); + SelectionResource *selres[2]; + selres[0] = layout->getResourceFactory()->createOptionMenuResource (); + selres[1] = layout->getResourceFactory()->createListResource + (ListResource::SELECTION_AT_MOST_ONE, 4); + LabelButtonResource *buttonres = + layout->getResourceFactory()->createLabelButtonResource ("Run!"); + + // Note on complex buttons: before any operations on the widget, which + // need a layout, the complex button resource should be created, since + // then, a layout and a platform are instantiated. + Textblock *cbuttontext = new Textblock(false); + ComplexButtonResource *cbuttonres = + layout->getResourceFactory()->createComplexButtonResource (cbuttontext, + true); + cbuttontext->setStyle (cellStyle); + cbuttontext->addText ("Run (complex)!", cellStyle); + cbuttontext->flush (); + + // The entry resources are put into a special handler, which is + // also a receiver for the button resources. + form::Form *form = new form::Form(); + form->addTextResource ("val1", entryres1); + form->addTextResource ("val2", entryres2); + form->addTextResource ("text", textres); + const char *radiovalues[] = { "radio1", "radio2", NULL }; + form->addRadioButtonResource ("val3", radiores1, radiovalues); + form->addCheckButtonResource ("check", checkres); + const char *selvalues[] = { "i1", "g1", "i11", "i12", "i13", "(pop)", "i2", + "g2", "i21", "i22", "i23", "(pop)", "i3", NULL}; + form->addSelectionResource ("val4", selres[0], selvalues); + form->addSelectionResource ("val5", selres[1], selvalues); + form->addButtonResource ("button", buttonres, "Run!"); + form->addButtonResource ("cbutton", cbuttonres, "cbuttonval"); + + // Create the widgets. + table->addRow (cellStyle); + + Textblock *label1 = new Textblock(false); + label1->setStyle (cellStyle); + table->addCell (label1, 1, 1); + label1->addText ("val1 = ", cellStyle); + label1->flush (); + + Embed *input1 = new Embed (entryres1); + input1->setStyle (cellStyle); + table->addCell (input1, 1, 1); + + table->addRow (cellStyle); + + Textblock *label2 = new Textblock(false); + label2->setStyle (cellStyle); + table->addCell (label2, 1, 1); + label2->addText ("val2 = ", cellStyle); + label2->flush (); + + Embed *input2 = new Embed (entryres2); + input2->setStyle (cellStyle); + table->addCell (input2, 1, 1); + + table->addRow (cellStyle); + + Textblock *label = new Textblock(false); + label->setStyle (cellStyle); + table->addCell (label, 1, 1); + label->addText ("text = ", cellStyle); + label->flush (); + + Embed *text = new Embed (textres); + textres->setText("Hi textarea"); + text->setStyle (cellStyle); + table->addCell (text, 1, 1); + + table->addRow (cellStyle); + + Textblock *radiolabel1 = new Textblock(false); + radiolabel1->setStyle (cellStyle); + table->addCell (radiolabel1, 2, 1); + Embed *radio1 = new Embed (radiores1); + radiolabel1->addWidget (radio1, cellStyle); + radiolabel1->addText (" radio1", cellStyle); + radiolabel1->flush (); + + table->addRow (cellStyle); + Textblock *radiolabel2 = new Textblock(false); + radiolabel2->setStyle (cellStyle); + table->addCell (radiolabel2, 2, 1); + Embed *radio2 = new Embed (radiores2); + radiolabel2->addWidget (radio2, cellStyle); + radiolabel2->addText (" radio2", cellStyle); + radiolabel2->flush (); + + table->addRow (cellStyle); + Textblock *checklabel = new Textblock(false); + checklabel->setStyle (cellStyle); + table->addCell (checklabel, 2, 1); + Embed *check = new Embed (checkres); + checklabel->addWidget (check, cellStyle); + checklabel->addText (" check", cellStyle); + checklabel->flush (); + + for(int i = 0; i < 2; i++) { + table->addRow (cellStyle); + + Embed *sel = new Embed (selres[i]); + sel->setStyle (cellStyle); + table->addCell (sel, 2, 1); + + selres[i]->addItem("item 1", true, false); + + selres[i]->pushGroup("group 1", true); + selres[i]->addItem("item 1/1", true, false); + selres[i]->addItem("item 1/2", true, true); + selres[i]->addItem("item 1/3", false, false); + selres[i]->popGroup(); + + selres[i]->addItem("item 2", false, i == 1); + + selres[i]->pushGroup("group 2", true); + selres[i]->addItem("item 2/1", true, false); + selres[i]->addItem("item 2/2", true, false); + selres[i]->addItem("item 2/3", false, false); + selres[i]->popGroup(); + + selres[i]->addItem("item 3", false, false); + } + + table->addRow (cellStyle); + Embed *button = new Embed (buttonres); + button->setStyle (cellStyle); + table->addCell (button, 2, 1); + + table->addRow (cellStyle); + Embed *cbutton = new Embed (cbuttonres); + cbutton->setStyle (cellStyle); + table->addCell (cbutton, 2, 1); + + cellStyle->unref(); + + window->resizable(viewport); + window->show(); + int errorCode = Fl::run(); + + delete form; + delete layout; + + return errorCode; +} diff --git a/test/dw/form.cc b/test/dw/form.cc new file mode 100644 index 00000000..82938a16 --- /dev/null +++ b/test/dw/form.cc @@ -0,0 +1,263 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include "form.hh" + +namespace form { + +using namespace dw::core::ui; + +Form::ResourceDecorator::ResourceDecorator (const char *name) +{ + this->name = strdup (name); +} + +Form::ResourceDecorator::~ResourceDecorator () +{ + free((char *)name); +} + +Form::TextResourceDecorator::TextResourceDecorator (const char *name, + TextResource *resource): + Form::ResourceDecorator (name) +{ + this->resource = resource; +} + +const char *Form::TextResourceDecorator::getValue () +{ + return resource->getText (); +} + +Form::RadioButtonResourceDecorator::RadioButtonResourceDecorator + (const char *name, RadioButtonResource *resource, const char **values): + Form::ResourceDecorator (name) +{ + this->resource = resource; + + int n = 0; + while (values[n]) + n++; + this->values = new const char*[n + 1]; + for (int i = 0; i < n; i++) + this->values[i] = strdup (values[i]); + this->values[n] = 0; +} + +Form::RadioButtonResourceDecorator::~RadioButtonResourceDecorator () +{ + for (int i = 0; values[i]; i++) + free((char *)values[i]); + delete[] values; +} + +const char *Form::RadioButtonResourceDecorator::getValue () +{ + RadioButtonResource::GroupIterator *it; + int i; + for (it = resource->groupIterator (), i = 0; it->hasNext (); i++) { + RadioButtonResource *resource = it->getNext (); + if(resource->isActivated ()) { + it->unref (); + return values[i]; + } + } + + it->unref (); + return NULL; +} + +Form::CheckButtonResourceDecorator::CheckButtonResourceDecorator + (const char *name, CheckButtonResource *resource): + Form::ResourceDecorator (name) +{ + this->resource = resource; +} + +const char *Form::CheckButtonResourceDecorator::getValue () +{ + return resource->isActivated () ? "true" : NULL; +} + +Form::SelectionResourceDecorator::SelectionResourceDecorator + (const char *name, SelectionResource *resource, const char **values): + Form::ResourceDecorator (name) +{ + this->resource = resource; + + int n = 0; + while (values[n]) + n++; + this->values = new const char*[n + 1]; + for(int i = 0; i < n; i++) + this->values[i] = strdup (values[i]); + this->values[n] = 0; +} + +Form::SelectionResourceDecorator::~SelectionResourceDecorator () +{ + for(int i = 0; values[i]; i++) + free((char *)values[i]); + delete[] values; +} + +const char *Form::SelectionResourceDecorator::getValue () +{ + valueBuf.clear(); + int n = resource->getNumberOfItems (); + bool first = true; + for (int i = 0; i < n; i++) { + if (resource->isSelected (i)) { + if (!first) + valueBuf.append (", "); + valueBuf.append (values[i]); + first = false; + } + } + + return valueBuf.getChars (); +} + +void Form::FormActivateReceiver::activate (Resource *resource) +{ + form->send (NULL, NULL, -1, -1); +} + +void Form::FormActivateReceiver::enter (Resource *resource) +{ +} + +void Form::FormActivateReceiver::leave (Resource *resource) +{ +} + +Form::FormClickedReceiver::FormClickedReceiver (Form *form, const char *name, + const char *value) +{ + this->form = form; + this->name = strdup (name); + this->value = strdup (value); +} + +Form::FormClickedReceiver::~FormClickedReceiver () +{ + free((char *)name); + free((char *)value); +} + +void Form::FormClickedReceiver::clicked (Resource *resource, + dw::core::EventButton *event) +{ + form->send (name, value, event->xCanvas, event->yCanvas); +} + +Form::Form () +{ + resources = new lout::container::typed::List (true); + activateReceiver = new FormActivateReceiver (this); + clickedReceivers = + new lout::container::typed::List (true); +} + +Form::~Form () +{ + delete resources; + delete activateReceiver; + delete clickedReceivers; +} + +/** + * \brief Adds an instance of dw::core::ui::TextResource. + */ +void Form::addTextResource (const char *name, + dw::core::ui::TextResource *resource) +{ + resources->append (new TextResourceDecorator (name, resource)); + resource->connectActivate (activateReceiver); +} + +/** + * \brief Adds an instance of dw::core::ui::RadioButtonResource. + * + * This method has to be called only once for a group of radio buttons. + */ +void Form::addRadioButtonResource (const char *name, + dw::core::ui::RadioButtonResource *resource, + const char **values) +{ + resources->append (new RadioButtonResourceDecorator (name, resource, + values)); + resource->connectActivate (activateReceiver); +} + +/** + * \brief Adds an instance of dw::core::ui::CheckButtonResource. + */ +void Form::addCheckButtonResource (const char *name, + dw::core::ui::CheckButtonResource *resource) +{ + resources->append (new CheckButtonResourceDecorator (name, resource)); + resource->connectActivate (activateReceiver); +} + +/** + * \brief Adds an instance of dw::core::ui::SelectionResource. + */ +void Form::addSelectionResource (const char *name, + dw::core::ui::SelectionResource *resource, + const char **values) +{ + resources->append (new SelectionResourceDecorator (name, resource, values)); + resource->connectActivate (activateReceiver); +} + +/** + * \todo Comment this; + */ +void Form::addButtonResource (const char *name, + dw::core::ui::ButtonResource *resource, + const char *value) +{ + FormClickedReceiver *receiver = + new FormClickedReceiver (this, name, value); + resource->connectClicked (receiver); + clickedReceivers->append (receiver); +} + +/** + * \todo Comment this; + */ +void Form::send (const char *buttonName, const char *buttonValue, int x, int y) +{ + for (lout::container::typed::Iterator it = + resources->iterator (); + it.hasNext (); ) { + ResourceDecorator *resource = it.getNext (); + const char *value = resource->getValue (); + if (value) + printf ("%s = %s; x=%d y=%d\n", resource->getName (), value, x, y); + } + + if(buttonName && buttonValue) + printf ("%s = %s\n", buttonName, buttonValue); +} + +} // namespace form diff --git a/test/dw/form.hh b/test/dw/form.hh new file mode 100644 index 00000000..6235c6cc --- /dev/null +++ b/test/dw/form.hh @@ -0,0 +1,164 @@ +#ifndef __TEST_FORM_HH__ +#define __TEST_FORM_HH__ + +#include "../dw/core.hh" +#include "../dw/ui.hh" + +namespace form { + +/** + * \brief Handles HTML form data. + * + * Add resources by calling the respective add...Resource method. Furtermore, + * this class impelements dw::core::ui::ButtonResource::ClickedReceiver, the + * form data is printed to stdout, when the "clicked" signal is received. + * + * \todo wrong comment + */ +class Form +{ +private: + /** + * \brief Decorates instances of dw::core::ui::Resource. + * + * This is the abstract base class, sub classes have to be defined to + * decorate specific sub interfaces of dw::core::ui::Resource. + */ + class ResourceDecorator: public lout::object::Object + { + private: + const char *name; + + protected: + ResourceDecorator (const char *name); + ~ResourceDecorator (); + + public: + inline const char *getName () { return name; } + virtual const char *getValue () = 0; + }; + + /** + * \brief Decorates instances of dw::core::ui::TextResource. + */ + class TextResourceDecorator: public ResourceDecorator + { + private: + dw::core::ui::TextResource *resource; + + public: + TextResourceDecorator (const char *name, + dw::core::ui::TextResource *resource); + const char *getValue (); + }; + + /** + * \brief Decorates instances of dw::core::ui::RadioButtonResource. + * + * This class has to be instantiated only once for a group of radio + * buttons. + */ + class RadioButtonResourceDecorator: public ResourceDecorator + { + private: + dw::core::ui::RadioButtonResource *resource; + const char **values; + + public: + RadioButtonResourceDecorator (const char *name, + dw::core::ui::RadioButtonResource + *resource, + const char **values); + ~RadioButtonResourceDecorator (); + const char *getValue (); + }; + + /** + * \brief Decorates instances of dw::core::ui::CheckButtonResource. + */ + class CheckButtonResourceDecorator: public ResourceDecorator + { + private: + dw::core::ui::CheckButtonResource *resource; + + public: + CheckButtonResourceDecorator (const char *name, + dw::core::ui::CheckButtonResource + *resource); + const char *getValue (); + }; + + /** + * \brief Decorates instances of dw::core::ui::SelectionResource. + */ + class SelectionResourceDecorator: public ResourceDecorator + { + private: + dw::core::ui::SelectionResource *resource; + const char **values; + lout::misc::StringBuffer valueBuf; + + public: + SelectionResourceDecorator (const char *name, + dw::core::ui::SelectionResource *resource, + const char **values); + ~SelectionResourceDecorator (); + const char *getValue (); + }; + + class FormActivateReceiver: public dw::core::ui::Resource::ActivateReceiver + { + private: + Form *form; + + public: + inline FormActivateReceiver (Form *form) { this->form = form; } + + void activate (dw::core::ui::Resource *resource); + void enter (dw::core::ui::Resource *resource); + void leave (dw::core::ui::Resource *resource); + }; + + class FormClickedReceiver: + public dw::core::ui::Resource::ClickedReceiver + { + private: + Form *form; + const char *name, *value; + + public: + FormClickedReceiver (Form *form, const char *name, const char *value); + ~FormClickedReceiver (); + + void clicked(dw::core::ui::Resource *resource, + dw::core::EventButton *event); + }; + + lout::container::typed::List *resources; + FormActivateReceiver *activateReceiver; + lout::container::typed::List *clickedReceivers; + +public: + Form (); + ~Form (); + + void addTextResource (const char *name, + dw::core::ui::TextResource *resource); + void addRadioButtonResource (const char *name, + dw::core::ui::RadioButtonResource *resource, + const char **values); + void addCheckButtonResource (const char *name, + dw::core::ui::CheckButtonResource *resource); + void addSelectionResource (const char *name, + dw::core::ui::SelectionResource *resource, + const char **values); + void addButtonResource (const char *name, + dw::core::ui::ButtonResource *resource, + const char *value); + + void send (const char *buttonName, const char *buttonValue, int x, int y); +}; + +} // namespace form + +#endif // __TEST_FORM_HH__ diff --git a/test/dw_anchors_test.cc b/test/dw_anchors_test.cc deleted file mode 100644 index d7201053..00000000 --- a/test/dw_anchors_test.cc +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/textblock.hh" - -using namespace lout::container::typed; -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -static FltkPlatform *platform; -static Layout *layout; -static Fl_Window *window; -static FltkViewport *viewport; -static Style *topWidgetStyle, *widgetStyle, *wordStyle, *headingStyle; -static Textblock *topTextblock = NULL; -static int textblockNo = 0; - -static const char *numbers[10] = { - "one", "two", "three", "four", "five", - "six", "seven", "eight", "nine", "ten" -}; - -static void anchorCallback (Fl_Widget *widget, void *data) -{ - layout->setAnchor (numbers[(long)data]); -} - -static void textTimeout (void *data) -{ - Textblock *oldTop = topTextblock; - topTextblock = new Textblock (false); - - if (oldTop) { - oldTop->addLinebreak (wordStyle); - oldTop->addWidget (topTextblock, widgetStyle); - } else { - topTextblock->setStyle (topWidgetStyle); - layout->setWidget (topTextblock); - } - - topTextblock->addAnchor (numbers[textblockNo], headingStyle); - - char buf[16]; - strcpy (buf, numbers[textblockNo]); - buf[0] = lout::misc::AsciiToupper (buf[0]); - topTextblock->addText (buf, headingStyle); - topTextblock->addParbreak (5, headingStyle); - - for (int i = 0; i < 30; i++) { - strcpy (buf, numbers[textblockNo]); - if (i == 0) - buf[0] = lout::misc::AsciiToupper (buf[0]); - strcat (buf, i == 29 ? "." : ","); - - topTextblock->addText (buf, wordStyle); - topTextblock->addSpace (wordStyle); - } - - topTextblock->flush (); - - textblockNo++; - if (textblockNo < 10) - Fl::repeat_timeout (1, textTimeout, NULL); - -} - -int main(int argc, char **argv) -{ - char *buttonLabel[10]; - - platform = new FltkPlatform (); - layout = new Layout (platform); - - window = new Fl_Window(250, 200, "Dw Anchors Test"); - window->box(FL_NO_BOX); - window->begin(); - - viewport = new FltkViewport (50, 0, 200, 200); - viewport->end(); - layout->attachView (viewport); - - for (int i = 0; i < 10; i++) { - char buf[16]; - strcpy (buf, numbers[i]); - buf[0] = lout::misc::AsciiToupper (buf[0]); - buttonLabel[i] = strdup(buf); - Fl_Button *button = new Fl_Button(0, 20 * i, 50, 20, buttonLabel[i]); - button->callback (anchorCallback, (void*)(long)i); - button->when (FL_WHEN_RELEASE); - } - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - styleAttrs.margin.setVal (5); - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - topWidgetStyle = Style::create (&styleAttrs); - - styleAttrs.margin.left = 20; - styleAttrs.margin.right = 0; - styleAttrs.backgroundColor = NULL; - widgetStyle = Style::create (&styleAttrs); - - styleAttrs.margin.left = 0; - wordStyle = Style::create (&styleAttrs); - - fontAttrs.size = 28; - fontAttrs.weight = 700; - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - headingStyle = Style::create (&styleAttrs); - - Fl::add_timeout (0, textTimeout, NULL); - - window->resizable(viewport); - window->show(); - - int errorCode = Fl::run(); - - topWidgetStyle->unref (); - widgetStyle->unref (); - wordStyle->unref (); - headingStyle->unref (); - for (int i = 0; i < 10; i++) - free(buttonLabel[i]); - delete layout; - - return errorCode; -} diff --git a/test/dw_border_test.cc b/test/dw_border_test.cc deleted file mode 100644 index ec5a09a5..00000000 --- a/test/dw_border_test.cc +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/textblock.hh" -#include "../dw/listitem.hh" - -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -int main(int argc, char **argv) -{ - FltkPlatform *platform = new FltkPlatform (); - Layout *layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(200, 300, "Dw Border Test"); - window->box(FL_NO_BOX); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, 0, 200, 300); - layout->attachView (viewport); - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - styleAttrs.borderWidth.setVal (2); - styleAttrs.setBorderColor (Color::create (layout, 0xffffff)); - styleAttrs.setBorderStyle (BORDER_INSET); - styleAttrs.padding.setVal (5); - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - - Style *widgetStyle1 = Style::create (&styleAttrs); - - styleAttrs.backgroundColor = Color::create (layout, 0xffff80); - styleAttrs.margin.setVal (0); - styleAttrs.borderWidth.setVal (1); - styleAttrs.setBorderColor (Color::create (layout, 0x4040ff)); - styleAttrs.setBorderStyle (BORDER_SOLID); - styleAttrs.padding.setVal (1); - - Style *widgetStyle2 = Style::create (&styleAttrs); - - Textblock *textblock1 = new Textblock (false); - textblock1->setStyle (widgetStyle1); - layout->setWidget (textblock1); - - widgetStyle1->unref(); - - styleAttrs.borderWidth.setVal (0); - styleAttrs.padding.setVal (0); - styleAttrs.backgroundColor = NULL; - styleAttrs.cursor = CURSOR_TEXT; - - Style *wordStyle = Style::create (&styleAttrs); - - const char *words1[] = { "Some", "random", "text.", NULL }; - const char *words2[] = { "A", "nested", "paragraph.", NULL }; - - for(int i = 0; words1[i]; i++) { - if(i != 0) - textblock1->addSpace (wordStyle); - textblock1->addText (words1[i], wordStyle); - } - - for(int i = 0; i < 1; i++) { - textblock1->addParbreak(0, wordStyle); - - Textblock *textblock2 = new Textblock (false); - textblock1->addWidget (textblock2, widgetStyle2); - - for(int j = 0; words2[j]; j++) { - if(j != 0) - textblock2->addSpace (wordStyle); - textblock2->addText (words2[j], wordStyle); - } - - textblock2->flush (); - } - - textblock1->flush (); - - window->resizable(viewport); - window->show(); - int errorCode = Fl::run(); - - widgetStyle2->unref(); - wordStyle->unref(); - delete layout; - - return errorCode; -} diff --git a/test/dw_example.cc b/test/dw_example.cc deleted file mode 100644 index 259650cf..00000000 --- a/test/dw_example.cc +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/textblock.hh" - - -int main(int argc, char **argv) -{ - dw::fltk::FltkPlatform *platform = new dw::fltk::FltkPlatform (); - dw::core::Layout *layout = new dw::core::Layout (platform); - - Fl_Window *window = new Fl_Window(200, 300, "Dw Example"); - window->box(FL_NO_BOX); - window->begin(); - - dw::fltk::FltkViewport *viewport = - new dw::fltk::FltkViewport (0, 0, 200, 300); - layout->attachView (viewport); - - dw::core::style::StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - - dw::core::style::FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = dw::core::style::FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = dw::core::style::FONT_VARIANT_NORMAL; - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - - styleAttrs.color = - dw::core::style::Color::create (layout, 0x000000); - styleAttrs.backgroundColor = - dw::core::style::Color::create (layout, 0xffffff); - - dw::core::style::Style *widgetStyle = - dw::core::style::Style::create (&styleAttrs); - - dw::Textblock *textblock = new dw::Textblock (false); - textblock->setStyle (widgetStyle); - layout->setWidget (textblock); - - widgetStyle->unref(); - - styleAttrs.margin.setVal (0); - styleAttrs.backgroundColor = NULL; - - dw::core::style::Style *wordStyle = - dw::core::style::Style::create (&styleAttrs); - - for(int i = 1; i <= 10; i++) { - char buf[4]; - sprintf(buf, "%d.", i); - - const char *words[] = { "This", "is", "the", buf, "paragraph.", - "Here", "comes", "some", "more", "text", - "to", "demonstrate", "word", "wrapping.", - NULL }; - - for(int j = 0; words[j]; j++) { - textblock->addText(words[j], wordStyle); - textblock->addSpace(wordStyle); - } - - textblock->addParbreak(10, wordStyle); - } - - wordStyle->unref(); - - textblock->flush (); - - window->resizable(viewport); - window->show(); - int errorCode = Fl::run(); - - delete layout; - - return errorCode; -} diff --git a/test/dw_find_test.cc b/test/dw_find_test.cc deleted file mode 100644 index 5bddda10..00000000 --- a/test/dw_find_test.cc +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include -#include -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/textblock.hh" - -using namespace lout::container::typed; -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -static FltkPlatform *platform; -static Layout *layout; -static Fl_Window *window; -static FltkViewport *viewport; -static Fl_Button *findButton, *resetButton; -static Fl_Widget *resultLabel; - -static void findCallback (Fl_Widget *widget, void *data) -{ - //switch(layout->search ("worm", true)) { - switch(layout->search ("WORM", false, false)) { - case FindtextState::SUCCESS: - resultLabel->label("SUCCESS"); - break; - - case FindtextState::RESTART: - resultLabel->label("RESTART"); - break; - - case FindtextState::NOT_FOUND: - resultLabel->label("NOT_FOUND"); - break; - } - - resultLabel->redraw (); -} - -static void resetCallback (Fl_Widget *widget, void *data) -{ - layout->resetSearch (); - resultLabel->label("---"); - resultLabel->redraw (); -} - -int main(int argc, char **argv) -{ - platform = new FltkPlatform (); - layout = new Layout (platform); - - window = new Fl_Window(200, 300, "Dw Find Test"); - window->box(FL_NO_BOX); - window->begin(); - - viewport = new FltkViewport (0, 0, 200, 280); - viewport->end(); - layout->attachView (viewport); - - findButton = new Fl_Button(0, 280, 50, 20, "Find"); - findButton->callback (findCallback, NULL); - findButton->when (FL_WHEN_RELEASE); - findButton->clear_visible_focus (); - - resetButton = new Fl_Button(50, 280, 50, 20, "Reset"); - resetButton->callback (resetCallback, NULL); - resetButton->when (FL_WHEN_RELEASE); - resetButton->clear_visible_focus (); - - resultLabel = new Fl_Box(100, 280, 100, 20, "---"); - resultLabel->box(FL_FLAT_BOX); - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - styleAttrs.margin.setVal (10); - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - Style *topWidgetStyle = Style::create (&styleAttrs); - - styleAttrs.margin.setVal (0); - styleAttrs.margin.left = 30; - styleAttrs.backgroundColor = NULL; - Style *widgetStyle = Style::create (&styleAttrs); - - styleAttrs.margin.left = 0; - Style *wordStyle = Style::create (&styleAttrs); - - Textblock *textblock = new Textblock (false); - textblock->setStyle (topWidgetStyle); - layout->setWidget (textblock); - - Stack *stack = new Stack (false); - stack->push (textblock); - - for(int i = 0; i < 10; i++) - for(int j = 0; j < 10; j++) { - Textblock *current; - if(j < 5) { - current = new Textblock (false); - stack->getTop()->addWidget (current, widgetStyle); - stack->push (current); - } else { - stack->getTop()->flush (); - stack->pop (); - current = stack->getTop (); - } - - current->addText ((i == j ? "worm" : "apple"), wordStyle); - current->addLinebreak (wordStyle); - } - - stack->getTop()->flush (); - - topWidgetStyle->unref (); - widgetStyle->unref (); - wordStyle->unref (); - - window->resizable(viewport); - window->show(); - int errorCode = Fl::run(); - - delete layout; - - return errorCode; -} diff --git a/test/dw_float_test.cc b/test/dw_float_test.cc deleted file mode 100644 index 807002b2..00000000 --- a/test/dw_float_test.cc +++ /dev/null @@ -1,145 +0,0 @@ -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/textblock.hh" - -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -static Textblock *firstFloat; -static Style *wordStyle; - -static void addTextToFloatTimeout (void *data) -{ - printf("addTextToFloatTimeout\n"); - - const char *fWords[] = { "This", "is", "a", "float,", "which", "is", - "set", "aside", "from", "the", "main", - "text.", NULL }; - - for(int k = 0; fWords[k]; k++) { - firstFloat->addText(fWords[k], wordStyle); - firstFloat->addSpace(wordStyle); - } - - firstFloat->flush(); - - Fl::repeat_timeout (2, addTextToFloatTimeout, NULL); -} - -int main(int argc, char **argv) -{ - FltkPlatform *platform = new FltkPlatform (); - Layout *layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(400, 600, "Dw Floats Example"); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, 0, 400, 600); - layout->attachView (viewport); - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - styleAttrs.font = core::style::Font::create (layout, &fontAttrs); - - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - - Style *widgetStyle = Style::create (&styleAttrs); - - styleAttrs.borderWidth.setVal (1); - styleAttrs.setBorderColor (Color::create (layout, 0x808080)); - styleAttrs.setBorderStyle (BORDER_DASHED); - styleAttrs.width = createAbsLength(100); - styleAttrs.vloat = FLOAT_LEFT; - Style *leftFloatStyle = Style::create (&styleAttrs); - - styleAttrs.width = createAbsLength(80); - styleAttrs.vloat = FLOAT_RIGHT; - Style *rightFloatStyle = Style::create (&styleAttrs); - - Textblock *textblock = new Textblock (false); - textblock->setStyle (widgetStyle); - layout->setWidget (textblock); - - widgetStyle->unref(); - - styleAttrs.borderWidth.setVal (0); - styleAttrs.width = LENGTH_AUTO; - styleAttrs.vloat = FLOAT_NONE; - styleAttrs.margin.setVal (0); - styleAttrs.backgroundColor = NULL; - - wordStyle = Style::create (&styleAttrs); - - for(int i = 1; i <= 10; i++) { - char buf[16]; - snprintf(buf, sizeof(buf), "%d%s", - i, (i == 1 ? "st" : (i == 2 ? "nd" : (i == 3 ? "rd" : "th")))); - - const char *words[] = { "This", "is", "the", buf, "paragraph.", - "Here", "comes", "some", "more", "text", - "to", "demonstrate", "word", "wrapping.", - NULL }; - - for(int j = 0; words[j]; j++) { - textblock->addText(words[j], wordStyle); - textblock->addSpace(wordStyle); - - if ((i == 3 || i == 5) && j == 8) { - textblock->addText("[float]", wordStyle); - textblock->addSpace(wordStyle); - - Textblock *vloat = new Textblock (false); - textblock->addWidget(vloat, i == 3 ? leftFloatStyle : rightFloatStyle); - - const char *fWords[] = { "This", "is", "a", "float,", "which", "is", - "set", "aside", "from", "the", "main", - "text.", NULL }; - - vloat->addText(i == 3 ? "Left:" : "Right:", wordStyle); - vloat->addSpace(wordStyle); - - for(int k = 0; fWords[k]; k++) { - vloat->addText(fWords[k], wordStyle); - vloat->addSpace(wordStyle); - } - - vloat->flush (); - - if(i == 3) - firstFloat = vloat; - } - } - - textblock->addParbreak(10, wordStyle); - } - - leftFloatStyle->unref(); - rightFloatStyle->unref(); - - textblock->flush (); - - window->resizable(viewport); - window->show(); - Fl::add_timeout (2, addTextToFloatTimeout, NULL); - int errorCode = Fl::run(); - - wordStyle->unref(); - delete layout; - - return errorCode; -} diff --git a/test/dw_image_background.cc b/test/dw_image_background.cc deleted file mode 100644 index 14cb7b97..00000000 --- a/test/dw_image_background.cc +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2013 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include - -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/textblock.hh" -#include "../dw/image.hh" - -using namespace lout::signal; -using namespace lout::misc; -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -class ImageStyleDeletionReceiver: public ObservedObject::DeletionReceiver -{ -public: - void deleted (ObservedObject *object); -}; - -static StyleImage *image1 = NULL, *image2 = NULL; -static Layout *layout; -static int imgRow1 = 0, imgRow2 = 0; -static ImageStyleDeletionReceiver isdr; - -void ImageStyleDeletionReceiver::deleted (ObservedObject *object) -{ - if ((StyleImage*)object == image1) - image1 = NULL; - else if ((StyleImage*)object == image2) - image2 = NULL; - else - assertNotReached (); -} - -static void imageInitTimeout (void *data) -{ - if (image1) { - Imgbuf *imgbuf1 = layout->createImgbuf (Imgbuf::RGB, 400, 200, 1); - image1->getMainImgRenderer()->setBuffer (imgbuf1, false); - } - - if (image2) { - Imgbuf *imgbuf2 = layout->createImgbuf (Imgbuf::RGB, 100, 100, 1); - image2->getMainImgRenderer()->setBuffer (imgbuf2, false); - } -} - -static void imageDrawTimeout (void *data) -{ - Imgbuf *imgbuf1 = image1 ? image1->getImgbufSrc () : NULL; - Imgbuf *imgbuf2 = image2 ? image2->getImgbufSrc () : NULL; - - if (imgbuf1 && imgRow1 < 200) { - byte buf[3 * 400]; - for(int x = 0; x < 400; x++) { - buf[3 * x + 0] = 128 + x * 127 / 399; - buf[3 * x + 1] = 128 + (399 - x) * 127 / 399; - buf[3 * x + 2] = 128 + imgRow1 * 127 / 199; - } - - imgbuf1->copyRow (imgRow1, buf); - image1->getMainImgRenderer()->drawRow (imgRow1); - imgRow1++; - } - - if (imgbuf2 && imgRow2 < 100) { - byte buf[3 * 100]; - for(int x = 0; x < 100; x++) { - int r = 128 + rand () % 127; - buf[3 * x + 0] = buf[3 * x + 1] = buf[3 * x + 2] = r; - } - - imgbuf2->copyRow (imgRow2, buf); - image2->getMainImgRenderer()->drawRow (imgRow2); - imgRow2++; - } - - if(imgRow1 < 200 || imgRow2 < 100) - Fl::repeat_timeout (0.5, imageDrawTimeout, NULL); -} - -int main(int argc, char **argv) -{ - FltkPlatform *platform = new FltkPlatform (); - layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(200, 300, "Dw Example"); - window->box(FL_NO_BOX); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, 0, 200, 300); - layout->attachView (viewport); - - image1 = StyleImage::create (); - image1->connectDeletion (&isdr); - layout->setBgImage (image1, BACKGROUND_REPEAT_Y, - BACKGROUND_ATTACHMENT_SCROLL, createPerLength (0.5), - createAbsLength (30)); - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - styleAttrs.x_lang[0] = 'e'; - styleAttrs.x_lang[1] = 'n'; - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - styleAttrs.font = style::Font::create (layout, &fontAttrs); - - styleAttrs.color = Color::create (layout, 0x000000); - //styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - - Style *widgetStyle = Style::create (&styleAttrs); - - Textblock *textblock = new Textblock (false); - textblock->setStyle (widgetStyle); - layout->setWidget (textblock); - - widgetStyle->unref(); - - styleAttrs.margin.setVal (0); - styleAttrs.backgroundColor = NULL; - styleAttrs.backgroundImage = NULL; - - Style *wordStyle = Style::create (&styleAttrs); - - image2 = styleAttrs.backgroundImage = StyleImage::create (); - image2->connectDeletion (&isdr); - styleAttrs.backgroundRepeat = BACKGROUND_REPEAT; - styleAttrs.backgroundPositionX = createPerLength (0); - styleAttrs.backgroundPositionY = createPerLength (0); - Style *wordStyleBg = Style::create (&styleAttrs); - - for(int i = 1; i <= 1; i++) { - char buf[4]; - sprintf(buf, "%d.", i); - - const char *words[] = { "This", "is", "the", buf, "paragraph.", - "Here", "comes", "some", "more", "text", - "to", "demonstrate", "word", "wrapping.", - NULL }; - - for(int j = 0; words[j]; j++) { - textblock->addText(words[j], j == 11 ? wordStyleBg : wordStyle); - textblock->addSpace(wordStyle); - } - - textblock->addParbreak(10, wordStyle); - } - - wordStyle->unref(); - wordStyleBg->unref(); - - textblock->flush (); - - window->resizable(viewport); - window->show(); - - Fl::add_timeout (1.0, imageInitTimeout, NULL); - Fl::add_timeout (0.1, imageDrawTimeout, NULL); - - int errorCode = Fl::run(); - - delete layout; - - return errorCode; -} diff --git a/test/dw_images_scaled.cc b/test/dw_images_scaled.cc deleted file mode 100644 index e31abfaa..00000000 --- a/test/dw_images_scaled.cc +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/textblock.hh" -#include "../dw/image.hh" - -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -static Layout *layout; -static Image *image; -static core::Imgbuf *imgbuf = NULL; -static int imgRow = 0; - -static void imageInitTimeout (void *data) -{ - //imgbuf = layout->createImgbuf (Imgbuf::RGBA, 400, 200); - imgbuf = layout->createImgbuf (Imgbuf::RGB, 400, 200, 1); - image->setBuffer (imgbuf); -} - -/* -static void imageDrawTimeout (void *data) -{ - if (imgbuf) { - for (int i = 0; i < 1; i++) { - byte buf[4 * 400]; - for(int x = 0; x < 400; x++) { - buf[4 * x + 0] = x * 255 / 399; - buf[4 * x + 1] = (399 - x) * 255 / 399; - buf[4 * x + 2] = imgRow * 255 / 199; - buf[4 * x + 3] = (199 - imgRow) * 255 / 199; - } - - imgbuf->copyRow (imgRow, buf); - image->drawRow (imgRow); - imgRow++; - } - } - - if(imgRow < 200) - ::fltk::repeat_timeout (0.5, imageDrawTimeout, NULL); -} -*/ - -static void imageDrawTimeout (void *data) -{ - if (imgbuf) { - for (int i = 0; i < 1; i++) { - byte buf[3 * 400]; - for(int x = 0; x < 400; x++) { - buf[3 * x + 0] = x * 255 / 399; - buf[3 * x + 1] = (399 - x) * 255 / 399; - buf[3 * x + 2] = imgRow * 255 / 199; - } - - imgbuf->copyRow (imgRow, buf); - image->drawRow (imgRow); - imgRow++; - } - } - - if(imgRow < 200) - Fl::repeat_timeout (0.5, imageDrawTimeout, NULL); -} - -int main(int argc, char **argv) -{ - FltkPlatform *platform = new FltkPlatform (); - layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(410, 210, "Dw Scaled Image"); - window->box(FL_NO_BOX); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, 0, 410, 210); - layout->attachView (viewport); - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - styleAttrs.width = createPerLength (1.0); - styleAttrs.height = createPerLength (1.0); - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - - Style *widgetStyle = Style::create (&styleAttrs); - - Textblock *textblock = new Textblock (false); - textblock->setStyle (widgetStyle); - layout->setWidget (textblock); - - widgetStyle->unref(); - - styleAttrs.margin.setVal (0); - styleAttrs.backgroundColor = NULL; - - Style *imageStyle = Style::create (&styleAttrs); - - image = new dw::Image (""); - textblock->addWidget (image, imageStyle); - textblock->addSpace (imageStyle); - - imageStyle->unref(); - - textblock->flush (); - - window->resizable(viewport); - window->show(); - - Fl::add_timeout (2.0, imageInitTimeout, NULL); - Fl::add_timeout (0.1, imageDrawTimeout, NULL); - - int errorCode = Fl::run(); - - delete layout; - - return errorCode; -} diff --git a/test/dw_images_scaled2.cc b/test/dw_images_scaled2.cc deleted file mode 100644 index 01a55bcf..00000000 --- a/test/dw_images_scaled2.cc +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/textblock.hh" -#include "../dw/image.hh" - -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -static Layout *layout; -static Image *image1, *image2; -static core::Imgbuf *imgbuf = NULL; -static int imgRow = 0; - -static void imageInitTimeout (void *data) -{ - imgbuf = layout->createImgbuf (Imgbuf::RGB, 400, 200, 1); - image1->setBuffer (imgbuf); - image2->setBuffer (imgbuf); -} - -static void imageDrawTimeout (void *data) -{ - if (imgbuf) { - for (int i = 0; i < 1; i++) { - byte buf[3 * 400]; - for(int x = 0; x < 400; x++) { - buf[3 * x + 0] = x * 255 / 399; - buf[3 * x + 1] = (399 - x) * 255 / 399; - buf[3 * x + 2] = imgRow * 255 / 199; - } - - imgbuf->copyRow (imgRow, buf); - image1->drawRow (imgRow); - image2->drawRow (imgRow); - imgRow++; - } - } - - if(imgRow < 200) - Fl::repeat_timeout (0.5, imageDrawTimeout, NULL); -} - -int main(int argc, char **argv) -{ - FltkPlatform *platform = new FltkPlatform (); - layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(410, 210, "Dw Scaled Image 2"); - window->box(FL_NO_BOX); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, 0, 410, 210); - layout->attachView (viewport); - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - - Style *widgetStyle = Style::create (&styleAttrs); - - Textblock *textblock = new Textblock (false); - textblock->setStyle (widgetStyle); - layout->setWidget (textblock); - - widgetStyle->unref(); - - styleAttrs.margin.setVal (0); - styleAttrs.borderWidth.setVal (0); - styleAttrs.padding.setVal (0); - styleAttrs.backgroundColor = NULL; - - Style *wordStyle = Style::create (&styleAttrs); - - styleAttrs.borderWidth.setVal (1); - styleAttrs.setBorderColor (Color::create (layout, 0x000080)); - styleAttrs.setBorderStyle (BORDER_SOLID); - styleAttrs.padding.setVal (1); - styleAttrs.backgroundColor = NULL; - styleAttrs.width = createPerLength (0.25); - styleAttrs.height = createPerLength (0.25); - - Style *imageStyle1 = Style::create (&styleAttrs); - image1 = new dw::Image ("A longer ALT Text to demonstrate clipping."); - textblock->addWidget (image1, imageStyle1); - imageStyle1->unref(); - - textblock->addParbreak (10, wordStyle); - - styleAttrs.width = LENGTH_AUTO; - styleAttrs.height = LENGTH_AUTO; - - Style *imageStyle2 = Style::create (&styleAttrs); - image2 = new dw::Image ("A longer ALT Text to demonstrate clipping."); - textblock->addWidget (image2, imageStyle2); - imageStyle2->unref(); - - wordStyle->unref (); - textblock->flush (); - - window->resizable(viewport); - window->show(); - - Fl::add_timeout (3.0, imageInitTimeout, NULL); - Fl::add_timeout (0.1, imageDrawTimeout, NULL); - - int errorCode = Fl::run(); - - delete layout; - - return errorCode; -} diff --git a/test/dw_images_simple.cc b/test/dw_images_simple.cc deleted file mode 100644 index 361ede68..00000000 --- a/test/dw_images_simple.cc +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/textblock.hh" -#include "../dw/image.hh" - -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -static Layout *layout; -static Image *image; -static core::Imgbuf *imgbuf = NULL; -static int imgRow = 0; - -static void imageInitTimeout (void *data) -{ - const bool resize = true; - //imgbuf = layout->createImgbuf (Imgbuf::RGBA, 400, 200); - imgbuf = layout->createImgbuf (Imgbuf::RGB, 400, 200, 1); - image->setBuffer (imgbuf, resize); -} - -/* -static void imageDrawTimeout (void *data) -{ - if (imgbuf) { - for (int i = 0; i < 1; i++) { - byte buf[4 * 400]; - for(int x = 0; x < 400; x++) { - buf[4 * x + 0] = x * 255 / 399; - buf[4 * x + 1] = (399 - x) * 255 / 399; - buf[4 * x + 2] = imgRow * 255 / 199; - buf[4 * x + 3] = (199 - imgRow) * 255 / 199; - } - - imgbuf->copyRow (imgRow, buf); - image->drawRow (imgRow); - imgRow++; - } - } - - if(imgRow < 200) - Fl::repeat_timeout (0.5, imageDrawTimeout, NULL); -} -*/ - -static void imageDrawTimeout (void *data) -{ - if (imgbuf) { - for (int i = 0; i < 1; i++) { - byte buf[3 * 400]; - for(int x = 0; x < 400; x++) { - buf[3 * x + 0] = x * 255 / 399; - buf[3 * x + 1] = (399 - x) * 255 / 399; - buf[3 * x + 2] = imgRow * 255 / 199; - } - - imgbuf->copyRow (imgRow, buf); - image->drawRow (imgRow); - imgRow++; - } - } - - if(imgRow < 200) - Fl::repeat_timeout (0.5, imageDrawTimeout, NULL); -} - -int main(int argc, char **argv) -{ - FltkPlatform *platform = new FltkPlatform (); - layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(410, 210, "Dw Simple Image"); - window->box(FL_NO_BOX); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, 0, 410, 210); - layout->attachView (viewport); - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - - Style *widgetStyle = Style::create (&styleAttrs); - - Textblock *textblock = new Textblock (false); - textblock->setStyle (widgetStyle); - layout->setWidget (textblock); - - widgetStyle->unref(); - - styleAttrs.margin.setVal (0); - styleAttrs.backgroundColor = NULL; - - Style *imageStyle = Style::create (&styleAttrs); - - image = new dw::Image (""); - textblock->addWidget (image, imageStyle); - textblock->addSpace (imageStyle); - - imageStyle->unref(); - - textblock->flush (); - - window->resizable(viewport); - window->show(); - - Fl::add_timeout (2.0, imageInitTimeout, NULL); - Fl::add_timeout (0.1, imageDrawTimeout, NULL); - - int errorCode = Fl::run(); - - delete layout; - - return errorCode; -} diff --git a/test/dw_imgbuf_mem_test.cc b/test/dw_imgbuf_mem_test.cc deleted file mode 100644 index e2532ea7..00000000 --- a/test/dw_imgbuf_mem_test.cc +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" - -using namespace lout::signal; -using namespace dw::core; -using namespace dw::fltk; - -void solution1 () -{ - FltkPlatform *platform = new FltkPlatform (); - Layout *layout = new Layout (platform); - - Imgbuf *rootbuf = layout->createImgbuf (Imgbuf::RGB, 100, 100, 1); - rootbuf->ref (); // Extra reference by the dicache. - printf ("=== Can be deleted? %s.\n", - rootbuf->lastReference () ? "Yes" : "No"); - Imgbuf *scaledbuf = rootbuf->getScaledBuf (50, 50); - printf ("=== Can be deleted? %s.\n", - rootbuf->lastReference () ? "Yes" : "No"); - rootbuf->unref (); - printf ("=== Can be deleted? %s.\n", - rootbuf->lastReference () ? "Yes" : "No"); - scaledbuf->unref (); - printf ("=== Can be deleted? %s.\n", - rootbuf->lastReference () ? "Yes" : "No"); - rootbuf->unref (); // Extra reference by the dicache. - - delete layout; -} - -void solution2 () -{ - FltkPlatform *platform = new FltkPlatform (); - Layout *layout = new Layout (platform); - - Imgbuf *rootbuf = layout->createImgbuf (Imgbuf::RGB, 100, 100, 1); - rootbuf->setDeleteOnUnref (false); - printf ("=== Can be deleted? %s.\n", - !rootbuf->isReferred () ? "Yes" : "No"); - Imgbuf *scaledbuf = rootbuf->getScaledBuf (50, 50); - printf ("=== Can be deleted? %s.\n", - !rootbuf->isReferred () ? "Yes" : "No"); - rootbuf->unref (); - printf ("=== Can be deleted? %s.\n", - !rootbuf->isReferred () ? "Yes" : "No"); - scaledbuf->unref (); - printf ("=== Can be deleted? %s.\n", - !rootbuf->isReferred () ? "Yes" : "No"); - delete rootbuf; - - delete layout; -} - -class RootbufDeletionReceiver: public ObservedObject::DeletionReceiver -{ - void deleted (ObservedObject *object); -}; - -void RootbufDeletionReceiver::deleted (ObservedObject *object) -{ - printf ("=== Is deleted now.\n"); - delete this; -} - -void solution3 () -{ - FltkPlatform *platform = new FltkPlatform (); - Layout *layout = new Layout (platform); - - Imgbuf *rootbuf = layout->createImgbuf (Imgbuf::RGB, 100, 100, 1); - rootbuf->connectDeletion (new RootbufDeletionReceiver ()); - Imgbuf *scaledbuf = rootbuf->getScaledBuf (50, 50); - rootbuf->unref (); - scaledbuf->unref (); - - delete layout; -} - -int main (int argc, char **argv) -{ - printf ("========== SOLUTION 1 ==========\n"); - solution1 (); - printf ("========== SOLUTION 2 ==========\n"); - solution2 (); - printf ("========== SOLUTION 3 ==========\n"); - solution3 (); - - return 0; -} diff --git a/test/dw_links.cc b/test/dw_links.cc deleted file mode 100644 index 79ccbb54..00000000 --- a/test/dw_links.cc +++ /dev/null @@ -1,163 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/textblock.hh" - -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -class LinkTestReceiver: public Layout::LinkReceiver -{ - bool enter (Widget *widget, int link, int img, int x, int y); - bool press (Widget *widget, int link, int img, int x, int y, - EventButton *event); - bool release (Widget *widget, int link, int img, int x, int y, - EventButton *event); - bool click (Widget *widget, int link, int img, - int x, int y, EventButton *event); -}; - -bool LinkTestReceiver::enter (Widget *widget, int link, int img, int x, int y) -{ - printf ("enter: %d\n", link); - return true; -} - -bool LinkTestReceiver::press (Widget *widget, int link, int img, int x, int y, - EventButton *event) -{ - printf ("press: %d\n", link); - return true; -} - -bool LinkTestReceiver::release (Widget *widget, int link, int img, int x,int y, - EventButton *event) -{ - printf ("release: %d\n", link); - return true; -} - -bool LinkTestReceiver::click (Widget *widget, int link, int img, int x, int y, - EventButton *event) -{ - printf ("click: %d\n", link); - return true; -} - -int main(int argc, char **argv) -{ - LinkTestReceiver linkTestReceiver; - FltkPlatform *platform = new FltkPlatform (); - Layout *layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(200, 300, "Dw Links"); - window->box(FL_NO_BOX); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, 0, 200, 300); - layout->attachView (viewport); - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - - Style *widgetStyle = Style::create (&styleAttrs); - - Textblock *textblock = new Textblock (false); - textblock->setStyle (widgetStyle); - layout->setWidget (textblock); - - layout->connectLink (&linkTestReceiver); - - widgetStyle->unref(); - - styleAttrs.margin.setVal (0); - styleAttrs.backgroundColor = NULL; - styleAttrs.cursor = CURSOR_TEXT; - - Style *wordStyle = Style::create (&styleAttrs); - - styleAttrs.color = Color::create (layout, 0x0000ff); - styleAttrs.textDecoration = TEXT_DECORATION_UNDERLINE; - styleAttrs.cursor = CURSOR_POINTER; - - for(int i = 1; i <= 10; i++) { - char buf[4]; - sprintf(buf, "%d.", i); - - const char *words1[] = { - "This", "is", "the", buf, "paragraph.", - "Here", "comes", "some", "more", "text", - "to", "demonstrate", "word", "wrapping.", - NULL }; - const char *words2[] = { - "Click", "here", "for", "more..", NULL }; - - for(int j = 0; words1[j]; j++) { - textblock->addText(words1[j], wordStyle); - textblock->addSpace(wordStyle); - } - - styleAttrs.x_link = i; - Style *linkStyle = Style::create (&styleAttrs); - - for(int j = 0; words2[j]; j++) { - textblock->addText(words2[j], linkStyle); - textblock->addSpace(wordStyle); - } - - linkStyle->unref (); - - textblock->addParbreak(10, wordStyle); - } - - wordStyle->unref(); - - textblock->flush (); - - window->resizable(viewport); - window->show(); - int errorCode = Fl::run(); - - delete layout; - - return errorCode; -} diff --git a/test/dw_links2.cc b/test/dw_links2.cc deleted file mode 100644 index acb095f3..00000000 --- a/test/dw_links2.cc +++ /dev/null @@ -1,192 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/textblock.hh" - -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -class LinkTestReceiver: public Layout::LinkReceiver -{ - bool enter (Widget *widget, int link, int img, int x, int y); - bool press (Widget *widget, int link, int img, int x, int y, - EventButton *event); - bool release (Widget *widget, int link, int img, int x, int y, - EventButton *event); - bool click (Widget *widget, int link, int img, int x, int y, - EventButton *event); -}; - -bool LinkTestReceiver::enter (Widget *widget, int link, int img, int x, int y) -{ - printf ("enter: %d\n", link); - return true; -} - -bool LinkTestReceiver::press (Widget *widget, int link, int img, int x, int y, - EventButton *event) -{ - printf ("press: %d\n", link); - return true; -} - -bool LinkTestReceiver::release (Widget *widget, int link, int img, int x,int y, - EventButton *event) -{ - printf ("release: %d\n", link); - return true; -} - -bool LinkTestReceiver::click (Widget *widget, int link, int img, int x, int y, - EventButton *event) -{ - printf ("click: %d\n", link); - return true; -} - -int main(int argc, char **argv) -{ - int MainIdx; - int ww = 200, wh = 300, lh = 24; - - FltkPlatform *platform = new FltkPlatform (); - Layout *layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(200, 300, "Dw Links2"); - window->box(FL_NO_BOX); - window->begin(); - Fl_Widget *Panel = new Fl_Box(0, 0, ww, lh, "CONTROL PANEL"); - - Panel->color(FL_GRAY_RAMP + 3); - Panel->labelcolor(FL_WHITE); - Panel->box(FL_FLAT_BOX); - Fl_Widget *Main = new Fl_Box(0, lh, ww, wh - 2*lh, "MAIN RENDERING AREA"); - Main->color(FL_GRAY_RAMP + 4); - Main->labelcolor(FL_WHITE); - MainIdx = window->find(Main); - /* status bar */ - Fl_Widget *Bar = new Fl_Box(0, wh - lh, 200, lh, "STATUS BAR..."); - Bar->color(FL_GRAY_RAMP + 3); - Bar->labelcolor(FL_WHITE); - Bar->box(FL_FLAT_BOX); - - window->resizable(Main); - window->end(); - - // - // Create the main Dw and add some text there. - // - window->remove(MainIdx); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, lh, ww, wh - 2*lh); - layout->attachView (viewport); - - window->end(); - - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - - Style *widgetStyle = Style::create (&styleAttrs); - - Textblock *textblock = new Textblock (false); - textblock->setStyle (widgetStyle); - layout->setWidget (textblock); - - layout->connectLink (new LinkTestReceiver ()); - - widgetStyle->unref(); - - styleAttrs.margin.setVal (0); - styleAttrs.backgroundColor = NULL; - styleAttrs.cursor = CURSOR_TEXT; - - Style *wordStyle = Style::create (&styleAttrs); - - styleAttrs.color = Color::create (layout, 0x0000ff); - styleAttrs.textDecoration = TEXT_DECORATION_UNDERLINE; - styleAttrs.cursor = CURSOR_POINTER; - - for(int i = 1; i <= 30; i++) { - char buf[4]; - sprintf(buf, "%d.", i); - - const char *words1[] = { - "This", "is", "the", buf, "paragraph.", - "Here", "comes", "some", "more", "text", - "to", "demonstrate", "word", "wrapping.", - NULL }; - const char *words2[] = { - "Click", "here", "for", "more..", NULL }; - - for(int j = 0; words1[j]; j++) { - textblock->addText (words1[j], wordStyle); - textblock->addSpace(wordStyle); - } - - styleAttrs.x_link = i; - Style *linkStyle = Style::create (&styleAttrs); - - for(int j = 0; words2[j]; j++) { - textblock->addText (words2[j], linkStyle); - textblock->addSpace(wordStyle); - } - - linkStyle->unref (); - - textblock->addParbreak(10, wordStyle); - } - - wordStyle->unref(); - - textblock->flush (); - - window->resizable(viewport); - window->show(); - int errorCode = Fl::run(); - - delete layout; - - return errorCode; -} diff --git a/test/dw_lists.cc b/test/dw_lists.cc deleted file mode 100644 index 2aa0abb7..00000000 --- a/test/dw_lists.cc +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/textblock.hh" -#include "../dw/listitem.hh" - -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -int main(int argc, char **argv) -{ - FltkPlatform *platform = new FltkPlatform (); - Layout *layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(200, 300, "Dw Lists"); - window->box(FL_NO_BOX); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, 0, 200, 300); - layout->attachView (viewport); - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - - Style *widgetStyle = Style::create (&styleAttrs); - - Textblock *textblock = new Textblock (false); - textblock->setStyle (widgetStyle); - layout->setWidget (textblock); - - widgetStyle->unref(); - - styleAttrs.margin.setVal (0); - styleAttrs.backgroundColor = NULL; - styleAttrs.cursor = CURSOR_TEXT; - - Style *wordStyle = Style::create (&styleAttrs); - - styleAttrs.margin.setVal (5); - styleAttrs.padding.setVal (5); - styleAttrs.backgroundColor = Color::create (layout, 0xffff40); - styleAttrs.setBorderColor (Color::create (layout, 0x000000)); - styleAttrs.setBorderStyle (BORDER_SOLID); - styleAttrs.borderWidth.setVal (1); - - Style *itemStyle = Style::create (&styleAttrs); - - const char *wordsPar[] = { - "This", "is", "a", "normal", "paragraph.", "And", - "some", "list", "items", "follow:", NULL }; - const char *wordsItem[] = { - "This", "is", "a", "list", "item.", "Here", - "comes", "some", "more", "text", "to", - "demonstrate", "word", "wrapping.", NULL }; - - - for(int i = 0; wordsPar[i]; i++) { - if(i != 0) - textblock->addSpace (wordStyle); - textblock->addText (wordsPar[i], wordStyle); - } - textblock->addParbreak (5, wordStyle); - - ListItem *refItem = NULL; - - for(int i = 1; i <= 100; i++) { - ListItem *listItem = new ListItem (refItem, false); - refItem = listItem; - - textblock->addWidget (listItem, itemStyle); - textblock->addParbreak (2, wordStyle); - - char buf[16]; - sprintf (buf, "%d.", i); - listItem->initWithText (buf, wordStyle); - - for(int j = 0; wordsItem[j]; j++) { - if(j != 0) - listItem->addSpace (wordStyle); - listItem->addText (wordsItem[j], wordStyle); - } - - listItem->flush (); - } - - wordStyle->unref(); - - textblock->flush (); - - window->resizable(viewport); - window->show(); - int errorCode = Fl::run(); - - delete layout; - - return errorCode; -} diff --git a/test/dw_resource_test.cc b/test/dw_resource_test.cc deleted file mode 100644 index e8a8b227..00000000 --- a/test/dw_resource_test.cc +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/textblock.hh" -#include "../dw/ui.hh" - -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::core::ui; -using namespace dw::fltk; - -int main(int argc, char **argv) -{ - FltkPlatform *platform = new FltkPlatform (); - Layout *layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(410, 210, "Dw Resource test"); - window->box(FL_NO_BOX); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, 0, 410, 210); - layout->attachView (viewport); - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - - Style *widgetStyle = Style::create (&styleAttrs); - - Textblock *textblock = new Textblock (false); - textblock->setStyle (widgetStyle); - layout->setWidget (textblock); - - widgetStyle->unref(); - - styleAttrs.margin.setVal (0); - styleAttrs.backgroundColor = NULL; - - widgetStyle = Style::create (&styleAttrs); - - SelectionResource *res = layout->getResourceFactory()->createListResource - (ListResource::SELECTION_AT_MOST_ONE, 4); - //SelectionResource *res = - // layout->getResourceFactory()->createOptionMenuResource (); - - Embed *embed = new Embed (res); - textblock->addWidget (embed, widgetStyle); - textblock->addSpace (widgetStyle); - - widgetStyle->unref(); - - for(int i = 0; i < 50; i++) - res->addItem ("Hello, world!", true, i == 0 ? true : false); - - textblock->flush (); - - window->resizable(viewport); - window->show(); - - int errorCode = Fl::run(); - - delete layout; - - return errorCode; -} diff --git a/test/dw_simple_container.cc b/test/dw_simple_container.cc deleted file mode 100644 index e7fa563c..00000000 --- a/test/dw_simple_container.cc +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2014 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include - -#include "dw_simple_container.hh" - -using namespace dw::core; -using namespace dw::core::style; -using namespace lout::misc; - -namespace dw { - -int SimpleContainer::CLASS_ID = -1; - -// ---------------------------------------------------------------------- - -SimpleContainer::SimpleContainerIterator::SimpleContainerIterator -(SimpleContainer *simpleContainer, Content::Type mask, bool atEnd) : - Iterator (simpleContainer, mask, atEnd) -{ - content.type = atEnd ? Content::END : Content::START; -} - -lout::object::Object *SimpleContainer::SimpleContainerIterator::clone () -{ - SimpleContainerIterator *sci = - new SimpleContainerIterator ((SimpleContainer*)getWidget(), - getMask(), false); - sci->content = content; - return sci; -} - -int SimpleContainer::SimpleContainerIterator::index () -{ - switch (content.type) { - case Content::START: - return 0; - case Content::WIDGET_IN_FLOW: - return 1; - case Content::END: - return 2; - default: - assertNotReached (); - return 0; - } -} - -int SimpleContainer::SimpleContainerIterator::compareTo -(lout::object::Comparable *other) -{ - return index () - ((SimpleContainerIterator*)other)->index (); -} - -bool SimpleContainer::SimpleContainerIterator::next () -{ - SimpleContainer *simpleContainer = (SimpleContainer*)getWidget(); - - if (content.type == Content::END) - return false; - - // simple containers only contain widgets: - if ((getMask() & Content::WIDGET_IN_FLOW) == 0) { - content.type = Content::END; - return false; - } - - if (content.type == Content::START) { - if (simpleContainer->child != NULL) { - content.type = Content::WIDGET_IN_FLOW; - content.widget = simpleContainer->child; - return true; - } else { - content.type = Content::END; - return false; - } - } else /* if (content.type == Content::WIDGET) */ { - content.type = Content::END; - return false; - } -} - -bool SimpleContainer::SimpleContainerIterator::prev () -{ - SimpleContainer *simpleContainer = (SimpleContainer*)getWidget(); - - if (content.type == Content::START) - return false; - - // simple containers only contain widgets: - if ((getMask() & Content::WIDGET_IN_FLOW) == 0) { - content.type = Content::START; - return false; - } - - if (content.type == Content::END) { - if (simpleContainer->child != NULL) { - content.type = Content::WIDGET_IN_FLOW; - content.widget = simpleContainer->child; - return true; - } else { - content.type = Content::START; - return false; - } - } else /* if (content.type == Content::WIDGET) */ { - content.type = Content::START; - return false; - } -} - -void SimpleContainer::SimpleContainerIterator::highlight (int start, - int end, - HighlightLayer layer) -{ - /** todo Needs this an implementation? */ -} - -void SimpleContainer::SimpleContainerIterator::unhighlight (int direction, - HighlightLayer - layer) -{ - /** todo Needs this an implementation? */ -} - -void SimpleContainer::SimpleContainerIterator::getAllocation (int start, - int end, - Allocation - *allocation) -{ - /** \bug Not implemented. */ -} - -// ---------------------------------------------------------------------- - -SimpleContainer::SimpleContainer () -{ - registerName ("dw::SimpleContainer", &CLASS_ID); - child = NULL; -} - -SimpleContainer::~SimpleContainer () -{ - if (child) - delete child; -} - -void SimpleContainer::sizeRequestSimpl (Requisition *requisition) -{ - Requisition childReq; - if (child) - child->sizeRequest (&childReq); - else - childReq.width = childReq.ascent = childReq.descent = 0; - - requisition->width = childReq.width + boxDiffWidth (); - requisition->ascent = childReq.ascent + boxOffsetY (); - requisition->descent = childReq.descent + boxRestHeight (); - - correctRequisition (requisition, splitHeightPreserveAscent, true, true); -} - - -void SimpleContainer::getExtremesSimpl (Extremes *extremes) -{ - Extremes childExtr; - if (child) - child->getExtremes (&childExtr); - else - childExtr.minWidth = childExtr.minWidthIntrinsic = childExtr.maxWidth = - childExtr.maxWidthIntrinsic = extremes->adjustmentWidth = 0; - - extremes->minWidth = childExtr.minWidth + boxDiffWidth (); - extremes->minWidthIntrinsic = childExtr.minWidthIntrinsic + boxDiffWidth (); - extremes->maxWidth = childExtr.maxWidth + boxDiffWidth (); - extremes->maxWidthIntrinsic = childExtr.maxWidthIntrinsic + boxDiffWidth (); - extremes->adjustmentWidth = childExtr.adjustmentWidth + boxDiffWidth (); - - correctExtremes (extremes, true); -} - -void SimpleContainer::sizeAllocateImpl (Allocation *allocation) -{ - Allocation childAlloc; - - if (child) { - childAlloc.x = allocation->x + boxOffsetX (); - childAlloc.y = allocation->y + boxOffsetY (); - childAlloc.width = allocation->width - boxDiffWidth (); - childAlloc.ascent = allocation->ascent - boxOffsetY (); - childAlloc.descent = allocation->descent - boxRestHeight (); - child->sizeAllocate (&childAlloc); - } -} - -void SimpleContainer::draw (View *view, Rectangle *area, - DrawingContext *context) -{ - drawWidgetBox (view, area, false); - Rectangle childArea; - if (child && child->intersects (this, area, &childArea)) - child->draw (view, &childArea, context); -} - -Iterator *SimpleContainer::iterator (Content::Type mask, bool atEnd) -{ - return new SimpleContainerIterator (this, mask, atEnd); -} - -void SimpleContainer::removeChild (Widget *child) -{ - assert (child == this->child); - this->child = NULL; - - queueResize (0, true); -} - -void SimpleContainer::setChild (Widget *child) -{ - if (this->child) - delete this->child; - - this->child = child; - if (this->child) - this->child->setParent (this); - - queueResize (0, true); -} - -} // namespace dw diff --git a/test/dw_simple_container.hh b/test/dw_simple_container.hh deleted file mode 100644 index bd40b41e..00000000 --- a/test/dw_simple_container.hh +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef __DW_SIMPLE_CONTAINER_HH__ -#define __DW_SIMPLE_CONTAINER_HH__ - -#include "dw/core.hh" - -namespace dw { - -/** - * Simple widget used for testing concepts. - */ -class SimpleContainer: public core::Widget -{ -private: - class SimpleContainerIterator: public core::Iterator - { - private: - int index (); - - public: - SimpleContainerIterator (SimpleContainer *simpleContainer, - core::Content::Type mask, - bool atEnd); - - lout::object::Object *clone (); - int compareTo (lout::object::Comparable *other); - - bool next (); - bool prev (); - void highlight (int start, int end, core::HighlightLayer layer); - void unhighlight (int direction, core::HighlightLayer layer); - void getAllocation (int start, int end, core::Allocation *allocation); - }; - - Widget *child; - -protected: - void sizeRequestSimpl (core::Requisition *requisition); - void getExtremesSimpl (core::Extremes *extremes); - void sizeAllocateImpl (core::Allocation *allocation); - -public: - static int CLASS_ID; - - SimpleContainer (); - ~SimpleContainer (); - - void draw (core::View *view, core::Rectangle *area, - core::DrawingContext *context); - core::Iterator *iterator (core::Content::Type mask, bool atEnd); - void removeChild (Widget *child); - - void setChild (core::Widget *child); -}; - -} // namespace dw - -#endif // __DW_SIMPLE_CONTAINER_HH__ diff --git a/test/dw_simple_container_test.cc b/test/dw_simple_container_test.cc deleted file mode 100644 index 83d0a77f..00000000 --- a/test/dw_simple_container_test.cc +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2014 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "dw_simple_container.hh" -#include "../dw/textblock.hh" - -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -int main(int argc, char **argv) -{ - FltkPlatform *platform = new FltkPlatform (); - Layout *layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(200, 300, "Dw Example"); - window->box(FL_NO_BOX); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, 0, 200, 300); - layout->attachView (viewport); - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - styleAttrs.font = style::Font::create (layout, &fontAttrs); - - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - - Style *textblockStyle1 = Style::create (&styleAttrs); - - styleAttrs.backgroundColor = NULL; - styleAttrs.margin.setVal (0); - - Style *textblockStyle2 = Style::create (&styleAttrs); - Style *wordStyle = Style::create (&styleAttrs); - - styleAttrs.borderWidth.setVal (5); - styleAttrs.setBorderColor (Color::create (layout, 0x800080)); - styleAttrs.setBorderStyle (BORDER_DASHED); - styleAttrs.padding.setVal (5); - - Style *containerStyle = Style::create (&styleAttrs); - - Textblock *textblock1 = new Textblock (false); - textblock1->setStyle (textblockStyle1); - layout->setWidget (textblock1); - - SimpleContainer *simpleContainer = new SimpleContainer (); - simpleContainer->setStyle (containerStyle); - textblock1->addWidget (simpleContainer, containerStyle); - - Textblock *textblock2 = new Textblock (false); - textblock2->setStyle (textblockStyle2); - simpleContainer->setChild (textblock2); - - const char *words[] = { "This", "is", "only", "a", "short", "paragraph.", - NULL }; - - for(int j = 0; words[j]; j++) { - textblock2->addText(words[j], wordStyle); - textblock2->addSpace(wordStyle); - } - - textblockStyle1->unref(); - textblockStyle2->unref(); - containerStyle->unref(); - wordStyle->unref(); - - textblock1->flush (); - textblock2->flush (); - - window->resizable(viewport); - window->show(); - int errorCode = Fl::run(); - - delete layout; - - return errorCode; -} diff --git a/test/dw_table.cc b/test/dw_table.cc deleted file mode 100644 index 9bec1a09..00000000 --- a/test/dw_table.cc +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/table.hh" - -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -int main(int argc, char **argv) -{ - FltkPlatform *platform = new FltkPlatform (); - Layout *layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(300, 300, "Dw Table"); - window->box(FL_NO_BOX); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, 0, 300, 300); - layout->attachView (viewport); - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - styleAttrs.padding.setVal (0); - styleAttrs.borderWidth.setVal (1); - styleAttrs.setBorderStyle (BORDER_OUTSET); - styleAttrs.setBorderColor (Color::create (layout, 0xffffff)); - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - styleAttrs.hBorderSpacing = 5; - styleAttrs.vBorderSpacing = 5; - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - - Style *tableStyle = Style::create (&styleAttrs); - - Table *table = new Table (false); - table->setStyle (tableStyle); - layout->setWidget (table); - - tableStyle->unref(); - - styleAttrs.setBorderStyle (BORDER_INSET); - styleAttrs.backgroundColor = NULL; - styleAttrs.margin.setVal (0); - styleAttrs.padding.setVal (5); - - Style *cellStyle = Style::create (&styleAttrs); - - styleAttrs.borderWidth.setVal (0); - styleAttrs.margin.setVal (0); - styleAttrs.cursor = CURSOR_TEXT; - styleAttrs.textAlignChar = '.'; - - Style *wordStyle = Style::create (&styleAttrs); - - for (int i = 0; i < 4; i++) { - table->addRow (wordStyle); - - for (int j = 0; j < 4; j++) { - Textblock *cell = new Textblock (false); - cell->setStyle (cellStyle); - table->addCell (cell, 1, 1); - - char buf[10]; - sprintf (buf, "cell %c", 'A' + 4 * i + j); - - cell->addText (buf, wordStyle); - cell->flush (); - } - } - - wordStyle->unref(); - cellStyle->unref(); - - window->resizable(viewport); - window->show(); - int errorCode = Fl::run(); - - delete layout; - - return errorCode; -} diff --git a/test/dw_table_aligned.cc b/test/dw_table_aligned.cc deleted file mode 100644 index bef3d521..00000000 --- a/test/dw_table_aligned.cc +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/table.hh" -#include "../dw/alignedtablecell.hh" - -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::fltk; - -int main(int argc, char **argv) -{ - FltkPlatform *platform = new FltkPlatform (); - Layout *layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(200, 300, "Dw Table Aligned"); - window->box(FL_NO_BOX); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, 0, 200, 300); - layout->attachView (viewport); - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - styleAttrs.borderWidth.setVal (1); - styleAttrs.setBorderStyle (BORDER_OUTSET); - styleAttrs.setBorderColor (Color::create (layout, 0x808080)); - - FontAttrs fontAttrs; - fontAttrs.name = "Bitstream Charter"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xa0a0a0); - styleAttrs.hBorderSpacing = 5; - styleAttrs.vBorderSpacing = 5; - - Style *tableStyle = Style::create (&styleAttrs); - - Table *table = new Table (false); - table->setStyle (tableStyle); - layout->setWidget (table); - - tableStyle->unref(); - - styleAttrs.borderWidth.setVal (1); - styleAttrs.setBorderStyle (BORDER_INSET); - - Style *cellStyle = Style::create (&styleAttrs); - - styleAttrs.borderWidth.setVal (0); - styleAttrs.margin.setVal (0); - styleAttrs.backgroundColor = NULL; - styleAttrs.cursor = CURSOR_TEXT; - styleAttrs.textAlignChar = '.'; - - Style *wordStyle = Style::create (&styleAttrs); - - AlignedTableCell *ref = NULL; - for(int i = 0; i < 10; i++) { - //for(int i = 0; i < 1; i++) { - AlignedTableCell *cell = new AlignedTableCell (ref, false); - cell->setStyle (cellStyle); - ref = cell; - table->addRow (wordStyle); - table->addCell (cell, 1, 1); - - char buf[16]; - for(int j = 0; j < i; j++) - buf[j] = '0' + j; - buf[i] = '.'; - for(int j = i + 1; j < 11; j++) - buf[j] = '0' + (j - 1); - buf[11] = 0; - - cell->addText (buf, wordStyle); - cell->flush (); - } - - wordStyle->unref(); - cellStyle->unref(); - - window->resizable(viewport); - window->show(); - int errorCode = Fl::run(); - - delete layout; - - return errorCode; -} diff --git a/test/dw_ui_test.cc b/test/dw_ui_test.cc deleted file mode 100644 index f24cc9b9..00000000 --- a/test/dw_ui_test.cc +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include -#include - -#include "../dw/core.hh" -#include "../dw/fltkcore.hh" -#include "../dw/fltkviewport.hh" -#include "../dw/table.hh" -#include "../dw/textblock.hh" -#include "../dw/ui.hh" -#include "form.hh" - -using namespace lout::object; -using namespace lout::container::typed; -using namespace dw; -using namespace dw::core; -using namespace dw::core::style; -using namespace dw::core::ui; -using namespace dw::fltk; - -int main(int argc, char **argv) -{ - FltkPlatform *platform = new FltkPlatform (); - Layout *layout = new Layout (platform); - - Fl_Window *window = new Fl_Window(400, 400, "Dw UI Test"); - window->box(FL_NO_BOX); - window->begin(); - - FltkViewport *viewport = new FltkViewport (0, 0, 400, 400); - layout->attachView (viewport); - - StyleAttrs styleAttrs; - styleAttrs.initValues (); - styleAttrs.margin.setVal (5); - styleAttrs.color = Color::create (layout, 0x000000); - styleAttrs.backgroundColor = Color::create (layout, 0xffffff); - - FontAttrs fontAttrs; - fontAttrs.name = "Helvetica"; - fontAttrs.size = 14; - fontAttrs.weight = 400; - fontAttrs.style = FONT_STYLE_NORMAL; - fontAttrs.letterSpacing = 0; - fontAttrs.fontVariant = FONT_VARIANT_NORMAL; - styleAttrs.font = dw::core::style::Font::create (layout, &fontAttrs); - - Style *tableStyle = Style::create (&styleAttrs); - - Table *table = new Table (false); - table->setStyle (tableStyle); - layout->setWidget (table); - - tableStyle->unref(); - - styleAttrs.backgroundColor = NULL; - styleAttrs.margin.setVal (0); - - Style *cellStyle = Style::create (&styleAttrs); - - // First of all, the resources. Later, they are embedded into the - // widget tree. - EntryResource *entryres1 = - layout->getResourceFactory()->createEntryResource (10, false, NULL,NULL); - entryres1->setText ("Hi!"); - EntryResource *entryres2 = - layout->getResourceFactory()->createEntryResource (10, true, NULL, - "password field!"); - MultiLineTextResource *textres = - layout->getResourceFactory()->createMultiLineTextResource (15,3, - "textarea placeholder!"); - RadioButtonResource *radiores1 = - layout->getResourceFactory()->createRadioButtonResource (NULL, false); - RadioButtonResource *radiores2 = - layout->getResourceFactory()->createRadioButtonResource (radiores1, - false); - CheckButtonResource *checkres = - layout->getResourceFactory()->createCheckButtonResource (true); - SelectionResource *selres[2]; - selres[0] = layout->getResourceFactory()->createOptionMenuResource (); - selres[1] = layout->getResourceFactory()->createListResource - (ListResource::SELECTION_AT_MOST_ONE, 4); - LabelButtonResource *buttonres = - layout->getResourceFactory()->createLabelButtonResource ("Run!"); - - // Note on complex buttons: before any operations on the widget, which - // need a layout, the complex button resource should be created, since - // then, a layout and a platform are instantiated. - Textblock *cbuttontext = new Textblock(false); - ComplexButtonResource *cbuttonres = - layout->getResourceFactory()->createComplexButtonResource (cbuttontext, - true); - cbuttontext->setStyle (cellStyle); - cbuttontext->addText ("Run (complex)!", cellStyle); - cbuttontext->flush (); - - // The entry resources are put into a special handler, which is - // also a receiver for the button resources. - form::Form *form = new form::Form(); - form->addTextResource ("val1", entryres1); - form->addTextResource ("val2", entryres2); - form->addTextResource ("text", textres); - const char *radiovalues[] = { "radio1", "radio2", NULL }; - form->addRadioButtonResource ("val3", radiores1, radiovalues); - form->addCheckButtonResource ("check", checkres); - const char *selvalues[] = { "i1", "g1", "i11", "i12", "i13", "(pop)", "i2", - "g2", "i21", "i22", "i23", "(pop)", "i3", NULL}; - form->addSelectionResource ("val4", selres[0], selvalues); - form->addSelectionResource ("val5", selres[1], selvalues); - form->addButtonResource ("button", buttonres, "Run!"); - form->addButtonResource ("cbutton", cbuttonres, "cbuttonval"); - - // Create the widgets. - table->addRow (cellStyle); - - Textblock *label1 = new Textblock(false); - label1->setStyle (cellStyle); - table->addCell (label1, 1, 1); - label1->addText ("val1 = ", cellStyle); - label1->flush (); - - Embed *input1 = new Embed (entryres1); - input1->setStyle (cellStyle); - table->addCell (input1, 1, 1); - - table->addRow (cellStyle); - - Textblock *label2 = new Textblock(false); - label2->setStyle (cellStyle); - table->addCell (label2, 1, 1); - label2->addText ("val2 = ", cellStyle); - label2->flush (); - - Embed *input2 = new Embed (entryres2); - input2->setStyle (cellStyle); - table->addCell (input2, 1, 1); - - table->addRow (cellStyle); - - Textblock *label = new Textblock(false); - label->setStyle (cellStyle); - table->addCell (label, 1, 1); - label->addText ("text = ", cellStyle); - label->flush (); - - Embed *text = new Embed (textres); - textres->setText("Hi textarea"); - text->setStyle (cellStyle); - table->addCell (text, 1, 1); - - table->addRow (cellStyle); - - Textblock *radiolabel1 = new Textblock(false); - radiolabel1->setStyle (cellStyle); - table->addCell (radiolabel1, 2, 1); - Embed *radio1 = new Embed (radiores1); - radiolabel1->addWidget (radio1, cellStyle); - radiolabel1->addText (" radio1", cellStyle); - radiolabel1->flush (); - - table->addRow (cellStyle); - Textblock *radiolabel2 = new Textblock(false); - radiolabel2->setStyle (cellStyle); - table->addCell (radiolabel2, 2, 1); - Embed *radio2 = new Embed (radiores2); - radiolabel2->addWidget (radio2, cellStyle); - radiolabel2->addText (" radio2", cellStyle); - radiolabel2->flush (); - - table->addRow (cellStyle); - Textblock *checklabel = new Textblock(false); - checklabel->setStyle (cellStyle); - table->addCell (checklabel, 2, 1); - Embed *check = new Embed (checkres); - checklabel->addWidget (check, cellStyle); - checklabel->addText (" check", cellStyle); - checklabel->flush (); - - for(int i = 0; i < 2; i++) { - table->addRow (cellStyle); - - Embed *sel = new Embed (selres[i]); - sel->setStyle (cellStyle); - table->addCell (sel, 2, 1); - - selres[i]->addItem("item 1", true, false); - - selres[i]->pushGroup("group 1", true); - selres[i]->addItem("item 1/1", true, false); - selres[i]->addItem("item 1/2", true, true); - selres[i]->addItem("item 1/3", false, false); - selres[i]->popGroup(); - - selres[i]->addItem("item 2", false, i == 1); - - selres[i]->pushGroup("group 2", true); - selres[i]->addItem("item 2/1", true, false); - selres[i]->addItem("item 2/2", true, false); - selres[i]->addItem("item 2/3", false, false); - selres[i]->popGroup(); - - selres[i]->addItem("item 3", false, false); - } - - table->addRow (cellStyle); - Embed *button = new Embed (buttonres); - button->setStyle (cellStyle); - table->addCell (button, 2, 1); - - table->addRow (cellStyle); - Embed *cbutton = new Embed (cbuttonres); - cbutton->setStyle (cellStyle); - table->addCell (cbutton, 2, 1); - - cellStyle->unref(); - - window->resizable(viewport); - window->show(); - int errorCode = Fl::run(); - - delete form; - delete layout; - - return errorCode; -} diff --git a/test/floats-and-absolute.html b/test/floats-and-absolute.html deleted file mode 100644 index 658ab16b..00000000 --- a/test/floats-and-absolute.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - Floats And Absolute Positions - - - -

Floats And Absolute Positions

-
- -

Sed ut perspiciatis, unde omnis iste natus error sit - voluptatem accusantium doloremque laudantium, totam rem - aperiam eaque ipsa, quae ab illo inventore veritatis et quasi - architecto beatae vitae dicta sunt, explicabo. nemo enim ipsam - voluptatem, quia voluptas sit, aspernatur aut odit aut fugit, - sed quia consequuntur magni dolores eos, qui ratione - voluptatem sequi nesciunt, neque porro quisquam est, qui - dolorem ipsum, quia dolor sit, amet, consectetur, adipisci - velit, sed quia non numquam eius modi tempora incidunt, ut - labore et dolore magnam aliquam quaerat voluptatem. ut enim ad - minima veniam, quis nostrum exercitationem ullam corporis - suscipit laboriosam, nisi ut aliquid ex ea commodi - consequatur? quis autem vel eum iure reprehenderit, qui in ea - voluptate velit esse, quam nihil molestiae consequatur, vel - illum, qui dolorem eum fugiat, quo voluptas nulla - pariatur?

-

Ἐν ἀρχῇ ἦν ὁ Λόγος, καὶ ὁ Λόγος ἦν πρὸς τὸν Θεόν, καὶ Θεὸς ἦν - ὁ Λόγος. Οὗτος ἦν ἐν ἀρχῇ πρὸς τὸν Θεόν. πάντα δι' αὐτοῦ - ἐγένετο, καὶ χωρὶς αὐτοῦ ἐγένετο οὐδὲ ἕν ὃ γέγονεν. ἐν αὐτῷ - ζωὴ ἦν, καὶ ἡ ζωὴ ἦν τὸ φῶς τῶν ἀνθρώπων. καὶ τὸ φῶς ἐν τῇ - σκοτίᾳ φαίνει, καὶ ἡ σκοτία αὐτὸ οὐ κατέλαβεν.

-
-
Margin, actually on the left side.
- - - - - diff --git a/test/floats-and-margins.html b/test/floats-and-margins.html deleted file mode 100644 index ac64b9e1..00000000 --- a/test/floats-and-margins.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - Floats And Margins - - - -

- - Ἐν ἀρχῇ ἦν ὁ Λόγος, καὶ ὁ Λόγος ἦν πρὸς τὸν Θεόν, καὶ Θεὸς ἦν ὁ - Λόγος. Οὗτος ἦν ἐν ἀρχῇ πρὸς τὸν Θεόν. πάντα δι' αὐτοῦ ἐγένετο, - καὶ χωρὶς αὐτοῦ ἐγένετο οὐδὲ ἕν ὃ γέγονεν. ἐν αὐτῷ ζωὴ ἦν, καὶ ἡ - ζωὴ ἦν τὸ φῶς τῶν ἀνθρώπων. καὶ τὸ φῶς ἐν τῇ σκοτίᾳ φαίνει, καὶ - ἡ σκοτία αὐτὸ οὐ κατέλαβεν. -

-

- - Sed ut perspiciatis, unde omnis iste natus error sit voluptatem - accusantium doloremque laudantium, totam rem aperiam eaque ipsa, - quae ab illo inventore veritatis et quasi architecto beatae - vitae dicta sunt, explicabo. nemo enim ipsam voluptatem, quia - voluptas sit, aspernatur aut odit aut fugit, sed quia - consequuntur magni dolores eos, qui ratione voluptatem sequi - nesciunt, neque porro quisquam est, qui dolorem ipsum, quia - dolor sit, amet, consectetur, adipisci velit, sed quia non - numquam eius modi tempora incidunt, ut labore et dolore magnam - aliquam quaerat voluptatem. ut enim ad minima veniam, quis - nostrum exercitationem ullam corporis suscipit laboriosam, nisi - ut aliquid ex ea commodi consequatur? quis autem vel eum iure - reprehenderit, qui in ea voluptate velit esse, quam nihil - molestiae consequatur, vel illum, qui dolorem eum fugiat, quo - voluptas nulla pariatur? -

- - - - - diff --git a/test/floats-table.html b/test/floats-table.html deleted file mode 100644 index 77d77563..00000000 --- a/test/floats-table.html +++ /dev/null @@ -1,24 +0,0 @@ -

Demonstrating how to include floats into witdth extremes. - - - -
-
Somelongwordwhichmustnotbebrokensotakingmuchspaceinatablecolumn
- Some short text. -
- Sed ut perspiciatis, unde omnis iste natus error sit voluptatem - accusantium doloremque laudantium, totam rem aperiam eaque ipsa, - quae ab illo inventore veritatis et quasi architecto beatae - vitae dicta sunt, explicabo. nemo enim ipsam voluptatem, quia - voluptas sit, aspernatur aut odit aut fugit, sed quia - consequuntur magni dolores eos, qui ratione voluptatem sequi - nesciunt, neque porro quisquam est, qui dolorem ipsum, quia - dolor sit, amet, consectetur, adipisci velit, sed quia non - numquam eius modi tempora incidunt, ut labore et dolore magnam - aliquam quaerat voluptatem. ut enim ad minima veniam, quis - nostrum exercitationem ullam corporis suscipit laboriosam, nisi - ut aliquid ex ea commodi consequatur? quis autem vel eum iure - reprehenderit, qui in ea voluptate velit esse, quam nihil - molestiae consequatur, vel illum, qui dolorem eum fugiat, quo - voluptas nulla pariatur? -
diff --git a/test/floats-worm.html b/test/floats-worm.html deleted file mode 100644 index 9e050933..00000000 --- a/test/floats-worm.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - Floats and iterators: search for "worm" and pay attention - to the order. - - - -

1: apple apple worm apple apple
-

2: apple apple apple apple apple apple apple apple apple apple - apple apple apple apple apple apple apple apple apple apple - apple apple apple apple worm apple apple apple apple apple apple - apple apple apple apple apple apple apple apple apple apple - apple apple apple apple apple apple apple apple

-
3: apple apple worm apple apple
-

4: apple apple apple apple apple apple apple apple apple apple - apple apple apple apple apple apple apple apple apple apple - apple apple apple apple worm apple apple apple apple apple apple - apple apple apple apple apple apple apple apple apple apple - apple apple apple apple apple apple apple apple

-
5: apple apple worm apple apple
- - - - - diff --git a/test/floats1.html b/test/floats1.html deleted file mode 100644 index eae30c4a..00000000 --- a/test/floats1.html +++ /dev/null @@ -1,46 +0,0 @@ -
First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First -paragraph.
Left -float. Left float. Left float. Left float. Left float. Left -float. Left float. Left float. Left float. Left float. Left -float. Left float. Left float. Left float. Left float. Left -float. Left float. Left float. Left float. Left float.
First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph. First paragraph. First -paragraph. First paragraph. First paragraph.
-
Second paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph.
Right float. Right float. Right -float. Right float. Right float. Right float.
Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph. Second -paragraph. Second paragraph. Second paragraph.
diff --git a/test/floats2.html b/test/floats2.html deleted file mode 100644 index b7978706..00000000 --- a/test/floats2.html +++ /dev/null @@ -1,17 +0,0 @@ -Sed ut perspiciatis, unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae -ab illo inventore veritatis et quasi architecto beatae vitae dicta -sunt, explicabo. -
Some text in a -float.
-nemo enim ipsam voluptatem, quia voluptas sit, -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, -qui dolorem ipsum, quia dolor sit, amet, consectetur, adipisci velit, -sed quia non numquam eius modi tempora incidunt, ut labore et dolore -magnam aliquam quaerat voluptatem. ut enim ad minima veniam, quis -nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut -aliquid ex ea commodi consequatur? quis autem vel eum iure -reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae -consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla -pariatur? diff --git a/test/floats3.html b/test/floats3.html deleted file mode 100644 index 4d57e453..00000000 --- a/test/floats3.html +++ /dev/null @@ -1,16 +0,0 @@ -

Sed ut perspiciatis, unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae -ab illo inventore veritatis et quasi architecto beatae vitae dicta -sunt, explicabo.

-
Some text in a -float.
-

nemo enim ipsam voluptatem, quia voluptas sit, aspernatur aut odit -aut fugit, sed quia consequuntur magni dolores eos, qui ratione -voluptatem sequi nesciunt, neque porro quisquam est, qui dolorem -ipsum, quia dolor sit, amet, consectetur, adipisci velit, sed quia non -numquam eius modi tempora incidunt, ut labore et dolore magnam aliquam -quaerat voluptatem. ut enim ad minima veniam, quis nostrum -exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex -ea commodi consequatur? quis autem vel eum iure reprehenderit, qui in -ea voluptate velit esse, quam nihil molestiae consequatur, vel illum, -qui dolorem eum fugiat, quo voluptas nulla pariatur?

diff --git a/test/floats4.html b/test/floats4.html deleted file mode 100644 index 965ed68d..00000000 --- a/test/floats4.html +++ /dev/null @@ -1,63 +0,0 @@ - - - - - Floats 4 - - - -
Some text in a float.
- -

Sed ut perspiciatis, unde omnis iste natus error sit voluptatem - accusantium doloremque laudantium, totam rem aperiam eaque ipsa, - quae ab illo inventore veritatis et quasi architecto beatae - vitae dicta sunt, explicabo. nemo enim ipsam voluptatem, quia - voluptas sit, aspernatur aut odit aut fugit, sed quia - consequuntur magni dolores eos, qui ratione voluptatem sequi - nesciunt, neque porro quisquam est, qui dolorem ipsum, quia - dolor sit, amet, consectetur, adipisci velit, sed quia non - numquam eius modi tempora incidunt, ut labore et dolore magnam - aliquam quaerat voluptatem. ut enim ad minima veniam, quis - nostrum exercitationem ullam corporis suscipit laboriosam, nisi - ut aliquid ex ea commodi consequatur? quis autem vel eum iure - reprehenderit, qui in ea voluptate velit esse, quam nihil - molestiae consequatur, vel illum, qui dolorem eum fugiat, quo - voluptas nulla pariatur?

- -
Ἐν ἀρχῇ ἦν ὁ Λόγος, καὶ ὁ Λόγος - ἦν πρὸς τὸν Θεόν, καὶ Θεὸς ἦν ὁ Λόγος. Οὗτος ἦν ἐν ἀρχῇ πρὸς τὸν - Θεόν. πάντα δι' αὐτοῦ ἐγένετο, καὶ χωρὶς αὐτοῦ ἐγένετο οὐδὲ ἕν ὃ - γέγονεν. ἐν αὐτῷ ζωὴ ἦν, καὶ ἡ ζωὴ ἦν τὸ φῶς τῶν ἀνθρώπων. καὶ - τὸ φῶς ἐν τῇ σκοτίᾳ φαίνει, καὶ ἡ σκοτία αὐτὸ οὐ - κατέλαβεν.
- - - - - diff --git a/test/floats5.html b/test/floats5.html deleted file mode 100644 index c8c6564a..00000000 --- a/test/floats5.html +++ /dev/null @@ -1,16 +0,0 @@ -Sed ut perspiciatis, unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae -ab illo inventore veritatis et quasi architecto beatae vitae dicta -sunt, explicabo. -
-nemo enim ipsam voluptatem, quia voluptas sit, -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, -qui dolorem ipsum, quia dolor sit, amet, consectetur, adipisci velit, -sed quia non numquam eius modi tempora incidunt, ut labore et dolore -magnam aliquam quaerat voluptatem. ut enim ad minima veniam, quis -nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut -aliquid ex ea commodi consequatur? quis autem vel eum iure -reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae -consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla -pariatur? diff --git a/test/form.cc b/test/form.cc deleted file mode 100644 index 82938a16..00000000 --- a/test/form.cc +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include "form.hh" - -namespace form { - -using namespace dw::core::ui; - -Form::ResourceDecorator::ResourceDecorator (const char *name) -{ - this->name = strdup (name); -} - -Form::ResourceDecorator::~ResourceDecorator () -{ - free((char *)name); -} - -Form::TextResourceDecorator::TextResourceDecorator (const char *name, - TextResource *resource): - Form::ResourceDecorator (name) -{ - this->resource = resource; -} - -const char *Form::TextResourceDecorator::getValue () -{ - return resource->getText (); -} - -Form::RadioButtonResourceDecorator::RadioButtonResourceDecorator - (const char *name, RadioButtonResource *resource, const char **values): - Form::ResourceDecorator (name) -{ - this->resource = resource; - - int n = 0; - while (values[n]) - n++; - this->values = new const char*[n + 1]; - for (int i = 0; i < n; i++) - this->values[i] = strdup (values[i]); - this->values[n] = 0; -} - -Form::RadioButtonResourceDecorator::~RadioButtonResourceDecorator () -{ - for (int i = 0; values[i]; i++) - free((char *)values[i]); - delete[] values; -} - -const char *Form::RadioButtonResourceDecorator::getValue () -{ - RadioButtonResource::GroupIterator *it; - int i; - for (it = resource->groupIterator (), i = 0; it->hasNext (); i++) { - RadioButtonResource *resource = it->getNext (); - if(resource->isActivated ()) { - it->unref (); - return values[i]; - } - } - - it->unref (); - return NULL; -} - -Form::CheckButtonResourceDecorator::CheckButtonResourceDecorator - (const char *name, CheckButtonResource *resource): - Form::ResourceDecorator (name) -{ - this->resource = resource; -} - -const char *Form::CheckButtonResourceDecorator::getValue () -{ - return resource->isActivated () ? "true" : NULL; -} - -Form::SelectionResourceDecorator::SelectionResourceDecorator - (const char *name, SelectionResource *resource, const char **values): - Form::ResourceDecorator (name) -{ - this->resource = resource; - - int n = 0; - while (values[n]) - n++; - this->values = new const char*[n + 1]; - for(int i = 0; i < n; i++) - this->values[i] = strdup (values[i]); - this->values[n] = 0; -} - -Form::SelectionResourceDecorator::~SelectionResourceDecorator () -{ - for(int i = 0; values[i]; i++) - free((char *)values[i]); - delete[] values; -} - -const char *Form::SelectionResourceDecorator::getValue () -{ - valueBuf.clear(); - int n = resource->getNumberOfItems (); - bool first = true; - for (int i = 0; i < n; i++) { - if (resource->isSelected (i)) { - if (!first) - valueBuf.append (", "); - valueBuf.append (values[i]); - first = false; - } - } - - return valueBuf.getChars (); -} - -void Form::FormActivateReceiver::activate (Resource *resource) -{ - form->send (NULL, NULL, -1, -1); -} - -void Form::FormActivateReceiver::enter (Resource *resource) -{ -} - -void Form::FormActivateReceiver::leave (Resource *resource) -{ -} - -Form::FormClickedReceiver::FormClickedReceiver (Form *form, const char *name, - const char *value) -{ - this->form = form; - this->name = strdup (name); - this->value = strdup (value); -} - -Form::FormClickedReceiver::~FormClickedReceiver () -{ - free((char *)name); - free((char *)value); -} - -void Form::FormClickedReceiver::clicked (Resource *resource, - dw::core::EventButton *event) -{ - form->send (name, value, event->xCanvas, event->yCanvas); -} - -Form::Form () -{ - resources = new lout::container::typed::List (true); - activateReceiver = new FormActivateReceiver (this); - clickedReceivers = - new lout::container::typed::List (true); -} - -Form::~Form () -{ - delete resources; - delete activateReceiver; - delete clickedReceivers; -} - -/** - * \brief Adds an instance of dw::core::ui::TextResource. - */ -void Form::addTextResource (const char *name, - dw::core::ui::TextResource *resource) -{ - resources->append (new TextResourceDecorator (name, resource)); - resource->connectActivate (activateReceiver); -} - -/** - * \brief Adds an instance of dw::core::ui::RadioButtonResource. - * - * This method has to be called only once for a group of radio buttons. - */ -void Form::addRadioButtonResource (const char *name, - dw::core::ui::RadioButtonResource *resource, - const char **values) -{ - resources->append (new RadioButtonResourceDecorator (name, resource, - values)); - resource->connectActivate (activateReceiver); -} - -/** - * \brief Adds an instance of dw::core::ui::CheckButtonResource. - */ -void Form::addCheckButtonResource (const char *name, - dw::core::ui::CheckButtonResource *resource) -{ - resources->append (new CheckButtonResourceDecorator (name, resource)); - resource->connectActivate (activateReceiver); -} - -/** - * \brief Adds an instance of dw::core::ui::SelectionResource. - */ -void Form::addSelectionResource (const char *name, - dw::core::ui::SelectionResource *resource, - const char **values) -{ - resources->append (new SelectionResourceDecorator (name, resource, values)); - resource->connectActivate (activateReceiver); -} - -/** - * \todo Comment this; - */ -void Form::addButtonResource (const char *name, - dw::core::ui::ButtonResource *resource, - const char *value) -{ - FormClickedReceiver *receiver = - new FormClickedReceiver (this, name, value); - resource->connectClicked (receiver); - clickedReceivers->append (receiver); -} - -/** - * \todo Comment this; - */ -void Form::send (const char *buttonName, const char *buttonValue, int x, int y) -{ - for (lout::container::typed::Iterator it = - resources->iterator (); - it.hasNext (); ) { - ResourceDecorator *resource = it.getNext (); - const char *value = resource->getValue (); - if (value) - printf ("%s = %s; x=%d y=%d\n", resource->getName (), value, x, y); - } - - if(buttonName && buttonValue) - printf ("%s = %s\n", buttonName, buttonValue); -} - -} // namespace form diff --git a/test/form.hh b/test/form.hh deleted file mode 100644 index 6235c6cc..00000000 --- a/test/form.hh +++ /dev/null @@ -1,164 +0,0 @@ -#ifndef __TEST_FORM_HH__ -#define __TEST_FORM_HH__ - -#include "../dw/core.hh" -#include "../dw/ui.hh" - -namespace form { - -/** - * \brief Handles HTML form data. - * - * Add resources by calling the respective add...Resource method. Furtermore, - * this class impelements dw::core::ui::ButtonResource::ClickedReceiver, the - * form data is printed to stdout, when the "clicked" signal is received. - * - * \todo wrong comment - */ -class Form -{ -private: - /** - * \brief Decorates instances of dw::core::ui::Resource. - * - * This is the abstract base class, sub classes have to be defined to - * decorate specific sub interfaces of dw::core::ui::Resource. - */ - class ResourceDecorator: public lout::object::Object - { - private: - const char *name; - - protected: - ResourceDecorator (const char *name); - ~ResourceDecorator (); - - public: - inline const char *getName () { return name; } - virtual const char *getValue () = 0; - }; - - /** - * \brief Decorates instances of dw::core::ui::TextResource. - */ - class TextResourceDecorator: public ResourceDecorator - { - private: - dw::core::ui::TextResource *resource; - - public: - TextResourceDecorator (const char *name, - dw::core::ui::TextResource *resource); - const char *getValue (); - }; - - /** - * \brief Decorates instances of dw::core::ui::RadioButtonResource. - * - * This class has to be instantiated only once for a group of radio - * buttons. - */ - class RadioButtonResourceDecorator: public ResourceDecorator - { - private: - dw::core::ui::RadioButtonResource *resource; - const char **values; - - public: - RadioButtonResourceDecorator (const char *name, - dw::core::ui::RadioButtonResource - *resource, - const char **values); - ~RadioButtonResourceDecorator (); - const char *getValue (); - }; - - /** - * \brief Decorates instances of dw::core::ui::CheckButtonResource. - */ - class CheckButtonResourceDecorator: public ResourceDecorator - { - private: - dw::core::ui::CheckButtonResource *resource; - - public: - CheckButtonResourceDecorator (const char *name, - dw::core::ui::CheckButtonResource - *resource); - const char *getValue (); - }; - - /** - * \brief Decorates instances of dw::core::ui::SelectionResource. - */ - class SelectionResourceDecorator: public ResourceDecorator - { - private: - dw::core::ui::SelectionResource *resource; - const char **values; - lout::misc::StringBuffer valueBuf; - - public: - SelectionResourceDecorator (const char *name, - dw::core::ui::SelectionResource *resource, - const char **values); - ~SelectionResourceDecorator (); - const char *getValue (); - }; - - class FormActivateReceiver: public dw::core::ui::Resource::ActivateReceiver - { - private: - Form *form; - - public: - inline FormActivateReceiver (Form *form) { this->form = form; } - - void activate (dw::core::ui::Resource *resource); - void enter (dw::core::ui::Resource *resource); - void leave (dw::core::ui::Resource *resource); - }; - - class FormClickedReceiver: - public dw::core::ui::Resource::ClickedReceiver - { - private: - Form *form; - const char *name, *value; - - public: - FormClickedReceiver (Form *form, const char *name, const char *value); - ~FormClickedReceiver (); - - void clicked(dw::core::ui::Resource *resource, - dw::core::EventButton *event); - }; - - lout::container::typed::List *resources; - FormActivateReceiver *activateReceiver; - lout::container::typed::List *clickedReceivers; - -public: - Form (); - ~Form (); - - void addTextResource (const char *name, - dw::core::ui::TextResource *resource); - void addRadioButtonResource (const char *name, - dw::core::ui::RadioButtonResource *resource, - const char **values); - void addCheckButtonResource (const char *name, - dw::core::ui::CheckButtonResource *resource); - void addSelectionResource (const char *name, - dw::core::ui::SelectionResource *resource, - const char **values); - void addButtonResource (const char *name, - dw::core::ui::ButtonResource *resource, - const char *value); - - void send (const char *buttonName, const char *buttonValue, int x, int y); -}; - -} // namespace form - -#endif // __TEST_FORM_HH__ diff --git a/test/html/Anna_Karenina_1.html b/test/html/Anna_Karenina_1.html new file mode 100644 index 00000000..6deb470d --- /dev/null +++ b/test/html/Anna_Karenina_1.html @@ -0,0 +1,25 @@ +
+

Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему.

+

Все смешалось в доме Облонских. Жена узнала, что муж был в связи с бывшею в их доме француженкою-гувернанткой, и объявила мужу, что не может жить с ним в одном доме. Положение это продолжалось уже третий день и мучительно чувствовалось и самими супругами, и всеми членами семьи, и домочадцами. Все члены семьи и домочадцы чувствовали, что нет смысла в их сожительстве и что на каждом постоялом дворе случайно сошедшиеся люди более связаны между собой, чем они, члены семьи и домочадцы Облонских. Жена не выходила из своих комнат, мужа третий день не было дома. Дети бегали по всему дому, как потерянные; англичанка поссорилась с экономкой и написала записку приятельнице, прося приискать ей новое место; повар ушел вчера со двора, во время самого обеда; черная кухарка и кучер просили расчета.

+

На третий день после ссоры князь Степан Аркадьич Облонский — Стива, как его звали в свете, — в обычный час, то есть в восемь часов утра, проснулся не в спальне жены, а в своем кабинете, на сафьянном диване. Он повернул свое полное, выхоленное тело на пружинах дивана, как бы желая опять заснуть надолго, с другой стороны крепко обнял подушку и прижался к ней щекой; но вдруг вскочил, сел на диван и открыл глаза.

+

«Да, да, как это было? — думал он, вспоминая сон. — Да, +как это было? Да! Алабин давал обед в Дармштадте; нет, не в +Дармштадте, а что-то американское. Да, но там Дармштадт был в +Америке. Да, Алабин давал обед на стеклянных столах, да, — и +столы пели: Il mio tesoro, и +не Il mio tesoro, а что-то лучше, и какие-то +маленькие графинчики, и они же женщины», — вспоминал он.

+ +

Глаза Степана Аркадьича весело заблестели, и он задумался, улыбаясь. «Да, хорошо было, очень хорошо. Много еще что-то там было отличного, да не скажешь словами и мыслями даже наяву не выразишь». И, заметив полосу света, пробившуюся сбоку одной из суконных стор, он весело скинул ноги с дивана, отыскал ими шитые женой (подарок ко дню рождения в прошлом году), обделанные в золотистый сафьян туфли и по старой, девятилетней привычке, не вставая, потянулся рукой к тому месту, где в спальне у него висел халат. И тут он вспомнил вдруг, как и почему он спит не в спальне жены, а в кабинете; улыбка исчезла с его лица, он сморщил лоб.

+

«Ах, ах, ах! Ааа!..» — замычал он, вспоминая все, что было. И его воображению представились опять все подробности ссоры с женою, вся безвыходность его положения и мучительнее всего собственная вина его.

+

«Да! она не простит и не может простить. И всего ужаснее то, что виной всему я, виной я, а не виноват. В этом-то вся драма, — думал он. — Ах, ах, ах!» — приговаривал он с отчаянием, вспоминая самые тяжелые для себя впечатления из этой ссоры.

+

Неприятнее всего была та первая минута, когда он, вернувшись из театра, веселым и довольным, с огромною грушей для жены в руке, не нашел жены в гостиной; к удивлению, не нашел ее и в кабинете и, наконец, увидал ее в спальне с несчастною, открывшею все, запиской в руке.

+

Она, эта вечно озабоченная, и хлопотливая, и недалекая, какою он считал ее, Долли, неподвижно сидела с запиской в руке и с выражением ужаса, отчаяния и гнева смотрела на него.

+

— Что это? это? — спрашивала она, указывая на записку.

+ +

И при этом воспоминании, как это часто бывает, мучало Степана Аркадьича не столько самое событие, сколько то, как он ответил на эти слова жены.

+

С ним случилось в эту минуту то, что случается с людьми, когда они неожиданно уличены в чем-нибудь слишком постыдном. Он не сумел приготовить свое лицо к тому положению, в которое он становился пред женой после открытия его вины. Вместо того чтоб оскорбиться, отрекаться, оправдываться, просить прощения, оставаться даже равнодушным — все было бы лучше того, что он сделал! — его лицо совершенно невольно («рефлексы головного мозга», — подумал Степан Аркадьич, который любил физиологию), совершенно невольно вдруг улыбнулось привычною, доброю и потому глупою улыбкой.

+

Эту глупую улыбку он не мог простить себе. Увидав эту улыбку, Долли вздрогнула, как от физической боли, разразилась, со свойственною ей горячностью, потоком жестоких слов и выбежала из комнаты. С тех пор она не хотела видеть мужа.

+

«Всему виной эта глупая улыбка», — думал Степан Аркадьич.

+

«Но что ж делать? что ж делать?» — с отчаянием говорил он себе и не находил ответа.

+
diff --git a/test/html/KHM1-shy.html b/test/html/KHM1-shy.html new file mode 100644 index 00000000..b3924409 --- /dev/null +++ b/test/html/KHM1-shy.html @@ -0,0 +1,56 @@ +
+

In den al­ten Zei­ten, wo das Wün­schen noch +ge­hol­fen hat, leb­te ein Kö­nig, des­sen +Töch­ter wa­ren al­le schön, aber die jüng­ste war so +schön, daß die Son­ne sel­ber, die doch so vie­les +ge­se­hen hat, sich ver­wun­der­te so oft sie ihr +ins Ge­sicht schien. Na­he bei dem Schlos­se des +Kö­nigs lag ein gro­ßer dunk­ler Wald, und in dem +Wal­de un­ter ei­ner al­ten Lin­de war ein +Brun­nen: wenn nun der Tag recht heiß war, so ging das +Kö­nigs­kind hin­aus in den Wald und setz­te sich an +den Rand des küh­len Brun­nens: und wenn sie +Lan­ge­wei­le hat­te, so nahm sie eine +gol­de­ne Ku­gel, warf sie in die Hö­he und fieng sie +wie­der; und das war ihr liebs­tes Spiel­werk.

+

Nun trug es sich ein­mal zu, daß die gol­de­ne +Ku­gel der Kön­igs­toch­ter nicht in ihr Händ­chen +fiel, das sie in die Hö­he ge­hal­ten hat­te, +son­dern vor­bei auf die Er­de schlug und +ge­ra­de­zu ins Was­ser hin­ein roll­te. Die +Kö­nigs­toch­ter folg­te ihr mit den Aug­en nach, +aber die Ku­gel ver­schwand, und der Brun­nen war tief, so +tief daß man kei­nen Grund sah. Da fieng sie an zu wei­nen und +wein­te im­mer lau­ter und konn­te sich gar nicht +trös­ten. Und wie sie so klag­te, rief ihr je­mand zu „was +hast du vor, Kö­nigs­toch­ter, du schreist ja daß sich ein +Stein er­bar­men möchte.“ Sie sah sich um, wo­her die +Stim­me kä­me, da er­blick­te sie einen Frosch, der +sei­nen di­cken häß­li­chen Kopf aus dem Was­ser +streck­te. „Ach, du bists, al­ter +Was­ser­pat­scher,“ sag­te sie, „ich wei­ne über +mei­ne gol­de­ne Ku­gel, die mir in den Brun­nen +hin­ab ge­fal­len ist.“ „Sei still und wei­ne nicht,“ +ant­wor­te­te der Frosch, „ich kann wohl Rath +schaf­fen, aber was gibst du mir, wenn ich dein Spiel­werk +wie­der her­auf­ho­le?“ „Was du ha­ben willst, +lie­ber Frosch,“ sag­te sie, „mei­ne Klei­der, +mei­ne Per­len und Edel­stei­ne, auch noch die +gol­de­ne Kro­ne, die ich tra­ge.“ Der Frosch +ant­wor­te­te „dei­ne Klei­der, dei­ne +Per­len und Edel­stei­ne, und dei­ne gol­de­ne +Kro­ne, die mag ich nicht: aber wenn du mich lieb ha­ben +willst, und ich soll dein Ge­sel­le und +Spiel­ka­me­rad sein, an dei­nem Tisch­lein +ne­ben dir si­tzen, von dei­nem gol­de­nen +Tel­ler­lein es­sen, aus dei­nem Be­cher­lein +trin­ken, in dei­nem Bett­lein schla­fen: wenn du mir +das ver­sprichst, so will ich hin­un­ter stei­gen und +dir die gol­de­ne Ku­gel wie­der her­auf +ho­len.“ „Ach ja,“ sag­te sie, „ich ver­spre­che dir +alles, was du willst, wenn du mir nur die Ku­gel wie­der +bringst.“ Sie dach­te aber „was der ein­fäl­ti­ge +Frosch schwätzt, der sitzt im Was­ser bei sei­nes +Glei­chen und quackt, und kann kei­nes Men­schen +Ge­sel­le sein.“

+
diff --git a/test/html/KHM1.html b/test/html/KHM1.html new file mode 100644 index 00000000..c1665f00 --- /dev/null +++ b/test/html/KHM1.html @@ -0,0 +1,39 @@ +
+

In den alten Zeiten, wo das Wünschen noch geholfen hat, lebte ein +König, dessen Töchter waren alle schön, aber die jüngste war so schön, +daß die Sonne selber, die doch so vieles gesehen hat, sich verwunderte +so oft sie ihr ins Gesicht schien. Nahe bei dem Schlosse des Königs +lag ein großer dunkler Wald, und in dem Walde unter einer alten Linde +war ein Brunnen: wenn nun der Tag recht heiß war, so ging das +Königskind hinaus in den Wald und setzte sich an den Rand des kühlen +Brunnens: und wenn sie Langeweile hatte, so nahm sie eine goldene +Kugel, warf sie in die Höhe und fieng sie wieder; und das war ihr +liebstes Spielwerk.

+

Nun trug es sich einmal zu, daß die goldene Kugel der Königstochter +nicht in ihr Händchen fiel, das sie in die Höhe gehalten hatte, +sondern vorbei auf die Erde schlug und geradezu ins Wasser hinein +rollte. Die Königstochter folgte ihr mit den Augen nach, aber die +Kugel verschwand, und der Brunnen war tief, so tief daß man keinen +Grund sah. Da fieng sie an zu weinen und weinte immer lauter und +konnte sich gar nicht trösten. Und wie sie so klagte, rief ihr jemand +zu „was hast du vor, Königstochter, du schreist ja daß sich ein Stein +erbarmen möchte.“ Sie sah sich um, woher die Stimme käme, da erblickte +sie einen Frosch, der seinen dicken häßlichen Kopf aus dem Wasser +streckte. „Ach, du bists, alter Wasserpatscher,“ sagte sie, „ich weine +über meine goldene Kugel, die mir in den Brunnen hinab gefallen ist.“ +„Sei still und weine nicht,“ antwortete der Frosch, „ich kann wohl +Rath schaffen, aber was gibst du mir, wenn ich dein Spielwerk wieder +heraufhole?“ „Was du haben willst, lieber Frosch,“ sagte sie, „meine +Kleider, meine Perlen und Edelsteine, auch noch die goldene Krone, die +ich trage.“ Der Frosch antwortete „deine Kleider, deine Perlen und +Edelsteine, und deine goldene Krone, die mag ich nicht: aber wenn du +mich lieb haben willst, und ich soll dein Geselle und Spielkamerad +sein, an deinem Tischlein neben dir sitzen, von deinem goldenen +Tellerlein essen, aus deinem Becherlein trinken, in deinem Bettlein +schlafen: wenn du mir das versprichst, so will ich hinunter steigen +und dir die goldene Kugel wieder herauf holen.“ „Ach ja,“ sagte sie, +„ich verspreche dir alles, was du willst, wenn du mir nur die Kugel +wieder bringst.“ Sie dachte aber „was der einfältige Frosch schwätzt, +der sitzt im Wasser bei seines Gleichen und quackt, und kann keines +Menschen Geselle sein.“

+
diff --git a/test/html/KHM1b.html b/test/html/KHM1b.html new file mode 100644 index 00000000..adefc1ef --- /dev/null +++ b/test/html/KHM1b.html @@ -0,0 +1,14 @@ +

In den al­ten Zei­ten, wo das +Wün­schen noch ge­hol­fen hat, leb­te ein Kö­nig, +des­sen Töch­ter wa­ren al­le schön, aber die +jüng­ste war so schön, daß die Son­ne sel­ber, die doch so +vie­les ge­se­hen hat, sich ver­wun­der­te so +oft sie ihr ins Ge­sicht schien. Na­he bei dem Schlos­se +des Kö­nigs lag ein gro­ßer dunk­ler Wald, und in dem +Wal­de un­ter ei­ner al­ten Lin­de war ein +Brun­nen: wenn nun der Tag recht heiß war, so ging das +Kö­nigs­kind hin­aus in den Wald und setz­te sich an +den Rand des küh­len Brun­nens: und wenn sie +Lan­ge­wei­le hat­te, so nahm sie eine +gol­de­ne Ku­gel, warf sie in die Hö­he und fieng sie +wie­der; und das war ihr liebs­tes Spiel­werk.

diff --git a/test/html/KHM1c.html b/test/html/KHM1c.html new file mode 100644 index 00000000..3f3271fc --- /dev/null +++ b/test/html/KHM1c.html @@ -0,0 +1,10 @@ +

In den alten Zeiten, wo das Wünschen +noch geholfen hat, lebte ein König, dessen Töchter waren alle schön, +aber die jüngste war so schön, daß die Sonne selber, die doch so +vieles gesehen hat, sich verwunderte so oft sie ihr ins Gesicht +schien. Nahe bei dem Schlosse des Königs lag ein großer dunkler Wald, +und in dem Walde unter einer alten Linde war ein Brunnen: wenn nun der +Tag recht heiß war, so ging das Königskind hinaus in den Wald und +setzte sich an den Rand des kühlen Brunnens: und wenn sie Langeweile +hatte, so nahm sie eine goldene Kugel, warf sie in die Höhe und fieng +sie wieder; und das war ihr liebstes Spielwerk.

diff --git a/test/html/anchors.html b/test/html/anchors.html new file mode 100644 index 00000000..c04fdddc --- /dev/null +++ b/test/html/anchors.html @@ -0,0 +1,650 @@ +

Nach +unten. Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung. +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung. +Hier ist unten. (Nicht ganz.) Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung. +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung. +

diff --git a/test/html/doxygen.html b/test/html/doxygen.html new file mode 100644 index 00000000..24d7326e --- /dev/null +++ b/test/html/doxygen.html @@ -0,0 +1,477 @@ + + + + + + + +avr-libc: AVR Libc + + + + + + + + + + + +
+
+ + + + + + + +
+
avr-libc +  2.0.0 +
+
Standard C library for AVR-GCC
+
+ + + + + + +
+
+ + + + + + + + + + + + + +

AVR Libc Home Page

AVRs

AVR Libc Development Pages

Main Page

User Manual

Library Reference

FAQ

Example Projects

+
+ + + +
+ +
+
+ + +
+ +
+ +
+
+
AVR Libc
+
+
+

+Introduction

+

The latest version of this document is always available from http://savannah.nongnu.org/projects/avr-libc/

+

The AVR Libc package provides a subset of the standard C library for Atmel AVR 8-bit RISC microcontrollers. In addition, the library provides the basic startup code needed by most applications.

+

There is a wealth of information in this document which goes beyond simply describing the interfaces and routines provided by the library. We hope that this document provides enough information to get a new AVR developer up to speed quickly using the freely available development tools: binutils, gcc avr-libc and many others.

+

If you find yourself stuck on a problem which this document doesn't quite address, you may wish to post a message to the avr-gcc mailing list. Most of the developers of the AVR binutils and gcc ports in addition to the devleopers of avr-libc subscribe to the list, so you will usually be able to get your problem resolved. You can subscribe to the list at http://lists.nongnu.org/mailman/listinfo/avr-gcc-list . Before posting to the list, you might want to try reading the Frequently Asked Questions chapter of this document.

+
Note
If you think you've found a bug, or have a suggestion for an improvement, either in this documentation or in the library itself, please use the bug tracker at https://savannah.nongnu.org/bugs/?group=avr-libc to ensure the issue won't be forgotten.
+

+General information about this library

+

In general, it has been the goal to stick as best as possible to established standards while implementing this library. Commonly, this refers to the C library as described by the ANSI X3.159-1989 and ISO/IEC 9899:1990 ("ANSI-C") standard, as well as parts of their successor ISO/IEC 9899:1999 ("C99"). Some additions have been inspired by other standards like IEEE Std 1003.1-1988 ("POSIX.1"), while other extensions are purely AVR-specific (like the entire program-space string interface).

+

Unless otherwise noted, functions of this library are not guaranteed to be reentrant. In particular, any functions that store local state are known to be non-reentrant, as well as functions that manipulate IO registers like the EEPROM access routines. If these functions are used within both standard and interrupt contexts undefined behaviour will result. See the FAQ for a more detailed discussion.

+

+Supported Devices

+

+

The following is a list of AVR devices currently supported by the library. Note that actual support for some newer devices depends on the ability of the compiler/assembler to support these devices at library compile-time.

+
megaAVR Devices:
+
    +
  • atmega103
  • +
  • atmega128
  • +
  • atmega128a
  • +
  • atmega1280
  • +
  • atmega1281
  • +
  • atmega1284
  • +
  • atmega1284p
  • +
  • atmega16
  • +
  • atmega161
  • +
  • atmega162
  • +
  • atmega163
  • +
  • atmega164a
  • +
  • atmega164p
  • +
  • atmega164pa
  • +
  • atmega165
  • +
  • atmega165a
  • +
  • atmega165p
  • +
  • atmega165pa
  • +
  • atmega168
  • +
  • atmega168a
  • +
  • atmega168p
  • +
  • atmega168pa
  • +
  • atmega16a
  • +
  • atmega2560
  • +
  • atmega2561
  • +
  • atmega32
  • +
  • atmega32a
  • +
  • atmega323
  • +
  • atmega324a
  • +
  • atmega324p
  • +
  • atmega324pa
  • +
  • atmega325
  • +
  • atmega325a
  • +
  • atmega325p
  • +
  • atmega325pa
  • +
  • atmega3250
  • +
  • atmega3250a
  • +
  • atmega3250p
  • +
  • atmega3250pa
  • +
  • atmega328
  • +
  • atmega328p
  • +
  • atmega48
  • +
  • atmega48a
  • +
  • atmega48pa
  • +
  • atmega48pb
  • +
  • atmega48p
  • +
  • atmega64
  • +
  • atmega64a
  • +
  • atmega640
  • +
  • atmega644
  • +
  • atmega644a
  • +
  • atmega644p
  • +
  • atmega644pa
  • +
  • atmega645
  • +
  • atmega645a
  • +
  • atmega645p
  • +
  • atmega6450
  • +
  • atmega6450a
  • +
  • atmega6450p
  • +
  • atmega8
  • +
  • atmega8a
  • +
  • atmega88
  • +
  • atmega88a
  • +
  • atmega88p
  • +
  • atmega88pa
  • +
  • atmega88pb
  • +
  • atmega8515
  • +
  • atmega8535
  • +
+
tinyAVR Devices:
+
    +
  • attiny4
  • +
  • attiny5
  • +
  • attiny10
  • +
  • attiny11 [1]
  • +
  • attiny12 [1]
  • +
  • attiny13
  • +
  • attiny13a
  • +
  • attiny15 [1]
  • +
  • attiny20
  • +
  • attiny22
  • +
  • attiny24
  • +
  • attiny24a
  • +
  • attiny25
  • +
  • attiny26
  • +
  • attiny261
  • +
  • attiny261a
  • +
  • attiny28 [1]
  • +
  • attiny2313
  • +
  • attiny2313a
  • +
  • attiny40
  • +
  • attiny4313
  • +
  • attiny43u
  • +
  • attiny44
  • +
  • attiny44a
  • +
  • attiny441
  • +
  • attiny45
  • +
  • attiny461
  • +
  • attiny461a
  • +
  • attiny48
  • +
  • attiny828
  • +
  • attiny84
  • +
  • attiny84a
  • +
  • attiny841
  • +
  • attiny85
  • +
  • attiny861
  • +
  • attiny861a
  • +
  • attiny87
  • +
  • attiny88
  • +
  • attiny1634
  • +
+
Automotive AVR Devices:
+
    +
  • atmega16m1
  • +
  • atmega32c1
  • +
  • atmega32m1
  • +
  • atmega64c1
  • +
  • atmega64m1
  • +
  • attiny167
  • +
  • ata5505
  • +
  • ata5272
  • +
  • ata5702m322
  • +
  • ata5782
  • +
  • ata5790
  • +
  • ata5790n
  • +
  • ata5831
  • +
  • ata5795
  • +
  • ata6612c
  • +
  • ata6613c
  • +
  • ata6614q
  • +
  • ata6616c
  • +
  • ata6617c
  • +
  • ata664251
  • +
+
CAN AVR Devices:
+
    +
  • at90can32
  • +
  • at90can64
  • +
  • at90can128
  • +
+
LCD AVR Devices:
+
    +
  • atmega169
  • +
  • atmega169a
  • +
  • atmega169p
  • +
  • atmega169pa
  • +
  • atmega329
  • +
  • atmega329a
  • +
  • atmega329p
  • +
  • atmega329pa
  • +
  • atmega3290
  • +
  • atmega3290a
  • +
  • atmega3290p
  • +
  • atmega3290pa
  • +
  • atmega649
  • +
  • atmega649a
  • +
  • atmega6490
  • +
  • atmega6490a
  • +
  • atmega6490p
  • +
  • atmega649p
  • +
+
Lighting AVR Devices:
+
    +
  • at90pwm1
  • +
  • at90pwm2
  • +
  • at90pwm2b
  • +
  • at90pwm216
  • +
  • at90pwm3
  • +
  • at90pwm3b
  • +
  • at90pwm316
  • +
  • at90pwm161
  • +
  • at90pwm81
  • +
+
Smart Battery AVR Devices:
+
    +
  • atmega8hva
  • +
  • atmega16hva
  • +
  • atmega16hva2
  • +
  • atmega16hvb
  • +
  • atmega16hvbrevb
  • +
  • atmega32hvb
  • +
  • atmega32hvbrevb
  • +
  • atmega64hve
  • +
  • atmega64hve2
  • +
  • atmega406
  • +
+
USB AVR Devices:
+
    +
  • at90usb82
  • +
  • at90usb162
  • +
  • at90usb646
  • +
  • at90usb647
  • +
  • at90usb1286
  • +
  • at90usb1287
  • +
  • atmega8u2
  • +
  • atmega16u2
  • +
  • atmega16u4
  • +
  • atmega32u2
  • +
  • atmega32u4
  • +
  • atmega32u6
  • +
+
XMEGA Devices:
+
    +
  • atxmega8e5
  • +
  • atxmega16a4
  • +
  • atxmega16a4u
  • +
  • atxmega16c4
  • +
  • atxmega16d4
  • +
  • atxmega32a4
  • +
  • atxmega32a4u
  • +
  • atxmega32c3
  • +
  • atxmega32c4
  • +
  • atxmega32d3
  • +
  • atxmega32d4
  • +
  • atxmega32e5
  • +
  • atxmega64a1
  • +
  • atxmega64a1u
  • +
  • atxmega64a3
  • +
  • atxmega64a3u
  • +
  • atxmega64a4u
  • +
  • atxmega64b1
  • +
  • atxmega64b3
  • +
  • atxmega64c3
  • +
  • atxmega64d3
  • +
  • atxmega64d4
  • +
  • atxmega128a1
  • +
  • atxmega128a1u
  • +
  • atxmega128a3
  • +
  • atxmega128a3u
  • +
  • atxmega128a4u
  • +
  • atxmega128b1
  • +
  • atxmega128b3
  • +
  • atxmega128c3
  • +
  • atxmega128d3
  • +
  • atxmega128d4
  • +
  • atxmega192a3
  • +
  • atxmega192a3u
  • +
  • atxmega192c3
  • +
  • atxmega192d3
  • +
  • atxmega256a3
  • +
  • atxmega256a3u
  • +
  • atxmega256a3b
  • +
  • atxmega256a3bu
  • +
  • atxmega256c3
  • +
  • atxmega256d3
  • +
  • atxmega384c3
  • +
  • atxmega384d3
  • +
+
Wireless AVR devices:
+
    +
  • atmega644rfr2
  • +
  • atmega64rfr2
  • +
  • atmega128rfa1
  • +
  • atmega1284rfr2
  • +
  • atmega128rfr2
  • +
  • atmega2564rfr2
  • +
  • atmega256rfr2
  • +
+
Miscellaneous Devices:
+
    +
  • at94K [2]
  • +
  • at76c711 [3]
  • +
  • at43usb320
  • +
  • at43usb355
  • +
  • at86rf401
  • +
  • at90scr100
  • +
  • ata6285
  • +
  • ata6286
  • +
  • ata6289
  • +
  • m3000 [4]
  • +
+
Classic AVR Devices:
+
    +
  • at90s1200 [1]
  • +
  • at90s2313
  • +
  • at90s2323
  • +
  • at90s2333
  • +
  • at90s2343
  • +
  • at90s4414
  • +
  • at90s4433
  • +
  • at90s4434
  • +
  • at90s8515
  • +
  • at90c8534
  • +
  • at90s8535
  • +
+

Note
[1] Assembly only. There is no direct support for these devices to be programmed in C since they do not have a RAM based stack. Still, it could be possible to program them in C, see the FAQ for an option.
+

Note
[2] The at94K devices are a combination of FPGA and AVR microcontroller. [TRoth-2002/11/12: Not sure of the level of support for these. More information would be welcomed.]
+

Note
[3] The at76c711 is a USB to fast serial interface bridge chip using an AVR core.
+

Note
[4] The m3000 is a motor controller AVR ASIC from Intelligent Motion Systems (IMS) / Schneider Electric.
+

+avr-libc License

+

avr-libc can be freely used and redistributed, provided the following license conditions are met.

+
Portions of avr-libc are Copyright (c) 1999-2016
+Werner Boellmann,
+Dean Camera,
+Pieter Conradie,
+Brian Dean,
+Keith Gudger,
+Wouter van Gulik,
+Bjoern Haase,
+Steinar Haugen,
+Peter Jansen,
+Reinhard Jessich,
+Magnus Johansson,
+Harald Kipp,
+Carlos Lamas,
+Cliff Lawson,
+Artur Lipowski,
+Marek Michalkiewicz,
+Todd C. Miller,
+Rich Neswold,
+Colin O'Flynn,
+Bob Paddock,
+Andrey Pashchenko,
+Reiner Patommel,
+Florin-Viorel Petrov,
+Alexander Popov,
+Michael Rickman,
+Theodore A. Roth,
+Juergen Schilling,
+Philip Soeberg,
+Anatoly Sokolov,
+Nils Kristian Strom,
+Michael Stumpf,
+Stefan Swanepoel,
+Helmut Wallner,
+Eric B. Weddington,
+Joerg Wunsch,
+Dmitry Xmelkov,
+Atmel Corporation,
+egnite Software GmbH,
+The Regents of the University of California. 
+All rights reserved.
+
+   Redistribution and use in source and binary forms, with or without
+   modification, are permitted provided that the following conditions are met:
+
+   * Redistributions of source code must retain the above copyright
+     notice, this list of conditions and the following disclaimer.
+
+   * Redistributions in binary form must reproduce the above copyright
+     notice, this list of conditions and the following disclaimer in
+     the documentation and/or other materials provided with the
+     distribution.
+
+   * Neither the name of the copyright holders nor the names of
+     contributors may be used to endorse or promote products derived
+     from this software without specific prior written permission.
+
+   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+   POSSIBILITY OF SUCH DAMAGE.
+
+ + + + + diff --git a/test/html/floats-and-absolute.html b/test/html/floats-and-absolute.html new file mode 100644 index 00000000..658ab16b --- /dev/null +++ b/test/html/floats-and-absolute.html @@ -0,0 +1,51 @@ + + + + + Floats And Absolute Positions + + + +

Floats And Absolute Positions

+
+ +

Sed ut perspiciatis, unde omnis iste natus error sit + voluptatem accusantium doloremque laudantium, totam rem + aperiam eaque ipsa, quae ab illo inventore veritatis et quasi + architecto beatae vitae dicta sunt, explicabo. nemo enim ipsam + voluptatem, quia voluptas sit, aspernatur aut odit aut fugit, + sed quia consequuntur magni dolores eos, qui ratione + voluptatem sequi nesciunt, neque porro quisquam est, qui + dolorem ipsum, quia dolor sit, amet, consectetur, adipisci + velit, sed quia non numquam eius modi tempora incidunt, ut + labore et dolore magnam aliquam quaerat voluptatem. ut enim ad + minima veniam, quis nostrum exercitationem ullam corporis + suscipit laboriosam, nisi ut aliquid ex ea commodi + consequatur? quis autem vel eum iure reprehenderit, qui in ea + voluptate velit esse, quam nihil molestiae consequatur, vel + illum, qui dolorem eum fugiat, quo voluptas nulla + pariatur?

+

Ἐν ἀρχῇ ἦν ὁ Λόγος, καὶ ὁ Λόγος ἦν πρὸς τὸν Θεόν, καὶ Θεὸς ἦν + ὁ Λόγος. Οὗτος ἦν ἐν ἀρχῇ πρὸς τὸν Θεόν. πάντα δι' αὐτοῦ + ἐγένετο, καὶ χωρὶς αὐτοῦ ἐγένετο οὐδὲ ἕν ὃ γέγονεν. ἐν αὐτῷ + ζωὴ ἦν, καὶ ἡ ζωὴ ἦν τὸ φῶς τῶν ἀνθρώπων. καὶ τὸ φῶς ἐν τῇ + σκοτίᾳ φαίνει, καὶ ἡ σκοτία αὐτὸ οὐ κατέλαβεν.

+
+
Margin, actually on the left side.
+ + + + + diff --git a/test/html/floats-and-margins.html b/test/html/floats-and-margins.html new file mode 100644 index 00000000..ac64b9e1 --- /dev/null +++ b/test/html/floats-and-margins.html @@ -0,0 +1,40 @@ + + + + + Floats And Margins + + + +

+ + Ἐν ἀρχῇ ἦν ὁ Λόγος, καὶ ὁ Λόγος ἦν πρὸς τὸν Θεόν, καὶ Θεὸς ἦν ὁ + Λόγος. Οὗτος ἦν ἐν ἀρχῇ πρὸς τὸν Θεόν. πάντα δι' αὐτοῦ ἐγένετο, + καὶ χωρὶς αὐτοῦ ἐγένετο οὐδὲ ἕν ὃ γέγονεν. ἐν αὐτῷ ζωὴ ἦν, καὶ ἡ + ζωὴ ἦν τὸ φῶς τῶν ἀνθρώπων. καὶ τὸ φῶς ἐν τῇ σκοτίᾳ φαίνει, καὶ + ἡ σκοτία αὐτὸ οὐ κατέλαβεν. +

+

+ + Sed ut perspiciatis, unde omnis iste natus error sit voluptatem + accusantium doloremque laudantium, totam rem aperiam eaque ipsa, + quae ab illo inventore veritatis et quasi architecto beatae + vitae dicta sunt, explicabo. nemo enim ipsam voluptatem, quia + voluptas sit, aspernatur aut odit aut fugit, sed quia + consequuntur magni dolores eos, qui ratione voluptatem sequi + nesciunt, neque porro quisquam est, qui dolorem ipsum, quia + dolor sit, amet, consectetur, adipisci velit, sed quia non + numquam eius modi tempora incidunt, ut labore et dolore magnam + aliquam quaerat voluptatem. ut enim ad minima veniam, quis + nostrum exercitationem ullam corporis suscipit laboriosam, nisi + ut aliquid ex ea commodi consequatur? quis autem vel eum iure + reprehenderit, qui in ea voluptate velit esse, quam nihil + molestiae consequatur, vel illum, qui dolorem eum fugiat, quo + voluptas nulla pariatur? +

+ + + + + diff --git a/test/html/floats-table.html b/test/html/floats-table.html new file mode 100644 index 00000000..77d77563 --- /dev/null +++ b/test/html/floats-table.html @@ -0,0 +1,24 @@ +

Demonstrating how to include floats into witdth extremes. + + + +
+
Somelongwordwhichmustnotbebrokensotakingmuchspaceinatablecolumn
+ Some short text. +
+ Sed ut perspiciatis, unde omnis iste natus error sit voluptatem + accusantium doloremque laudantium, totam rem aperiam eaque ipsa, + quae ab illo inventore veritatis et quasi architecto beatae + vitae dicta sunt, explicabo. nemo enim ipsam voluptatem, quia + voluptas sit, aspernatur aut odit aut fugit, sed quia + consequuntur magni dolores eos, qui ratione voluptatem sequi + nesciunt, neque porro quisquam est, qui dolorem ipsum, quia + dolor sit, amet, consectetur, adipisci velit, sed quia non + numquam eius modi tempora incidunt, ut labore et dolore magnam + aliquam quaerat voluptatem. ut enim ad minima veniam, quis + nostrum exercitationem ullam corporis suscipit laboriosam, nisi + ut aliquid ex ea commodi consequatur? quis autem vel eum iure + reprehenderit, qui in ea voluptate velit esse, quam nihil + molestiae consequatur, vel illum, qui dolorem eum fugiat, quo + voluptas nulla pariatur? +
diff --git a/test/html/floats-worm.html b/test/html/floats-worm.html new file mode 100644 index 00000000..9e050933 --- /dev/null +++ b/test/html/floats-worm.html @@ -0,0 +1,42 @@ + + + + + Floats and iterators: search for "worm" and pay attention + to the order. + + + +

1: apple apple worm apple apple
+

2: apple apple apple apple apple apple apple apple apple apple + apple apple apple apple apple apple apple apple apple apple + apple apple apple apple worm apple apple apple apple apple apple + apple apple apple apple apple apple apple apple apple apple + apple apple apple apple apple apple apple apple

+
3: apple apple worm apple apple
+

4: apple apple apple apple apple apple apple apple apple apple + apple apple apple apple apple apple apple apple apple apple + apple apple apple apple worm apple apple apple apple apple apple + apple apple apple apple apple apple apple apple apple apple + apple apple apple apple apple apple apple apple

+
5: apple apple worm apple apple
+ + + + + diff --git a/test/html/floats1.html b/test/html/floats1.html new file mode 100644 index 00000000..eae30c4a --- /dev/null +++ b/test/html/floats1.html @@ -0,0 +1,46 @@ +
First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First +paragraph.
Left +float. Left float. Left float. Left float. Left float. Left +float. Left float. Left float. Left float. Left float. Left +float. Left float. Left float. Left float. Left float. Left +float. Left float. Left float. Left float. Left float.
First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph. First paragraph. First +paragraph. First paragraph. First paragraph.
+
Second paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph.
Right float. Right float. Right +float. Right float. Right float. Right float.
Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph. Second +paragraph. Second paragraph. Second paragraph.
diff --git a/test/html/floats2.html b/test/html/floats2.html new file mode 100644 index 00000000..b7978706 --- /dev/null +++ b/test/html/floats2.html @@ -0,0 +1,17 @@ +Sed ut perspiciatis, unde omnis iste natus error sit voluptatem +accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae +ab illo inventore veritatis et quasi architecto beatae vitae dicta +sunt, explicabo. +
Some text in a +float.
+nemo enim ipsam voluptatem, quia voluptas sit, +aspernatur aut odit aut fugit, sed quia consequuntur magni dolores +eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, +qui dolorem ipsum, quia dolor sit, amet, consectetur, adipisci velit, +sed quia non numquam eius modi tempora incidunt, ut labore et dolore +magnam aliquam quaerat voluptatem. ut enim ad minima veniam, quis +nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut +aliquid ex ea commodi consequatur? quis autem vel eum iure +reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae +consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla +pariatur? diff --git a/test/html/floats3.html b/test/html/floats3.html new file mode 100644 index 00000000..4d57e453 --- /dev/null +++ b/test/html/floats3.html @@ -0,0 +1,16 @@ +

Sed ut perspiciatis, unde omnis iste natus error sit voluptatem +accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae +ab illo inventore veritatis et quasi architecto beatae vitae dicta +sunt, explicabo.

+
Some text in a +float.
+

nemo enim ipsam voluptatem, quia voluptas sit, aspernatur aut odit +aut fugit, sed quia consequuntur magni dolores eos, qui ratione +voluptatem sequi nesciunt, neque porro quisquam est, qui dolorem +ipsum, quia dolor sit, amet, consectetur, adipisci velit, sed quia non +numquam eius modi tempora incidunt, ut labore et dolore magnam aliquam +quaerat voluptatem. ut enim ad minima veniam, quis nostrum +exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex +ea commodi consequatur? quis autem vel eum iure reprehenderit, qui in +ea voluptate velit esse, quam nihil molestiae consequatur, vel illum, +qui dolorem eum fugiat, quo voluptas nulla pariatur?

diff --git a/test/html/floats4.html b/test/html/floats4.html new file mode 100644 index 00000000..965ed68d --- /dev/null +++ b/test/html/floats4.html @@ -0,0 +1,63 @@ + + + + + Floats 4 + + + +
Some text in a float.
+ +

Sed ut perspiciatis, unde omnis iste natus error sit voluptatem + accusantium doloremque laudantium, totam rem aperiam eaque ipsa, + quae ab illo inventore veritatis et quasi architecto beatae + vitae dicta sunt, explicabo. nemo enim ipsam voluptatem, quia + voluptas sit, aspernatur aut odit aut fugit, sed quia + consequuntur magni dolores eos, qui ratione voluptatem sequi + nesciunt, neque porro quisquam est, qui dolorem ipsum, quia + dolor sit, amet, consectetur, adipisci velit, sed quia non + numquam eius modi tempora incidunt, ut labore et dolore magnam + aliquam quaerat voluptatem. ut enim ad minima veniam, quis + nostrum exercitationem ullam corporis suscipit laboriosam, nisi + ut aliquid ex ea commodi consequatur? quis autem vel eum iure + reprehenderit, qui in ea voluptate velit esse, quam nihil + molestiae consequatur, vel illum, qui dolorem eum fugiat, quo + voluptas nulla pariatur?

+ +
Ἐν ἀρχῇ ἦν ὁ Λόγος, καὶ ὁ Λόγος + ἦν πρὸς τὸν Θεόν, καὶ Θεὸς ἦν ὁ Λόγος. Οὗτος ἦν ἐν ἀρχῇ πρὸς τὸν + Θεόν. πάντα δι' αὐτοῦ ἐγένετο, καὶ χωρὶς αὐτοῦ ἐγένετο οὐδὲ ἕν ὃ + γέγονεν. ἐν αὐτῷ ζωὴ ἦν, καὶ ἡ ζωὴ ἦν τὸ φῶς τῶν ἀνθρώπων. καὶ + τὸ φῶς ἐν τῇ σκοτίᾳ φαίνει, καὶ ἡ σκοτία αὐτὸ οὐ + κατέλαβεν.
+ + + + + diff --git a/test/html/floats5.html b/test/html/floats5.html new file mode 100644 index 00000000..c8c6564a --- /dev/null +++ b/test/html/floats5.html @@ -0,0 +1,16 @@ +Sed ut perspiciatis, unde omnis iste natus error sit voluptatem +accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae +ab illo inventore veritatis et quasi architecto beatae vitae dicta +sunt, explicabo. +
+nemo enim ipsam voluptatem, quia voluptas sit, +aspernatur aut odit aut fugit, sed quia consequuntur magni dolores +eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, +qui dolorem ipsum, quia dolor sit, amet, consectetur, adipisci velit, +sed quia non numquam eius modi tempora incidunt, ut labore et dolore +magnam aliquam quaerat voluptatem. ut enim ad minima veniam, quis +nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut +aliquid ex ea commodi consequatur? quis autem vel eum iure +reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae +consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla +pariatur? diff --git a/test/html/hyphenate-nbsp.html b/test/html/hyphenate-nbsp.html new file mode 100644 index 00000000..1bfd9a25 --- /dev/null +++ b/test/html/hyphenate-nbsp.html @@ -0,0 +1,3 @@ +
+Wei kurz und knapp www.dillo.org +
diff --git a/test/html/hyphens-etc.html b/test/html/hyphens-etc.html new file mode 100644 index 00000000..cbc55b79 --- /dev/null +++ b/test/html/hyphens-etc.html @@ -0,0 +1,6 @@ +

Abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde

+

Abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde

+

Abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde

+

Abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde

+

Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen

+

Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen

diff --git a/test/html/lang.html b/test/html/lang.html new file mode 100644 index 00000000..c5a6f562 --- /dev/null +++ b/test/html/lang.html @@ -0,0 +1,27 @@ +

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla +bla bla bla bla bla: +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

+

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla +bla bla bla bla bla: +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

+

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla +bla bla bla bla bla: +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

+

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla +bla bla bla bla bla: +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

+ +
+ +

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla +bla bla bla bla bla: +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

+

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla +bla bla bla bla bla: +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

+

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla +bla bla bla bla bla: +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

+

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla +bla bla bla bla bla: +Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

diff --git a/test/html/table-1.html b/test/html/table-1.html new file mode 100644 index 00000000..58635d2c --- /dev/null +++ b/test/html/table-1.html @@ -0,0 +1,21 @@ + + + +
Short, then some more text, +which must not be broken. +This is a rather long text to increase the maximal paragraph +width. Sed ut perspiciatis, unde omnis iste natus error sit voluptatem +accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae +ab illo inventore veritatis et quasi architecto beatae vitae dicta +sunt, explicabo. nemo enim ipsam voluptatem, quia voluptas sit, +aspernatur aut odit aut fugit, sed quia consequuntur magni dolores +eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, +qui dolorem ipsum, quia dolor sit, amet, consectetur, adipisci velit, +sed quia non numquam eius modi tempora incidunt, ut labore et dolore +magnam aliquam quaerat voluptatem. ut enim ad minima veniam, quis +nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut +aliquid ex ea commodi consequatur? quis autem vel eum iure +reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae +consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla +pariatur? +
diff --git a/test/html/table-h1.html b/test/html/table-h1.html new file mode 100644 index 00000000..fb82c3ec --- /dev/null +++ b/test/html/table-h1.html @@ -0,0 +1,37 @@ + + +
Grundstücksverkehrsgenehmigungszuständigkeit ABC +Sed ut perspiciatis, unde omnis iste natus error sit voluptatem +accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae +ab illo inventore veritatis et quasi architecto beatae vitae dicta +sunt, explicabo. nemo enim ipsam voluptatem, quia voluptas sit, +aspernatur aut odit aut fugit, sed quia consequuntur magni dolores +eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, +qui dolorem ipsum, quia dolor sit, amet, consectetur, adipisci velit, +sed quia non numquam eius modi tempora incidunt, ut labore et dolore +magnam aliquam quaerat voluptatem. ut enim ad minima veniam, quis +nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut +aliquid ex ea commodi consequatur? quis autem vel eum iure +reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae +consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla +pariatur? +
+ + + +
Grund­stücks­ver­kehrs­ge­neh­mi­gungs­zu­stän­dig­keit ABC +Sed ut perspiciatis, unde omnis iste natus error sit voluptatem +accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae +ab illo inventore veritatis et quasi architecto beatae vitae dicta +sunt, explicabo. nemo enim ipsam voluptatem, quia voluptas sit, +aspernatur aut odit aut fugit, sed quia consequuntur magni dolores +eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, +qui dolorem ipsum, quia dolor sit, amet, consectetur, adipisci velit, +sed quia non numquam eius modi tempora incidunt, ut labore et dolore +magnam aliquam quaerat voluptatem. ut enim ad minima veniam, quis +nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut +aliquid ex ea commodi consequatur? quis autem vel eum iure +reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae +consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla +pariatur? +
diff --git a/test/html/table-narrow.html b/test/html/table-narrow.html new file mode 100644 index 00000000..ad28417d --- /dev/null +++ b/test/html/table-narrow.html @@ -0,0 +1,9 @@ + + +
W daaaaaaaaaaaa*
+
WW daaaaaaaaaaaa*
+
WWW daaaaaaaaaaaa*
+
WWWW daaaaaaaaaaaa*
+
WWWWW daaaaaaaaaaaa*
+
WWWWWW daaaaaaaaaaaa*
+
diff --git a/test/html/table-thead-tfoot.html b/test/html/table-thead-tfoot.html new file mode 100644 index 00000000..66be2710 --- /dev/null +++ b/test/html/table-thead-tfoot.html @@ -0,0 +1,41 @@ + + + + Test thead, tbody and tfoot + + + + + + + + + + + + + + + + + + + + + + + + + + +
MonthSavings
January$100
February$80
Sum$180
+ + diff --git a/test/html/white-space.html b/test/html/white-space.html new file mode 100644 index 00000000..abd61c41 --- /dev/null +++ b/test/html/white-space.html @@ -0,0 +1,24 @@ +

nowrap

+
+hallo dillo hallo dillo hallo dillo hallo dillo +hallo dillo hallo dillo hallo dillo hallo dillo +
+ +

pre

+ +
+hallo dillo hallo dillo hallo dillo hallo dillo +hallo dillo hallo dillo hallo dillo hallo dillo +
+ +

pre-wrap

+
+hallo dillo hallo dillo hallo dillo hallo dillo +hallo dillo hallo dillo hallo dillo hallo dillo +
+ +

pre-line

+
+hallo dillo hallo dillo hallo dillo hallo dillo +hallo dillo hallo dillo hallo dillo hallo dillo +
diff --git a/test/hyph-de-1996.pat b/test/hyph-de-1996.pat deleted file mode 100644 index 302951de..00000000 --- a/test/hyph-de-1996.pat +++ /dev/null @@ -1,14236 +0,0 @@ -% TeX-Trennmuster für die reformierte (2006) deutsche Rechtschreibung -% -% -% Copyright (C) 2007, 2008, 2009, 2011, 2012 Werner Lemberg -% -% This program can be redistributed and/or modified under the terms -% of the LaTeX Project Public License Distributed from CTAN -% archives in directory macros/latex/base/lppl.txt; either -% version 1 of the License, or any later version. -% -% -% The word list is available from -% -% http://repo.or.cz/w/wortliste.git?a=commit;h=7915938d035684993f8c363729f963eec71c85b1 -% -% The used patgen parameters are -% -% 1 1 | 2 5 | 1 1 1 -% 2 2 | 2 5 | 1 2 1 -% 3 3 | 2 6 | 1 1 1 -% 4 4 | 2 6 | 1 4 1 -% 5 5 | 2 7 | 1 1 1 -% 6 6 | 2 7 | 1 6 1 -% 7 7 | 2 13 | 1 4 1 -% 8 8 | 2 13 | 1 8 1 -.ab1a -.abi4 -.ab3l -.abo2 -.ab3ol -.ab1or -.ack2 -.ag4n -.ag4r -.ag2u -.ai2s -.akt2a -.al3br -.al2e -.al5l4en -.al4tei -.alt3s -.ampe4 -.amt4s3 -.an3d2 -.anden6k -.and4ri -.ang2 -.an3gli -.angs4 -.angst3 -.an3s -.an4si. -.ans2p -.ans2t -.an4tag -.an3th -.apo1 -.aps2 -.ari1e -.ark2a -.ar4m3ac -.ar2sc -.ar4t3ei -.as3t -.as4ta -.at4h -.au3d -.au2f3 -.au4s3 -.ausch3 -.ax4 -.äm3 -.ät2s -.be3erb -.bei6ge. -.be3ra -.be3r2e -.berg3a -.ber6gab -.ber4g3r -.boge2 -.bo4s3k -.bu4ser -.by4t -.ch2 -.dab4 -.da2r1 -.da4rin -.darm1 -.da4te. -.da4tes -.de2al -.de1i -.de4in. -.de1o2 -.de3r4en -.de1s -.des2e -.de3sk -.des2t -.dien4e -.do2mo -.do1pe -.dorf1 -.dü1b -.dys1 -.ebe2r1 -.ehe1i -.ei3e2 -.ei4na -.einen6g -.ei2sp -.ei4st -.ei4tr -.eke2 -.el2bi -.elb3s -.em3m2 -.en1 -.en4d3er -.en5der. -.en2d3r -.end3s -.enn2 -.enns3 -.en2t3 -.en4tei -.en4tr -.er8brecht -.er2da -.er4dan -.er4dar -.er4dei -.er4der -.er1e -.ere3c -.erf4 -.er1i -.er8stein -.er8stritt. -.er8stritten. -.er4zen4 -.es1p -.es3ta -.es5t4e -.est2h -.es3to -.es5tr -.et2s -.eu1 -.eu3g4 -.eu3t -.eve4r -.ext4 -.fe2i -.fer4no -.fi3est -.fi4le. -.fi4len -.fi2s -.flug1 -.for2t -.fs4 -.fu2sc -.ga4t -.gd2 -.ge5nar -.ge3ne -.ge3r2a -.ge3r2e -.ge3u -.gs4 -.guss1 -.hau2t1 -.he2 -.he3fe -.her3an -.he3ri -.he6r5inn -.ho4met -.ia4 -.im2a -.ima4ge -.im5m -.in1 -.in3e -.ink4 -.inn2e -.int6 -.inu1 -.ire3 -.is2a -.jor3 -.ka2b5l -.ka2i -.kamp2 -.ka4t3io -.ki4e -.kle2i -.kopf1 -.ks2 -.kus2 -.le4ar -.li2f -.li4tu -.lo4g3in -.lo3ver -.lus4tr -.ma3d -.ma2i -.ma3la -.ma2st -.md2 -.me2e -.mel2a -.men8schl -.men8schw -.men3t4 -.mi4t1 -.mm2 -.näs1c -.ne4s -.ni4e -.nob4 -.no4th -.nus2 -.oa3 -.ob1a -.obe2 -.oper4 -.or2a -.ort2 -.orts3e -.oste2 -.ost5end -.os8ten8de -.oste6re -.ost3r -.ozo4 -.öd2 -.pa4r1e -.par3t4h -.pf4 -.ph4 -.poka2 -.pro1 -.ps2 -.ram3s -.reb3s2 -.re3cha -.rein4t -.reli1 -.reli3e -.res6tr -.ri2as -.richt6e -.ro4a -.ro3m2a -.rö2s1 -.rü1b -.rü6cker6 -.sali3e -.sch4 -.se3ck -.sen3s -.ser2u -.se2t1 -.sha2 -.sim3p4 -.si4te -.ski1e -.spiege8lei -.st4 -.sto4re -.sucher6 -.tage4s -.tal2e -.tan4k3l -.ta2to -.te2e -.te2f -.te3no -.te2s -.te4st -.th4 -.ti2a -.tid1 -.ti2s -.ti5ta -.tite4 -.to4nin -.to4pl -.to2w -.tri3es -.tro2s -.ts2 -.tu3ri -.uf2e2 -.ufer1 -.ul4mei -.um3 -.umo2 -.un3a2 -.un3d -.un3e -.un3g -.uni4t -.un3s -.uns4t -.ur1 -.ur2i -.urin4s -.ur3o2m -.uro2p -.ur3s2 -.ut2a -.ut3r -.übe4 -.ve5n2e -.vo4r -.wah4l -.wa2s -.wei4ta -.wi4e -.wor2 -.wort5en6 -.wor8tend -.wor4tu -.xe3 -.ya4l -.za2s -.zi2e -.zin4st -.zwe2 -2aa -a1ab -aa2be -aa1c -aa2gr -4a1a2n -4a2ar -aa2r1a -aar3f4 -aart4 -aas5t -aat4s3 -a3au -a1ä -a1b -2aba -ab1auf -ab1ä -ab2äu -1abd -ab1eb -abe1e -abei1 -ab1eil -2abel -abe2la -a3ber -ab1erk -ab1err -ab1erz -ab3esse -2abet -2abew -1abf -3abfi -1abg -1abh -2abi -ab1ins -ab1ir -ab1it -1abk -ab1l -1a2bla -ab5lag -1a2blä -2able -ab4le. -ab3li -ab4lo -3a2blö -a2blu -1abn -a2bo. -ab2of -a2bon -2abor -ab3r -a3bra -a4brä -2abrü -1abs -2abs. -abs2a -2absar -ab3s2i -ab3sp -abst4 -2abst. -ab3ste -ab3sz -1abtei -2abu -ab1ur -2abü -1abw -2aby -aby4t -1abz -2ac. -2aca -2ac1c -a1cem -2ach. -ach1a -a1chal -ach3au -2achb -a1che -a2ch1e2c -ach1ei -a4cherf -a4cherk -a4cherö -a4ch3erw -4achf -a1chi -ach3l -ach3m -ach3n -a1cho -a3cho. -ach1o2b -ach1or -ach3ö -ach3r -ach3su -a4cht -acht5erg -ach2t1o -ach8traum -ach8träume. -ach8träumen. -ach6trit -a1chu -ach1u2f -ach3ü -2achv -4ach1w -a1ci -ac1in -a1ckar -ack2en -a2ckin -ack2se -ack3sl -ack3sta4 -a1cl -acon4n -2acu -a1ç -a1d -2ada. -a3d2ab -ad2ag -ad3ama -a2d1an -3a4dap -a3d2ar3 -4adav -1a2dä -ad1c -1add -2ade. -ade2al -adefi4 -a2dein -2aden -ade1r2a -a2deri -4ade1s -ade3s2p -ades4s -ade5str -2adf -2adh -4a3di -adi3en -5adj -2ado -ad2ob -2adp -2adq -2ad3rec -ad4res -ad3ru -2ads2 -ad3st -ad3sz -2ad2t1 -ad4te -ad4tr -2adu -2a1e -ae2b -ae2c -ae2d -a2ek -a2ela -a2ele -ae2o3 -ae2p -3a2er2o1 -aes5t -a2et -a2ew -ae2x -af1a -a2fak -a2fan -a3far -af4at -a2fau -2afe -a2f1ec -a2fent -af1erl -a2fex -af2fl -af4flu -2afi -2af3l -afo1s -a2fö -af3ra -af3rä -af3re -af3rö -af3s2a -af2sp -af2t1a -af2tei -af4t3erl -af2t3r -af4t5re -af2tur -a2f3ur -a1g -2aga -ag1ab -ag1a2d -ag1ar -ag1au -ag2di -ag2dr -ag2du -age1i -age4na -age4neb -a2gent -a4gentu -age4ral -2ages -age2sa -age4sel -age4si -age2s3p -ag3esse -age4s3ti -ag3gl -1aggr -3a2git -2a2gl -ag4la -a4glö -ag2n -ag4ne. -ag4nu -a2g3re -a2g3ri -ag4ro -agsa2 -ag4sam -ag4set -ags3p -ag4spo -ag3sta -ag3ste -ags4toc -2agt -ag2th -a2gund -2ah. -2a1ha -ah4at -2a1he -a2h1erh -ahe1s -a1h2i -ahin3 -ahl3a2 -ah4l1ei -ah4l3erh -ah2lö -ahl3sz -ah4n1a -ahner4e -ahnt2 -1ahor -ah1os -a2h3ö -ahr1a -ah3r2e -ahre4s3 -ah3ri -ahrta4 -ahr6tri -2ahs -aht3s -a1hu -ah1w -a1hy -2ai -aian3 -aid2s -ai1e2 -aien3 -aif2 -ai3g4 -a3ik. -ai3ke -ai3ku -a2il -ai2lo -a1ind -ain4e -a1ing -ain3sp -ai2sa -a3isch. -ai3s2e -aiso2 -a3iv. -aive3 -a3ivl -a3ivs -a1j -aje2 -2ak. -1a2k4ad -2akal -2a3kam -2akar -ak4at -1a2kaz -2akb -2akc -2akd -4a1ke -a2kef -aken2n -a2keu -2a1ki -2ak3l -ak4li -4ako -2a1kr -4akra -ak3rau -3akro -2aks -ak3sh -2akta -ak5tan -2aktb -2aktik -ak2t3r -ak5t4ri -2aktst -2a1ku -a2kun -4a3kü -1akz -a1la -2ala. -al1ab -ala5ch2 -al1af -ala2g -al1age -a3lal -al1am -al3ame -alami5 -al3amp -al1ana -a2l1ang -al1ans -al1anz -a2lar -a3lar. -a3lare -al2arm -al3arr -ala4s -al1asi -al1ass -2alat -al1au -al3aug -a1lä -al1äm -alb3ein -alb3eis -al4berh -al4b3erw -al2b1l -alb3li -al2boh -al2br -alb3ru -alb3s -al2dä -al2dr -alds2t -al3du -2ale -3a2l1e2b -3a2l1ef -a4l1eh -a2l1ei -a4l3ein -a2l1el -alen1 -al3ends -a2leng -ale2p -al1epo -a2l1erf -a2l1erh -al1erl -3alerm -a2l1ert -3a2lerz -a2l1esk -ale4t -al1eta -al1eth -a2l1eu -a4leur -3a2lex -alf4r -3algi -al2gli -2ali -ali4ene -ali4nal -al1ins -a2linv -alk1ar -1alkoh -alk3s2 -alks4t -al2lab -al2l3a4r -al2lau -al3lend -all5erfa -al3les -alli5er. -alli7ers. -al2lob -3almb -2alo -a2l1o2b -alo2ga -al1ope -al1orc -a2l1ö -al2ös -3alpe. -1alph -al3skl -al4spal -al5s6terb -al3sun -al2tak -al3tam -alt3eig -al4t3erf -al2tre -al2tri -alt3ric -al2tro -alt2se -alt4stü -a1lu -al2uf -a2lum -al1umb -al1ur -4aly -alzer4z -al2zw -2am. -2am2a -amab4 -amad2 -ama3g -2amä -2ambiq -2am4e -4ame. -a2meb -ame2n1 -amer2a -a2meri -ame3ru -a4mesh -a3met -a2mew -2amf -a3mi. -a3mie -2a3mir -a3mis -ami3ta -ami3ti -2amk -2aml -2ammal -am2mei -am2min -2amml -ammu2 -a2mö -amp2fa2 -am3pr -2am2s -am3sa -am4schl -am3str -1amt. -am2t1a -am2t1ä -am4tel -2amtem -am4t3ern -am4tö -am2t3r -am4tre -am2tu -2amu -2ana. -2anab -ana3c -anadi3 -a3nak -an1alg -ana4lin -2anam -2anan -2ana1s4 -an1äs -1anb -2anbu -an3ch -2and. -an3dac -and4art -andel4s -ande2s -an2dex -an2d3rü -and4sas -and6spas -and3ste -and2su -2andu -and1ur -2ane -an3e2c -a3nee -an2ei. -an3eif -an1e4k -3a4n1erb -an1eth -1anf -2anfi -anft5s -an3f2u -4ang. -3angeb -an2g1ei -an4g3erf -an4g3erl -an4g3erz -2angf -2angh -2angie -ang1l -an2gla -2ango -ang1r -an2g3ra -4angs. -ang4s3po -1anh -2a3ni -an2id -ani5ers. -3a4nim -a4nins -2anj -2ank. -an2k1an -an2kei -an3kl -an4klö -an2k3no -ank1r -an2k3ra -an2k3rä -ankt4 -an2ky -1anl -2anmu -2ann -3an3na -ann2ab -3annä -an3n2e -an1od -a3nol -a2n1or -a3nos -a1nö -2anpr -1anr -1ansä -1ansc -ans2en -an2seu -2ansk -an3skr -ans1pa -1anspr -an3s2z -2ant. -an2t3a4r -1antá -1antei -3antenn -an3t4he -1anthr -2anto -1antr -ant3rin -an2tro -1antw -2a1nu -anu3s -a1nü -1anw -2anwet -2anzb -1anzei -2anzg -an2z1i4n -2anzs -1anzü -2anzw -an2zwi -2ao -ao1i -a1op -a1or -a1os3 -ao3t2 -a3ot. -a1ö -a1p -2ap. -2apa -2ape -a2pef -a3pel -a2pé -a2pf -ap2fa -a3pfl -a3phä -a2pht -2ap3l -ap2n -a2pot -3appl -ap3pu -2apr -2a3pu -2aq -2ar. -a1ra -a3ra. -ar2ab -ar3abt -ara3d2 -a2r3al -a3ra3li -a2r1ang -a2r1ans -a2r1anz -a2r3app -2a2rar -a2r1au -a1rä -1arb -2arb. -4arba -ar2bau -ar2bec -2arben -2arbi -ar2bl -2arbr -ar2bre -2arbs2 -2arbt -2arbu -ar2b3un -1ar1c -ar2dro -2are -a2rea -ar1eff -a4reg -a2reh -ar1ehr -a2rein -a4rek -a3ren -aren4se -are3r2a -ar2erf -a2r1erh -a2reri -a2rerl -are3u -ar2ew -2arf -arf1r -ar2f3ra -ar2gl -ar2gn -2arh -2ari -ar2ia -ari3e4n -ari3erd -ari3erg -ar1im -arin3it -ar1int -a3riu -ar2kal -ark3amt -ar2k1ar -ark3aue -ark3lag -ar2kor -ar4kri -ark1s4 -ark3sa -ark3sh -ark4tre -ar2les -arm2ä -ar4merk -ar3m2or -ar2nan -arn2e -2a1ro -ar1ob -a2r1o2d -a2r1op -a2ror -2arr -ar2r3ad -arre4n3 -ar2rh -arr3he -2arsa -ar4schl -arse3 -ar3s2h -2arsi -ar2st -ar3sta -ar3t2e -ar2the -ar3t2i -artin2 -2arto -art3r -ar4tram -ar6tri -2arts -2aru -ar1uh -ar1um -a2rü -2arv -arwa2 -2ary -ar2zä -2arze -1arzt -ar2z1w -as1ala -as3au -a2s1ä -a2sca -a3sche -a4schec -a3schi -asch3la -a2schm -a3schu -4as2e -a2seb -a2s3e2m -a3ses -4ash -a3s2hi -asin2g -2asis -aska3s -a3skop -a2s1o2f -as1or -a2sö -a2s1p -as3pan -as2ph -as2pi -as2po -a3spu -as3s2a -as3s2e -as4s3ei -as3s2i -as2s1p -as2st -ass3ti -as3str -as3stu -2as3ta -a1s4tas -as4tau -as3te -as2th -as3ti -as3to -as4tof -2astr -ast3rä -as6t3re -a2sü -aswa2s -3a2syl -a1ß -aße2 -aßen3 -2a1t -ata1 -at1ab -at2af -at4ag -a2t1akt -ata3l -a3tam -at1apf -at1au -a2taus -a2t1ä -at2c -at2e -4ate. -a2teb -at3eig -a2teli -4aten -a2tep -ater3s2 -ate2ru -4ates -at2h -at3ha -4athe1 -3athl -4a3ti -atil4s -ati2st -3atm -4atmus -ato4man -4ator -a2t1ort -at1ö -4atr -atra4t -at3rä -at3re -at3rom -at2sa -at4schn -at2se -at4set -at2si -at2so -at2s1p -at3ta -at4tak -att3ang -at4tau -at2tei -at3t4hä -at2t3rä -att3s -a3tub -atu2n -a3tü -atz1er -at4zerk -at4zerw -at2z1in -at2zo -atz3t2 -at2z1w -a2u -2au. -2au1a2 -2aub -au2bli -au2blo -4auc -auch3ta -au2dr -2aue -aue2b -au5erein -aue2s -au2fa -auf1an -2aufe. -2aufeh -auf1er -au4ferk -auff4 -3aufn -2aufs. -2aug -4augeh -4au1i -au2is -2auj -aule2s -au3lü -4aum -au2mal -au2m1o -aum3p2 -aum3s6 -4aun -au3n4a -aun2e -au2nio -au1nu -a4unz -au1o -2aup2 -aup4ter -2au3r2 -au2s1ah -ausan8ne. -au2sau -2ausc -au4schm -au4scho -1ausd -aus3erp -au4s3erw -3ausf -1ausg -1ausl -au2so -au2spr -1ausr -aus3s2 -3aussag -aus4se. -auster6m -aus5tri -1ausü -1ausz -2aut. -au2t1äu -2aute -au4ten4g -au4t3erh -1auto -2auts4 -2auu -2auw -2aux -2auz -auz2w -2a1ü -2a1v -a3v4a -ava3t4 -4avi -a2vr -2a1w -awi3e -a1x -ax4am -ax2e -2a1ya -a1yeu -ays4 -aysi1 -ay3t -2a1z -az2a -az2o -az2u -ä1a -ä1b -ä2b3l -äb2s -ä1che -äche1e -ä1chi -äch3l -ä2chr -äch2sp -äch4st -ä1chu -ä1ck -äck2e -ä1d -ä2da -ä2d1ia -ä2dr -äd2s -2ä1e -äf2fl -äf3l -äf3r -äf2s -äft4s3 -ä1g -äge1i -äge3s -ä2g3l -äg2n -ä2g3r -äg4ra -äg3str -1ä2gy -äh1a -2ä3he -ä3hi -ähl1a -ähl2e -äh4l3e4be -2ähm -äh3ne -äh3ri -2ähs -2äh3t4 -ä1hu -äh1w -ä1im -ä1is. -ä3isch. -ä1isk -ä1j -ä1k -ä2k3l -ä2k3r -ä1la -älbe2 -äl2bl -2äle -äl2l1a -äl2p3 -äl4schl -ä1lu -ämi3en -2äml -äm2s -ämt2e -2än. -än5de -än2dr -2äne -äne2n1 -äne1s -än2f5 -2änge -än2gl -än2gr -äng3se -2ä3ni -änk2e -än2k3l -än2kr -änk2s -än3n4e2 -2äns -än2s1c -änse3h -ä1on -ä1pa -äp2pl -äp2pr -äp2s1c -äp4st -1äq -ä2r3a2 -är4af -är1ä -är1c -4äre -ä2r1ei -äre2n -ä2r1ene -är2gr -är1int -är2k3l -ärk2s -är4ment -ärm2s -är1o2 -ä1rö -ärse2 -är4si -är2st -ärt4e -är2th -ärt2s3 -ä2rü -1ärz -är2zw -ä5s4e -äse3g2 -äser4ei -äse4ren -äser2i -äse3t -äskop2 -äskopf3 -ä3s2kr -ä2s1p -äs6s1c -äss2e -äs4s3erk -äs2st -ä4s3t2 -äs4tr -ä3su -ä1ß -äß1erk -ä4t1a2 -ä3te -ät2e1i -ätein2 -äte2n -ät2h -ät1ob -ä2t3r -ät2sa -ät2sä -ät4schl -ät4schr -ät2s1i -äts3l -ät2s1p -ät2s3t -ät4tr -ät2zw -äu2br -äu1c -äude3 -äu3el -ä2uf -äuf2e -1äug -äug3l -4äul -2äum -äu2ma -äum4s5 -ä2un -äun2e -äu1nu -2äur -2ä3us. -äu4schm -äu3se -ä3usg -ä3usk -ä3usn -äu2sp -äus2s1c -1äuß -äu2tr -4ä1v -1äx -ä1z -â1t -á1n -ba2bl -2babs -bach7t4e -backs4 -b1a2dr -2b1af -3bah -bah2nu -bais2 -ba2ka -ba2k1er -ba2k1i -bak1l -bak1r -ba2kra -3bal -bal2a -bal4l3eh -bal6lerg -bal3th -2b1am -ban2a -3b2and -ban2dr -ba3n2e -b1ang -ban2k1a -ban4kl -ban2kr -2banl -2b1ans -ban3t -b1anz -bar3b -bar3de -ba2rei -bar2en -bar3n -bar3zw -3bas -ba3s2a -ba2sc -ba2st -bau3g -bau1s -bau3s2k -bau3sp -ba1yo -3b2ä1c -b2är -b2äs -4b1b -b3be -bben3 -bbens2 -bbe4p -bb3ler -bb2lö -bbru2c -bb2s -bbu1 -2b1c -2b3d4 -bde1s -3be. -3bea -be3an -be3ar -be3as -3beb -b2ebe -1be1c -be2del -bedi4 -be1eh -be2erk -be1erl -be1eta -3bef4 -be3g2 -2b1eier -bei1f4 -beik4 -beil2 -bei3la -2b1eime -b2ein -be1ind -be1in2h -bei3sc -beis2e -bei1st -beit2s -3bek -3bel -be3las -be3lec -be3lei -be2l1en -be2let -be3li -bel3la -bel3sz -bel3t4 -1bem -1ben. -ben3ar -ben3dor -be3nei -3ben3g -be3n2i -ben3n -ben2se -ben4spa -ben4spr -benst4 -ben2su -2bentb -b2enti -ben5t4r -b1ents -2bentw -ben3un -ben3z2 -be1o -be1ra -ber3am -be2ran -ber4ei. -be4r3eiw -be4rerk -bere4s -ber6gan. -ber4in. -ber3iss -ber3na -b1ernt -be2rob -be3rop -ber3st4a -be3rum -3be1s -bes2a -be2s1er -be3slo -bes2po -bess4e -b3esst. -bes3sz -be6stein -be4s3tol -be3s4ze -3bet -be2tap -be3tha -be1ur -3b2ew -2b1ex -1bez -2b5f4 -bfal2 -2b1g2 -bge3 -bges4 -2b5h2 -bhut2 -1bi -bi3ak -bib2 -bibe2 -bien3s -bie2s -bik2a -bi2ke. -bi2kes -3bil -bil2a -bi2lau -4b1illu -bi2lu -2b1inb -bin2e -2b1inf -bin3gl -2b1int -bi2o1 -bio3d -bi3on -biri1 -bi3se -b1iso -bi2sol -bi2sp -bis2s1c -bi2s5t -b2it. -b2it2a -b2ite -bi2tu -b2i3tus -biz2 -4b1j -bjek4to -2b1k4 -bl2 -2bl. -bla3b4 -b3lad -b2lanc -3blat -b2latt -2b3law -b2le -3ble2a -b3leb -2b3leg -2b3leid -b3lein -3blem -3blen -b3lese -ble3sz -b4let -b3leu -2blich -3blick -b2lie -2blig -bling4 -b3lis -b2lit -3blitz -b2lo -b4loc -b3los -2blun -3blut -3blü -2b1m -4b3n2 -bni2 -bnis1 -bo4a -bo5as -b1ob3 -bo2bl -bo2br -bo2c -bo3ch2 -bo3d2 -boe1 -bo2e3i -2b1of -bo3fe -bo1is -bo2l1an -3bon. -bond1 -bon2de -bo2ne -3bons -b1op -bo1r2a -bo4rä -bor2d1i -bor2d3r -bo2rei -bo4rig -bor2s -b1ort -bor2t3r -bo2sc -bo4s3p -bote3n4e -bo3th -bot2st -bo2xi -bö2b3 -2böf -2b1p2 -bpa2g -2b1q -b2r4 -2br. -b4ra. -2b3rad -b4rah -b4ra3k -bra1st4 -3brä -brä4u -2bre. -3brea -6b5rechte -2b3ref -2breg -b3reif -3brem -2b3rep -b4rer -2b3riem -bri2er -2brig -b4rio -b3roh -2b3rol -b4ron -b4ruc -bru4s -brust3 -bru2th -3brü -4b1s -b2s1ad -b3sand -bs3ar -bsat2 -b3sä -b4sär -bs2äu -b5sc -bs2ca -b6schan -b6schef -bs4cu -b3se. -bse2b -b3sel. -bse2n1 -b4s1erf -bs3e4r3in -b4s1ers -b3s2es -bsi4t -bs2ku -b4sl -b2s1of -bso2r -b2sö -bs2pl -b3s2pu -bss2 -bs2t -bst1a2b -bst3ac -bst1ak -bs3tät -bst3er -b2stip -b3sto -b4stod -b3stö -b2s3trä -bs3treu -bs4tri -b3stü -b4stüb -b2s1un -4b3t -btal3 -btast3r -b5te -b4th -btil4 -bt4r -b4ts2 -btü1 -bu2chi -bu2e3 -bu2f -bu3li -bul2la -2b3umk -bung4 -b2urg -bu3r4i -bu2sa -bu4s3cha -bu4schl -bu4schm -bu4schw -bus1er -bu2sin -bu2s1p -bu2s1u -bü1c -bügel3e -2b1v -2b1w -3by1 -by3p -bys2 -2b3z2 -bzeit1 -1ca -2c1ab -ca1ch -ca2e3 -ca3g4 -ca1h -cal3t -3cam -c4an -ca2pe -3car -car3n -carri1 -ca3s2a3 -cas3t -ca3t4h -ca1y2 -cä3 -cäs2 -2cc -c1ce -c1ch2 -c2d2 -c3do -2cec -ce2dr -2cef -ce1i -2cek -1cen -cen3g -1cer -cere3 -ce3sh -1cet -2ceta -ce1u -1cé -2c1f -c4h -4ch. -2chab -ch3a2bi -cha2ck -2chaf -2ch1ak -ch2anb -3chanc -ch1ang -ch3anst -4chanz -1chao -4char. -1chara -3charta -cha2sc -3chato -4chatu -ch1ärm -ch1äs -1châ -2chb -2chc -2chd -ch3e4ben -1chef -3chef. -che4fer -3chefi -3chefs -4chei -ch1eim -4chelem -che4ler -4chents -4chentw -cher3a -che3rei -6chergeb -cher6zie -ch1ess -2cheta -2ch1e4x -1ché -2chf -2chg -2chh -1ch1ia -2chic -chi3na -4chind -3chines -2chinf -2chinh -ch1ins -ch1int -2ch1inv -1chiru -2chj -2chk -2chl2 -ch2le -ch3lein -ch2lu -4ch2m -2chn4 -chner8ei. -2chob -cho2f -ch1off -ch1oh -ch1orc -2chp -ch2r4 -4chre -chre3s -ch3rh -1chron -4chs -2cht -2chuf -2chuh -2chum -2ch1unf -2chunt -4chü -2chv -4chw -2chz -ci1c -ci2s -c1j -c4k -4ck. -ck1a -1cka. -2ckac -1ckag -2ckal -2ck3an -cka4r1 -2ckau -ck1ä -2ckb -2ckc -2ckd -1cke -4ckeff -2ckeh -ck1ehe -4ck1ei -4ckense -ck1ent -4ckentw -cke2ra -ck2ere -6ckergeb -ck1erh -4ckerhö -4ckerke -ck2ern -2ckero -2ck1err -4ckerze -2ck1ese -2ckex -2ckf -2ckg -2ckh -1cki -2ck1id -ck1im -ck1in -3ckis -2ckk -2ck3l -2ckm -2ck3n -ck1o2 -2ckp -2ck3r -4cks -ck4stro -2ckt -ckt2e -1cku -2ck1um3 -2ckunt -2ck1up -2ckv -2ckw -1cky -2ckz -c4l2 -clet4 -clo1 -1clu -c2m2 -3co -co2c -co3ch -co2d2 -co4der. -co3di -coff4 -coi2 -co1it -co2ke -co2le -col2o -com4te. -comtes4 -con2ne -co2pe -co1ra -cor3d -co3re -cos4 -co4te -cô4 -2cp -2c1q -1c4r2 -cre2 -cre4mes -cry2 -2cs -cs2a -c2si -c1s4tr -4c1t -cte3e -cti2 -cti4o -ctur6 -3cu -cu2p3 -cussi4 -1cy -2c1z -3da. -da1a -2d1ab -3d2abä -da2ben -3d2abl -da2bre -dab4rü -2d1ac -dach3a -da2cho -dach1s -4d3achse -d1af -d1ag -dagi2 -dah3l -da1ho -3d4ai -da1in -da1is -dal2a -2d1alar -dal3b2 -da3lö -d1alt -d1amma -2d1ammä -damo3 -d4amp -dampf8erf -2d1amt -d2an. -2d1ana -dan4ce. -2d1an3d2 -d1ang -2dange -dan4kl -dan5kla -dan2k1o -dan2kr -2d1ans -2dantw -2danw -d2anz. -4danzi -2d1ap -d2aph -4dapp -da2r3a -2darb2 -3d2arl -dar2ma -dar2m1i -da2ro -d3arr -d2ar3s -d1art -da2ru -d2arw -da1s -da3s2h -das4t -dat2a -dat4e2 -da3tei -date4n -4d3atl -4datm -dau3e -2d1au2f -2dauk -2d1aus3 -4daush -2d1äh -2d1ämt -2d1änd -2d1äng -2d1äp -2därz -dä2u -dä3us -2d1b4 -dbu2c -2dc -d1ch -dco4r -2d1d2 -ddar2 -d3dh -d5do -1de -de2ad -de3as -de3a2t -de3b4 -2d1e4ben -3de1c -de4ca. -de2cka -deco3 -de1e4 -2d1eff -deg2 -de3gl -dehe2 -de3ho -2d1ehr -d1ei -d2eic -3d2e1im -dein2d -dein2s -de2l1a4g -de4l3aug -del1än -del1ec -delei4g -de3lein -2delek -2delem -2delfm -delle2 -del4leb -del4lei -de2l1ob -de2lop -de3lor -de2lö -del4san -del5sc -del2s5e -del2so -del2s1p -del5ster -del3t4 -dem2ar -2d1emp -d2en. -dend2 -de4n3end -4denerg -den3g -d2enh -de2ni -den4k3li -4den4sem -den4sen -den6s5tau -den3th -2dentw -de1nu -de1on -depi2 -d4er. -dera2b -de1rad -de2rap -der2bl -2derdb -de2re2b -de4reck -der3edi -derer3 -de3r4erb -de3r4erf -de4r3ero -derer4t -4d3erhöh -3derie -derin4f -4derklä -der3m2 -4derneu -4d3ersat -der3tau -der6t5en6d -de3ru -de4ruh -de4rum -des1 -de2sa -de3sac -desa4g -de4sam -des2äc -de2seb -de4seh -de2sei -des3elt -de2sen1 -de4set -de2sin -de2sor -de2sp -des3s2 -dest5alt -de2sto -dest5rat -de4stre -des4tum -de2su -det2 -deten4t -2d1etw -de1un -de1url -de3us -de2xis -2dexp -2d1f4 -2d1g2 -dga2 -d2ge. -dge4t1e -d3gl -2d1h2 -dha1s4 -d2his -1di -di4ab -di2ad -di4am -3dic -di1ce -di2e -di3e2d -die4neb -di3eni -di3ens. -die2s3c -diet3 -die2th -dige4s -dik2a -dil2s5 -2d1imb -din2a -2d1ind -2d1inf -2d1inh -2d1in1it -4d3inner -2d1ins -2d1int -di2ob -dion3s -di1p -di4re. -di2ren -di2ris -2d1irl -di2sp -2d1isr -dist2 -di2s5te -di2ta -di4teng -di4t3erl -di4t3erm -di4t3ers -di2th -di4t3r -dit3s -di2tu -di5v -di3z2 -2d1j -2d1k4 -4d1l2 -d3la -d3le -dle2ra -dli2f -dl3m -dl3s -2d3m2 -4d5n2 -dni2 -dnis1 -d1ob -d2oba -2dobe -dob4l -d2obr -2d1o2f -dole4 -doll2 -do2mar -do5n4a -doni1e -do2o -2dope -2d1opf -d2opp -d2o3r4a -2dorc -2dord -dor2f1a -dor2fä -dor2fl -dor2fr -2d1org -do2rie -d2orp -2dort -dor2ta -d2os. -dos3s -dost1r -dot6h -do3un -d1ö -dö2l1 -3d2ör -dö2s1c -2d3p2 -2d1q -d2r4 -3d4ra. -2d3rad -drag4 -2drahm -d3rai -3d4ram -d3rand -2d3rast -2d3rauc -2dräd -d4räh -2d3rät -2d3räu -4dre. -d4rea. -d4reas -3d4reck -2dreg -3d4reh -2d3reic -d4reiv -4drem -4d3ren -2d3rep -4d3rer -4dres. -d4resc -2d3rh -d3ri -d4ri. -3d4ria -2d5ric -d4rid -d4rie -d5rieg -d4rif -d4rik -d4ril -d4rin. -3d4risc -3d4rit -4dritu -d3rob -d3roc -2d3rod -d4roi -2d3rot -d3rou -2d3rov -d3rö -drö2s1 -d5rub -3d4ruc -2d3ruh -drunge3 -2d5rut -drü1b -drü5cke -2d1s -d4s1amt -d2san -ds3assi -d2sau2 -ds1än -4dsb -d4schin -d2s1e2b -d2s1ef -d3sei -ds2eig -d4seins -d2s1eng -d2s1ent -d2s1erf -d2serh -d2s1erk -ds1err -d2s1erz -dse4t -d4s1eta -d3s2ha -d3sho -d2s1im -ds2inf -d3s2kan -d3skul -4dsl -d2s1op -dso2r -ds1ori -d2sö -d2s1par -ds1pas -d2spä -ds2po -d2spro -ds2pu -dss4 -dst4 -ds3tab -d4stag -d4s3täti -d2ste -d4stea -d3stei -d3stell -d4stem -d3s4tern -ds2ti -ds4til -ds4tip -ds2tu -ds1ums -d2sun -ds2zen -2d1t -dta2d -d5tea -d2th -d4thei -dt3ho -dto2 -d3tö -dt3r -dtran2 -dt5s2 -d3tü -1du -du1alv -du1ar -dub3l -du2bli -du2f -2d1ufe -2d1uh -du1i -2d1umb -2dumd -2d1u2m1e -2dumf -2dumg -2d3umk -2duml -d2ump -2dumr -d1ums -d2ums. -2d1umv -2d1un3d -dund2a -2d1unf -dung4 -dun3ke -dun2kl -2dunr -dun2s -2dunt -du1o -dur2 -2d1url -2dursa -du4schn -du4schr -du4schw -dus3t -2düb -3düf -3dün -2d1v2 -2d1w -dwa2 -dwest3 -dy2s -2d1z -2e1a -e3a2b -eab3l -ea2c -ea3der -eadli4 -ea2dr -ea2g4 -ea3ga -ea4ge -ea3gl -eak1 -eakt2 -ea2la -e3alei -e4aler. -eam3 -eam1o -ea2na -e2ano -e3ar. -ea2ra -e3a4rene -e3arr -e3arv -e2as -eas3s -eat4e2 -eater1 -e3ath -ea5tr -eat3s2 -e3at5t4 -e3au2f -e3aug -eau1st -e1ä2 -e1b -2eba -e3b2ak -2ebed -ebe2i -2ebel -eb2en -ebens3e -2ebet -2ebl -eb3ler -eb4leu -e3blie -eb3lo -eb2lö -2eb2o -ebot2 -ebö2s -2ebr -eb3rei -eb4ru -eb2s1 -eb6sche -ebse2 -ebs3pa -eb3sta -eb4stät -ebs3tem -ebs3t2h -eb3str -e3bu -ebu2t1 -2e3ca -e1ce -ech1ä -2e3che -ech1ei -e6ch5erzi -e1chi -ech3l -ech3m -ech3n -e2cho. -ech1o2b -e2ch3r -ech3ta -ech3t4ei -e1chu -ech1uh -ech1w -e1ci -eci6a -eck3se -2eckt -2e1cl -2eco -e3cr -ec1s4 -2ect -e1d -e3d2a -ed2dr -ed2e -ede2al -e3dei -ede3n2e -edens1 -eden4se -eden4sp -ede2r -eder3t2 -edi4al -e3d2o -ed2ö -eds2ä -ed2s1es -ed2s1o -ed2s1p -ed2s3tr -ed2su -edu2s -e3dy3 -4ee -ee3a2 -eeb2l -ee2ce -ee1ch -ee2cho -ee2ck -eede3 -eed3s2 -ee1e -e1eff -eef4l -eef3s -eeg2 -e1ei -ee1im -eein4se -eel2e -ee2lek -ee3len -e1emp -e1en -eena2 -ee4nag -e2enä -e2enc -ee3ni -e2eno -een3s -e1e2pi -ee1ra -e1erbt -e1erd -ee3r2e -ee4r3en4g -eere2s -ee4ret -e1erk -ee1rö -eer2ös -eert2 -e1ertr -ee3r2u -e1erz -ee3s2 -ees3k -ee3ta -ee4tat -ee2th -ee1u2 -eewa4r -e1e2x -e1f -2ef. -2efa -e2f1ad -ef1ana -ef1ar -e2fat -e2fäu -2efe -e3fe. -e2f1e2b -ef1em -e2fent -ef2er -2eff. -1effi -ef2fl -2efi -e2f1i2d -e2f1ins -efi2s -1efku -2efl -e3f4lu -2e3f2o -e3fra -ef3rea -ef3rol -ef3rom -ef4rü -efs2 -ef3so -ef3sp -ef2tan -2efu -e2fum -2efü -e1g -egas3 -egd4 -e3ge -ege4n3a4 -ege2ra -ege4str -ege1u -e2glo -e2gn -eg3ni -eg4sal -eg4se4r1 -eg4sto -eg2th -2egu -egung4 -egus3 -2e1ha -eh1ach -e3h2al -eh2aus -2e1hä -e1he -eh2ec -eh1eff -eh2el -ehen6t3 -1e2hep -e3her -ehe1ra -ehe3str -e1hi -eh1int -eh1lam -eh1lä -ehle2 -ehl3ein -eh4lent -eh5l2er -eh2lin -eh3lo -ehl2se -2ehm -eh3mu -e1ho -e3hol -ehr1a2 -ehr1ä -ehr1e2c -eh2rei -ehr3erl -ehr6erle -ehre3s -eh3ri -eh1ro2 -ehr1ob -ehr1of -ehs2 -eh3sh -eh1ste -2eht -e1hu -e2hunt -e1hü -eh3üb -eh1w -e1hy -2ei3a2 -4eib -ei2bar -ei2bl -eibu4t -ei4b3ute -ei2cho -e2id -ei2d1a -ei3dan -ei3de -ei4d3err -2eidn -ei3dra -ei1e -4eien3 -eienge4 -1eifr -ei3g2a -4eigeno -eig2er -2eigew -ei3gl -1ei2g3n -2eigru -2eigt -2eigu -eik2ar -ei3kau -eik4la -e4il -2eil. -ei2lar -ei2lau -2eilb -eil3d -ei4lein -eilen1 -eil3f4 -eil3ins -2eiln -1eilzu -ei2m1a4g -eim3all -ei2mor -e1imp -eim2pl -ei2n1a -ei4nas -ei4nä -ein3dr -2eindu -ei4neng -ei2neu -2einfo -ein4fo. -ein4fos -ein3g2 -ein4hab -e1init -ein3k -ein6karn -3einkom -ei2n1o2 -3einsat -ein6stal -ein4sz -e4inver -ei3o2 -ei1p -eip2f -2eir -ei3re -e1irr -e2is. -ei2sa4 -ei6schwu -ei4s3erw -eis2pe -eis4th -ei1sto -ei2sum -e2it -ei2tab -ei2tan -ei2tar -2eitä -ei3te -ei2th -ei2tro -eitt4 -eit3um -2eiu -2e1j -e1k -ek2a -1ekd -e3ke. -e3ken -e3kes -e3key -e3k2l -ek4n -ek2o -ek4r -ek1s4t -2ekt -ekt4ant -ekt3erf -ekt3erg -ek4t3erz -ekt2o -ek5tri -ek2u -e3k2w -e1la -ela4ben -el2abt -ela2c -el1af -ela2h -e2l1ak -e2l3a2m -el4ami -el4amp -el1ans -el1anz -2elao -e2l1ap -e2l1a2r -el3ari -ela4s -el1asi -el1asp -el2ast -2e1lä -3elbis -el2da -eld5erst -el4d3erw -eld3s2 -2ele. -elea2 -ele2c -2eleh -2elei -e6l5eier. -e2l1ein -e3leine -e4leing -1elek -e2l1el -1e2lem -e3lem. -el1emp -2e3len. -e4lense -e2l1ent -e3lep -el1erd -el1erf -e4ler4fa -e2l1erg -el1erk -el1erl -e4ler4la -e4l3ernä -e2l1err -2eles2 -el1ess -e4l1e4ta -e3leu -2elev -ele2x -1elf. -el3fe -elf4l -1elfm -1elft -elgi5er. -elgi5ers -2eli -e2l1id -e3lie -eli2ne -el1ita -el3kl -el3lan -el3le -el5le. -ell3ebe -el4l3ein -ell3eis -el3lin -ell3sp -elm2a -2eln -el5na -2elo -e2lof -e2lol -elon2 -el1ope -e2l1or -elo2ri -el2öf -elö2s -el2sum -elte2k -elt3eng -3eltern -elto2 -el2t3r -elt3s2k -elt3s2p -2e1lu -e2l1um -el1ur -el3use -e1lü -e2lya -2elz -elz2e -el2zwa -e1m -2ema -e2m1ad -ema2k -e2m3anf -e2m1ans -3emanz -em2d3a2 -e3m2en -emen4t3h -e6mentsp -e2m1erw -eme2s -1e2meti -e2m1im -em1int -emi3ti -2emm -emma3u -em2mei -e2mop -3empf -em3pfl -em2p3le -em2sa -em2spr -em2st -em3t2 -1emul -2emü -e2n1a -4ena. -2enac -e3nad -e4naf -4enah -e4nak -ena3l2i -4enam -en4ame -e4nand -en3ang -en3are -en2asc -4enat -en3att -e3naue -e2n1är -en1äu -en4ce. -en3d2ac -en2dal -en4d3ess -end4ort -end3rom -end3si -end3s2p -end3sz -end2um -2ene. -ene4ben -en1e2c -e2neff -e4nein -e2n1el -ene4le -2enem -2enen -e4n1ent -en4entr -4e3ner. -e2n1erd -e2nerf -1e2nerg -e4nerh -e4nerk -e2n1erl -e4n3ermo -4enern -e2n1err -e2n1ers -e2n1ert -e2n3eru -e2n1erw -e4nerz -2enes -e4n3ess -en3f -enf2a -enf2u -1engad -3engag -en3ge -en3g2i -en2gl -en3glo -1engp -eng3se -e3ni. -e3nic -e4nid -e3nie -eni3er. -eni5ers. -e2n1i4m -e2n1in -e3nio -2enis -eni3se -e3nit -2eniv -en3k2ü -e2n1o2b -enob4le -e2nof -en1oh -e3nol -eno2ma -en1on -e2n1op -e2n1o2r -enost3 -e3not -eno2w -2e1nö -en1ö2d -e4nr -en3sac -en2sau -en5sch4e -en2seb -ens2el -1ensem -ensen1 -en3ska -en3s2po -enst5alt -en4s3tät -2ensto -e4nt -ent4ag -1entd -en2teb -en4terb -1entfa -3entga -en2thi -3entla -1entn -en4t3rol -3entspr -2entü -1entw -4entwet -1entz -en1u -2enut -e1nü -enü1st -4enwü -e1ny -en4z3erf -en4z3erg -en4z3erk -enz3ert -e1ñ -2eo -e1o2b1 -e1of -eo2fe -e1oh -e4ol -e1on. -e1ond -e1onf -e1onl -e1onr -e1ons -e1ope -e1opf -eop4t -e1or -e3or. -e3orb -e3ors -e3orw -eo1s2 -e3os. -eo3ul -e1ov -e1ö2 -e1p -e3pa -epa2g -e3p2f4 -1episo -ep3le -1e2poc -ep2pa -ep4pl -ep2pr -ept2a -ep2tal -e3pu -epu2s -e1q -er1a -e3ra. -e3rad. -er3adm -eraf4a -era1fr -era2g -e1rai -er3aic -e2rak -e1ral -er3all -eran3d -e3rane -er3anf -e2ranh -er3anm -e1rap -er3apf -e2rar -e3rari -e1ras -e2r3a4si -era2ß -e2rath -e3rati -e2ratm -e1raub -er3aue -erau2f -er3aug -e1raw -e1raz -e1rä -er1äh -er1äm -erb2e -er3br -erb4sp -er1c -er3chl -er3da -1erdb -er3de -2erdec -erd3erw -4ere. -er1eb -e3rech -er3echs -er1e2ck -ere4dit -er1eff -e2r1e2h -4e3rei. -er1eig -e2rein -e4r3eis. -ere2l -er1ele -2e3rem -2eren -4e3ren. -e3rena -e4rense -e4r3entf -e4rentn -e3renz -eren8z7end -2erer -4erer. -e2r3erf -e2r1erh -e4rerl -4erern -e3rero -er1err -er1ers -e2rert -er1erw -2eres -er1ess -er3e4ti -er1eul -ere4vid -erf2e -erf4r -4erfür -3ergebn -4ergehä -erg3el4s3 -1ergol -erg3s -ergs4t -er3h -1erhab -2erhü -2eri -e2riat -e3rib -4e3ric -4e3rie -eri3e4n3 -e3ri3k4 -4e3rin. -er1inb -e2r1ini -er1ink -er1int -e3rio -er1ita -2erk. -1erklä -2erkre -erk3t -3erlebn -ermen4s -erm3ers -ern1os -e1ro -e3ro. -er3oa -er1o2b -er1of -er1oh -e3ron -e2r1o2p -e4ro2r -e3ros -e3row -er1ö -erö2d -2erök -er3p4 -er3rä -2errü -ers2a -er3se -ers2i -er3sk -er3smo -er3sn -er3sp -er3sz -ert2ak -er6terei -er4ters -er2tho -4erti -ert3ins -ert4ra -erts2e -2eru -eruf4s -er1u4m -er1und -erung4 -er1uns -er3uz -erü4b -3erweck -6erweis -es3ab -es2ach -es3ak -es3anz -e3s2as -e4s3ato -2esb -es2c -es3cap -e3sce -esch2 -e3scha -e2s3ein -es2el -ese4ler -es3eva -2esf -4esh -es2har -es2hu -es2id -e2sil -es3int -es2ir -es2kat -e4ske -es3kl -es3ku -e4sky -es3l -es4log -2esm -es2ort -e3sot -es2ö -2esp -e3s2pek -e3spi -e3s2por -e3s4pra -2esr -es2sau -es3sc -es3se -4essem -ess4e3re -ess3erg -2esso -es2sof -es2s1pa -es2spu -es3str -es3stu -estab4b -est1ak -e1star -e4starb -1e2stas -e1stat -e1s2tec -e3stel -es4t3eng -es4t3erh -es4t3ess -e1stil -e2stip -estmo6de -est3ori -e1str -es4tri -es3trop -e1stu -es4tü -e2s1um -es3ums -es3w -e3sy -es3z -e1ß -eße3r2e -e1t -etab4 -et1am -3etap -et4at -et1äh -e3te -e4tein -et2en -eten3d2 -ete2o -eter4hö -eter4tr -et2h -et3hal -et3hü -e3ti -eti2m -eti2ta -2e3to -eto2b -e4t1of -etons4 -e3tö -2etr -e4traum -e6t3rec -e2tres -et4rig -etsch3w -ets2p -et3su -ett1a -et2tab -et2t3au -et2tei -ette4n1 -et2th -et2t3r -et4tro -ett3sz -et4t1um -e3tü -etwa4r -2etz -et2zä -et4z3ent -etze4s -et2zw -eu1a2 -eu3erei -eue6reif -eu2esc -eu2ga -eu4gent -eu3g2er -eu4gla -eugs4 -euil4 -eu1in -1euk -eu2kä -e1um -e3um. -e3umb -e3uml -e3um2s -eum4sc -eums1p -eum3st -2eun -eun2e -eu4nei -e3un2g -eu2nio -eun3ka -eu1o2 -eu1p -eur2e -3eu3ro -eu3sp -eust4 -eu1sta -eu1sto -eu1str -2eut -eut2h -eut6schn -2eux -eu2zw -e3ü -2e1v -e2vela -e2vent -4ever -eve5r2i -e3vo -e1w -2ewa -e3wä -ewä2s -2ewe -e2we. -ewinde3 -e3wir -ewi2s -e3wit -ew2s -2ex. -ex3at -1e2xem -ex1er -e1xi -e2x1in -1exis -ex3l -3exp -2ext. -ex2tin -ex2tu -2exu -2e3xy -ey1 -ey4n -eys4 -e1z -e3z2a -e2z1enn -e3zi -ezi2s -ez2w -é1b -é1c -é1g -égi2 -é1h -é1l -élu2 -é1o -é1p -é1r -é1s -é1t2 -é1u2 -é1v -é1z2 -è1c -è1m -è1n -è1r -ê1p -ê4t -1fa -fab4 -f1abe -fa2ben -fab5s -3fac -fa4cheb -facher5f -fa2ch1i -fa2cho -f1ader -fa2dr -f4ah -faib4 -fa2ke -f2al -fa3l2a -fal2kl -fal6l5erk -fal6scha -fal6schm -fal3te -falt2s -2fanb -2fanf -fan2gr -2f1ank -2fanl -f1anp -2fanr -fan3s -2fanw -f1an3z -2f1ap -f2ar -far2br -2f3arc -3fari -farr3s -3f4art -2f3arz -fa3s4a -fa3sh -f3at -fa2to3 -2f1auf -f3aug -f1ausb -3f4av -fa2xa -1fä -fä1c -fäh2r1u -2f1ärm -fä2ßer -f1äu -2f1b2 -2f1c -2f3d4 -fdie2 -1fe -featu4 -fe2c -f2ech -2f1eck -fe2dr -fe2ei -fe1em -fef4l -feh4lei -f4eie -2f1eing -4f1einh -fe1ini -2f1einw -f1eis -fek2ta -fe2l1a -fel2dr -2fe2lek -fe2l1er -fe2les -fe2l1o -fel4soh -fel3t -f2em. -fem4m -2femp -fe2nä -fen3g -fe2no -fen3sa -f1ent -f2er. -fe1ra -fer2an -fe4rang -fe4r3anz -fe2rau -ferde3 -f2ere -fer2er -fer3erz -f1erfa -f2erl. -4ferneu -f4erpa -f2ers. -f2ert -f1erw -fe2st -fest1a -fest3ei -2f1e4ta -3fete -fet2t3a -feuer3e -feu4ru -3few -f1ex -2fexp -3fez -1fé -2f1f -ff3ar -ff1au -ff2e -ffe2e -f2f3ef -ff3ei -ffe1in -ffe2m -f2f3emi -ff4en -f2fex -fff4 -ff3l -ff4la -ff4lä -ff4lo -f3flu -f3flü -f3f4rä -ff3ro -ff3rö -ff2s -ff3sho -ffs3t -ffs4tr -4f3g2 -fge3s -2f1h2 -1fi -3fi. -fi3at -fid2 -fi4ds -fid3sc -fien3 -fi1er2f -fi2kin -fi3kl -fik1o2 -fi2kob -fi2kr -fi2l1an -fil4auf -fil3d -fi2les -filg4 -fi3li -fi4lin -fil2ip -f2ina -fi3ni -fin2s -fin3sp -2f1int -fi2o -fi3ol -fi2r -fi3ra -3fis -fis2a -fisch3o -fis2p -fi2s5t -fit1o2 -fi2tor -fi3tu -3fiz -2f1j -4f1k4 -f2l2 -2fl. -f3lad -f3lap -1flä -3f4läc -2f5läd -f3län -2f3läu -2f3leb -f4lee -2f3lein -f3ler -f4lé -f3li. -3f6lim -fli4ne -2f5lon -1f4lop -1f4lot -flo2w -f3lö -f4luc -1f4lug -flu4ger -f4lü -2f3m2 -2f3n2 -fni2s -1fo -fob2l -2f1of -foli3 -fo2na -fo2nu -2f1op -fo1ra -4f3org -fo3rin -3form -for4m3a4g -forni7er. -for4st -for4tei -for2th -for2t3r -for3tu -2f1o2x -1fö -2föf -2f1ök -2f1öl -för2s -4f1p2 -2f1q -f2r2 -f4rac -frach6tr -f5rad -fra4m -f3rand -f5rap -1f4rän -2fre. -f3rec -f3red -2freg -freik2 -frein4 -f3rep -f4reu -2f3ric -fri3d -fri2e -2frig -1fris -f4risc -f3roc -1f4ron -fro2na -fro2s -f3rot -f3ru -f3rü -4f1s -fs1all -fs4amm -f2san -fs3ar -f2s1as -f2sauf -f2saus -f2saut -f3sc -f4sce -f4schan -f4schef -fs4co -fs1e2b -f4s1ehr -f2s1em -f2s1ent -f2s1er -fse4t -f4s1eta -f3si -f2si2d -f3s2kie -f2s1o2 -f3span -f2s1pas -fs1pen -f2sph -f3s2pl -f3s2por -fs1pr -f2spre -fs2pri -f2spro -fs2pru -fs3s4 -fs2t -f2stas -f4s3täti -f4stech -f3stei -f3s4tel -f3stern -fs3th -f2stip -f3st4r -f4s3tres -f4s3tüte -f2s1un -f2sü -f3sy -4f1t -f4ta. -f2tab -ft1a2be -ft1af -f2t1al -ft1an -ft1ar -f3tat -ft1e2h -ft1eig -ft1eis -f4t1ent -f4t1e4ti -f2th -f4thei -ft3ho -ft1op -f3tö -f2t3ro -f2t3rö -f3t4ru -ft2s1 -ftsa4 -ft4sam -ft3s2c -ft4sche -ftse4 -ft4seh -fts3el -ft3st -ft4s3tan -ft4s3tä -fts2ti -ft4stri -f2tum -ft1url -f3tü -ftwa4 -ft3z2 -1fu -3fug -3f2uh -f1um -2f1unf -fung4 -2f1u2ni -fun2kl -fun2ko -fun2k3r -2f1unm -2funt -f2ur -fu4re. -fus2sa -fus2s1p -fus2st -fu2ß1er -3fut -1fü -2füb -fü2r -2f1v -2f1w -1fy -2f1z -fz2a -fzeiten6 -fzei8tend -fz2ö -fzu3 -fzu4ga -3ga. -2gabf -ga2b5l -gab4r -2gabz -ga1c -2gadl -2ga2dr -ga1fl -ga3ge -5gai -ga1k -ga2ka -gal2a -g4amo -2g1amt -2ganb -gan3d -gan2g1a -4gangeb -gan2gr -2ganh -2g3anku -2ganl -g3anla -3g2ano -2ganw -ga1ny -2garb -2garc -3gard -2g1arm -ga3r2o -g1arti -ga3ru -2g1arz -ga2sa -gas3ei -ga2si -ga2sor -ga3sp -ga4spe -ga4spr -gas3s -gas4ta -gas5tan -ga4ste -gas4t3el -gat2a -2gatm -gat4r -gau1c -2g1auf -g2auk -g1aus -2g1aut -2g1äp -2gärz -gäs5 -gä4u -2g1b2 -gber2 -gbi2 -gby4t -2g1c -2gd -g1da -g2d1au -g2d1er -gd1in -g1do -g1dö -g1d3r -gd3s2 -gdt4 -gd1u -1ge -ge3a2 -geb2a -gebe4am -geb4r -ge1c -ged4 -ge1e2 -ge3ec -ge2es -gef4 -ge3g2l -ge1im -ge2in. -gein2s -ge2int -gein2v -ge1ir -ge2is -2g1eise2 -gei3sh -g2el -ge4lanz -gelb1r -gel4b3ra -gel6ders -ge3le -ge5leh -ge4l3ers -ge4less -gell2a -ge3lor -gels2t -gel3ste -gel3sz -gel3t2a -ge3lum -ge3lü -gelz2 -ge3mi -gem2u -3gen -ge3na -ge4nam -ge4nar -gen4aug -gen2d1r -gen1eb -ge3nec -gen3eid -gen3ern -gen3g -gen3n -gen4sam -gen3sz -2g1entf -gen3th -4gentw -geo2r -ge1ou -ge3p4 -ge1ra -ge2rab -4g3ereig -ge4reng -ge4ren4s -ge4r3ent -ger2er -gerin4f -ger4inn -gerin4t -germ4 -ger3no -ge1r2ö -ger4sto -ge3r2u -g2e1s2 -ges3auf -ge3sc -ges3elt -ge2s3er -ge3si -ges4pi -ges3s2t -gest2 -ge3ste -ge4s3ter -ges3th -ge3t2a -2getap -ge5tr -ge3t4u -ge1ul -ge1ur -2g1ex -2g1f4 -4g1g -gga4t -g3ge -gge2ne -g2g3l -gg4lo -g2g3n -gg4r -2g1h -4gh. -gh2e -3g2het -3g2hie -gh1l -3gh2r -g2hu -gh1w -gi3alo -gie3g -gi2e1i -gi2el -gien2e1 -gie1st -gi2gu -gi2me. -gi4mes -gi2met -2g1ind -gi3ne -gin2ga -2g1ins -2g3isel -gi3t2a -gi3tu -gi4us -2g1j -4g3k2 -4gl. -g1lab -g1lac -3glad -g2lade -2g1lag -3glanz -3g2laub -2g1lauf -3glät -2gläuf -g2l4e -2gle. -3glea -2g3leb -g3lec -g3leg -2gleh -4g3lein -glei4t5r -g3len -4g5ler -2gles -g3lese -g4lia -2glib -3g2lid -3g2lie -2glif -g2lik -4glin -g2lio -2glis -4g3lisc -3g2lit -g2liz -3g2loa -3g2lob -g3loch -glo3g -3g4lok -g2lom -3g2lop -3g2lot -2gls -2g1lu -glu2t -3glü -g2ly -2g1m2 -g1n -2gn. -g2n2a -g4na. -2gnac -g4nat -3g2nä -gn2e -g3neh -gne2tr -2gneu -2gng -g2nie -g2nif -g4nin -2gni2s1 -3g2no -gno1r -4g3not -2gnp -2gns -2gnt -2gnu -3g2num. -g2nü -g2ny -2gnz -go4a -goa3li -2g1of -2gog -2g1oh -go1i -gol2a -2gonis -2g1ope -2g1opf -g2o1ra -2gord -2gorg -go2s1 -go3st -go3th -got6t5erg -go1y -2g1p2 -2g1q -g2r4 -gra2bi -gra2bl -2gradl -2g3rah -2g3rak -grammen6 -gram8m7end -2g3räu -2g5re. -g4reb -2g3rec -2g3rede -g4re2e -2g3reic -2g3rein -g3reit -g4rem -2g3renn -gren6z5ei -g4rer -g3ret -g3rev -2g3ric -gri2e -g3riese -3grif -2grig -2g3ring -2groc -2groh -gron4 -g4ros -gros6sel -gro4u -2g3röh -g4ruf -2g3rui -2g3rum -3g4runs -3g4rup -2grut -2g3rüc -3g4rün -4g2s1 -gsa4g -g3s2ah -g4s3a2k -g3sal -g4salt -gs3ama -gs3an -gs3ar -gs3aug -g3s2c -g4sca -g4s3ce -gsch4 -g4schef -gs4chi -g4sco -g4s3cr -gse2 -gs2eh -g3s2eil -g3sel. -gs3eli -g3seln -gsen1 -gs3er -gs5erk -gse4t -g4seta -gsi2d -g3sil -g4sl -gso2 -gsp4 -g3s2pek -g3spi -gs4pie -g4spin -gs2pit -gs3pl -g3s2por -gsrat4 -gsrü2 -gs5s4 -gs3ta -g3stan -g3star -g3s4tati -g4s3tä -g5stäm -g3stel -gst3ent -gst3err -g1steu -gst2he -g3stir -g3sto -gs3toc -g4stol -gs3top -g4s3tor -g3stö -gs3tr -gst4ra -gs4trat -gst4ri -gs4t3ros -g3stu -g4stur -gs3tü -gs4tüc -g4sw -g3sy -2g1t -g3te -gti2m -gt4r -gt2s -g3tü -1gu -gu3am -gu1an. -gu1ant -gu1c -gu2e -2gued -guet4 -2g1u2f -2g1uh -gu1ins -gu1is -3gumm -2g1unf -g2ung. -gunge2 -4gungew -2g1ungl -g2un4s -2gunt2 -2g1url -gurt3s -gu2s3a -guschi5 -gus4ser -gus2sp -gus2st -gu4st -gu2t -gut1a -gu4t3erh -gut3h -2güb -gür1 -güs3 -2g1v -2g1w -2g3z2 -3haa -hab2a -hab2e -h2abs -ha2cho -ha2del -ha4din -h1adle -haf3f4l -haft4s3p -h1ah -ha1kl -2h2al. -halan4c -ha2lau -hal2ba -hal4bei -halb3r -2hale -hal2la -hal6lerf -h1alp -hal2st -hal4t3r -h1amt -h2an. -h2and -hand3s -h4ann -2hanr -2hant -h1ap -ha2pl -ha2pr -h4a3ra -2harb -h2ard -h1arm. -har4me. -har4mes -har2th -h1arti -h2as -2ha3sa -hasi1 -hat5t2 -hau3f4li -2h1aufm -h1aukt -hau2sa -hau2sc -hau4spa -hau5stei -hau6terk -2hauto -hau2tr -h1äff -hä6s5chen -häu2s1c -hä3usp -2h3b2 -hba2r3a -2h1c -2h3d4 -hdan2 -2hea -he2ad -he3be -he4b1ei -he2bl -he3br -he5ch2e -he1cho -h1echt -he3cke -hed2g -he3di -he2e3l -hee4s -he2fan -he2fä -he2f1ei -hef3erm -2heff -he4f3ing -he2f3l -he2fr -he3fri -he2fu -he3gu -h1eie -h1eif -h1eig -he2im -heim3p -hei4mu -heine2 -hei4neh -h1eink -4heio -he1ism -he1ist -heit4s3 -h1eiw -he2l3au -hel1ec -h3e2lek -he3len -hel3ers -he3li -hel4l3au -hel4mei -he3lo -he4lof -he2lö -3hemd -he3mi -3hemm -4h1emp -h2en. -he4n3a4 -he2nä -hend2s -he2n1e2b -hen3end -hen3erg -he2net -heng2 -2heni -he2no -henst2 -hen5tr -h1ents -2h3entw -hen3z -4he2o -he3on -he3op -he3ph -her3a2b -he2ral -2herap -he3ras -herb4s -he4reck -4hereig -he4r3eis -he2rel -he4rerw -h1er2fo -h1erfü -herg2 -herin4f -he6rin6nu -herin4s -herin8ter -h1erke -h3erlau -2herm -he3ro -he4r3o4b -h1erö -hert2 -her3th -her2zw -he1sta -he2s5tr -he2tap -heter2 -he3th -het2i -he3t4s -h2e2u -heu3g -he3x -he1x4a -he1y2 -1hè -2h3f4 -hfell1 -hfel6ler -hfi2s -2h3g2 -hget4 -2h1h2 -2hi. -2hia -hi2ac -hi2ang -hi1ce -hich6ter -2hi3d -h2ide -h1i4di -hi2e -hi3ens -hier1i -hie4rin -hiers2 -hif3f4r -hi2kr -hi2l3a4 -hil2fr -hi2n -h1indu -hi3nel -hin2en -h1inf -h1inh -hi3n2i -hin3n2 -hi3no -hin3s2 -hin4t1a -2hio -hi4on -hi3or -2hip1 -hi2ph -hi2pi -h2i2r -hi3ra -2hi3re -hi3ri -hirn1 -hir4ner -hi3ro -hir2s -his2a -hi2se -his2p -hi2st -hi1th -hi3ti -2hiu -h1j -2h1k4 -2hl -h4lac -hla2n -hl1anz -h1las -h1lat -h1laut -h3läd -h1läs -h1läu -hlb4 -hld4 -h3leb -hle3e -h5len. -hlen3g -hl2enn -h3ler -hle2ra -hl1erg -h6l3ernä -hle3run -hl1erw -h4lerz -h3les -h4lesi -h3lex -hlg4 -h2lie -h2lif -hl1ind -h2lip -h2lis -h3list -h2lit -hll2 -hlm2 -h2lo -h3loc -hl1of -hl1op -h4lor -hlo2re -h3losi -hl2ö -h3löc -h2lös -hl2san -hl2ser -hl3sku -hl3slo -hl3t2 -h3luf -h3luk -h1lüf -2h1m -h2mab -h3mag -h3man -h3mar -h4mäc -h4mäh -h4mäl -h4mäu -h3me. -hme1e -hme1in -h3men -hmen2s -hme2ra -h2mo -h4mon -h3mö -hm3p4 -hm2s -hm3sa -hms1p -h2mu -2hn -h2na -hn1ad -h3nam -hn1an -h2nä -hn3d4 -hn2e -hn3eig -hn3ein -h2nel -hne4n1 -hne4pf -hner3ei -h3nerl -h3nerz -hn3ex -h2nic -h2nid -h2nie -hn1im -hn1in -h2nip -hn3k4 -h2nor -hn3s2k -hnts2 -h1nu -h2nuc -h2nul -hn1unf -h3nunge -ho2bl -ho2ch3 -ho2cka -ho6ckerl -hock3t -2hod -hoe4 -ho2ef -ho4fa -ho2f3r -2hoi -hol1au -4holdy -3hole -ho2l1ei -hol3g4 -4holo -ho4lor -3hol3s -h1o2ly -3holz -hol6zene -hom2e -ho2mec -ho2med -h2on -hono3 -2hoo -2hop -ho1ra -hor3d -h1org -ho4sei -ho3sl -ho2sp -ho4st -2hot. -ho3th -hotli4 -2hot3s2 -3hov -2ho2w1 -h1o2x -ho1y2 -1h2ö -hö2c -hö3ck -h4ör -hö2s1 -h3öst -2h3p2 -h1q -2hr -hr1ac -hr3ad -h1rai -h1rane -h3räu -hr1c -hr3d -h2rec -h3rech -h3red -h3ref -h4rei. -hrei4ba -h3reic -h4r3eig -h3rel -h3r2en -h3rep -hr2erg -hr2erk -h6rerleb -hr2erm -hr2erz -h3re2s1 -hre2t -h2r1eta -h3rev -hrf2 -hrg2 -h2ri -h3ric -h4rick -hri4e -h3riesl -h3rin -h4rine -h4rinh -h4rist -h2rob -h3roh -h3rol -h4rome -h4romi -h4ron -h2ror -h3rou -hrr4 -hr2s1ac -hr2s3an -hr2sau -hr3schl -hr2s1en -hr2ser -hr4set -hr4s1in -hrs3k -hr4s1of -hr2su -hr4sw -hr2tab -hr2tan -hr2th -hr2tor -hrt3ri -hr2tro -hrt2sa -hrt2se -h3ruh -hr1ums -h3rü -h4rüb -h2ry -hrz2 -4hs -h2s1ach -h2san -h2sau -h4schan -h2s1ec -hse4ler -h2s1erl -h3s2ex -h2s1ing -h2s1of -h2s1par -h2sph -hs2por -h2sprä -h2spro -hss2 -h1sta -hst3alt -hst2an -h2s3tau -h1stec -h3stein -h5stell -h3s4terb -hst2he -h1s2ti -h1sto -h2stor -h1s4tr -hst3ran -hst3ri -h1stun -h2s1u -hs2ung -4h1t -h2t1a -h3t4akt. -h3takts -h3t2al -h4t3alt -h4t3a2m -hta4n -ht3ane -h3tank -ht2as -h4t3ass -h4tasy -ht3a2t -h2tär -ht1e2c -h2t1ef -ht1eh -hte2he -h2teif -h4teilz -h2t1eim -h2t1eis -h4t3elit -h2temp -h4tentf -h4t3ents -ht3erfo -ht3erfü -h2t1erh -ht5erken -h4terkl -h6terneu -h4t3erre -ht3ersc -h6t5erspa -ht3erst -h6tersta -ht6erste -h2t1erz -hte2s -h4t1ese -h4t1ess -hte3sta -h2t1eu -h2t1ex -h2th -h4thei -hthe3u -h4tho -h2t1in -hto2 -h2toly -h2torg -h3töp -h4t3rak -ht3rand -h2t3rat -ht6raume -h4tref -ht4ri -h4t5rin -h2t3rol -h2t3ros -ht3rö -h4t1rös -h2t3ru -h2t3rü -h4ts -ht2so -ht2sp -ht3spri -ht4stab -hts2ti -hts4tie -ht4s3tur -ht4s3tür -htt4 -htti2 -h2t1urs -h3tü -ht3z2 -hu2b1a -hu2b3ei -hu2b1en -hu2b3l -hu4b3r -hu2bu -hu1c -hu2h1a -hu2h1i -huko3 -huk3t4 -hu2l3a -hu2lä -hu2l3ei -hu4l3eng -hu4lent -hu2ler -hu2let -hu2l1in -hu2lo -hu3m2a -h1ums -hu2n -h1una -hung4s -hu3ni1 -h1up. -h1ups -2hur -hurg2 -hu3sa -hu2so -hus4sa -hus2sp -hu2tab -hu3t2h -hu2ti -hut2t -hut4zen -hut4z3er -hutz1i -h2ü -h4übs -h3übu -hühne4 -hüs3 -2h1v -hvi2 -hvil4 -2hw -h2wall -hwe1c -h1weib -3hyg -3hyp -hy2pe. -2hy2t -h1z -hz2o -hzug4 -i1a -2ia. -i4aa -i2ab -iab4l -2iac -i2af -iaf4l -i4a3g2 -i2ah -i2aj -i2ak -i3ak. -i3akt -2ial -i5al. -ia2l1a4 -ia2lä -ial3b -ial3d -i3alei -i3alent -i3alerf -i3alerh -ia4l3erm -i3a2let -i3a4lia -ialk2 -i3all -ial3la -ia2lor -ial3t4 -ia2lu -ial3z2 -i2am -i4amo -2ian -ia2nal -i3and2 -ian2e -i3ann -i2ano -i3ant -i3anz -i2ap -ia3p2f -ia1q -i3ar. -ia2ra -2ias -i2asc -ia3sh -i2asi -i2a3sp -ias3s -iast4 -i3at. -i3a4ta -i4ate -i3at4h -1iatr -i3ats -i3au -ia3un -2iav -2iä -i1äm -iär2 -i1är. -i1ärs -i1ät. -i1äta -i1ät3s4 -2i1b -i2b1auf -ib2bli -ib1ei -i2beig -i2beis -ibela2 -ibe4n -iben3a -ibi2k -i3bla -i3ble -i2blis -ib2o -i2b1ö -i4brä -ib3ren -ib4ste -i2bunk -i2bunt -ibu2s1 -2ic -ic1c -ice1 -ich1a -ich1ä -i1che -ich1ei -i1chi -i2chin -ich3l -i3chlo -ich3m -i1cho -i2ch3r -ich2t3r -i1chu -ich1w -i1ci -i3ck2e -i1cl -i1d -id2ab4 -i3dam -id2an -i2d1au -1i2dee -i2dei -idel2ä -ide3so -ide3sp -1i2dio -idni3 -i2dol -1idol. -2i2dr -i3d2sc -id2s1p -idt4 -i2dy -ie3a4 -ie2bä -ie2bl -ie2bre -ieb4sto -ieb4str -ie1c -ie2cho -ie2ck -ie2dr -ie1e2 -ie2f1ak -ie2f1an -ie2fau -ief3f4 -ie2f3l -ie2fro -ie4g5l -ie3g4n -ie2g3r -ie3g4ra -iegs3c -i1ei -i2e2l1a -ie3las -iel3au -iel3d -iel1ec -ieler8geb -i1ell -ielo4b -iel3sz -iel3ta -2i1en -i3en. -i3ena -iena2b -ie4n3a4g -i3e2nä -i3end -i2ene -ien1eb -ie3ner -ien4erf -ie4n3erg -i3enf -i3en3g -ienge4f -i3enh -i3enj -i3enk -i3enm -i3enn -i3e2no -i3enö -i3enp -i3enr -ien2s -ien3sc -ien3s2e -ien3si -iens2k -ien3sp -ienst5rä -ien3sz -ie1nu -i3env -i3enw -i3enz -ie1o2 -ier3a2 -ie2rap -i2ere -ie3r2er -ie4rerf -ie4r3erz -ie3res -i3ereu -i4eri -ierin3 -ier3k2 -i1ern -i3ern. -i2er5ni -ie2rö -ier4seh -iers2t -ier3sta -ier3ste -ier3te -iesen3s4 -ies2sp -ies2s3t -ie1sta -ie3su -ie2t1a -ie4t3erh -ie4t3ert -ie2t3ho -ie4t1o -ie4t1ö4 -ie2tri -iet2se -i1ett -ieu2e -ie1un -i1ex -2if -if1ar -i2f3arm -if4at -if1au -i2fec -ife2i -if2en -ifens2 -if1erg -if1erh -if2fl -if3l -i1f4la -if4lä -i1flü -if3r -if4ra -i1frau -i1fre -if4rei -if4rü -if2s -if3se -if3sp -if2ta -ift3erk -if2top -if4t3ri -ift3s2p -ift3sz -2i1g -iga3i -i2g1ang -ig1art -iga1s4 -i4gefar -ige4na -ig1erz -i2g1im -i2gl -ig1lä -ig4na -i4gnä -i3g4neu -ig4no -i3go -ig4ra -ig3rei -ig4sal -ig3sä -ig4se -ig3so -ig3spr -ig3stei -ig4sto -ig4stö -ig3str -ig4stre -ig3stü -igung4 -2i1h -i2h1am -i2har -i3he -ihe1e -ihe4n -ih3m -ih3n -ih3r -ihs2 -i2h1um -ih1w -ii2 -ii3a4 -i1ie -i3i4g -i1im -i1in -i1i4s -i2is. -ii3t -i1j -2i1k -i2k1a4k -ik1amt -i2k1ano -ik1anz -i4kanze -ik1art -ik3att -i2k1au -i2kär -4ike -i2k1ei -ike2l1 -i2k1e2r2e -ik1erf -iker6fah -i2ker2l -i2k1eta -i3ki. -ik1in -i2kind -i2k3l -i3kla -i3k4lä -i2kn -ik3no -ik2o3p4 -iko3s -i2köl -i2k3ra -ik3rä -ik3re -ik1s2 -ik3so -ik3sz -ikt2e -ikt3erk -ikt3r -ik2tre -i2kun -i3kus -i1la -i2l3ab -il1a2d -i2l1ak -i2l3a2m -il1ans -il1asp -il1au -il4aufb -il3aus -i2laut -i1lä1 -6ilb -il2c -il2da -il4d3en4t -ild2er -ild1o -il2dor -il2dr -il1e2c -ile2h -il1ehe -il1ein -il1el -i4lents -i2l1erf -i2l1erg -i2l1err -ilf2 -il2f3l -il2f3re -ilf4s3 -ilie4n -ilig1a2 -ili4gab -i2l1ind -i2l1ip -i3lip. -i3lips -2ill. -il3l2a -il3l2er -il3l2i -2ills -il2mak -il4mang -il2m3at -il2mau -il2min -2ilo -i2l1or -il3t2h -i1lu2 -i2lum -ilung4 -i3lus -ilv4 -il2z1ar -ilz3erk -2im. -i2manw -i2m1arm -im4at -ima2tr -imat5sc -ima4tur -i2meg -i2mej -i2mek -i2mele -i2melf -i2m1erf -i2m1erz -i4mesh -i2meti -i2mew -i2m1inf -i2m1ins -im2mei -im4m3ent -1immo -2imo -im1org -1impo -imp4s -im3pse -1impu -im2st -im3sta -2imt -imt3s2 -2imu -in3a2c -i4nack -i2n1ad -in2af -in3am -i3nap -in2ara -in2ars -ina4s -i2n3au -in1äs -in2dal -in2dan -1index -in3do -2indr -ind4ri -in3drü -1indus -2ine -i2n1e2be -in1ehe -in3ei -i2n1eng -in3erbe -i4nerbi -in2erh -iner4lö -i4ner4tr -i4nesk -in1eu -ine3un -ine2x -in3f -1info. -1infos -2inga -ing1af -in2g1a4g -in2gl -ing4sam -1inhab -2inhar -2inhau -4inhe -in2i3d -i3nie -2inig -ini3kr -in2ir -2inis -ini3se -i3nitz -3inkarn -inma4le -2inn. -in4n3erm -2innl -in2nor -inn4sta -1innta -2ino -in1od -in3ols -in1or -ino1s2 -ino3t -i1nö -in1ö2d -2inp -2inr -ins2am -insch2 -in2seb -2insen -ins3ert -in3skan -in3skr -1insta -in4s3tät -in3stel -in3su -1insuf -in4s3um -in3s2z -1integ -int2h -in3t4r -in5tri -in1u -i3n2um -in3unz -invil4 -i1ny -in3zw -i1ñ -2i1o -io1c -io2d -i2oda -io3e4 -iof4l -i2o3h -io2i3d -io3k4 -i3ol. -i3om. -i3oms -ion2 -i3on. -ional3a -io2nau -ion3d -i3ons3 -ion4spi -ion4st -i2ony -i2o1p -io4pf -i3ops -i3opt -i2or -i3or. -i3orc -iore4n -i3orp -i3ors -i3ort -io3s2 -i2ost -i3ot. -i3ots -i2ou -i2ov -io2x -i3oz. -i1ö2k -i3ön -i1ös. -2ip. -i1pa -i1pe -ipen3 -i3per -ip3fa -iph2 -2i1pi -ipi3el -ipi3en -ipi2s -ip4l -ip2pl -ip3pu -i1pr -2ips -2ipu -2i1q -i1r2a -i3rad -1i2rak -irat2 -i1rä -ir2bl -ir1c -ir2e -i3ree -2irek -2i3ré -ir2gl -irg4s -ir2he -ir2i -2irig -2irk -ir2k3l -irli4n -ir2mak -ir2mau -ir4mä -ir2m1ei -ir2mum -ir4m3unt -ir2nar -ir2no -i1ro -1iron -iro2s -i1rö -irpla4 -irr2h -ir4sch3w -ir3se -ir3sh -ir2st -irt2st -iru2s1 -i3sac -i4s1amt -is2ap -is3are -i2sau -i2s1än -2isb -i2sca -isch3ar -i3s2che -i4schef -i4sch3e4h -i4sch3ei -i4schin -i5sching -i2sch1l -isch3le -i2schm -isch3ob -isch3re -isch3ru -i4schwa -i6schwir -i4schwo -isch3wu -is1chy -i2s3cr -2ise -ise3e -ise3ha -ise3hi -ise3inf -i4seint -ise2n1 -is2end -isen3s -i2serh -i2s1erm -iser2u -i2s1ess -i4s3etat -is2has -isi2a -i2s1id -i2s1of -iso6nend -is1op -3i2sot -is1pa -i2spar -is1pe -is1pic -is2pit -i2spro -is3sa -is4s1ac -is4sau -is4s3che -is2st -is3sta -is3sto -iss3tr -is3stu -is2sum -is3t -is4tab -is4tam -ist2an -i1s4tat -is4tel -iste4n -istes3 -i1s4teu -i1s4til -is4toc -is4tö -is5tör -ist4ra -ist3re -is4tü -isum3p -i2sü -i1ß -iß1ers -it1ab. -ital1a -it1alt -it1am -it1an -it2an. -it3a4re -it1art -i3tat -it1au -i3tauc -i4t1ax -4itä -it2är -i2t1äs -ität2 -i2t1ei -i4teig -it2eil -i4tein -2itel -ite2la -ite4n -iten3s2 -i4tepo -i2tex -i5thr -i2t1id -1itii -iti4kan -i2t1in1 -it2inn -itmen2 -i5toc -i2t1of -i3tö -it3raf -i2t3ran -it3ras -it3rau -it3räu -it3re -it3ric -it3rom -it4ron -i3tru -it3run -it2sa -its1a4g -it2s1e4 -its3er1 -it2so -it2s1pe -it4staf -it2sto -it2teb -it4tri -itt2sp -it1uh -i2t1um -i2tuns -it1urg -itut4 -i3tü -2itz -it2zä -it4z3erg -it2z1w -2i3u2 -ium1 -i1ü -2i1v -i2v1ak -iv1ang -i2veb -i2v1ei -iv1elt -ive4n -i2v1ene -i2v1ent -i2v1ur -2i1w -iwur2 -2i1x -i2xa -ix2em -i3xi -2i1z -iz1ap -iz1au -izei3c -ize2n -i2z1ene -iz4er -i2z1ir -izo2b -i2zö -i2z1w -í1l -ja1c -jah4r3ei -jahr4s -ja3l2a -ja3ne -jani1 -ja1st -2jat -je2a -jean2s -je1c -je2g -jek4ter -jekto2 -jektor4 -jek2tr -je3na -je2p -je4s3t -je2t1a -je2t3h -je2t3r -jet3s2 -jet3t -je2t1u2 -je3w -ji2a -jit3 -ji2v -joa3 -jo2b1 -job3r -jo2i -joni1 -jo1ra -jord2 -jo2sc -jou4l -j2u -ju2bl -jugen2 -jugend3 -ju2k -jung3s4 -ju3ni -jur2o -jus3 -jut2e1 -2j1v -1ka -3ka. -k3a2a -ka3ar -kab2bl -ka2ben -2kabh -2kabla -2kablä -2k1a2bo -ka3b4r -2kabs -2k1abt -ka1c -k2ad -2k3ada -2k3a2dr -ka1f4l -ka1fr -kaf3t2 -k2ag -ka1in -ka3ka -kaken4 -2kala. -ka2lan -ka3lei -ka3len. -ka4lens -kal3eri -kal2ka -kal2kr -k1all -kalo5 -kal4tr -k3ama -kamp8ferf -kan2al -ka4n1a4s -ka2nau -kand4 -2kanda -kan2e -2k1ang -kan3k4 -2kanl -2k1anna -k1ans -k2ans. -6kantenn -ka3nu -2kanw -k2anz. -ka2o -2k1apf -3kara -2karb -k2ard -k2arg -ka3r2i -kari3es -k2ark -2k1arm -k2arp3 -kar2pf -k2ars -kar3t -k2arta -2k1arti -karu2 -k2arw -3kas -ka3se -kasi1 -kas3s -ka2s3t -ka3tan -ka3t4h -ka4t3r -2katt -kau2f1o -4kaufr -kauf4sp -k1aus -kau3t2 -2kauto -1kä -k1äh -k1ä2mi -k1än -kär2 -kä2s1c -käse3 -2k3b4 -kbo4n -kbu2s -kby4 -2k3c -2k3d2 -kdamp2 -2k1e1c -k1eff -kefi4 -kege2 -ke2gl -ke2he. -kehr2s -kehr4s3o -2k1eic -2k1eig -k1ein -ke1in2d -2keinh -kei1s -2k1eise -keit2 -ke2la -kel1ac -ke3lag -kel1au -ke2lä -kel3b4 -2ke2lek -ke2len -2ke3let -kell4e -kel3s2k -k4elt -2k1emp -k2en. -ken3au -4ken4gag -2kenlä -ke2no -kens2k -ken5stei -ken3sz -k2ente -k3enten -ken3th -k2entr -2k1ents -k2entu -2kentw -2keo2 -ke2pl -k2er. -ke1rad -k2erc -4kerfah -k4erfam -k3ergeb -ker6gebn -k3er4hö -ke6rin6nu -kerin6st -kerin4t -ker4ken -k2erko -k2erl -k3er4lau -k3er4leb -k6erlebe -ker4neu -k1e2ro -k2ers. -kerz2 -ker4zeu -2k1er2zi -k6es. -ke2sel -ke4t1a -ke2t3h -ket3s -ke1up -keu6schl -2k1e2x -2k3f4 -2k1g2 -2k1h4 -kho3m -ki3a4 -ki1c -2k1i2de -ki3dr -ki2el -kie2l3o -ki1f4l -ki1f4r -ki3k4 -2kil2a -ki3li -ki3lo -k2imi -k2in. -k2ing -2kinh -k2ini -k2inn -ki3n4o3 -kin3s -2k1inse -2k1int -ki3or -kio4s -3kir -kis2p -kist2 -kis4to -2kiz -ki3zi -2k3j -2k1k4 -kl2 -4kl. -4kla. -k4lar -4k1last -k2le -4kle. -kle3ari -4kleh -k4leid -4k3leit -k3lem. -2k3ler -kle2ra -2k3leu -kle3us -2klic -2klig -k2lin -k3lip -k2lir -k2lisc -2klist -klit2s -4kliz -2k3loc -klo2i3 -k4lop -klost4 -klö2s -k2löt -k1lu -kluf2 -klung4 -2k1lüc -2kly -2k1m -k2n2 -3knab -k3ne -k4nei -2k5ner -kno4bl -2k5nor -k3nu -3knü -1ko -ko2al -2kobj -2k1o2fe -koff4 -koh3lu -ko1i2 -kol4a -ko3le -kol2k5 -3kom -ko4mu -k2on -ko3n2e -kon3s4 -ko3nu -2kop. -ko1pe -kop4fen -2kops -2kopz -ko1r2a -2k1orc -kor6derg -ko3ri -k2os -ko2sp -ko2st -ko3ta -kot3s2 -kot4tak -2k1ou -3kow -ko2we -k1o2x -1kö -kö2f -k1öl -2k1p2 -k1q -k2r4 -2k3rad -k3rats -2kraum -k4raz -2k3rät -2k3räum -2kre. -2k3rec -2k3rede -2k3ref -2kreg -k3reic -kre1i2e4 -kreier4 -k3reih -2k3rh -2krib -2k3ric -k3ries -2krip -3kris -3k4ron -2kruf -krü1b -2ks -k4s1amt -k2san -ks3ar -k2sau -ks2än -ksch4 -ks1e2b -k2s1em -k2sent -ks1erl -k2s1ers -k2s1erw -ks3ha -k2s1id -k2s1in -k2s1o2 -k3sof -ks1pa -k3spe -ks2por -ks2pu -ks3s2 -kst4 -k1sta -k4s3tanz -k3stat4 -k1ste -k1s2ti -k1sto -k2stor -k1str -k2strä -k1stu -k2stum -k2s1u -ks2zen -4k1t -k2t1ad -kt1akt -k3tal -kt1am -kt1an -k2t3a2r -kta4re -k2t1au -ktä3s -kte3e -kt1ei -k2temp -k2tent -k4t3erfo -k2t1erh -kte3ru -k2tex -k2th -kt3ho -k2t1id -kt1im -k2t1ing -kt1ins -kti4ter -k2t1of -k3top -kt1ope -k4torga -kt3orie -kt4ran -kt3ras -k4tref -kt4ro -ktro1s -kt3run -kt3s4 -ktt2 -k2tuns -k3tü -kt3z -ku1c -kuh1 -2k1uhr -kul2a -ku3l2e -ku3l2i -4kulp -2k3uml -kum2s1 -k2u3n2a -kung4 -kun4s4 -kunst3 -2kunt -2k1up. -kur2bl -ku2rei -kuri2e -kuri4er -ku2ro -kur2sp -kur2st -ku4schl -ku2sp -kus3t -ku2su -1kü -2küb -kü1c -kür4s -2k1v -2k1w -2k3z2 -kze3l -3la. -la3ba -2labb -4l3aben -2labf -2labg -2labh -4l1a2bl -lab2o -l2abr -lab4ra -lab4ri -2l3abs -l1abt -3labu -2labw -la1ce -la2ce. -1lad -lad2i -l1adl -2ladm -2l1a2dr -3ladu -l1adv -2laf -la2fa -laf3s -laf3t -la2ga -la2gio -la2gn -lago2 -la2g1ob -2la1ho -1lai -la2k1i -l2akk -la1k4l -2l1al -4lall -4lalp -l2ami -la3min -1lammf -l2amp -2l1amt -lamt4s -la4mun -l1anal -la2nau -2lanb -3l2and -lan2d3a2 -lan6d5erw -lan6d5erz -lan2d3r -2lanf -lan2gl -lang3s4 -2lanhä -l2anhe -2lanl -4lanli -2l3ann -l1anp -2lans -4lansä -2lantr -lan2zw -3lao -l1a2po2 -lap4pl -la2r1an -la2r1ei -la4rene -3l4ar3g -lar3ini -lar3s -2l1ar3t -l3arti -la2ru -la2sau -4lasd -la3se -2lash -2lasi -la2so -2lasp -3lasser -la2st -last1o -lat2a -la3te -la4tel -2l3ath -la2t3ra -lat2s -2lat2t1a -lat4tan -lat4t3in -lat2t3r -laub4se -l2auf. -lau2fo -l2aufz -1laug -2lausl -2lausr -2l1auss -2lauto -1law -lawa4 -lay1 -lä1c -1läd -2läf -2l1ähn -1länd -lär2m1a -lä2s1c -4lät -2läub -2läuc -2läue -1läuf -1là -2l1b -l3bac -l2b1ede -l4beta -l2b1id -l2b1ins -lb2lat -l3blä -lb3le -l2bli -l3blo -l4bre. -lb3rit -lb2s -lb3sa -lb3se -lb4sk -lb3sp -lbs6t -lbst3e -lb4sto -lb2u -l2b3uf -lbzei2 -2l1c -l3che -l3chi -lch3l -lch3r -lch3ü -lch1w -l3cl -4l1d -ld3a2b1 -l3d2ac -ld3a2ck -l2d1a2d -lda4g -l2d1ak -ld1al -l3dam -ld1amm -l2d3a2n -l2d1a2r -ld3ari -l3das -l3dat -ld1au -ld1är -l2dei -l2dele -l3der. -ld1erp -l2d1e2se -l2dex -l2d1id -l2d1im -ldo2r -ld2os -ld2ö2 -ld3r -l2dran -l2dre -l3d4ru -ld4rü -ld3sa -ld3st -ldt4 -ld3th -l2d1um -1le -3le. -le2ad -leben4s3 -le2bl -2lec -le2chi -lecht4e -3led -4ledd -le3de -le2e -le3ei -lef2a -le2g1as -le2gau -le2gä -le2gl -leg4r -3leh -leh3r2e -4lehs -4leht -3lei. -lei2br -l2eic -l2eid -4l1eig -l2ein. -l2eind -lein4du -l2eine -lei6nerb -2leink -l2eint -leis6s5er -l4eist -lei4ßer -l2eit -lei2ta -lei8t7er8sc -leit3s2 -lekt2a -2lektr -3l2ela -2le2lek -lel3s -3lemes -le2m1o2 -4lemp -lem3s -l2en. -le4nad -le2nä -4lendet -2lendu -le4n3end -4lenerg -l2enf -le3ni -l2enk -2l1enni -l2e2no -len4sem -len3sz -l1ents -2l3entw -lent4wä -5lentwet -4lentz -len2zi -le1os -2lep -3lepa -3lepf -lepositi8 -3lepr -l2er. -l2e1ra -le2ra4g -le2rau -lerb4 -4l3ereig -le4r3eim -le4rers -l1erfo -l2erfr -l2erfü -3lergeh -l3ergen -3l4ergew -2l1ergi -lerin4s -lerk2 -l2erka -l2erko -l2erle -2l1er2ö -3l2erra -l4ers. -lers2k -lers2t -ler3t -6lerwerb -l1erz -l2erza -les2am -les2e -2l1esel -le3ser -le3sh -lesi1 -le3sk -les2t -leste3 -le1sto -4lesw -2lesy -le2tat -2le3th -2leto -let4tu -le2u -4leud -2leuro -3leut -3lev -2lexe -le2xis -2lexz -2l1f -l3fah -lfang3 -l2f1ec -lfe1e -l4feis -l3f4lä -lf3lo -l3f4lu -lf3ram -lf2tr -lf4u -lfur1 -l3fü -2l1g -lga3t -lgd4 -lgen2a -lge3ra -lgeräu3 -l2geti -l3go -lg3re -l3gro -2l1h2 -3lhi. -1li -3lia -li3ac -li3ak -li3ar -lia1s -libi3 -li1c -3lichem -3licher -li3chi -4lick -li2cka -li3d2a -li2deo -2l1ido -li4ds -lid3sc -l2ie -3lie. -liebe4s -li3ene -lien3s -lie2s3c -lie2st -3lig -lig4n -li2gre -li3ke -li2kr -lik2sp -lik4ter -li3l -lil2a -2lim -li3m2a -3limo -li3n2a -lin3al -2l1indu -li2nef -li2neh -li2nep -li2nes -2l1inf -lings5 -2l1inh -2l1in1it -2l1inj -lin2k1a -link2s -li2nol -l2ins. -l2insa -l2insc -2linsp -2linst -2l1int -l1inv -2linz -li2o -li4om -li3os. -li2p3a -3lis. -li3s2a -li4schu -4lish -2l1isl -2l1i4so -li2sp -liss2 -lit2a -li2tal -li3te -lit2h -lit1s2 -lit3sz -li3tu -3liu -2lixi -li2za -lizei3 -4l1j -2l1k -lk1alp -l3k2an -l3kar. -lken3t -lk2l -lk3lo -l3k4lu -lk4ne -lkor2b1 -lk4ra -l2k3ro -l2k3ru -lk2s1 -lk3sä -lks3t -lk4stä -l3k2ü -4l1l -ll1abb -ll1a2be -l2labt -ll1aff -ll1akt -l3l2al -l2l1a2m -ll3ama -lla2n -ll2anw -ll1anz -l3lap -ll1arm -ll1au -ll3aug -l2laus -l2l1äm -llb4 -llch4 -ll3d4 -ll1ech -lle3en -l2l1ef -ll1eim -ll2em -l3len. -lle4n3a -ll3endu -llen3g -l4lents -l3ler. -lle2ra -l4lerfo -l6lergen -l4lergo -ll3ernt -ll3ertr -l2lerz -ll2es -l2lex -llg4 -ll1imb -ll1imp -l2l1ind -ll1ins -llk4 -ll3l2 -ll5m -lln2 -ll1ob -l2lobe -l2l1of -ll1opf -l2l1o2r -l3lor. -l3lore -l2l1ou -l3low -l2löf -ll1ö4se -ll3sh -ll3s2k -ll2spr -ll5t4 -llti2m -llt5s2 -llu2f -ll1ur -llus5t6 -ll3z2 -2l1m -l2m3a2b -l2marc -lm1aus -lm1c -lme2e -lm3eins -l2m1e2p -l2m1erz -lm1ind -lm1ins -l2möl -lm3p -lmpf4 -lms2t -lm3ste -lm3s2z -lm3t -4ln -lna4r -ln3are -lnd2 -l3n4e -l3ni -l1nu -l1nü -1lo -3l2ob. -lo2ber -2lobj -2l1o2bl -l2obr -lob4ri -l1o2fe -lo1fl -lof4r -lo2gau -lo3h2e -2l1ohr -loi4r -3lok -lo2k3r -lol2a -l1o2ly -lo2min -lo2n1o -lo2o -2lopf -2lopt -lo1ra -lo4rä -2lorc -l1ord -lo3ren -2l1or3g2 -lo3ro -3lorq -3los. -lo4sa -3lose -lo4ske -lo2spe -loss2e -lo4ste -los3t4r -lo2ta -lo3tha -loti4o -2l1ov -lo2ve -2lox -1lö -lö2b3 -2löd -lö2f -2l3öfe -4lög -l1öhr -2l1ö4l3 -4löß -2l1p -l3pa -lpe2n3 -lp2f -l2p1ho -lp3t4 -l3pu -2l1q -2l3r2 -lrat4s -lre1s -lrut4 -lrü1b -4l1s -l3sac -l2s1a2d -l3s2al -l4s1amb -l2sann -l3sare -l2sau -l4schin -l4schmü -l2s1e2b -l2s1ec -l2s1em -ls1ere -ls1erg -l2serh -ls1erl -l2s1ers -l2s1erw -l3sex -l4sha -lsho2 -l2s1imp -ls2log -ls3ohne -l4s3ort. -l3s2pi -ls2po -l2spro -l3s2pu -ls3s2 -lst2a -lstab6 -ls4taf -l4s3täti -l2ste -l3stec -l3stei -l3stel -l4stem -ls6terne -ls6terns -ls2tie -l2stit -ls4tr -ls2tu -ls1um -l2sun -lsu3s -ls2zen -4l1t -l2tab -ltag4 -lt1ak -lt1a2m -l4t3ame -lt3and -lt1ang -l3tarb -lt1art -l2t3ato -l2t1au -lt1eh -l2t1eis -l4te4lem -lt3eli -lt2en -l5ten. -lter3a -lt2erg -lt4erö -l4t1e4sk -lte2th -l2t1eu -l2th -l4thei -lt3ho -l3thu -ltimo4 -l2tob -l2t1of -lt1op -l2t1o2ri -lto2w -lt1öl -l3tör -lt1ös -l4t3öt -ltra3l -l3trä -lt3räu -lt3re -lt4rie -lt3roc -lt3ros -l2t3rö -l6ts -lt3sc -lt2so -lt4stab -lt4stoc -ltt2 -lt1uh -l2t1um -ltu4ran -ltu2ri -l3tü -lu1an -4lu4b3 -luba2 -lubs2 -lu2dr -lu2es -1luf -2l1ufe -2luff -luf2t1a -luf2t1e -luf2t5r -lu2g1a -lu2g1e2b -lu4g3l -lu2go -lu2g3r -lug3sa -lug3sp -lu2gu -2l1uh -lu1id. -lu1is. -lume2 -2lumf -2luml -l2ump -l1ums -l1umw -1lu2n -2l1una -2l1unf -lung4sc -2l1uni -2lunt -2lunw -4luo -2lur -l1urn -l1urt -2luse -lu2sp -lus4s3a -lus2s1c -luss3er -lus6serf -lus6serk -lus6sers -lus2s1o -lus2s3p -lus2s3t -lus4stä -lu4st -lus4t1a -lust3re -lu2s1u -lu2t1a -lu2tä -lu4teg -lu4t3erg -lut1o2f -lu2top -lu4t3r -3lux -2lüb -5lüd -lüh1l -2l1v -2l3w -2lx -1ly -ly1ar -ly3c -2lymp -3lyn -ly3no -ly1o -ly3u -2l1z -l2z3ac -l3z2an -lz2erk -lz1ind -lzo2f -l2zö -lz3t2 -l2z1u4fe -lz1w -lz2wec -1ma -m1ab -m2abe -2mabk -m2ab4r -2mabs -2mabt -mach4tr -ma2ci -ma3da -ma2d4r -ma4d2s -mae2 -ma1f -ma2ge. -ma2geb -ma2gef -ma2geg -ma2gek -ma2gep -ma4ges. -ma2get -ma2gev -ma2gew -2m1agg -magi5er. -magi5ers -ma3g4n -2m1ago -mai4se -2m1akt -mal1ak -ma4lakt -ma2lan -ma4l3at -ma2lau -mal3d -ma3ler -mali1e -mal3lo -2mallt -malu4 -ma2l3ut -mam3m -2m1anal -ma2nau -2manb -man4ce. -man3d2 -man3ers -ma2net -m2anf -2m1angr -m2anh -2manl -m4ann -2mansa -2mansä -2mansc -2mantw -2manz -ma2or -m2app -2marb -mar3g2 -4ma3r2o -maro3d -4marr -mar6schm -mar6schr -ma3r2u -m1arz -3mas -ma3s2pa -4m1aspe -massen3 -mas4tel -ma1s4tr -3maß -ma2ta2b -ma2tan -mat4c -ma2tel -ma4t3erd -ma5tri -mat3se -mat3sp -2m1au2f -ma3un -2mausg -m4ay -ma1yo -3mä -m1ähn -mä1i2 -4m1änd -m1ärg -mä3t4r -mäu2s1c -2m1b2 -mbe2e -mb4l -m3b4r -mby4 -2mc -m3ch -2m1d -md1a -m2d1ä -m2dei -mds2e -m2d1um -1me -meb4 -m2e1c -medi3 -medie4 -medien3 -2medy -me1ef -mee2n1 -mega1 -3meh -2m1eif -2m1eig -m2eil -mein4da -me1i4so -3meist -me3lam -3meld -me2lek -me2ler -melet4 -2melf. -mell2 -mel2se -mel5t4 -6mel6tern -2m1e2mi -m2en. -mena2b -me3nal -men3ar -men3au -men3gl -me3nor -m2ens -men4sk -men2so -men3ta -men6tanz -2mentn -4m3entwi -me1o -2meou -2meö -3mer. -me1ra -me2r3ap -me4rens -mer2er -4m3ergän -3merin -merin4d -merin4t -me2ro -3mers -merz4en -3mes -mes1a -me2sal -me4sä -4meser -2me3sh -4m1essa -mes6serg -mes2s1o -mes2s1p -mes2st -meste2 -me1sto -4mesu -me3t2a -me3th -meu1 -2m1ex -1mé -2m1f4 -mfi4l -4m1g2 -2m1h4 -1mi -mi2ad -mi3ak -mibi1 -mi1c -mi3da -mie3dr -mi2e1i -mie3l -mien3s -mi2er -mierer4 -mie2ro -mi4et -mie4ti -3mig -mi2kar -mi2ki -mi2ku -3mil -mi3l2a -milch1 -mil4che -mild4s -4milz -2m1imp -minde4s -min2en -min2eu -min2ga -ming3s4 -mi3ni -3min2o -mi1nu -3mir. -mi3ra -3miri -3mirs -3mirw -mi2sa -mi4scha -mi4schn -mi4schw -mise1 -mis2s1c -mi2s5te -3mit -mi2ta -mi2th -mi2t1r -mit3s2 -mit5sa -mi5tsu -mi2t1u -4mitz -2m1j -4m1k4 -m3ka -mk5re. -4m1l2 -ml3c -ml3l -ml3s -2m1m -m2mab -m2m1ak -m2m1al -mm1ang -m2m1ans -mm1anz -m2m1au -mmd2 -mm1ei -mme4lin -mme4na -m4mentw -mme2ra2 -mme4rec -mme2sa -mm1inb -mm1inf -mm1inh -mm1ins -mm1int -mmi3sc -mmi1s4t -mmm2 -mm3p -mm2s -mm3si -mm3sp -mm3sta -mm3str -m2mum -mm2un -mmül2 -mmüll1 -2m3n2 -m4nesi -1mo -moa3 -2mobj -3m2od -mode3s -mo2dr -4mog. -mo2gal -3moh -mo2i3 -mo2k1l -2mol. -3mom -mom2e -3m2on -mo3ne -mo4n1er -mon2s3 -mon3su -3mo2o -2m1ope -2mopt -mo1ra -mo2rar -2m1orc -mor2d3a -mor2dr -mo2rer -morgen5s6 -mork4 -3mos -mos4ta -moster4 -3mot -m1o2x -mo1y -1mö -mö2c -4mök -m1öl -2m1p -m2pf -mp4f3erg -mpf3erp -mpf3err -mp4f3erz -mp2fl -mpf3li -mpf1or -m3pon -mp3ta -m3pu -2m1q -2m3r2 -2m1s -m2san -ms3and -m4sap -ms1as -m2sau -m3sä -m3sc -msch2 -m4sco -m3se -m4s1ef -ms1erw -m4sex -ms1ini -mso2r -ms1ori -m2spä -m2sped -ms2po -m2spot -m2spro -ms2pu -ms3s2 -m4stag -m3stel -m3s2ti -m3sto -ms4tr -ms5trä -ms5tren -m3s2tu -ms4tü -ms1um -m2sü -m3sy -4m1t -mt1ab -mt1ak -m3tam -mt1ar -mt3are -mt1elt -m2t1erf -m4t1erg -m2t1erl -m2t1ers -m2t1ert -m4t1eta -m2t1eu -m2th -mt3ho -m2t1im -m2t1ins -mti2s -mtmen2 -m3tö -mt1ös -m4ts1 -mt2sa -mt2se -mt3s2ka -mt2spr -mtt2 -mt1um -mt1urt -m3tü -mt3z -1mu -mu1a -mu3cke -2m3uh -mu3la -2muls -3mun -mun2d1a -4m3unf -4m3ungeb -mu3ni -m4unk -munt2 -4munz -mu3ra -mu4r1u2f -m4us -mu4s1a -3musi -mu2s1o -mu2sp -mus3t -mu2su -mut1au -muts3 -mut2st -1mü -2müb -mül4len -3mün -3müt -mütter3 -2m1v -mvoll1 -2m1w2 -mwa2 -mwa4r -mwel4 -1my -my4s -2m1z -1na -3na. -2n1ab -na2bä -4nabg -4nabh -na2bl -n2abo -na2br -4n3abs -4nabt -3n2ac -na2ch1 -na3chen -nach3s -nacht6ra -4nadd -n2ade -4na2dr -n1af -na1f4r -3n2ag -na2gem -3n2ah -na2h1a -n3ahn -3nai -nai2e -n3aig -n3air -2n1ak -na2ka -3nako -n2al. -na2l1a2 -na2lä -3n2ald -n4ale -na4lent -na2let -nal3la -nalmo2 -na2lop -nal2ph -n2als. -nal3t4 -na2lu -2naly -n4am. -3name -n4amen -4n3a2mer -na3m4n -3namo -2n1amt -namt4s -n1an. -4n1a2na -4nanb -n1and2 -4n1ang -2nanh -2nani -4nank -2nanl -3nann -na3no -n1anp -2nanr -2n1ans -2nantr -2nanw -nap2si -n1ar -5nar. -na2r1a -2narc -n2ard -4narg -3nari -n2ark -n2arle -2narm -n2arp -4n3art -na3r2u -3nas -n2as. -na4schw -4nasp -4n1a2sy -nasyl2 -3nat -n4ata -na3t4h -4natm -nats1 -nat4sa -nat4sc -4natt -n1au -4nauf -nauf4fr -n3aug -5naui -3n2aul -4nausb -4nausg -n2auso -4nauss -n4auste -4nausw -navi5er. -navi5ers -1nä -3n2äc -3näe -n1ähn -2n1ä2m -2n1än -när4s5 -3näs -nä2sc -n2äss -2näu -3nä1um -2n3b4 -nbe2in -nbe3n -nbe3r2e -nbes4 -nbu2s -nby4 -2n1c -n3ce2n3 -nch3m -n2ck -2n1d -nd2ag -n2d1ak -n2danl -nd1ann -n2d1anz -ndat2 -nd1au -nd1c -nde4al. -n2dei -nde4län -n4d3ents -nde4rob -nder5ste -nde2se -ndi2a3 -n2dob -ndo2be -ndo1c -nd1op -nd1or -n2dö -n2d3rat -n2d3re -n2drob -nd3rol -nd3ros -n2drö -n2drui -n4d3run -nd2sor -nd2spr -nd4stab -nds3tau -nd3th -ndt4r -n2dü4 -ndy3 -1ne -3ne. -ne2ap -ne3as -ne3at -ne2bl -2n1ebn -2nec -3neca -ne1ck -3ned -ne2de -2nee3 -ne2e2i4 -ne3ein -n1ef -neg4 -2ne2he. -3nehm -4n1ehr -2n1ei -n2eid -4neif -3neigt -4n3eing -4n3eink -ne2ke -nek3t4 -ne2l -3nela -nel3b -2n1ele -4nelek -4nelem -ne3len -ne3li -nel4la -3ne3l2o -3ne3lu -n2em. -2n1emb -n1e2mi -2n3emp -2n1ems -3nen -n4en. -nen3a2 -n2enb -n2enc -4n1endb -4n1endd -4n1endf -n1endg -4n1endh -4n1endk -4n1endp -4n1endt -4n1endw -ne2n1e2b -nen3ei -nenen1 -ne4nene -4nengb -nen4ge. -nen4gen -4nengs -4nengt -n2enh -ne2ni -n2enj -nen3k -ne2no -n2ens -nens4e -nen3sk -5n2en3t2a -n1entb -4n1entl -4nentn -5nentr -n1ents -4n3entw -4nentz -ne2n3u -n2env -n2enw -ne2ob -ne1os -2nepf -2n1epo -ne2pos -n2er. -ne1ra -ne2ra2b -ne3r4al -ne2r3am -ne2ran -ne2rap -ne2rau -4nerbe. -4nerben -n1erbi -nere2 -ne2reb -n1erf -4n5erfo -nerfor4 -2nerfü -3nergr -n1erh -2n3erhö -3neri -n1erk -n2erli -2n1erlö -n1ermä -ner4mit -n2ern. -4n1ernt -ne2ro -ne1rös -n2erp -3n2ers. -2n3ersa -ner8schle -n2ert. -n1ertr -ne2rup -n2erv -2n1erz -3n2es -n4es. -ne3san -nes4c -nesi1e -ne3ska -nes1o -ne2s1p -4n3essi -ne1sta -nes3ti -ne2tad -ne2t1ak -ne2t1an -ne2tap -n1etat -ne2tau -ne2th -net3ha -nett4sc -n1e2tu -net2zi -ne2u -neu1c -neu3g -2n1eup -n2ew -2n1ex -3nez -1né -2n1f -nf1ak -nfalt4 -nf2ä -nff4 -n3fi -nfi4le. -nf4l -nf5lin -nf2o -nfo1s -nf4r -nf3s -nft2o -nft4s3 -n2f1u -4n1g -ng2abs -n2g1ac -ng1ad -n2g1ak -n2g3a2m -n2g1and -ng2anf -ng1anz -n2g1äl -ng3d4 -n3gef -n2g1ein -ng2en -ngen2a -n3ger -nge4ram -n4g3erse -nge4zän -ng3g4 -ng3hu -n2g1i2d -n3gläs -n2glic -n2glo -n3g2loc -n2glö -ng3m -n2gn -ng3ne -ng1or -ng3rat -ng3roc -ngs3c -ng4s3e4h -ngs3pa -ngs5tri -ng3ts -n2gum -2n1h4 -n3han -n3har -n3hau -n3hä -n3he -nhe2r -n3hu -1ni -3nia -nib4l -nich1s -nich8ters -n1id -ni2de -ni3de. -ni3dr -n4ie -nie3b -ni1el -nie3l2a -nie4n3 -ni3ene -ni1ero -nifes3 -nig2a -2n3i2gel -nig3r -ni2gre -nig4sp -3nik -ni2kal -ni2kar -ni3ker -ni4k3ing -ni3kl -ni2kr -3n2il -nim2o -4n1imp -nin1 -3n2in. -n2in4a -4n3ind -2ninf -3n2ing4 -4n1inh -ni2nor -2n1ins -n2ins. -4ninse -4n1int -2n1inv -ni2ob -ni3ok -ni3ol -n2ip -ni3ra -3n2is -ni4schw -ni2s1e -ni2s1p -ni3spi -nis3s4 -ni2s1u -2nit -ni2ti -ni3t4r -nit4s -ni3tsc -nitts1 -nitt4sa -ni3tu -ni3v -3nix -n1j -2n1k -n2k3ad -n2k1ak -n3k2al -n4k3alg -nk2am -n2kans -n2kaus -n2käh -n2k1är -nke2c -n4k3erfa -nk4erg -nk1inh -n2k1ins -nk3len -nk3les -n2klie -nk2lo -nk2lu -nk3lun -nk4na -n2kne -n2k1ort -nk2öf -n2köl -n2k3ro -nk2s1al -nks2ei -nk3s2z -nk2tak -nk2tan -nkt1it -nk4top -nk2tru -2n3l2 -2n1m4 -nmen2s -4n1n -nna2be -n2nada -n4n1all -n2n1an -n2nau -nnen3g -n4nents -nn2erh -nn2erk -nne2rö -n4n3er4wa -nner2z -nne2s -nnes1e -nne4st -nn2ex -nn3f -nng4 -n3ni -n2nof -nn1o2r -nn3sc -nn3se -nn3s2p -nn2th -n2n1uf -n2n1unf -nn1ur -1no -3no. -3nobl -no2bla -n2o3ble -2n1ob2s -no1c -2no2d -no3dr -n1of -2n3o2fe -n3ole -no2leu -n2on. -3n2opa -3nor. -nor2a -no2rad -no1rak -no3ral -2norc -nor2d5r -3norh -3norm -3nors -n1ort -3n2os. -no3sh -no2sp -n2oste -nost1r -2nostv -no3tab -no2tä -no4t3ei -no2tel -no3t3h -no4tha -no2t3in -no2t1op -no2tr -3nov -3now -2n1o2x -3noz -2nöd -2nö2f -4n1ö4l -2n3p4 -npa2g -npro1 -npsy3 -2n1q -2n3r2 -nräu3s -nre3sz -nrö2s1 -6n1s -n2s1a2d -n2s1all -n2sang -n2sant -n2saus -n3sav -n2s1än -n2s1äus -ns2ca -n6schef -n4schro -nsch7werd -ns1eb -ns1e2d -nseh5ere -nsen4sp -ns1ent -n2s1ep -ns1erf -ns1erg -n2serh -n2s1erk -n2s1erö -ns1ers -n2s1erw -n2s1erz -nse2t -n4s1eta -n3sex -nsfi4l -nsho2f -n3sil -n2simp -n2s1ini -nsi4te -nsi2tr -ns2kal -n2s1op -n4s3ort. -nsp4 -n2spat -n2sph -n3s2pi -ns4pie -n2spo -ns3pon -n2sprä -n4s3prie -n4spro -nsrü2 -ns3s2 -nst1ak -n3star -n3stat -n4stat. -n4s3tate -nst3eif -n3stemm -ns4tent -ns6terbe -n5s6terne -n5s6terns -nst4erö -ns2ti -nst5opfe -ns4tor -n4strac -n4strie -ns2tu -nst2ü -nstü1b -n2sty -ns2um -n2s1un -ns2ung -ns4unr -ns4uns -n3sy -n4s3zi -2n1t -nt3abs -n3t2a3c -n3t2al -nta3m -nt1ang -n4tanza -nt2arb -nt1ark -nt2arm -nt4at -nt1äm -n2t1äu -nte3au -nte2b -nt1ebe -nte1e -nte3g6 -nt1eh -n2teig -nt2en -nt4ene -nten6te. -n3ter -nt4ern -nt4ers -nt4ert -n4t1ess -nteu3 -nte3v -nt2her -n2t3ho -n3thr -n3t4hu -nti3c -nti3k4l -n2tinf -n2t1inh -ntini1 -nt2ins -n3ti1t -ntmen2 -ntmo2 -n3to -nto3me -nton2s1 -n3tö -nt3rec -nt3reif -n5trep -nt4rig -n5trop -n2t3rü -n4ts -nt3sa -nt4sau -nts2o -nts2p -nt4s3par -nts2t -nt2sto -n3tu -3n4tu. -ntum4 -ntu2ra -ntu4re. -ntu4res -n3tü -nt3z2 -1nu. -1nu1a -nu3ar -nubi1 -1nu1c -1nud -3nue -nu2es -nuf2 -nu2fe -1nug -2n1uh -1nui -nu3k4 -n2um. -2n3umb -2numf -2numg -3numm -2numr -2n1ums -2n3umz -nu2n -2nuna -1n2ung4 -3nung. -n3ungl -2n1uni -2nunt -1nuo -2nup -2nur -3nu2s -nu3sc -nu3se -nu3sl -1nut -nu2ta -nu4t3r -1nuu -1nux -1nuz -3nü. -2nü4b -nür1c -3nüs -1nüt -2n1v2 -n3ver -4n1w -1ny. -1nyh -2nymu -n1yo -1nyr -1nys -1nyw -2n1z -n2zad -n2z1a4g -n2zan -n2z1au -n2z1än -n2zär -nzdi1s -nz1ec -n4zense -n4zentw -n4zentz -nz3erwe -nzi2ga -nzig4s -nz1ini -n2zor -nz2öl -nz3s -n2zurk -n2z1wa -n2z1wä -n2zwö -n2z1wu -ño1 -2o3a2 -o4abi -o4ac -oa3che -oa3chi -o4ad -oa3de -oa4g -o4ah -o4a3i -oa3ke -oa4k1l -o4a3la -o4a3mi -oanne4 -o2ar -o2as -3oa3se -o4at -o5au -o1b -ob2al -2oban -o3bar -2o3b2ä -2obb -ob2e -2obe. -2obea -ob3ein -2o3b4en -oben3d4 -oben3se -ober3in4 -obe4ris -2obew -2o3b2i -obi4t -ob3ite -1obj -ob1l -o2b3li -2o3blo -2o3bo -o2b3re -o3bri -ob3s2h -ob3sk -obs2p -ob2sta -2o3bu -obu2s -2o3bü -2oby4 -2oc -o3ca -oc1c -o1ce -och1a -ocha2b -o1che -oche4b -o2ch1ec -och1ei -ocher4k -och3l -och3m -och1o -och3ö2 -och3r -och1s -ocht2 -och3te -o1chu -ochu2f -och1w -o1ci -o1ck -o2ckar -o3cke -ock2er -o3cki -o2cko -ock3sz -o1cl -o1ç -o1d -o3d2a -od2dr -o3deb -o3d2e1i -odein3 -ode2n1 -odene4 -ode3sp -o3dex -2o3dia -o3dir -o3div -o2don -odo4s -2odr -o2dre -odt4 -2o3du -2o1e2 -o2ec -oen1 -o4e3s -o2e3t -o3et. -o3ets -o1ë -2ofa -of1a2c -of1am -of1au -o2f1ei -of2en -o3fer -of2f1a -of2f1in -1offiz -of2f5l -of2f3r -offs2 -of2fu -2ofi -of3l -of1la -of4lä -of4lö -2ofo -2o1f1r -of3ra -of3rä -of4rü -ofs1a -of4sam -of2spe -of2spr -of2s1u -2oft -of2tei -of3th -2o1g -o2g1ab -oga3d -og1ala -og1ang -o2g1ei -oge2l1i -o3gh -ogi2er -og2lo -o3g4n -ogs2 -og3sp -og1ste -o1ha -o1hä -o1he -o2h1eis -ohen3s -o2h1ert -o2h1erz -o1hi -ohl1a -ohl3au -oh3lec -ohl1ei -oh3lem -oh3len -oh3lep -oh4lerg -oh4l3erh -oh4lerw -oh3lo -ohls2e -oh2lu -3ohng -oh2ni -1ohnm -oh2n1o -o1ho -oho2la -oh1o2p -o2h3ö -ohr1a -oh4rin -oh1ro -oh1s -oh3t -o1hu -oh1w -2o1hy -2oi -o1i2d -o3ie -o1im -oimmu4 -o1in -oi2r -o2isc -o3isch. -o1ism -oiss2 -oi1th -2o1j -2o1k -oka2la -okale4 -3o2kel -oki2o -ok1lä -ok4n -4okr -ok2s1p -okt4 -2ol -o1la -o2lab -o2l1ak -ol2ar -olars2 -ol1auf -o1lä -ol4dam -ol4dr -ole3e -ol1eie -ol1eis -oler2 -ole3s -ol1ex -o1lé -ol2fa -ol2fl -olf1r -ol2fra -ol2gl -ol2gr -ol2i -oli3k4 -ol2kl -olk3r -ol2kre -ol2lak -ol2l3au -oll1e2c -ol2l1ei -ol2lel -oll5ends -ol4lerk -oll5erwe -o3lo -ol2of -olo3p2 -ol1ort -ol2str -o1lu -3oly -1olym -ol2z1a -ol4z3ern -ol2zin -ol2zw -2om -o2mab -oma4ner -om2anw -om1art -o2m1au -o2meb -ome3c -o2m1ei -o3m2eis -o2mel -o3men. -o2mep -o2meru -om1erz -om2es -omiet1 -o2m1ind -om1ing -o2m1int -om3ma -om1org -om3pf -oms2 -omtu3 -o4munt -omy1 -2ona -ona2b -o2nae -o3nal -on1ap -o2narb -on2au -on3aus -2onä -onbe3 -2onc -onderer5 -2one -one2i -one2n3 -onens2 -o2n1erb -o2n1erd -on1erg -on1erö -o3nett -on3f2 -on3g2l -ong4r -ong3s -4o3ni -on2i3d -o4nikr -o4n1im -on3ing -on3k2 -onli4 -onlo2c -on3n2an -on3n2e -ono1 -o3nod -o2noke -on1orc -ono3s -ons1a -onsa4g -on4sam -on2seb -onse2l -onsi2 -ons3l -ons1p -onst2h -on3t2a -ont3ant -on4t3end -ont3erw -ont2h -on4t3ri -ont3s -o1nu -2onuk -on3v -1ony -on3z -o1ñ -oof2 -oo2k3l -o1op -o1or -oor3f -oo4sk -oo2tr -2o1ö2 -o1pa -opab4 -o2p3ad -op3akt -opa5s -o1pec -o1pei -o1pe4n -2opf. -op2f3a -op3fah -o2pfe -op4ferd -opf5erde -opf1l -opf3la -op1flü -4oph2 -o3phe -o1pi -opi5a4 -opi3er. -opi5ers. -opin2 -op5lag -o2p3le -op3li -2o3po -op4pl -op2pr -2o1pr -1opsi -op3sz -1op3t4 -o1q -2or. -or1a -or3a2b -o1rad -2orak -2oral -o2r3alm -or4alt -3oram -or2and -o2ranh -or3arb -o1ras -or3att -o3rä -or1änd -or1ät -or2bar -orb2l -or1c -2orca -or2ce -4orda -or2d3am -or2dau -or4d3eng -or2deu -or2d1ir -or2dit -1ordn -or2do -2ordr -2ords -ord3s2t -or2dum -2ordw -4ore -ore4as -o2r1e2ck -o2r1ef -ore2h -or1eig -o2rein -or1er -o2rerf -or1eth -2orf -or2fle -orf3s4 -or3ga -2orget -or3g2h -2orgia -orgi1e -or2gl -or3gle -or2gn -2orh -2o3ric -o4rient -o3rier -4oril -4orin1 -2orit -ork2a -or2k3ar -ork2s -2orm -or4mans -or4ment -or5ne. -or3n2o1 -2o1ro -oro3n2a -2o1rö -2orq -2orr -orr4a -or3rh -2ors2 -or3s4a -orsch5li -or3sh -or3sz -or2t1ak -or4t1an -or2t1au -or2tär -or2tef -ort3eig -or4t3ent -or4t3ere -ort3erf -or2t3ev -or2the -ort3ins -or4t3off -or2tor -or4tö -or4trau -or4t3räu -ort3re -ort3ric -or2t1um -o3ru -or2uf -o4r3un -o2r3ü -o2rya -2o3s2a -os3ad -os4an -osa1s -o3sche -os4co -2o3se -ose3e -o2s1ei -ose2n -o4sents -2osh -o3s2hi -o3sho -2osi -o3sk -o4ska -os3ke -o4ski -2os2kl -2os2ko -os2lo -2oso -2os1p -o2s3per -o3s2po -os2sa -oss3and -os4sä -os2sei -os4s3en4k -os4s3enz -os2s3o -os4son -os2s3p -os2s3t -ost1a -osta2b -os4t3am -os3tarr -ost4art -os4ta4s -os4tei -oster3e -os6t5er6we -os2t3h -os3til -os3to -os4t1ob -ost3ran -ost3rä -ost3re -ost3rot -ost3uf -2osu4 -2o3sy -o3s2ze -o2ß1el -o2ß1en2k -o2ß1enz -o2ß1ere -o2ß1erf -2o1t -ota2go -o5tark -o2t1au -ot3aug -o2teb -o3t2e1i -otei4n -ote2l1a -ote4lei -ot4em3 -otemp2 -o2t1erw -ote2s -4ot2h -ot4he -ot5hel -o4t3hi -ot3hos -o2thr -o2t1i2m -ot2in -otli2 -ot4ol -ot1opf -ot2or -oto2ra -oto1s -o3tra -o2t3re -ot3rin -ot2sa -ot3sc -ots1p -ot4spa -ots2pe -ot2spr -ot4terk -ot2th -ot2t3r -ot4tri -o3tü -o2u -oub4 -ou2ce -ou1f4l -oug2 -ou2ge -ou3gl -o3uh -ou4le. -o3um -o3unds -oun4ge. -2our -ouri4 -our4ne. -ou3s2i -outu4 -2ouv -2o1ü -o1v -ove3s -2ovi -oviso3 -2ovo -2o1w -o3wec -owe2r1 -o3wi -o1x -ox2a -ox2e -1o2xid -ox3l -o2xu -1oxy -o1y2en -o1yo -oy1s4 -2o1z -oz2e -ozen4ta -o3zi -ozon1 -órd2 -ö1b -öbe2la -öbe4li -öb2l -ö2ble -ö2b3r -öb2s3 -2ö1c -öch1l -ö2chr -öch2s -öchs4tu -öcht4 -ö1d -ödi3 -öd2st -ö1e -1öf -öf2fl -öf3l -ögen2s1 -ög3l -ög3r -ö1he -öh3l2e -öh3ri -ö1hu -ö3ig. -ö1ke -ö2ko3 -ök3r -3öl. -öl1a2 -öl1ei -öl1em -öl4en -öl2f1ei -öl1im -öl1in -öl2k3l -öl3la -öl2nar -öl1o2 -öls2 -öl3sa -öl3sz -ö2l1u -öl2ung -ölz2w -öm2s -2ön -ön2e -ö3ni -önn2e -ön2s -ön3sc -ön3sp -ö1nu -öo1 -ö1pe -öpf3l -öp4s3t -ör3a2 -ör1c -ör2dr -ö2r3ec -ö2r1ei -ö2r1e2l -ör2erg -ö2rerl -ö3r2erz -ör2f3l -ör2gl -ö2r1im -ör2kl -örner2 -ör1o2 -örs2e -ör3s2k -ört2e -ör2tr -öru4 -ö2r1une -ö2sa -ö2scha -ö4sch3ei -ö2schl -ö2sch3m -ö2schw -ö2s1ei -ö2sp -ös2s1c -ös2st -ö2st -ös3te -ös2th -ös3tr -ö3su -ö1ß -2ö1t -ö2t3a -öte4n3 -öt2h -öts2 -öt2sc -öt2tr -ö1v -ö1w -ö1z -öze3 -özes4 -p2a -1pa. -1paa -1pac -pa3da -pa2dr -pa2el -pa1f4r -pag4 -pa3gh -pa1ho -1pak -pa1k4l -pak2to -1pala -pala3t -1palä -pa3li -2palt -pa2nar -pa3nei -pa2neu -pan3k4 -2panl -3pa2no -pan3sl -pant2 -3panz4 -1pap -papi2 -papieren8 -papie8r7end -3para -pa2r3af -par3akt -1parc -pa5reg -pa5rek -2par2er -2parg -pargel6d -1park. -par4kam -par4kau -par2kl -par2kr -1paro -2parp -1partn -1party -par3z2 -pa3s2p -pa4st -2paß -1pat -pat4c -pat4e2 -pa5t4r -1pau -p3auf -pa3uni -1pä -3pä2c -pä3cke -3päd -3pär -3päs -pä4t1e2h -pä4t3ent -pä2t3h -pä2to -pät3s4 -2p1b -2p3c -2p1d2 -pda4 -p2e -1pe. -pe2a -pea4r -pech1 -1ped -pe2en -pef4 -pei1 -2peic -pe1im -pekt4s -2peku -1pel -pe2l3a4 -pel3d -pe2let -pe2lex -pe3li4n -pe4l3ink -pell2a -pell4e -1pem -pena4 -pe3n2al -pen3da -pe4nen -1penn -pe2n1o -3pensi -1pensu -pen3z2 -1pep -pe1ra -per2an -pere2 -1perl -per4na -3pero -pe2rob -per2r1a -5pers -perwa4 -pe3sa -pes3s2 -pe2st -3pet -1pé -4pf. -p2fab -p2fad -p2faf -pf3ai -p2f1ak -pf1ans -p2fa4r -pf3are -p2f1au -4p3fe. -p2fei -pf1eim -pf1ein -p3fen. -p2fent -p3fer. -pf2erw -p3f2es -pff4 -p2f1in3s -p2f3lä -pf3lei -pf3lie -pf3lo -pf3lu -p2for -pf3r -pf1ra -2pfs2 -pf3sl -pf3sz -2pf3t -2p1g -pgra2 -1ph -4ph. -ph2a -2phä -2phb -4phd -2p1hei -phen3d -phen3s -2ph1ers -2phf -4phg -phi2ka -4phk -ph2l -2phm -2phn -p3hop -2phö -ph4r -2phs -ph3t2 -2phthe -phu4s -2p1hü -2phz -pi2a3 -pias4 -pi3as. -pi3chl -p4id2 -piegelei8en -pi2el -piela2 -3pier -3pik -1pil -pi3le -pil4zer -pin2e -pingen4 -ping3s -3pinse -pi2o -pi3oi -pi3onu -3pip -pi2pe -pi3ri -3pirin -3pis -4piso -pi3t2a -pi1th -pit2s -pi2z1in -p1j -2p1k2 -pku2 -pkur1 -1p2l4 -2pl. -3p4la -p5la. -p5lad -plan3g -3plä -2ple. -ple1c -p4leg -p4lem -3ple5n4 -2plig -p4lik -p4liz -p4lo -2p3lu -2p1m2 -2p1n -1p2o -po3b4 -po1c -3pod -2p3oh -po2i -po3id -3poin -3pok -3p4ol -po2lau -po3li -po4lor -2pond -po1o2b -po2p3ak -po2p3ar -po1pe -po2pl -po3pt -po1ral -po1rau -2porn -por3s -por4tin -por4tre -por6tri -pos2e -po4sta -pos4t3ag -po4stä -po2s3te -post3ei -po2sto -pos6tr -post3ra -po3ta -3pote -po2t1u -po2w -po3x -pö2bl -pö2c -2p1p -p2p3a2b -pp3anl -ppe4ler -ppe2n1 -p2p1f4 -p2p1h -p3p2ho -pp3l -pp5lan -pp1lä -p2ple -p2p3ra -p2p3re -p2pri -pp3sa -ppt2 -p2r2 -1prak -1prax -p4rä -1präd -1präg -3präm -3präs -2pre. -2prec -1pred -pre2e1 -1prei -3preis -2p3rer -3p4res -pri4e -2prig -1prinz -1p4ro -3prob -2proc -3prod -3prog -3proj -2pross -pro1st -3prot -1prüf -2prün -2p1s -4ps. -ps4an -p3se -p3s2h -ps1id -p2sö -ps2po -p2st -p3sta -p3stea -p3stel -p3s2ti -pst3r -ps2tu -p3stü -3p2sy -ps2ze -2p1t -pt1a -pt2ab -pt3alb -pt3at -p3te -p4t3ec -p4t1ei -pte4l -p4tele -p4t1ent -pt3erei -p4t1erw -p4t1erz -p2th -pt1in1 -pto3me -p4tos -pto2w -p2t3r -pt3s2 -ptt2 -pt1um -pt1urs -ptü4 -3p2ty -pt3z -1pu -pu1a -pub4 -2puc -pu2dr -2p1uh -pul2sp -2pund -pun2s -2punt -2pur -pu2s3t -3put -put2s -1püf -2pül -pün2 -2p1v -2p1w -pwa4r -3py1 -pys4 -py3t -2p1z -qu4 -1queu -1ra. -ra2ab -2r3aac -r3aal -ra3ar -r1ab -ra2bar -rab2bl -2rabd -r2aber -2rabf -2rabg -1r4abi -ra2br -2rabs -2rabt -2r3abw -1raby -ra1ce -2r1acet -ra4cheb -ra4chin -racht3r -rach6trä -ra2chu -r2ack -r2ad -r4ad. -rada2 -ra2dam -2radap -3radf -3radl -r3a2d3r -rad5t -1rae -r2af -raf3ar -ra2fer -ra3ge -ra3gle -ra2gn -3r2ahm -4raht -2raic -rail4l -2r3air -1rake -3ra1k4l -ra2kre -ra2kro -2rakti -3rakü -r2al -r4al. -ra2la2 -ral3ab -rala4g -r3alar -ral3b -3r4ald -ra3le -2ralg -r4ali -rali5er. -rali5ers -ralk2 -ral3la -rall2e -2rallg -2r3alm. -r3alp. -2ralpe -r4als -r3al3t -r4alt2h -ra2lu -3raly -rama3s -ra2mer -1r2ami -r2amm -ram4man -ram6m5ers -ram4m3u -ram2p3l -2r1amt -ramt4s -r2an. -4ranc -r4anda -r4ande -ran4dep -ran4d3er -rand3s -4r3anei -r4aner -2ranf -1rangi -rani1e -ran2kr -2ranl -2r1anm -2r1anp -2ranr -r2ans. -r2ansp -ran4spa -2rantr -2r3anw -r2ap -2rapf -r1ar -r2ara -2rarb -3rarei -rar3f4 -ra2r1in -r2ark -r2arp -2r3arz -r2as -r4as. -ras2a -ra4schl -2r3asph -2raß -1rat -r4at. -ra2t1a -r3atl -rat4r -rat2st -2r3atta -4rau. -3raub. -4raud -rau3e2n -2rauf -2raug -3raum -rau4m3ag -rau4man -rau2mi -3rausc -2rausg -rau2sp -2raus5s -raut5s -1raü -r2ax -3r2äd -4räf -4räg -2räh -2räm -3rän. -3räni -3räns -2r1är -r2är. -rä3ra -rä2s1c -3rätse -rä2u -räu2s -räu5sche -4räut -2r1b -r2b1ab -r2b1a2de -r2bak -rbal3a -rba3re -rb1art -rb1auf -rbb2 -rb1ech -r4belä -rb1ent -rbe3r2e -r3b2la -rbla2d -r8blasser -r4b3last -r3blä -r2ble. -rb3ler -rb2lin -rb2lö -rb2o -rb4ri -rb2s -rb3se -rb4sei -rb3ska -rbs1o -rb3sp -rb4stä -rb3str -rb2u -rby4t -2rc -r1ce -r1che. -r1chen -r1chi -rch3l -rch3m -rch3r -rch1s2 -rch3sp -rchst4r -rch3ta -rch6terw -rch1w -r1ci -r2ck1 -r1cl -r1ç -2r1d -r3d2ac -r2daf -r2d1ak -r2d1al -rd2am -rdani1 -rd1ant -rd1anz -r4dap -r2dei -rd2ei. -r2d1elb -r3den -rden3d -rden4gl -rde3re -rder4er -rderin6s -r4d3ernt -rde3sp -rdi3a2 -rdia4l -r2d1inn -rd1it -rdo2be -r3don -rd1os -r2dö -rd3rat -rd4ri -rdt4 -rd3ta -rd3th -rdwa4 -1re -3re. -re3aler -re2alt -re2am -re3as -re3at. -re3ats -2reä -re2b1a -re2b1l -reb1r -reb3ra -re2bü -r2ech -rech3ar -4rechs -2reck. -2recki -4redd -2redit -re1el -re1er -3refe -4reff -3refl -3refo -3reg -5reg. -rege4l3ä -re2hac -re4h3ent -re2h1i -rehl4 -re2h1o -r2ei. -rei4bl -r2eie -2reig -3reigew -rei3l2a -rei3l2i -reim2p -r1ein -rei3nec -4reing -r3eink -4reinr -rein8s7tre -re1in2v -reister6 -3rek -4re2ke -re3la -2r1elb -rel2e -re3lei -2re2lek -2r1elf -re3lo -2r1elt -relu2 -r4em. -r2emi -4rempf -4remu -r4en. -r2ena -rena2b -re3nal -re2nä -3rendi -ren3dr -re4n3end -ren4gl -2rengp -re2ni -r1ense -2r1entl -2r1ents -2rentw -4r3entz -r2enz -re3or -3repe -3repo -4repp -3r4er. -2r1erb -r2erbr -2r1erd -r1erf -r1erg -r4ergen -r1erk -4r3erken -r2erki -r1erl -4r3erlau -2rerlö -2r1erm -rer2n -2r1ernä -4r3erns -4r3ernt -r2ero -re2rob -r1erö -3r2ers. -2r1ersa -r2erse -2rersp -r1ert -r2erte -2rertr -2r1erz -rer5ze -r2erzy -3r4es. -re2sa -3rese -3reso -2ress -ress2e -res6s5erw -3rest -re1sta -re2s2tu -3resu -re2thy -re2u -reu3g2 -2reul -re3uni -2r1eur -2reü -2r3evid -r1ew -rewa4r -re2wi -2r3e2x1 -3rez -4rezi -1ré -2r1f -rf1ält -rf2äu -r2fent -rf2es -rfi4le. -rf3lic -rf3lin -rf4lö -r3flü -rfolg4s -r3for -rf4ru -rf4rü -rf2sa -rf2s1ä -rf4s1id -rf2s3pr -rf2s3t -rf2ta -rf3t4r -rf2u -4r1g -rg2ab -r2g1a2d -r2g1ah -r2g1ak -rg2an -rge4an -rge2bl -rge4l3er -rgen4z3w -rge4ral -rge4tap -r2geto -rgi4sel -r2glan -r2gleu -r2glig -r2gno -r2g1ob -r2g3ral -r2greg -r2gres -r2gret -rg3rin -rg3s2p -rgs4tr -rg5s2tu -r1h4 -2rh. -2rha -r2ha. -2rhä -3r4he. -3r4hen -r3her -r2hoe -rho2i3 -2rhol -2rhö -2rhs -rhu2s -1ri -ri3am -ria1s -ri3at -rib2bl -ri1ce -ri1cha -rid2 -ri2d3an -2ridol -r2ie -rie2fr -ri1el -riene4 -rien3s -rie2nu -ri1er. -ri4ere -ri3ers. -ri3esti -ri1eu -ri2f1a -ri2f1ei -ri2fer -ri2f1o -ri2fr -rif3s -rif4ter -3rig -5rig. -5rige -ri4gene -5rigj -rig1l -4rigr -rik1l -ri4kla -r2imb -2rimp -rim2s -rim4sc -r2i3na -2r1ind -rin4dex -rin4diz -ri3n4e -rine1i -2r1inf -rin2fo -ring3l -rin2gr -2r1inh -2rinit -2rink -3rinn -6r5innenm -4r3inner -4rinnta -r1innu -2r1ins -3r4ins. -rin4so -rin2sp -r4inspi -2rint -rin4teg -rin4t5r -r1inv -r2inva -2rinve -4r1ir -r2is -ris2a -ri4scho -ri4schw -3risik -ri3so -ri4s1p -3riss -ri2st -ris6t5ers -r2it -r3i2tal -ri3t2i -rit4r -rit2tr -5ritu -rix1 -1rí -2r1j -2r1k -rk2am -r2käh -r3klau -r2klis -rk4lo -rk2lu -rk4n -r2k5nu -rk3räu -r2k3rea -r3kri -rk3rin -rk2s1e -rk3shi -rk2sp -rk1st -rkstati6 -rk4stec -rk2ta -rk4t3eng -rk4t3erf -rkt3ers -rk6tersc -rk4t3erw -rk2tin -rk2t1o2 -rk2t3r -rk3tra -rk4tri -rk1uh -rk2um -rku2n -rk1uni -4r1l -r3l2a -rl2e -rle2a -r3lec -rle2i -r3let -r3l2i -rli2s -r3l2o -rl2ö -rlös3s -rl2s1p -rl3ste -rl2s3to -rl3t -4r1m -r3m2ag -rma2la -r2m1ald -rm1ans -rm1anz -rm1a2p -r2maph -rm2är -rm3d2 -r3me. -r2m1ef -r2meo -rm2es -r2mide -r2m1im -r2m1o2ri -rmo1s -rm3sa -rm3sta -rmt2a -rm2u -rm3ums -4rn -rna2b -rna4n -rn2and -rn3ani -r2n1anz -rn2a2r -rn3are -rn3ari -r2nau -rnd4 -rn3dr -r3ne -rn3e4ben -r4nef -rn2ei -rn3eif -r4n3eis -rne2n -r4n1ene -rn3ense -r4nerf -r4n1erg -rn4erhi -r4nerk -r4n1ert -r5nes -rn2et -r4nex -rn3f -rng2 -r3ni -r4n1in -r3nod -r2n1op -r2n1or -rn1ö -r1nöt -rn3s2ä -rn3s2p -rn3s2z -rn3t2e -r1nu -rn1ur -r1nü -r1ny -ro2bei -2robj -3robo -2robs -ro1c -3rock. -r2o3de -ro3e4 -2rof -roh1l -roh3na -3r2ohr -3roi -ro1ir -ro3le -rol4lan -rol3l4en -rol3s -2roly -4rom. -ro2mad -ro2mer -4romm -4romt -r2on -3ronn -rons2 -ron4tan -ro1ny -ro1pe -ro3ph -r1or -r2ora -ror3al -ro2rat -ro2rei -ro2r1o -ror3th -ro3sh -ro3s2i -ro3smo -ros2p -ros2s1c -ro3st2a -rost1r -4roß -ro2ßu -ro4tag -rote3i -ro2tho -ro4tri -rots2o -rot2ta -ro3t2u -ro3unt -3rout -2rox -rö2b3l -rö2du -2röf -4rög -1r2öh -r1ök -1r2öl -3römi -4röp -r1ör -r2ös. -r2öse -2r1p2 -rp4a -rp4e -rpe2re -rpe4r3in -rpf4 -r2pli -r3po -rpro1 -rps3t -rp3t -r3pu -r1q -2r1r -rr2ab -rr2ar -rr1äm -rrb2 -rr1c -r3r2e -rre4ale -rrer4s -rre2st -r4rew -rr2he -rrik2 -rr2n3a -rr2o -r2r3ob -rro3m -rr2st -rr3stu -rr2th -r3ru -r3r2ü -rrü1b -4r1s -rs3ab -r2s1a2d -r4samp -r4s1amt -rs2an -r2s3ang -rs3anp -rs3ant -rs3ar -r3sch2e -r6scherl -rsch2l -r3schu -r3schw -r2sein -rse2n1 -rs2end -rse4ne -rs1ere -rs1erö -rs1ers -rs1erz -rs1eta -r3sho -r3si -rs2kal -rs2kan -rs2kie -rs2kis -rs2kl -r4sko -r4skr -r4sku -rs3l -rs4no -r3so -r4sob -r4s1op -r4sord -r4s3ort. -rs2p4 -r2s3ph -rs3s2 -r4stant -rs2tec -r6st5eing -rs4temp -rs4terb -rs4t3er4w -rs2th -rs2ti -r3stie -r2stin -rst3ing -r2stip -r3sto -rs4tob -r4stot -r3stö -r3s4tr -rst3ran -r6strang -rs2tu -r3s4tü -r3swi -r3sy -4r1t -rtal2 -r2t1alm -rtals1 -rt1am -rt1ang -rt1ann -rt1ant -rt1anz -r2t1ar -rt3a4re -r2t3att -rt1är -rte1e2 -rt4eif -rtei3la -rtei1s4 -r2telf -r2temo -rte2n1 -rten3s2 -rt3erei -r4terfo -r4t3erh -r2t1erk -r4t3er4la -r4t3erle -r4t3ernä -rter4re -rt1ers -rte3s2k -r2thi -rt3hol -rt2hum -r2t1id -r2t1ima -r2tinf -rto1p -rt1or -rto2ri -r3tö -r4trak -rt3rec -r4treis -r5tri -rt1ros -rtrü2c -r4ts -rt4s1eh -rt2so -rt2spa -rt2spr -rtt4 -r2t1urt -r3tü -rt3z -1ru -ru1a -ru3a2r3 -rube2 -ruch3st -ru6ckerl -ru2cku -rude2a -ru2dr -3ruf -ru2fa -ruf2s3 -4rug -2r1uhr -3ruin -ru1ins -ru1is -2rum -4rumf -ru2mi -4ruml -r2ums. -4rumz -2r1una -2rund -run2d1a -r2unde -rund3er -run6derl -run6ders -run6derw -2r1unf -2rungl -2r1u2ni -4r3unio -run2kr -2r1unl -2r1unm -4runn -4r3unt -2runw -ru3pr -4r3ur -ru2ra -ru2r1e -5ruro -ru2si -rus2s1p -rus4st -ru2st -ru3sta -3rut -rut3h -ru2t1o2 -ru2t3r -4ruz -ru2zw -1rü -2rüb -rü1ben -rü1ch -4rümm -2r1v -rve4n1e -2r1w -rwun3s -4r1x -1ry -ry2c -2r1z -rz1a2c -rz2an -r2zar -r2zas -r5zene -rz1eng -r4z3ents -r2z1erf -r2z1erg -r2z1erk -r2z1erw -rz1id -r3z2of -rz1op -rz2ö -rz3te -rz2th -rz2t3ro -rzug2u -r3zwä -r3z2wec -1sa -3sa. -3saa -2s1ab -sa2be -3sabet -sa2bl -sa3ble -sa2br -4sabs -sa2cho2 -sach3t -2s1ada -s1adm -2s1a2dr -3safa -sa2fe -2s3aff -3safi -sa1f4r -3saga -sa4gent -sag4n -sa2gr -3sai -sa3i2k1 -sail4 -2s1ak -sa2ka -3saki -3sakr -4sakt -3s2al. -sa4l3erb -sa2l1id -3salo -sal2se -2s1alt -3s2alz -3sam -s3ameri -5samm -6s1amma -4s1amn -s1amp -sam2to -s1an -s2an. -2s3a2na -s3anb -s2an2c -s2and -s4and. -san4dri -3sang. -2s3anh -3sani -2s3anl -2s3ans -san4sk -4s3antr -2s3anw -2s1ap -sa2po -3sapr -2s1ar -3s4ar. -3s2ara -4s3arb -3s2ard -3sari -s3arr -3s2ars -4sarti -s1asp -4s3a2sy -3sat -sat2a -4s3ath -4s3atl -4satm -sa2tr -sa3ts -sat4z3en -s1a4u -3sau. -3sauc -3saue -2s3aufb -sau2gr -3saum -3saur -sauri1 -2s3ausb -3s2ause -s3ausw -2s3av -sa2vo -1sä -s3ähn -3säl -s1ält -2s1äm -2s1änd -3sänge -2s1är -3s2ät -3säul -2säuß -4s3b4 -sba4n -sbe3r2e -1sc -2sc. -2scam -s2can -s2cap -2scar -2s1ce -6sch. -2schak -s4ch2al -4schanc -4schang -2schao -s4chä -4schb -4schc -2schd -3sche. -2schef -sch3ei. -4schemp -sch2en -3sches -4schess -4schex -2schf -2schg -2schh -schi4e -s4chim -4schiru -3schis -2schk -s4chl -4schle. -6schlein -sch6lit -2schmö -2schn. -2schox -s4chö -2schp -2schq -4schre. -4schrin -sch3rom -4schrou -6schs -schs2e -sch3s2k -4sch3t -scht2a -scht4r -s4chu -4schunt -sch2up -3schü -2schv -4schwet -sch4wil -2schz -2scj -4s3cl -2sco -3s4cop -3sco4r -s2cr -2scs -2scu -4s3d2 -sda3me -sde1s -sdien4e -sd4r -1se -se3at. -2s1e2ben -seb4r -2s1echo -s1echt -2s1e2ck -3see -se1ec -se2e1i4 -see3ig -seein2 -se1er. -se1erö -2s1eff -se2gal -se2gl -seg4r -3seh -se2h1a4 -se3he -se4h1ei -se4hel -se4herk -se2hin -seh1l -seh3re -seh1s -seh3t -se2hüb -2s1ei. -2s1eig -s1ein -5s4ein. -2seinb -sein4du -sei3n2e -sein4fo -4seing -2seinh -4seink -2seinl -2seinn -4seinr -s4eins. -4seinsp -4seinst -2seinw -4s1eis -3s2eit -3s2ek -s2el. -se2l1a -se3lad -sela4g -se3lam -sel1ec -4selem -se4l3erl -sel3ers -2self. -s3elix -se2l3ö -s2els -sel3sz -sel3tr -s4e3ma -2s1emp -3s2en. -se4nag -se2nä -2s1endl -sen3gl -3s2eni -3senk -se2no -se4nob -3s2ens -s2ent. -4s1entf -2s3entg -s2enti -2s1ents -2sentw -2sentz -se2n3u -seo2r -4s1e2pos -3seq -s4er. -3sera -ser3a2d -se2r3al -se5ref -s3ereig -6sereign -se4r3eim -se4r3enk -ser2er -2s1erfo -s2erfr -s3erfü -4serfül -ser3g -s2ergr -s1erh -2serhö -3seri -4serken -2s3ernt -se2rob -4s3eröf -s2ers. -2sersa -4serseh -s4ert. -s2erta -seru2 -se4r1uf -se3rum -se3rund -3s4erv -5ses. -se2sel -se1sta -se3su -3set -4se4tap -se2tat -4s1e2th -se1u2n -2s1ex -se2xe -4sexp -sex3t -1sé -4s3f4 -sfal6l5er -sflo4 -4s3g2 -2s1h -sh2a -3s2ha. -sha2k -4s3han -1shas -s3hä -s3h2e -3shi. -3shid -shi4r -sh3n -s3hoc -4shof -3shop -sho4re -3show -s3hö -sh4r -1si -si2ach -si3ach. -si2ad -si3am. -2siat -sib4 -5si1c -2s1i2deo -s2ido -3s4ie -siege4s -sien3 -si3ene -si1err -sie2s -si1f4 -3s4ig -si2g1a2 -sig4n -si3gnu -si2g3r -sig4st -si2k1ab -si2k1ä -sik3erl -si2ki -si4k1l -si2kr -sik3s -sik3t4 -si2ku -3silo -2s1imm -si3n4a -2s1ind -2s1inf -sing1a -sin3gh -sin3g4l -sin2gr -sing3sa -4s1inh -sin1i -sini1e -2s1inq -2s1ins -2s1int -4s1inv -3sio -sion4 -3s2is -si2sa -si4schu -si2s1e -si2s1o -si2s1p -sis3s -3s2it -si2tau -sit3r -si2tra -si3tu -siv1a -sive3 -si2vr -1sí -2s1j -2s1k2 -4sk. -3skala -4skam -4skanz -s3kar -4skas -ska4te. -4skateg -ska4tes -4skb -s4kep -3s2ki. -s2kif -s2kig -3s2kik -4skir -ski1s -3skiz -sk4l -4s3klas -sk4n -4skom -4skor -4skow -4skö -4sks -4sk3t -3skulp -2s1l2 -3slal -4slan -s2law -s3lä -sl3b -s3le -sler3s -s3li -3s4lip -sli4tu -s3lo. -slo3be -s3loe -2s3m2 -2s3n4 -4sna -snab4 -sni3er. -sni3ers -4s5not -4snö -1so -3so. -so4a -2s1o2b -so1c -so3et -3soft -3sog -s1o2he -4sohng -2s1ohr -3sol -so3la -so4l1ei -sol4ler -4so2ly -3som -3s2on -son3au -sone2 -son5ende -son3sä -so2ny -so3o -2sopf -3sor. -so1ral -s1orc -2s3ord -so2rei -2s1orga -5s2orge -2s1o2rie -so2r1o2 -3sors -so4ru -3sos -s4os. -4s1ost -so3unt -3sov -4s1o2ve -3sow -2s1ox -3soz -1sö -sö2c -sö2f -2s1ök -2s1ö2l -s1ös -1sp2 -2sp. -2spaa -2spak -s2pan -spani7er. -2spap -2spara -2sparo -3sparu -3spaß -2spau -s2paz -s2pä -3späh -2spär -s2pee -2spel -4spensi -spe3p4 -2s1peri -2sperl -s2perr -2spers -2spet -3s2pez -4s3pf -2spha -s3phe -2sphi -3s2pi4e -4spier4 -spi2k -4spil -3spio -4spip -4spis -2spl -4spla -4splä -3s2pli -s3p4lu -s3pn -2spod -2spog -s2poi -2spok -4spol -4s3pos -s2pott -4spr. -s2prac -s2pran -2sprax -2spräm -4spräs -3s4prec -2spred -2spres -2sprob -3spross -3spru -2sprüf -2s3ps -2spt -2spun -2spup -3spur -4sput -4spy -2s1q -4s3r4 -srat2s -srat4sc -sret3 -srö2s1 -srücker6 -srü2d -6s1s -ssa3bo -ss1a2ck -s5saf -s3sag -ss1aj -s3sal -s4s1ala -s4s1alb -s4s3amt -s4s3ang -s2sano -s4sans -ss2ant -s4s3anz -s3sa1s2 -ss3att -s3s2ä -s4sce -s4sco -ss1ec -s2s1ega -sse3ha -sse3inf -sse3in4t -sse6r5att -ss1erö -ss3erse -s3s2es -sse3ta -ss3l -ss1off -ssoi4 -s2s1op -ss1ori -ss2po -s2spro -ssquet4 -ss3s4 -sst2a -s3stel -ss2th -ss2ti -ss4tip -ss2tur -s3stü -ss1ums -s1t -6st. -s2ta -4sta. -3staa -2stabb -st2ac -3s4tad -3staff -2stag -3stah -2stak -2stale -s3ta3li -2stalk -st1alp -st1ami -4stan. -sta4na -3stand -2stani -4s3tann -2stans -2stanw -s4tar. -4stari -s4t2ars -s3tat. -s4tau. -2stauf -2staum -3staur -2staus -3staus. -2stax -3s2tä -4stäg -4stält -s4tänd -5stätt -s3täus -2stb -2st3c -2std -st2e -4s5te. -2stea -4stechn -s2ted -4stee -3s2teg -ste2gr -3s4teh -s2te2i -3steig -4steil -3steilh -stei4na -1s2tel -2stel. -stel4l3ä -2steln -2stels -2stem -4stem. -ste4mar -4sten -s5ten. -s4t3ends -s4t3engl -st4ens -s4t3entf -s2tep -2ster -6s5ter. -ste6rers -4sterm -3sternc -4stes -s4t3ese -stes6se. -ste4st -2stet -s4teti -3s4tett -3s2teu -1steue -4steuf -st3ev -4stex -2stf -2stg -4sth -s4thä -s4thi -s2t3ho -s2thu -2stia -2stib -s2tic -sti2e -2stie. -s2tieg -s2tiel -2stien -3s2tif -2stig -2stik -s2til -3s4tim -s4tinf -s3tinn -st1ins -2stio -1s2ti2r -2stis -st1i4so -1stitu -2stiv -2stj -2stk -4stl -4stm -2stn -s2to -2sto. -s3tob -2sto3d -4stod. -1stof -s4toff -s4t3om -4ston -4stoo -2stopo -2stor. -2store -2storg -2stori -s3tort -2stose -sto3s2t -1stoß -4stote -4stou -2stow -2stoz -1stö -2stöch -2stöt -2stp -2stq -s2tr -2strad -2strag -1s4trah -4strai -4strak -2stral -4strans -3s4tras -5straß -4straum -4s5träg -4sträne -4s5tref -4streib -5st4reif -st3renn -2s4trig -1s4tri2k -2s5tris -st3roll -stro4ma -1stru -2strua -2strug -3struk -4st3run -2strup -2s4t3s4 -2st3t4 -st2u -1stub -4stuc -3s4tud -2stue -3stuf -3stuh -2stum2s -stum4sc -2stumt -stu2n -2stun. -3s4tund -s2t3uni -4stunn -2s3tuns -2stunt -stu3re -st3url -2sturn -2st3urt -2s3tus -1stü -2stüch -2stür. -2stüre -2stürg -2stürs -3stüt -2stv -2stw -3s2tyl -4st3z -1su -su1an -3su2b3 -su4ba2 -4subi -3su1c -su2cha -such4st -2s1u2f -2s1uh -su1is -su1it. -sul2a -sul2i -sult2 -su2mar -su2mau -3s2ume -su2mel -su6m5ents -s3umfe -3summ -sum1o2 -su2mor -s3umsa -s3umst -su2n -3sun. -sun6derh -su4ne -s1unf -2s1uni -4sunt -3s2up -sup3p -su2ra -2s1url -s1urt -s4u2s1 -su3sa -su3sh -su3si -sus3s -3suv -1sü -2sü4b -3süc -sü2d1 -süden2 -3sün -4s3v -2s1w -s3wa -s3we -sweh2 -4swie -4swil -1s4y -syl1 -sy4n3 -2s1z -4s3za -4s3zei -s2zena -3s4zene -4szent -s2zes -4s3zet -s2zis -sz2o -4s3zu -s3zü -4s3zw -2ß1a2 -2ß1b2 -2ß1c -2ß1d -1ße -2ß1ec -2ß1e2g -2ß1ei -ße2l1a -ßen3g -ße2ni -ße2no -ße2ro -ß2ers. -2ßerse -ßer3t -2ß1f -2ß3g2 -ßge2bl -2ß1h -1ßi -ßi2g1a2 -ßig4s -2ß1in -ß1j -2ß1k4 -2ß1l -ßler3 -2ß1m -2ß1n2 -ß1o2 -ßos2 -2ß1p2 -2ß3r2 -2ß1s2 -ßst2 -2ß1t -1ßu -2ß1um -2ß1ü -2ß1v -2ß1w -2ß1z -1ta -3ta. -4taa -5taan -4tab. -ta2b1an -2t1abb -3tabel -2taben -ta4bend -2tabf -2tabg -2tabh -2tabk -3table -2t3abn -ta2br -4tabs -2t3abt -ta2bü -2tabw -2tabz -2t1ac -3tacu -t1ada -tadi3 -2t1a2dr -ta3d2s -3taf. -3taf2e -4taff -t1afg -t1af4r -3t2ag -ta2ga2 -ta2g1ei -4t3a4gent -4ta3gl -t3ago -tag4st -tah2 -tah3le -tahl3sk -ta3i2k -tai2l -ta1ins -tai4r -ta1ir. -t1a2ka -ta2kro -tak6ta -3taktb -3t2aktu -2takz -3t2al. -ta2la -ta3lag -ta3lak -tal3d -3t4ale -ta4lens -tal2lö -3talo -ta2l1op -2talt -2tam -3tame -ta2mer -ta2mi -t1ampl -t1amt -3tan. -t1a2na -2tanb -4t2and -ta3ne -4tanf -2tang -3tani -t2ank -t3ankl -4tanl -2t1anme -4t1anna -t2ano -t1ans -3t2ans. -4t3ansi -4t3ansp -ta2nu -2tanwa -2tanwä -t2anz. -t1anza -tan6zerh -t1anzu -ta3or -ta2pe. -ta2pes -2tapf -ta2pl -2tarb -ta4rens -ta4r3ere -3t4a3ri -4tark -2t1arm -2tart -t1arti -tar2to -ta2ru -2t1arz -3tas -ta3sa -4t1asp -ta2ta2b -ta2tan -ta2tau -tat3ei -ta2tem -ta2t3er -ta2th -tat3he -t3atl -t4atm -ta2tom -4tatue -ta2t1um -2t1auf -4taufg -tau3f4li -4taufn -t1auk -3taum -t1ausb -3tausc -tau6schr -tau6schw -t2ause -4t3ausg -t1ausk -4tausl -4t3auss -4t1ausw -3tav -3tax -taxi1s -1tä -4täb -tä1c -4täd -3täe -3täg -4tägy -2täh -2t1ält -4täm -t1ämt -t1ängs -3tänz -t1äp -t2är. -tä2ru -tä2s -t2ät -4tätt -2täuß -2täx -1tà -4t3b2 -tbe3r2e -tblock5e -tblocken8 -4t1c -t3cha -t3che -tch2i -tch3l -t2chu -tch1w -t4ck -t3cl -t3cr -4t3d4 -tdun2 -1te -3te. -te2a2 -2teak -te3al -te3an -3teba -3t4ebb -4t1e2ben -t2ech -te3cha -3techn -2teck -teck2e -te2cki -te1em -te2en3 -te1erw -te2es -2teff -teg3re -2teh -3teha -3tehä -3t2ei. -t2eie -t3eifr -teik4 -3teil -4teilhe -2t1ein -tein3e4c -t3einge -t3einla -4teinn -t3eis. -t3eisb -5tel. -3tela -te2l3ab -te2l1ac -te2l1au -telb4 -3te3le -tel1eb -tele4be -te4l1ec -te4l1eh -te4lein -2telem -tel1en -te4lerd -te4leu -4t3elf. -3telg -te2l1in -te2lit -3telk -tell2e -5teln -te4lost -te2l1ö -3telp -5tels -tel3s2k -3telt4 -tel3ta -tel3th -3tem. -te2m1ei -te2min -2temme -te2m1o2r -3temper -2tempf -tem3s -te4m1u -3ten -t6en. -ten3a -tena2b -te4na2d -te4na4g -te4nas -te4nau -te2nä -t4enb -ten3da -4t3endf -t6endi -4t1endl -t6endo -4t3endp -ten3d4r -te2n1e2b -te2nef -te3n4ei. -ten3eid -ten3ens -4tenerg -te2net -ten3g -4t1eng. -ten4gla -t4enh -te2ni -te4n3in -t4enj -t4enm -ten3n -tens2e -4tensem -t4enta -t3entb -4tentd -t4ente -4tentn -tent3ri -4t3entw -4t3entz -ten6zerh -ten3zw -t3e2pi -3t4er. -tera2b -te1raf -ter3am -te3ran. -4terbs -4terbt -3terc -4t3erde. -te2re2b -te4r3eif -te2rel -ter3end -te4reng -te4rerk -terer4z -4terfol -t4erfr -4terfül -3ter3g2 -6tergrei -t6ergru -t4eri -te3ria -4terklä -2t1erlö -ter4mer -3termi -ter4n3ar -2ternc -t3erneu -t4ero -t3erö -ter4re. -t4ers. -t6erscha -ter4ser -terst4 -t4erst. -t4ersti -t4erstu -tert2 -teru2 -te4r1uf -ter4wäh -6terwerb -ter3za -2t3erzb -3tes -tesa2c -te2san -tesä2c -te2sel -te2spr -tes3s2 -t2est -tes3tan -test3ei -tes6ter6g -tes6terk -testes4 -te2su -3tet2 -t2et. -te2tat -4teth -4tetl -teu3ere -teu3eri -3teuf -3teum -te1un -3teur. -teu2r3a -te2vi -te1xa -2t3e2xe -2t1e2xi -4texp -3text -2t1exz -4t1f4 -tfi2l -4t1g2 -tger2 -t1h -4th. -2th4a -3t4ha. -t2hag -t3hai -t2hak -3thal. -4t3hau -2t3hä -th2e -1t2he. -3thea -2theb -t2hec -2t3hei -t4hein -t2hek -t2hem -1then -t4hene -t4heni -3theo -2therr -t2hes -3these -t2heu -1thi -t2hik -2t3hil -2t3him -2thk -4th3l -4th3m -2th3n -1t2ho -2t3hoc -t3hof -2t3hoh -t4hol. -t3hor -2t3hot -thou2 -4t3hö -2thp -1th2r2 -4thrin. -4thrins -2ths -2thub -4thun -2thü -2thv -t2hy -1ti -ti2ad -ti3a2m -3tib4 -ti1ce -tiden2 -ti4dend -ti2deo -3tief. -tieg4 -2tieh -ti1el -ti3e4n3 -3ti2er -tie4rec -ti1et -ti1eu -3tif. -ti1fr -4tift -3tig -ti4gerz -3tik -ti2kam -ti2kar -ti3k2er -ti2kin -ti2krä -ti2lar -ti2lau -ti2lei -ti2lel -3tilg -ti2lö -til3s -tilt4 -ti2lu -ti2ma2g -t2imi -tim2m1a -4t1imp -3t2in. -ti3na -t1inb -4t1ind -ti3n2e -t1inf -tin2g1a -ting3l -ting3s -t1in1it -2t1inj -tin2k1l -3t2ins. -4t1inse -2t1int -ti1nu -4t1inv -3tio -ti3or -3tip -ti3pl -ti4que. -ti1rh -3tis -ti4scha -tisch3w -ti2sei -ti2sp -ti1sta -3ti3t2e -2ti3tu -tium2 -3tiv -ti2van -tive3 -ti2vel -ti4v3erl -ti2v1o -ti2v3r -ti2za -2t1j -4t3k4 -4t3l -tl4e -tle2r3a -6t5li -tlung4 -4t3m2 -tmal2 -tmen6t3 -tmo4des -4t5n4 -tnes2 -tnes4s -1to -3to. -to4as -to5at -4tobj -tob2l -to1c -3tocht -to6ckent -3tod -tode2 -4to2d1er -to4d1u -toi4r -3tok -to3la -3tole -4tolz -tom1e2 -to2men -2tomg -3ton -to2nau -3too -to2pak -to2pat -3topo -2topt -3tor. -to1ra -to2rau -to4rän -4torc -t1ord -3tore -to2rel -to3ren -t1org -t3orga -3torin -tor3int -to2rö -3tors -t1ort. -to2ru -t2orw -to3sc -3tose -to4sk -tos2p -4toss -3tost4 -to1sta -4toß -3to3te -to2tho -3totr -tots2 -3t4ou -touil4 -to3un -3tow -2tö -3töch -4töf -4t1ök -tö4l -3tön -t1öst -4töß -3töt -4t3p2 -tpf4 -2t1q -1t2r4 -2tr. -5tra. -3trac -tra3cha -4tract -t3rad. -tra4dem -tra4far -3trag -6trahm -5t4rai -3trak -3tral -3t4ran. -2trand -3trank -t3rann -3trans -t3rase -t3rasi -4traß -5träc -3träg -3träne -4träs -4träß -4t5re. -tre4ale -4treb -tre2br -4trec -t3rech -t4reck -6t3red -5t4ree -3tref -4trefe -4trefo -4treg -t4rei. -3t4reib -4treic -2treif -t3reig -2t3reih -t3rein -t3reis -6treit -t3reiz -2trek -6t3rel -t4rem -t4ren. -3trend -4trendi -t3rent -2trepe -2trepo -t4repr -t4rer -t4res. -t4ret -tre2t3r -t4reu -3treuh -t3rev -2trez -5t4ré -2t3rh -3tri -4tric -2trid -5trieb -tri4er -5trigg -t3rind -4tring -tri3ni -4trinn -t4rip -4tript -tri2x -trizi1 -3tro. -3troe -3t4roi -tro2ke -4trom. -tro2mi -4troml -3tron -2t3roo -t4rop -3tropf -3troy -t3röc -2tröh -3trös -2t3röt -3trua -4truk -trum2 -trums1 -2trund -3t4runk -5t4rup -tru2th -t4rüb -trü1be -trü1bu -2t3rüc -trücker6 -t4rüg -try1 -2ts -4ts. -t4sa4b -t3s2ac -ts1ad -t2s1ah -ts1al -t4s1amt4 -t2san -t4s3ar -ts1as -t2sau -t2s1än -t3s2cha -t4schar -t3sch2e -t4schef -ts4chem -tsch4li -t4schro -ts4cor -t2s1e2b -t3seil -t4seind -ts1em -tse2n1 -t2s1eng -t2s1ent -t2s1er -t4s3esse -t2s1i2d -ts1ini -t2s1ir -ts3kr -t1slal -ts1o -tso2r -t3sou -t2sö -t3spal -ts1par -ts4pare -t2spä -ts2ped -t3spek -t2sph -t3s2pi -t2spo -t3s2pon -t3s2por -t4sprei -ts3s4 -t1st4 -t4stag -ts3tak -ts4tal -ts3täti -t2s3tep -t3s4tero -t2stip -t4stit -ts3toc -ts3tor -ts3trad -t4stran -ts3trau -t2s3trä -t4streu -t2stri -t4strop -t2s3trü -ts2tu -t2s1u -1tsub -t3sy -4t1t -tt1ab -tta2be -tt2ac -t2t1ad -tta6gess -tt1ak -tt2al -tt2ant -tt1art -tta1s -tt1ebe -tt1eif -tt1eis -t3tel -tte2la -tte4leb -tte4len -ttel1o -ttes1 -tte2sa -tte2sä -t4teti -tt2häu -t2t3ho -t3ti -t3to -tto1s -t3tö -t3tro -tt3ru -tt3rü -tt2sen -tt2sor -tts1p -tt2spe -tt2spr -tt2sti -ttt4 -t3tu -tt2un -t3tü -1tu -tu1alm -tu3an -2tub -3tuc -tu2chi -2tud -3tue -4tuf -tuf2e -tu3fen -t3u2fer -tuff3 -2tuh -2tuk -t3u2kr -tul2a -t2um. -3t2ume -2t3umf -2t3umg -2t3umk -2t3umr -tum2si -tum2so -tums5tr -2t3umt -2t3umz -3tun. -2t1una -2t1und -3tune -2t3unf -3tung -t3unga -tung4s5 -2tunif -2t1u2nio -2t3unt -t1up. -tu2r1a4g -tu2rä -tur1c -tu2re. -tu2rei -tu2r1er -tu2res -tu2r1e4t -turin1 -3turn -tu2ro -tu4ru -tu2sa -tu4schl -tu2so -tu3ta -2tü -4tüb -3tüch -tück2s -3tüf -3tüm -3tür. -tür1c -3türe -3türg -3tür3s -3tüten -4tütz -4t3v -4t3w -twa2 -twi4e -1ty1 -3typ -ty2pa -tys4 -4t1z -t2za4 -tz1ag -tz1al -tz1ar -tz1au -tz1ä -t3ze. -t2z1e2c -t2z1eie -t2z1eis -tze4n1 -tz2ene -tz3ents -tz1erl -tz2ers -t3ze2s -tzgel2 -tz1ind -tz1int -t2zor -tz2ö -tz2th -tz2tin -tz1wä -tz1wi -tz1wu -2ua -u1a2b -u1a2c -uad4r -u1al. -ua2lau -u1alb -u3alet -u1alf -u3a2lo -u1alr -u1als -u1alt -ua2lu -u1am -u1ans -u3ar. -uara2b -u1ars -ua3sa -ua2th -uat2i -u3au -u1ay -u1äm -u1äu -2u1b -u2be2c -u3b4i -ubi3os. -ub2l -ub3lic -u2b3lu -u2bop -ub1r -ub3rä -u2b3rit -ub2san -ub2s1o -ub2spa -u2büb -2uc -uc1c -u1ce -uch1a -u1cha. -uch1ä -u1che -u2ch1e4c -uch1ei -u3ches -u1chi -uch1il -uch1in -uch3l -uch3m -uch3n -u2ch3r -uch2so -uch4spr -uchst4 -uch4tor -uch2t3r -u1chu -uch3ü -uch1w -u1ci -u2ckem -u4ckent -u3ck2er -u2cki -u1cl -2u1d -u3d2a -uden3s2 -uder2e -udi3en -uditi4 -u2don -ud3ra -u3dru -2u1e -ue2ck -u2ed -ue2en -u2eg -u2ela -ue2le -ueli4 -ue2mi -uen1 -ue2nä -ue2ner -uenge4 -ue2ni -ue2no -uen2zu -u2ep -ue2r3a -ue2r1ä -u2ere -u3ereh -ue3reig -u3erer -ue4rerg -ue4rerk -u3erex -uer3g2 -u4erinn -u3erin4t -uer2ne -uer4ner -uern3s4t -ue2r3o -u3err -uer3sc -uer3t2 -u3erum -u3erunf -u3erunt -ue2ta -ue4tek -u3fah -uf1ak -uf3ar -u3fas -uf1au -u2f1äs -u2f1ä2ß -u2f1ei -u2f1em -u3fen. -u2fent -u2f1erh -u4ferle -uf2ern -2uff -uff4l -uf2fro -uffs4 -uf3l -u2fob -ufo2r -uf1ori -uf3r -uf3sä -uf4sin -uf4so -uf2spo -ufs3tem -uf2t1eb -uft3s2 -u2fum -2u1g -u4gabte -ug1af -ug1ak -u2g1ap -uga4s -ug1au -ug3d2 -u2g1ei -u2g1erf -u2g1erl -ugge4st -ug3hu -u2g1l -ug3lad -ug3lo -u3g2lö -u4glu -u2g3n -ugo3 -ug1or -u2gö -u4g3reis -ug3ro -ug3rüs -ug3se -ug4ser -ug3si -ug3spa -ug4spr -ug4spu -ug5stä -ug3str -ug3stü -u2gü -u1h -2uh. -uhe3s6 -uh1la -uh1lä -uh2li -uhme4 -uhr1a -uh2rer -uh3ri -uh4rin -uhrt4 -uh2ru -uh4rü -uh1w -2ui -ui2ch -u1ie -ui1em -u3ig -u4ige -u1in. -u3isch. -u3ischs -uisi4n -ui4s5t -u1j -uk2a -u3käu -u1ke -u1ki -u1k2l -ukle1i -uk4n -uk2ö -u1k4r -uk2ta -uk2t1in -uk2t3r -u1ku -uku2s -u1l -ul1ab -ul1am -ula2s -ul1äm -ulb4 -ul2dr -uld2se -u2l1el -ule4n -ul1erf -ul1erh -ul1erw -ule2sa -ule2t -ul1eta -u2lex -ul3f4 -ulg4 -uli2k -ul1ins -ul3ka -ul2kn -ull2a -ul2les -ull3s -ulm3ein -ulo2i -ul1or -ul2p1h -ul2sa -ul4sam -uls2th -uls3z -2ulta -ul3th -ul4tri -ult3s -u2lü -ul2vr -ulz2w -u2m3a2k -um1all -um1anz -u2m1art -u2m1aus -u2maut -1um3d2 -um2en -ument4s -umer2a -u2m1erg -u2m1erl -u2m1erw -1umf -1umg -um1ins -um1ir -1umk -1um3l -4umm -umm2a -umpf4li -um2p3le -1umr -3umsat -um4ser -um2sim -um2s1pe -um2su -um3t2 -um2un -u2m1ur -1umz -un1 -4un. -2una. -1unab -un3ac -un4al -u3n2am -u2n3an -2un2as -un3at -1unda -un4dab -1undd -un4dei -un4d3erf -und5erha -1undf -2undg -un2did -1undn -un2dor -un2d3r -4unds. -und3sp -und3st -un2d1um -1undv -1undz -u3ne -une2b -une2h -un2ei. -un3ein -unen2t -un4es4 -1unget -1ungew -ung5h -1unglü -un2g1r -ung3ra -ung3ri -ung4sa -un2id -un3ide -1u2nif -unik4 -un2im -uni2r -2unis -un3isl -u3n2it -3u2niv -2unk -un2k1a2 -un2kei -unks2 -unk4tit -unk2t3r -3unku -unna2 -un2n3ad -un3n2e -uno4r -un2os -1unr -uns2 -2uns. -un3se -1unsi -un3sk -un3sp -uns4t1r -1unt -un3ta -unte4ri -un3tr -unt3s -2untu -unvol2 -unvoll3 -1unw -2unz -2uo -u1o2b -u3of -u3or. -u1or3c -u3ors -uos2 -u1os. -uote2 -u1pa -u1pe2 -uper1 -up2fa -u2pf2e -u2pf1i -u3pi -up2pl -up2pr -u1pr -up4t3a2 -upt3erg -upt1o -up4tr -u1q -2ur. -u1ra -u2rab -u3raba -ura2be -u2r3a2m -u2r1ana -ur2anb -u2r1ang -ur2anh -u2r1an5s -u2rar -ur3a4ren -u2r3att -u2r1au -2u1rä -ur1än -ur3b2a -urch1 -urd2 -ur3di -2ure -ur1eff -u2rele -ure4n -u4r1ep -ur1erh -ur1erw -2urf -urf3t -ur2gri -urgros4 -urg3s4 -uri2c -ur1im -ur1ini -ur3ins -ur1int -u2rinv -urk2s -1urlau -4u1ro -u3rol -uro1s -u1rö -ur3p -ur3sac -ur2san -ur2sau -ur2ser -ur4sin -urst4r -ur4sw -ur3s2ze -urt2 -u3ru -urü2 -ur2za -ur2zä -ur2zi -ur2zo -ur2z1w -2us -u4saf -us4ann -u6schent -usch5wer -u2s1ec -u2s1ei -u3seid -u3sep -use1ra -u2serp -u2s1ese -usi3er. -usi5ers. -us3kl -u4sko -us3oc -u3soh -u2s1op -us1ou -us3part -u2s1pas -u2spat -us1pe -u3s2pek -us1pic -u5s4piz -u2spo -us2por -u2spu -us4sez -us2sof -ust3abe -u1stal -us3tau -us2th -ust2in -us3tr -u5stras -us6tris -u1stu -u2stun -u2stur -us2ur -u2sü -2u1ß -2u1t -ut1alt -ut3a2m -u2t1ap -u2t1ar -u2tär -u3te -ut1eg -ute4ge -ute2n1 -u2tent -uter4er -u4t3ersa -ut2es -ut2et -u4tev -u4t1ex -utfi4 -ut2he -u2thi -u2t3ho -u2thu -uto1 -uto4ber -uto3c -ut1opf -u2tops -ut4or -utos4 -u3tö -ut3rea -ut3rü -ut3s2a -ut2s1ä -ut4schl -ut4schm -ut4schö -ut2spa -ut3te -ut5t4l -utts2 -utu4re -utu5ru -u3tü -utz3eng -ut2zin -ut2zo -ut2z1w -2u1u2 -uufe2 -u1ü2 -2u1v4 -u2ve. -uve3rä -u1w -2u1x -ux2e -ux2o -ux3t -u1ya -2u1z -uz1we -uz3z4 -1üb -2übc -2übd -übe2 -übe3c -über3 -üb3l -üb3r -üb2s3t -2üc -ü1che -üch3l -üch2s1c -ücht4e -ü3cken -ück1er -ück3eri -ü4ckers -ück4spe -2üd -üd3a4 -ü3den. -üden4g -ü3d2ens -üd1o4 -üd3r -üd3s2 -üdsa1 -üd3t4 -üdwes2 -ü2f1a -ü2f1ei -üfer2 -ü2f1erg -üf2fl -ü2f1i -üf3l -üf2to -ü1g -üge6leis -ü2g3l -ü2gn -üg3s -üg4st -üh1a -ü1he -ü2h1ei -ü2h1eng -ü2h1erk -ü2h1erz -üh1i -ühla2 -ühl1ac -ühl2e -üh3mo -üh3ne -ühn2s -üh3r2e -ühr3ei. -üh1ro -ühr3ta -üh1s -ühs2p -üh3t -üh4th -ü1hu -üh1w -ü1k -ül1a -ül2c -ül4e -ül2la -ül2l1ei -ül2lo -ül2lö -ü1lu -ü2ment -2ün -ü2n1a -ün2da -ün2dr -ünd3s -ünen3 -ün2fa -ün2f1ei -ün2fli -ün2fr -ün2g3l -ünn2s -ün2s -ün3sc -ün3se -ün3sp -ün3str -ünt2 -ü1nu -ün2za -ü1pe -ü1pi -üp2pl -ür1a -ü2r1ei -ür2fl -ür2fr -ür4g3en4g -ü3r2o1 -ürr2 -ür2s -ür3sc -ür3se -ür3sp -ürt2h -üs2a -ü2schl -üse3h -üse3l -üse1s -üs2s1c -üss2e -üs2st -ü2st -üste3ne -ü1ß -2üt -ü2t1al -ü2t3r -üt2s1 -üt2tr -ü1v -ü1z -2v1ab -va1c -val2s -2vang -2varb -va1s -v4at -va2t3a4 -va2tei -va2t3h -vatik2 -va4t1in -vati8ons. -va2t3r -vat3s4 -va2t1u -2v1au -2v1b -2v1d -1ve2 -ve3ar -ve3b -ve3c -ve3d -ve3g -ve3h -ve4i -veit4 -veits3 -ve3la -ve4l1au -ve3le -ve3li -ve3lo -ve3ma -ve3mu -ve3nal -ven2c -ve3ne -venen4d -ve3ni -ve3nö -ve3o -ver1 -ver3a -ve3rad -ve3rand -ve3ras -ver3b2 -verd2 -vere2 -ve4rek -verf4 -verg4 -ve3ri -ve4rin -ver3k -ver3st -vert2 -ver5te -ver3u -ves1 -2ve3sc -2ve3s2e -ves3ti -ve3ta -vete1 -ve3tr -2veü -ve3v -ve3x2 -2v1f4 -2v1g -2v1h -vi3ar -vi4a3t -vi2c -vid3s2t -vie2h3a -vi2el -vi2er -vie4rec -vie2w1 -vig2 -2vii -vi2l1a -vi4leh -vi2l1in -2v1i2m -vima2 -vi4na -vin2s -2v1int -vi3sa -vise4 -vi3s2o -vi2sp -vis2u -2v1k -2v1l2 -2v1m -2v1n -2v1ob -vo3ga -vo2gu -3vol -voll1a -vollen4 -vol6l5end -vol2li -2v1op -vo2r1 -vor3a -vor3d -vor3e -vor3g -vo3ri -vormen4 -3voy -vö2c -2v1p -v2r -2v3ra -v3re -v4ree -2v3ro -2vs -vs2e -v1sta -v1steu -v3s2z -2v3t -vu2et -2vumf -2v1v -2v1w -2v1z -w2a -1waa -wab2bl -wa3che -wach6stu -wach4t4r -waffe2 -waffel3 -1wag -wa5ge -wa2g3n -wa3go -1wah -wahl5ent -wah4ler -wah2li -wai2b -1wal -2walb -wal4da -2walm -wal2ta -wal2to -walt4st -wa3na -wandels6 -wang4s -wa2p -1war2e -ware1i -war3ste -wart4e -1was -wa3sa -wa4scha -wa3se -wa3sh -wass4e -w2ä -1wäh -1wäl -2wäng -1wäs -wäs2c -wä3sche -2w1b2 -wbu2 -2w1c -2w1d -we2a -we2ba -4webeb -we2bl -web3s -we3cke. -we5cken. -we3ckes -we2e4 -weed3 -we2fl -1weg -we2g1a -we2g3l -we2g3r -weg3s4 -1weh -we2i -wei4bl -2weie -weik4 -weis4s3p -wei3str -wei4tr -wel6schl -wel6schr -wel2t1 -wel4t3a4 -wel6t5en6d -wel4tr -wen3a4 -we3ni -wen4k3ri -we2r3a -wer2bl -1werbu -werd2 -5werdens -1werdu -werer2 -wer2fl -wer4gel -we4r3io -1werk. -wer2ka -1werke -wer2kl -wer2ku -we2rö -wer2s -wer2ta -wer6t5erm -wer2to -1werts -1wese -we2s1p -we4st -west1a -west3ei -wes2th -west1o2 -west3r -wes4tu -1wet -wet2s -wett3s -2w1ey -2w1g -2w3h -wi3cka -1wid -wi2e -wie3l -wien2e -wie2st -wik2 -1wil -wim2ma -wim4m3u -win4d3e4c -win2dr -win2e -2wing -win8n7ersc -1wi4r -wi3s2e -wi2sp -1wiss -wi3th -1witzl -2w1k -2w1l -2w1m -2wn -wn3s -1wo1c -wo2cha -woche4 -1woh -woh2le -1wolf -wolf4s3 -wol4ler -wor3a -wo2r3i -wor2t3r -wo4r3u -wot2 -1wöc -wört2h -2w1p -w2r -w3ro -2w1s -w3s2k -ws2t -2w1t -wti2 -w2u -1wuc -wul2 -wul3se -wun2s -4wur. -wur2fa -wur2s -1wurst -wus2 -wus3te -1wu4t1 -1wüh -wül2 -wün3 -2w1w -x1a -1xa. -2xa2b -1x2ad -1xae -xa1fl -1x2ag -x3a2m -x2anz -1x2as -2x1b -2xc -x1ce -x1ch -x1cl -4x1d -1xe -x1e4g -2xek -xe2l -xe3lei -x1em -3x2em. -x2en -xen3s2 -x2er. -x2ere -xers2 -3xes -2x3eu -2x1f -2x1g -2x1h -xib4 -xi1c -xich2 -xide2 -xi2d1em -x1i2do -xie3l -xi3g -xil1 -xil2a -xi2lo -xi2lu -xin3s2 -x2is1 -xis2c -xi2se -xi2so2 -xis3s -xis4tä -xi2su -x1i2tu -x1j -2x1k2 -2x2l2 -x3lä -x3le -2x1m -2x1n -x1or -4x1p -xpor6ter -x1q -2x1r -2x3s2 -4x1t -x2t1a -xt2as -xt1ä -x2tän -xtblo4 -x2t1e2d -x2t1ei -x4tent -x2t1er2f -x2t3ev -xtfi4 -x2t1il2l -xtra3b4 -x2t3ran -xt3s2 -xt1u -x3tur -1xu -xu1a -x1u2n -xu2s -2xv -2x1w -2xy -3xy. -3xys -x1z -2y1ab -1yac -y1al. -y1a2m -yan2g -y1ank -y1ät -y1b -y1c2 -y2chi -y3chis -ych3n -y1d4 -y1e -y2ef -yen4n -y2ere -y2es. -yes2p -ye2th -y1f2 -y1g -ygi2 -ygie5 -yg2l -y1h -yhr2 -y1i4 -y1j -y1k2 -yke3n -yk3s2 -y1l -y2l3a2m -yl4ante -yl3c -y4le. -yli4n -yloni1 -yl3s2 -y2l1u -yma4t -ym3p4 -ympi1 -y2n1o -yno4d -ynt2 -y1nu -y1of -yom2 -yon4i -y1ont -y1ou -y1p -ypa2 -yp3an -ype2 -y2pf -y3ph -y2p1in -ypo3 -y4p3s -y1r -y3r2e -y3ri -yri2a -yri1e -y3r4o -yrr2 -ys2an -y3s2c -yse1 -y3s2h -y4s3l -ysme3 -ys2po -ys1pr -ys3t4 -y1s4ty -y2s1u2 -y3s2z -y1t2 -y2te. -y2tes -y3to1 -yu2r -yure3 -y1v -y1w -y1y -y1z2 -2z3a2b -zab3l -za1c -z1a2d -za3de -2z1af -za3gr -3zah -2z3a2k -zale3 -2z1all -2z1am -3zambiq -z1an -za2na -2z3anf -3zani -2z3anl -2zarb -2zarc -z1arm -z1arti -zar2tr -2z1arz -z1as -za1st4 -2z3at3 -3zaub -z1au2f -z3aug -3zaun -zä2 -2z1äc -3z2äh -2z1äm -z1ärg -z1ärm -4z3b4 -zbü1b -zbübe3 -2z3c -2z3d2 -zdan2 -zdä1 -2z1e2ben -2zecho -2z1eck -ze1e -2z1eff -zeik4 -zei3la -zeile4 -2z1ein -zei3s4 -zeist4 -zei2t1a -zeit5end -zei4t3er -zei2tr -ze2l1a2 -ze2len -ze2l1er -ze2l1in -zell2a -zel3sz -zel3t2h -zelu2 -2z1emp -5zen. -ze4n3ac -zen3n -ze2no -zens2e -zen4sem -3zent -zent3s -zen4zer -z2er. -ze2r3a -ze2re2b -2z1ergä -4z3ergeb -z3erhal -2zerhö -zerin4t -zerk2 -z2erl. -2zerlö -z2ern -zer4neb -zer4n3ei -ze2ro -2z1erq -zers2 -2z1ersa -4z3erste -zert1a4 -zer4t3ag -zert4an -zer6tere -zer4tin -zer6t5rau -4zerwei -2z1erz -3z2erza -ze2sä -ze3sc -zes1e -zes1i -ze3sku -ze2sp -zessen4 -zes6s5end -zes2sp -zes2st -ze2s3t -ze3sta -ze2tr -2zetts -2z1ex -2z1f4 -2z1g2 -zger2a -2z1h -z2hen -zhir3 -zi3alo -zi3ar -zid3r -zi1erh -ziers1 -zi1es. -zil2e -2z1imp -zin2e -zin4er -2z1inf -2z1inh -zin1it -zin2sa -zin4ser -4zinsuf -2z1inv -zi2o3 -zi3op -zirk2 -zirk6s -zi3s2z -zi1t2h -2z1j -2z3k4 -2z1l2 -2z1m2 -zme2e -2z3n4 -2z1ob -2z1of -zo2gl -2z1oh -3zol -zon4ter -zo2o -2zope -z1or -zo2ri -zor4ne -2z1osz -2z3ot -2zö2f -z1öl -2z3p4 -2z1q -2z3r2 -4z1s2 -z3sa -z3sh -z3sk -z3sz -2z1t -z2t1au -z4tehe -z3t2her -zt3ho -zt1ins -z3tö -zt3rec -zt3s2 -z3tü -zu1 -zu3a -zub4 -zu4ch -zu3cke -zud4 -zudi4 -zu2el -zu3f4 -zu2g1ar -zu4gent -zu3gl -zug1un -2z1uhr -zu3k -2z1um. -zumen2 -2zumf -2zumg -2zuml -2z1ums -zun2e -zung4 -2zunt -zup2fi -zu3r2a -z1urk -2z1url -2z1urs -2z1urt -zu3s4 -zu5t2 -zuz2 -2züb -zür1c -2z1v -zw2 -z1wac -4zwah -zwan2d1 -z2wang -z1war -2zwas -4zwäl -2zweg -z2weig -z1weis -2z1wel -2z1wen -2z1wer -z2werg -2z1wes -2zwet -4zwir -z2wit -2z1wo -z1wör -z1wur -2z1wü -4z1z -z3z4a -zzi1s4 -z3z2o -zz2ö diff --git a/test/hyph-en-us.pat b/test/hyph-en-us.pat deleted file mode 100644 index 7d54d034..00000000 --- a/test/hyph-en-us.pat +++ /dev/null @@ -1,4960 +0,0 @@ -% version of 2005-05-30. -% Patterns of March 1, 1990. -% -% Copyright (C) 1990, 2004, 2005 Gerard D.C. Kuiken. -% Copying and distribution of this file, with or without modification, -% are permitted in any medium without royalty provided the copyright -% notice and this notice are preserved. -% -% Needs extended pattern memory. -% Hyphenation trie becomes 7283 with 377 ops. -% -% These patterns are based on the Hyphenation Exception Log -% published in TUGboat, Volume 10 (1989), No. 3, pp. 337-341, -% and a large number of incorrectly hyphenated words not yet published. -% If added to Liang's before the closing bracket } of \patterns, -% the patterns run errorfree as far as known at this moment. -% -% These patterns find all admissible hyphens of the words in -% the Exception Log. ushyph2.tex is a smaller set. -% -% Please send bugs or suggestions to tex-live (at) tug.org. -% -.ach4 -.ad4der -.af1t -.al3t -.am5at -.an5c -.ang4 -.ani5m -.ant4 -.an3te -.anti5s -.ar5s -.ar4tie -.ar4ty -.as3c -.as1p -.as1s -.aster5 -.atom5 -.au1d -.av4i -.awn4 -.ba4g -.ba5na -.bas4e -.ber4 -.be5ra -.be3sm -.be5sto -.bri2 -.but4ti -.cam4pe -.can5c -.capa5b -.car5ol -.ca4t -.ce4la -.ch4 -.chill5i -.ci2 -.cit5r -.co3e -.co4r -.cor5ner -.de4moi -.de3o -.de3ra -.de3ri -.des4c -.dictio5 -.do4t -.du4c -.dumb5 -.earth5 -.eas3i -.eb4 -.eer4 -.eg2 -.el5d -.el3em -.enam3 -.en3g -.en3s -.eq5ui5t -.er4ri -.es3 -.eu3 -.eye5 -.fes3 -.for5mer -.ga2 -.ge2 -.gen3t4 -.ge5og -.gi5a -.gi4b -.go4r -.hand5i -.han5k -.he2 -.hero5i -.hes3 -.het3 -.hi3b -.hi3er -.hon5ey -.hon3o -.hov5 -.id4l -.idol3 -.im3m -.im5pin -.in1 -.in3ci -.ine2 -.in2k -.in3s -.ir5r -.is4i -.ju3r -.la4cy -.la4m -.lat5er -.lath5 -.le2 -.leg5e -.len4 -.lep5 -.lev1 -.li4g -.lig5a -.li2n -.li3o -.li4t -.mag5a5 -.mal5o -.man5a -.mar5ti -.me2 -.mer3c -.me5ter -.mis1 -.mist5i -.mon3e -.mo3ro -.mu5ta -.muta5b -.ni4c -.od2 -.odd5 -.of5te -.or5ato -.or3c -.or1d -.or3t -.os3 -.os4tl -.oth3 -.out3 -.ped5al -.pe5te -.pe5tit -.pi4e -.pio5n -.pi2t -.pre3m -.ra4c -.ran4t -.ratio5na -.ree2 -.re5mit -.res2 -.re5stat -.ri4g -.rit5u -.ro4q -.ros5t -.row5d -.ru4d -.sci3e -.self5 -.sell5 -.se2n -.se5rie -.sh2 -.si2 -.sing4 -.st4 -.sta5bl -.sy2 -.ta4 -.te4 -.ten5an -.th2 -.ti2 -.til4 -.tim5o5 -.ting4 -.tin5k -.ton4a -.to4p -.top5i -.tou5s -.trib5ut -.un1a -.un3ce -.under5 -.un1e -.un5k -.un5o -.un3u -.up3 -.ure3 -.us5a -.ven4de -.ve5ra -.wil5i -.ye4 -4ab. -a5bal -a5ban -abe2 -ab5erd -abi5a -ab5it5ab -ab5lat -ab5o5liz -4abr -ab5rog -ab3ul -a4car -ac5ard -ac5aro -a5ceou -ac1er -a5chet -4a2ci -a3cie -ac1in -a3cio -ac5rob -act5if -ac3ul -ac4um -a2d -ad4din -ad5er. -2adi -a3dia -ad3ica -adi4er -a3dio -a3dit -a5diu -ad4le -ad3ow -ad5ran -ad4su -4adu -a3duc -ad5um -ae4r -aeri4e -a2f -aff4 -a4gab -aga4n -ag5ell -age4o -4ageu -ag1i -4ag4l -ag1n -a2go -3agog -ag3oni -a5guer -ag5ul -a4gy -a3ha -a3he -ah4l -a3ho -ai2 -a5ia -a3ic. -ai5ly -a4i4n -ain5in -ain5o -ait5en -a1j -ak1en -al5ab -al3ad -a4lar -4aldi -2ale -al3end -a4lenti -a5le5o -al1i -al4ia. -ali4e -al5lev -4allic -4alm -a5log. -a4ly. -4alys -5a5lyst -5alyt -3alyz -4ama -am5ab -am3ag -ama5ra -am5asc -a4matis -a4m5ato -am5era -am3ic -am5if -am5ily -am1in -ami4no -a2mo -a5mon -amor5i -amp5en -a2n -an3age -3analy -a3nar -an3arc -anar4i -a3nati -4and -ande4s -an3dis -an1dl -an4dow -a5nee -a3nen -an5est. -a3neu -2ang -ang5ie -an1gl -a4n1ic -a3nies -an3i3f -an4ime -a5nimi -a5nine -an3io -a3nip -an3ish -an3it -a3niu -an4kli -5anniz -ano4 -an5ot -anoth5 -an2sa -an4sco -an4sn -an2sp -ans3po -an4st -an4sur -antal4 -an4tie -4anto -an2tr -an4tw -an3ua -an3ul -a5nur -4ao -apar4 -ap5at -ap5ero -a3pher -4aphi -a4pilla -ap5illar -ap3in -ap3ita -a3pitu -a2pl -apoc5 -ap5ola -apor5i -apos3t -aps5es -a3pu -aque5 -2a2r -ar3act -a5rade -ar5adis -ar3al -a5ramete -aran4g -ara3p -ar4at -a5ratio -ar5ativ -a5rau -ar5av4 -araw4 -arbal4 -ar4chan -ar5dine -ar4dr -ar5eas -a3ree -ar3ent -a5ress -ar4fi -ar4fl -ar1i -ar5ial -ar3ian -a3riet -ar4im -ar5inat -ar3io -ar2iz -ar2mi -ar5o5d -a5roni -a3roo -ar2p -ar3q -arre4 -ar4sa -ar2sh -4as. -as4ab -as3ant -ashi4 -a5sia. -a3sib -a3sic -5a5si4t -ask3i -as4l -a4soc -as5ph -as4sh -as3ten -as1tr -asur5a -a2ta -at3abl -at5ac -at3alo -at5ap -ate5c -at5ech -at3ego -at3en. -at3era -ater5n -a5terna -at3est -at5ev -4ath -ath5em -a5then -at4ho -ath5om -4ati. -a5tia -at5i5b -at1ic -at3if -ation5ar -at3itu -a4tog -a2tom -at5omiz -a4top -a4tos -a1tr -at5rop -at4sk -at4tag -at5te -at4th -a2tu -at5ua -at5ue -at3ul -at3ura -a2ty -au4b -augh3 -au3gu -au4l2 -aun5d -au3r -au5sib -aut5en -au1th -a2va -av3ag -a5van -ave4no -av3era -av5ern -av5ery -av1i -avi4er -av3ig -av5oc -a1vor -3away -aw3i -aw4ly -aws4 -ax4ic -ax4id -ay5al -aye4 -ays4 -azi4er -azz5i -5ba. -bad5ger -ba4ge -bal1a -ban5dag -ban4e -ban3i -barbi5 -bari4a -bas4si -1bat -ba4z -2b1b -b2be -b3ber -bbi4na -4b1d -4be. -beak4 -beat3 -4be2d -be3da -be3de -be3di -be3gi -be5gu -1bel -be1li -be3lo -4be5m -be5nig -be5nu -4bes4 -be3sp -be5str -3bet -bet5iz -be5tr -be3tw -be3w -be5yo -2bf -4b3h -bi2b -bi4d -3bie -bi5en -bi4er -2b3if -1bil -bi3liz -bina5r4 -bin4d -bi5net -bi3ogr -bi5ou -bi2t -3bi3tio -bi3tr -3bit5ua -b5itz -b1j -bk4 -b2l2 -blath5 -b4le. -blen4 -5blesp -b3lis -b4lo -blun4t -4b1m -4b3n -bne5g -3bod -bod3i -bo4e -bol3ic -bom4bi -bon4a -bon5at -3boo -5bor. -4b1ora -bor5d -5bore -5bori -5bos4 -b5ota -both5 -bo4to -bound3 -4bp -4brit -broth3 -2b5s2 -bsor4 -2bt -bt4l -b4to -b3tr -buf4fer -bu4ga -bu3li -bumi4 -bu4n -bunt4i -bu3re -bus5ie -buss4e -5bust -4buta -3butio -b5uto -b1v -4b5w -5by. -bys4 -1ca -cab3in -ca1bl -cach4 -ca5den -4cag4 -2c5ah -ca3lat -cal4la -call5in -4calo -can5d -can4e -can4ic -can5is -can3iz -can4ty -cany4 -ca5per -car5om -cast5er -cas5tig -4casy -ca4th -4cativ -cav5al -c3c -ccha5 -cci4a -ccompa5 -ccon4 -ccou3t -2ce. -4ced. -4ceden -3cei -5cel. -3cell -1cen -3cenc -2cen4e -4ceni -3cent -3cep -ce5ram -4cesa -3cessi -ces5si5b -ces5t -cet4 -c5e4ta -cew4 -2ch -4ch. -4ch3ab -5chanic -ch5a5nis -che2 -cheap3 -4ched -che5lo -3chemi -ch5ene -ch3er. -ch3ers -4ch1in -5chine. -ch5iness -5chini -5chio -3chit -chi2z -3cho2 -ch4ti -1ci -3cia -ci2a5b -cia5r -ci5c -4cier -5cific. -4cii -ci4la -3cili -2cim -2cin -c4ina -3cinat -cin3em -c1ing -c5ing. -5cino -cion4 -4cipe -ci3ph -4cipic -4cista -4cisti -2c1it -cit3iz -5ciz -ck1 -ck3i -1c4l4 -4clar -c5laratio -5clare -cle4m -4clic -clim4 -cly4 -c5n -1co -co5ag -coe2 -2cog -co4gr -coi4 -co3inc -col5i -5colo -col3or -com5er -con4a -c4one -con3g -con5t -co3pa -cop3ic -co4pl -4corb -coro3n -cos4e -cov1 -cove4 -cow5a -coz5e -co5zi -c1q -cras5t -5crat. -5cratic -cre3at -5cred -4c3reta -cre4v -cri2 -cri5f -c4rin -cris4 -5criti -cro4pl -crop5o -cros4e -cru4d -4c3s2 -2c1t -cta4b -ct5ang -c5tant -c2te -c3ter -c4ticu -ctim3i -ctu4r -c4tw -cud5 -c4uf -c4ui -cu5ity -5culi -cul4tis -3cultu -cu2ma -c3ume -cu4mi -3cun -cu3pi -cu5py -cur5a4b -cu5ria -1cus -cuss4i -3c4ut -cu4tie -4c5utiv -4cutr -1cy -cze4 -1d2a -5da. -2d3a4b -dach4 -4daf -2dag -da2m2 -dan3g -dard5 -dark5 -4dary -3dat -4dativ -4dato -5dav4 -dav5e -5day -d1b -d5c -d1d4 -2de. -deaf5 -deb5it -de4bon -decan4 -de4cil -de5com -2d1ed -4dee. -de5if -deli4e -del5i5q -de5lo -d4em -5dem. -3demic -dem5ic. -de5mil -de4mons -demor5 -1den -de4nar -de3no -denti5f -de3nu -de1p -de3pa -depi4 -de2pu -d3eq -d4erh -5derm -dern5iz -der5s -des2 -d2es. -de1sc -de2s5o -des3ti -de3str -de4su -de1t -de2to -de1v -dev3il -4dey -4d1f -d4ga -d3ge4t -dg1i -d2gy -d1h2 -5di. -1d4i3a -dia5b -di4cam -d4ice -3dict -3did -5di3en -d1if -di3ge -di4lato -d1in -1dina -3dine. -5dini -di5niz -1dio -dio5g -di4pl -dir2 -di1re -dirt5i -dis1 -5disi -d4is3t -d2iti -1di1v -d1j -d5k2 -4d5la -3dle. -3dled -3dles. -4dless -2d3lo -4d5lu -2dly -d1m -4d1n4 -1do -3do. -do5de -5doe -2d5of -d4og -do4la -doli4 -do5lor -dom5iz -do3nat -doni4 -doo3d -dop4p -d4or -3dos -4d5out -do4v -3dox -d1p -1dr -drag5on -4drai -dre4 -drea5r -5dren -dri4b -dril4 -dro4p -4drow -5drupli -4dry -2d1s2 -ds4p -d4sw -d4sy -d2th -1du -d1u1a -du2c -d1uca -duc5er -4duct. -4ducts -du5el -du4g -d3ule -dum4be -du4n -4dup -du4pe -d1v -d1w -d2y -5dyn -dy4se -dys5p -e1a4b -e3act -ead1 -ead5ie -ea4ge -ea5ger -ea4l -eal5er -eal3ou -eam3er -e5and -ear3a -ear4c -ear5es -ear4ic -ear4il -ear5k -ear2t -eart3e -ea5sp -e3ass -east3 -ea2t -eat5en -eath3i -e5atif -e4a3tu -ea2v -eav3en -eav5i -eav5o -2e1b -e4bel. -e4bels -e4ben -e4bit -e3br -e4cad -ecan5c -ecca5 -e1ce -ec5essa -ec2i -e4cib -ec5ificat -ec5ifie -ec5ify -ec3im -eci4t -e5cite -e4clam -e4clus -e2col -e4comm -e4compe -e4conc -e2cor -ec3ora -eco5ro -e1cr -e4crem -ec4tan -ec4te -e1cu -e4cul -ec3ula -2e2da -4ed3d -e4d1er -ede4s -4edi -e3dia -ed3ib -ed3ica -ed3im -ed1it -edi5z -4edo -e4dol -edon2 -e4dri -e4dul -ed5ulo -ee2c -eed3i -ee2f -eel3i -ee4ly -ee2m -ee4na -ee4p1 -ee2s4 -eest4 -ee4ty -e5ex -e1f -e4f3ere -1eff -e4fic -5efici -efil4 -e3fine -ef5i5nite -3efit -efor5es -e4fuse. -4egal -eger4 -eg5ib -eg4ic -eg5ing -e5git5 -eg5n -e4go. -e4gos -eg1ul -e5gur -5egy -e1h4 -eher4 -ei2 -e5ic -ei5d -eig2 -ei5gl -e3imb -e3inf -e1ing -e5inst -eir4d -eit3e -ei3th -e5ity -e1j -e4jud -ej5udi -eki4n -ek4la -e1la -e4la. -e4lac -elan4d -el5ativ -e4law -elaxa4 -e3lea -el5ebra -5elec -e4led -el3ega -e5len -e4l1er -e1les -el2f -el2i -e3libe -e4l5ic. -el3ica -e3lier -el5igib -e5lim -e4l3ing -e3lio -e2lis -el5ish -e3liv3 -4ella -el4lab -ello4 -e5loc -el5og -el3op. -el2sh -el4ta -e5lud -el5ug -e4mac -e4mag -e5man -em5ana -em5b -e1me -e2mel -e4met -em3ica -emi4e -em5igra -em1in2 -em5ine -em3i3ni -e4mis -em5ish -e5miss -em3iz -5emniz -emo4g -emoni5o -em3pi -e4mul -em5ula -emu3n -e3my -en5amo -e4nant -ench4er -en3dic -e5nea -e5nee -en3em -en5ero -en5esi -en5est -en3etr -e3new -en5ics -e5nie -e5nil -e3nio -en3ish -en3it -e5niu -5eniz -4enn -4eno -eno4g -e4nos -en3ov -en4sw -ent5age -4enthes -en3ua -en5uf -e3ny. -4en3z -e5of -eo2g -e4oi4 -e3ol -eop3ar -e1or -eo3re -eo5rol -eos4 -e4ot -eo4to -e5out -e5ow -e2pa -e3pai -ep5anc -e5pel -e3pent -ep5etitio -ephe4 -e4pli -e1po -e4prec -ep5reca -e4pred -ep3reh -e3pro -e4prob -ep4sh -ep5ti5b -e4put -ep5uta -e1q -equi3l -e4q3ui3s -er1a -era4b -4erand -er3ar -4erati. -2erb -er4bl -er3ch -er4che -2ere. -e3real -ere5co -ere3in -er5el. -er3emo -er5ena -er5ence -4erene -er3ent -ere4q -er5ess -er3est -eret4 -er1h -er1i -e1ria4 -5erick -e3rien -eri4er -er3ine -e1rio -4erit -er4iu -eri4v -e4riva -er3m4 -er4nis -4ernit -5erniz -er3no -2ero -er5ob -e5roc -ero4r -er1ou -er1s -er3set -ert3er -4ertl -er3tw -4eru -eru4t -5erwau -e1s4a -e4sage. -e4sages -es2c -e2sca -es5can -e3scr -es5cu -e1s2e -e2sec -es5ecr -es5enc -e4sert. -e4serts -e4serva -4esh -e3sha -esh5en -e1si -e2sic -e2sid -es5iden -es5igna -e2s5im -es4i4n -esis4te -esi4u -e5skin -es4mi -e2sol -es3olu -e2son -es5ona -e1sp -es3per -es5pira -es4pre -2ess -es4si4b -estan4 -es3tig -es5tim -4es2to -e3ston -2estr -e5stro -estruc5 -e2sur -es5urr -es4w -eta4b -eten4d -e3teo -ethod3 -et1ic -e5tide -etin4 -eti4no -e5tir -e5titio -et5itiv -4etn -et5ona -e3tra -e3tre -et3ric -et5rif -et3rog -et5ros -et3ua -et5ym -et5z -4eu -e5un -e3up -eu3ro -eus4 -eute4 -euti5l -eu5tr -eva2p5 -e2vas -ev5ast -e5vea -ev3ell -evel3o -e5veng -even4i -ev1er -e5verb -e1vi -ev3id -evi4l -e4vin -evi4v -e5voc -e5vu -e1wa -e4wag -e5wee -e3wh -ewil5 -ew3ing -e3wit -1exp -5eyc -5eye. -eys4 -1fa -fa3bl -fab3r -fa4ce -4fag -fain4 -fall5e -4fa4ma -fam5is -5far -far5th -fa3ta -fa3the -4fato -fault5 -4f5b -4fd -4fe. -feas4 -feath3 -fe4b -4feca -5fect -2fed -fe3li -fe4mo -fen2d -fend5e -fer1 -5ferr -fev4 -4f1f -f4fes -f4fie -f5fin. -f2f5is -f4fly -f2fy -4fh -1fi -fi3a -2f3ic. -4f3ical -f3ican -4ficate -f3icen -fi3cer -fic4i -5ficia -5ficie -4fics -fi3cu -fi5del -fight5 -fil5i -fill5in -4fily -2fin -5fina -fin2d5 -fi2ne -f1in3g -fin4n -fis4ti -f4l2 -f5less -flin4 -flo3re -f2ly5 -4fm -4fn -1fo -5fon -fon4de -fon4t -fo2r -fo5rat -for5ay -fore5t -for4i -fort5a -fos5 -4f5p -fra4t -f5rea -fres5c -fri2 -fril4 -frol5 -2f3s -2ft -f4to -f2ty -3fu -fu5el -4fug -fu4min -fu5ne -fu3ri -fusi4 -fus4s -4futa -1fy -1ga -gaf4 -5gal. -3gali -ga3lo -2gam -ga5met -g5amo -gan5is -ga3niz -gani5za -4gano -gar5n4 -gass4 -gath3 -4gativ -4gaz -g3b -gd4 -2ge. -2ged -geez4 -gel4in -ge5lis -ge5liz -4gely -1gen -ge4nat -ge5niz -4geno -4geny -1geo -ge3om -g4ery -5gesi -geth5 -4geto -ge4ty -ge4v -4g1g2 -g2ge -g3ger -gglu5 -ggo4 -gh3in -gh5out -gh4to -5gi. -1gi4a -gia5r -g1ic -5gicia -g4ico -gien5 -5gies. -gil4 -g3imen -3g4in. -gin5ge -5g4ins -5gio -3gir -gir4l -g3isl -gi4u -5giv -3giz -gl2 -gla4 -glad5i -5glas -1gle -gli4b -g3lig -3glo -glo3r -g1m -g4my -gn4a -g4na. -gnet4t -g1ni -g2nin -g4nio -g1no -g4non -1go -3go. -gob5 -5goe -3g4o4g -go3is -gon2 -4g3o3na -gondo5 -go3ni -5goo -go5riz -gor5ou -5gos. -gov1 -g3p -1gr -4grada -g4rai -gran2 -5graph. -g5rapher -5graphic -4graphy -4gray -gre4n -4gress. -4grit -g4ro -gruf4 -gs2 -g5ste -gth3 -gu4a -3guard -2gue -5gui5t -3gun -3gus -4gu4t -g3w -1gy -2g5y3n -gy5ra -h3ab4l -hach4 -hae4m -hae4t -h5agu -ha3la -hala3m -ha4m -han4ci -han4cy -5hand. -han4g -hang5er -hang5o -h5a5niz -han4k -han4te -hap3l -hap5t -ha3ran -ha5ras -har2d -hard3e -har4le -harp5en -har5ter -has5s -haun4 -5haz -haz3a -h1b -1head -3hear -he4can -h5ecat -h4ed -he5do5 -he3l4i -hel4lis -hel4ly -h5elo -hem4p -he2n -hena4 -hen5at -heo5r -hep5 -h4era -hera3p -her4ba -here5a -h3ern -h5erou -h3ery -h1es -he2s5p -he4t -het4ed -heu4 -h1f -h1h -hi5an -hi4co -high5 -h4il2 -himer4 -h4ina -hion4e -hi4p -hir4l -hi3ro -hir4p -hir4r -his3el -his4s -hith5er -hi2v -4hk -4h1l4 -hlan4 -h2lo -hlo3ri -4h1m -hmet4 -2h1n -h5odiz -h5ods -ho4g -hoge4 -hol5ar -3hol4e -ho4ma -home3 -hon4a -ho5ny -3hood -hoon4 -hor5at -ho5ris -hort3e -ho5ru -hos4e -ho5sen -hos1p -1hous -house3 -hov5el -4h5p -4hr4 -hree5 -hro5niz -hro3po -4h1s2 -h4sh -h4tar -ht1en -ht5es -h4ty -hu4g -hu4min -hun5ke -hun4t -hus3t4 -hu4t -h1w -h4wart -hy3pe -hy3ph -hy2s -2i1a -i2al -iam4 -iam5ete -i2an -4ianc -ian3i -4ian4t -ia5pe -iass4 -i4ativ -ia4tric -i4atu -ibe4 -ib3era -ib5ert -ib5ia -ib3in -ib5it. -ib5ite -i1bl -ib3li -i5bo -i1br -i2b5ri -i5bun -4icam -5icap -4icar -i4car. -i4cara -icas5 -i4cay -iccu4 -4iceo -4ich -2ici -i5cid -ic5ina -i2cip -ic3ipa -i4cly -i2c5oc -4i1cr -5icra -i4cry -ic4te -ictu2 -ic4t3ua -ic3ula -ic4um -ic5uo -i3cur -2id -i4dai -id5anc -id5d -ide3al -ide4s -i2di -id5ian -idi4ar -i5die -id3io -idi5ou -id1it -id5iu -i3dle -i4dom -id3ow -i4dr -i2du -id5uo -2ie4 -ied4e -5ie5ga -ield3 -ien5a4 -ien4e -i5enn -i3enti -i1er. -i3esc -i1est -i3et -4if. -if5ero -iff5en -if4fr -4ific. -i3fie -i3fl -4ift -2ig -iga5b -ig3era -ight3i -4igi -i3gib -ig3il -ig3in -ig3it -i4g4l -i2go -ig3or -ig5ot -i5gre -igu5i -ig1ur -i3h -4i5i4 -i3j -4ik -i1la -il3a4b -i4lade -i2l5am -ila5ra -i3leg -il1er -ilev4 -il5f -il1i -il3ia -il2ib -il3io -il4ist -2ilit -il2iz -ill5ab -4iln -il3oq -il4ty -il5ur -il3v -i4mag -im3age -ima5ry -imenta5r -4imet -im1i -im5ida -imi5le -i5mini -4imit -im4ni -i3mon -i2mu -im3ula -2in. -i4n3au -4inav -incel4 -in3cer -4ind -in5dling -2ine -i3nee -iner4ar -i5ness -4inga -4inge -in5gen -4ingi -in5gling -4ingo -4ingu -2ini -i5ni. -i4nia -in3io -in1is -i5nite. -5initio -in3ity -4ink -4inl -2inn -2i1no -i4no4c -ino4s -i4not -2ins -in3se -insur5a -2int. -2in4th -in1u -i5nus -4iny -2io -4io. -ioge4 -io2gr -i1ol -io4m -ion3at -ion4ery -ion3i -io5ph -ior3i -i4os -io5th -i5oti -io4to -i4our -2ip -ipe4 -iphras4 -ip3i -ip4ic -ip4re4 -ip3ul -i3qua -iq5uef -iq3uid -iq3ui3t -4ir -i1ra -ira4b -i4rac -ird5e -ire4de -i4ref -i4rel4 -i4res -ir5gi -ir1i -iri5de -ir4is -iri3tu -5i5r2iz -ir4min -iro4g -5iron. -ir5ul -2is. -is5ag -is3ar -isas5 -2is1c -is3ch -4ise -is3er -3isf -is5han -is3hon -ish5op -is3ib -isi4d -i5sis -is5itiv -4is4k -islan4 -4isms -i2so -iso5mer -is1p -is2pi -is4py -4is1s -is4sal -issen4 -is4ses -is4ta. -is1te -is1ti -ist4ly -4istral -i2su -is5us -4ita. -ita4bi -i4tag -4ita5m -i3tan -i3tat -2ite -it3era -i5teri -it4es -2ith -i1ti -4itia -4i2tic -it3ica -5i5tick -it3ig -it5ill -i2tim -2itio -4itis -i4tism -i2t5o5m -4iton -i4tram -it5ry -4itt -it3uat -i5tud -it3ul -4itz. -i1u -2iv -iv3ell -iv3en. -i4v3er. -i4vers. -iv5il. -iv5io -iv1it -i5vore -iv3o3ro -i4v3ot -4i5w -ix4o -4iy -4izar -izi4 -5izont -5ja -jac4q -ja4p -1je -jer5s -4jestie -4jesty -jew3 -jo4p -5judg -3ka. -k3ab -k5ag -kais4 -kal4 -k1b -k2ed -1kee -ke4g -ke5li -k3en4d -k1er -kes4 -k3est. -ke4ty -k3f -kh4 -k1i -5ki. -5k2ic -k4ill -kilo5 -k4im -k4in. -kin4de -k5iness -kin4g -ki4p -kis4 -k5ish -kk4 -k1l -4kley -4kly -k1m -k5nes -1k2no -ko5r -kosh4 -k3ou -kro5n -4k1s2 -k4sc -ks4l -k4sy -k5t -k1w -lab3ic -l4abo -laci4 -l4ade -la3dy -lag4n -lam3o -3land -lan4dl -lan5et -lan4te -lar4g -lar3i -las4e -la5tan -4lateli -4lativ -4lav -la4v4a -2l1b -lbin4 -4l1c2 -lce4 -l3ci -2ld -l2de -ld4ere -ld4eri -ldi4 -ld5is -l3dr -l4dri -le2a -le4bi -left5 -5leg. -5legg -le4mat -lem5atic -4len. -3lenc -5lene. -1lent -le3ph -le4pr -lera5b -ler4e -3lerg -3l4eri -l4ero -les2 -le5sco -5lesq -3less -5less. -l3eva -lev4er. -lev4era -lev4ers -3ley -4leye -2lf -l5fr -4l1g4 -l5ga -lgar3 -l4ges -lgo3 -2l3h -li4ag -li2am -liar5iz -li4as -li4ato -li5bi -5licio -li4cor -4lics -4lict. -l4icu -l3icy -l3ida -lid5er -3lidi -lif3er -l4iff -li4fl -5ligate -3ligh -li4gra -3lik -4l4i4l -lim4bl -lim3i -li4mo -l4im4p -l4ina -1l4ine -lin3ea -lin3i -link5er -li5og -4l4iq -lis4p -l1it -l2it. -5litica -l5i5tics -liv3er -l1iz -4lj -lka3 -l3kal -lka4t -l1l -l4law -l2le -l5lea -l3lec -l3leg -l3lel -l3le4n -l3le4t -ll2i -l2lin4 -l5lina -ll4o -lloqui5 -ll5out -l5low -2lm -l5met -lm3ing -l4mod -lmon4 -2l1n2 -3lo. -lob5al -lo4ci -4lof -3logic -l5ogo -3logu -lom3er -5long -lon4i -l3o3niz -lood5 -5lope. -lop3i -l3opm -lora4 -lo4rato -lo5rie -lor5ou -5los. -los5et -5losophiz -5losophy -los4t -lo4ta -loun5d -2lout -4lov -2lp -lpa5b -l3pha -l5phi -lp5ing -l3pit -l4pl -l5pr -4l1r -2l1s2 -l4sc -l2se -l4sie -4lt -lt5ag -ltane5 -l1te -lten4 -ltera4 -lth3i -l5ties. -ltis4 -l1tr -ltu2 -ltur3a -lu5a -lu3br -luch4 -lu3ci -lu3en -luf4 -lu5id -lu4ma -5lumi -l5umn. -5lumnia -lu3o -luo3r -4lup -luss4 -lus3te -1lut -l5ven -l5vet4 -2l1w -1ly -4lya -4lyb -ly5me -ly3no -2lys4 -l5yse -1ma -2mab -ma2ca -ma5chine -ma4cl -mag5in -5magn -2mah -maid5 -4mald -ma3lig -ma5lin -mal4li -mal4ty -5mania -man5is -man3iz -4map -ma5rine. -ma5riz -mar4ly -mar3v -ma5sce -mas4e -mas1t -5mate -math3 -ma3tis -4matiza -4m1b -mba4t5 -m5bil -m4b3ing -mbi4v -4m5c -4me. -2med -4med. -5media -me3die -m5e5dy -me2g -mel5on -mel4t -me2m -mem1o3 -1men -men4a -men5ac -men4de -4mene -men4i -mens4 -mensu5 -3ment -men4te -me5on -m5ersa -2mes -3mesti -me4ta -met3al -me1te -me5thi -m4etr -5metric -me5trie -me3try -me4v -4m1f -2mh -5mi. -mi3a -mid4a -mid4g -mig4 -3milia -m5i5lie -m4ill -min4a -3mind -m5inee -m4ingl -min5gli -m5ingly -min4t -m4inu -miot4 -m2is -mis4er. -mis5l -mis4ti -m5istry -4mith -m2iz -4mk -4m1l -m1m -mma5ry -4m1n -mn4a -m4nin -mn4o -1mo -4mocr -5mocratiz -mo2d1 -mo4go -mois2 -moi5se -4mok -mo5lest -mo3me -mon5et -mon5ge -moni3a -mon4ism -mon4ist -mo3niz -monol4 -mo3ny. -mo2r -4mora. -mos2 -mo5sey -mo3sp -moth3 -m5ouf -3mous -mo2v -4m1p -mpara5 -mpa5rab -mpar5i -m3pet -mphas4 -m2pi -mpi4a -mp5ies -m4p1in -m5pir -mp5is -mpo3ri -mpos5ite -m4pous -mpov5 -mp4tr -m2py -4m3r -4m1s2 -m4sh -m5si -4mt -1mu -mula5r4 -5mult -multi3 -3mum -mun2 -4mup -mu4u -4mw -1na -2n1a2b -n4abu -4nac. -na4ca -n5act -nag5er. -nak4 -na4li -na5lia -4nalt -na5mit -n2an -nanci4 -nan4it -nank4 -nar3c -4nare -nar3i -nar4l -n5arm -n4as -nas4c -nas5ti -n2at -na3tal -nato5miz -n2au -nau3se -3naut -nav4e -4n1b4 -ncar5 -n4ces. -n3cha -n5cheo -n5chil -n3chis -nc1in -nc4it -ncour5a -n1cr -n1cu -n4dai -n5dan -n1de -nd5est. -ndi4b -n5d2if -n1dit -n3diz -n5duc -ndu4r -nd2we -2ne. -n3ear -ne2b -neb3u -ne2c -5neck -2ned -ne4gat -neg5ativ -5nege -ne4la -nel5iz -ne5mi -ne4mo -1nen -4nene -3neo -ne4po -ne2q -n1er -nera5b -n4erar -n2ere -n4er5i -ner4r -1nes -2nes. -4nesp -2nest -4nesw -3netic -ne4v -n5eve -ne4w -n3f -n4gab -n3gel -nge4n4e -n5gere -n3geri -ng5ha -n3gib -ng1in -n5git -n4gla -ngov4 -ng5sh -n1gu -n4gum -n2gy -4n1h4 -nha4 -nhab3 -nhe4 -3n4ia -ni3an -ni4ap -ni3ba -ni4bl -ni4d -ni5di -ni4er -ni2fi -ni5ficat -n5igr -nik4 -n1im -ni3miz -n1in -5nine. -nin4g -ni4o -5nis. -nis4ta -n2it -n4ith -3nitio -n3itor -ni3tr -n1j -4nk2 -n5kero -n3ket -nk3in -n1kl -4n1l -n5m -nme4 -nmet4 -4n1n2 -nne4 -nni3al -nni4v -nob4l -no3ble -n5ocl -4n3o2d -3noe -4nog -noge4 -nois5i -no5l4i -5nologis -3nomic -n5o5miz -no4mo -no3my -no4n -non4ag -non5i -n5oniz -4nop -5nop5o5li -nor5ab -no4rary -4nosc -nos4e -nos5t -no5ta -1nou -3noun -nov3el3 -nowl3 -n1p4 -npi4 -npre4c -n1q -n1r -nru4 -2n1s2 -ns5ab -nsati4 -ns4c -n2se -n4s3es -nsid1 -nsig4 -n2sl -ns3m -n4soc -ns4pe -n5spi -nsta5bl -n1t -nta4b -nter3s -nt2i -n5tib -nti4er -nti2f -n3tine -n4t3ing -nti4p -ntrol5li -nt4s -ntu3me -nu1a -nu4d -nu5en -nuf4fe -n3uin -3nu3it -n4um -nu1me -n5umi -3nu4n -n3uo -nu3tr -n1v2 -n1w4 -nym4 -nyp4 -4nz -n3za -4oa -oad3 -o5a5les -oard3 -oas4e -oast5e -oat5i -ob3a3b -o5bar -obe4l -o1bi -o2bin -ob5ing -o3br -ob3ul -o1ce -och4 -o3chet -ocif3 -o4cil -o4clam -o4cod -oc3rac -oc5ratiz -ocre3 -5ocrit -octor5a -oc3ula -o5cure -od5ded -od3ic -odi3o -o2do4 -odor3 -od5uct. -od5ucts -o4el -o5eng -o3er -oe4ta -o3ev -o2fi -of5ite -ofit4t -o2g5a5r -og5ativ -o4gato -o1ge -o5gene -o5geo -o4ger -o3gie -1o1gis -og3it -o4gl -o5g2ly -3ogniz -o4gro -ogu5i -1ogy -2ogyn -o1h2 -ohab5 -oi2 -oic3es -oi3der -oiff4 -oig4 -oi5let -o3ing -oint5er -o5ism -oi5son -oist5en -oi3ter -o5j -2ok -o3ken -ok5ie -o1la -o4lan -olass4 -ol2d -old1e -ol3er -o3lesc -o3let -ol4fi -ol2i -o3lia -o3lice -ol5id. -o3li4f -o5lil -ol3ing -o5lio -o5lis. -ol3ish -o5lite -o5litio -o5liv -olli4e -ol5ogiz -olo4r -ol5pl -ol2t -ol3ub -ol3ume -ol3un -o5lus -ol2v -o2ly -om5ah -oma5l -om5atiz -om2be -om4bl -o2me -om3ena -om5erse -o4met -om5etry -o3mia -om3ic. -om3ica -o5mid -om1in -o5mini -5ommend -omo4ge -o4mon -om3pi -ompro5 -o2n -on1a -on4ac -o3nan -on1c -3oncil -2ond -on5do -o3nen -on5est -on4gu -on1ic -o3nio -on1is -o5niu -on3key -on4odi -on3omy -on3s -onspi4 -onspir5a -onsu4 -onten4 -on3t4i -ontif5 -on5um -onva5 -oo2 -ood5e -ood5i -oo4k -oop3i -o3ord -oost5 -o2pa -ope5d -op1er -3opera -4operag -2oph -o5phan -o5pher -op3ing -o3pit -o5pon -o4posi -o1pr -op1u -opy5 -o1q -o1ra -o5ra. -o4r3ag -or5aliz -or5ange -ore5a -o5real -or3ei -ore5sh -or5est. -orew4 -or4gu -4o5ria -or3ica -o5ril -or1in -o1rio -or3ity -o3riu -or2mi -orn2e -o5rof -or3oug -or5pe -3orrh -or4se -ors5en -orst4 -or3thi -or3thy -or4ty -o5rum -o1ry -os3al -os2c -os4ce -o3scop -4oscopi -o5scr -os4i4e -os5itiv -os3ito -os3ity -osi4u -os4l -o2so -os4pa -os4po -os2ta -o5stati -os5til -os5tit -o4tan -otele4g -ot3er. -ot5ers -o4tes -4oth -oth5esi -oth3i4 -ot3ic. -ot5ica -o3tice -o3tif -o3tis -oto5s -ou2 -ou3bl -ouch5i -ou5et -ou4l -ounc5er -oun2d -ou5v -ov4en -over4ne -over3s -ov4ert -o3vis -oviti4 -o5v4ol -ow3der -ow3el -ow5est -ow1i -own5i -o4wo -oy1a -1pa -pa4ca -pa4ce -pac4t -p4ad -5pagan -p3agat -p4ai -pain4 -p4al -pan4a -pan3el -pan4ty -pa3ny -pa1p -pa4pu -para5bl -par5age -par5di -3pare -par5el -p4a4ri -par4is -pa2te -pa5ter -5pathic -pa5thy -pa4tric -pav4 -3pay -4p1b -pd4 -4pe. -3pe4a -pear4l -pe2c -2p2ed -3pede -3pedi -pedia4 -ped4ic -p4ee -pee4d -pek4 -pe4la -peli4e -pe4nan -p4enc -pen4th -pe5on -p4era. -pera5bl -p4erag -p4eri -peri5st -per4mal -perme5 -p4ern -per3o -per3ti -pe5ru -per1v -pe2t -pe5ten -pe5tiz -4pf -4pg -4ph. -phar5i -phe3no -ph4er -ph4es. -ph1ic -5phie -ph5ing -5phisti -3phiz -ph2l -3phob -3phone -5phoni -pho4r -4phs -ph3t -5phu -1phy -pi3a -pian4 -pi4cie -pi4cy -p4id -p5ida -pi3de -5pidi -3piec -pi3en -pi4grap -pi3lo -pi2n -p4in. -pind4 -p4ino -3pi1o -pion4 -p3ith -pi5tha -pi2tu -2p3k2 -1p2l2 -3plan -plas5t -pli3a -pli5er -4plig -pli4n -ploi4 -plu4m -plum4b -4p1m -2p3n -po4c -5pod. -po5em -po3et5 -5po4g -poin2 -5point -poly5t -po4ni -po4p -1p4or -po4ry -1pos -pos1s -p4ot -po4ta -5poun -4p1p -ppa5ra -p2pe -p4ped -p5pel -p3pen -p3per -p3pet -ppo5site -pr2 -pray4e -5preci -pre5co -pre3em -pref5ac -pre4la -pre3r -p3rese -3press -pre5ten -pre3v -5pri4e -prin4t3 -pri4s -pris3o -p3roca -prof5it -pro3l -pros3e -pro1t -2p1s2 -p2se -ps4h -p4sib -2p1t -pt5a4b -p2te -p2th -pti3m -ptu4r -p4tw -pub3 -pue4 -puf4 -pul3c -pu4m -pu2n -pur4r -5pus -pu2t -5pute -put3er -pu3tr -put4ted -put4tin -p3w -qu2 -qua5v -2que. -3quer -3quet -2rab -ra3bi -rach4e -r5acl -raf5fi -raf4t -r2ai -ra4lo -ram3et -r2ami -rane5o -ran4ge -r4ani -ra5no -rap3er -3raphy -rar5c -rare4 -rar5ef -4raril -r2as -ration4 -rau4t -ra5vai -rav3el -ra5zie -r1b -r4bab -r4bag -rbi2 -rbi4f -r2bin -r5bine -rb5ing. -rb4o -r1c -r2ce -rcen4 -r3cha -rch4er -r4ci4b -rc4it -rcum3 -r4dal -rd2i -rdi4a -rdi4er -rdin4 -rd3ing -2re. -re1al -re3an -re5arr -5reav -re4aw -r5ebrat -rec5oll -rec5ompe -re4cre -2r2ed -re1de -re3dis -red5it -re4fac -re2fe -re5fer. -re3fi -re4fy -reg3is -re5it -re1li -re5lu -r4en4ta -ren4te -re1o -re5pin -re4posi -re1pu -r1er4 -r4eri -rero4 -re5ru -r4es. -re4spi -ress5ib -res2t -re5stal -re3str -re4ter -re4ti4z -re3tri -reu2 -re5uti -rev2 -re4val -rev3el -r5ev5er. -re5vers -re5vert -re5vil -rev5olu -re4wh -r1f -rfu4 -r4fy -rg2 -rg3er -r3get -r3gic -rgi4n -rg3ing -r5gis -r5git -r1gl -rgo4n -r3gu -rh4 -4rh. -4rhal -ri3a -ria4b -ri4ag -r4ib -rib3a -ric5as -r4ice -4rici -5ricid -ri4cie -r4ico -rid5er -ri3enc -ri3ent -ri1er -ri5et -rig5an -5rigi -ril3iz -5riman -rim5i -3rimo -rim4pe -r2ina -5rina. -rin4d -rin4e -rin4g -ri1o -5riph -riph5e -ri2pl -rip5lic -r4iq -r2is -r4is. -ris4c -r3ish -ris4p -ri3ta3b -r5ited. -rit5er. -rit5ers -rit3ic -ri2tu -rit5ur -riv5el -riv3et -riv3i -r3j -r3ket -rk4le -rk4lin -r1l -rle4 -r2led -r4lig -r4lis -rl5ish -r3lo4 -r1m -rma5c -r2me -r3men -rm5ers -rm3ing -r4ming. -r4mio -r3mit -r4my -r4nar -r3nel -r4ner -r5net -r3ney -r5nic -r1nis4 -r3nit -r3niv -rno4 -r4nou -r3nu -rob3l -r2oc -ro3cr -ro4e -ro1fe -ro5fil -rok2 -ro5ker -5role. -rom5ete -rom4i -rom4p -ron4al -ron4e -ro5n4is -ron4ta -1room -5root -ro3pel -rop3ic -ror3i -ro5ro -ros5per -ros4s -ro4the -ro4ty -ro4va -rov5el -rox5 -r1p -r4pea -r5pent -rp5er. -r3pet -rp4h4 -rp3ing -r3po -r1r4 -rre4c -rre4f -r4reo -rre4st -rri4o -rri4v -rron4 -rros4 -rrys4 -4rs2 -r1sa -rsa5ti -rs4c -r2se -r3sec -rse4cr -rs5er. -rs3es -rse5v2 -r1sh -r5sha -r1si -r4si4b -rson3 -r1sp -r5sw -rtach4 -r4tag -r3teb -rten4d -rte5o -r1ti -rt5ib -rti4d -r4tier -r3tig -rtil3i -rtil4l -r4tily -r4tist -r4tiv -r3tri -rtroph4 -rt4sh -ru3a -ru3e4l -ru3en -ru4gl -ru3in -rum3pl -ru2n -runk5 -run4ty -r5usc -ruti5n -rv4e -rvel4i -r3ven -rv5er. -r5vest -r3vey -r3vic -rvi4v -r3vo -r1w -ry4c -5rynge -ry3t -sa2 -2s1ab -5sack -sac3ri -s3act -5sai -salar4 -sal4m -sa5lo -sal4t -3sanc -san4de -s1ap -sa5ta -5sa3tio -sat3u -sau4 -sa5vor -5saw -4s5b -scan4t5 -sca4p -scav5 -s4ced -4scei -s4ces -sch2 -s4cho -3s4cie -5scin4d -scle5 -s4cli -scof4 -4scopy -scour5a -s1cu -4s5d -4se. -se4a -seas4 -sea5w -se2c3o -3sect -4s4ed -se4d4e -s5edl -se2g -seg3r -5sei -se1le -5self -5selv -4seme -se4mol -sen5at -4senc -sen4d -s5ened -sen5g -s5enin -4sentd -4sentl -sep3a3 -4s1er. -s4erl -ser4o -4servo -s1e4s -se5sh -ses5t -5se5um -5sev -sev3en -sew4i -5sex -4s3f -2s3g -s2h -2sh. -sh1er -5shev -sh1in -sh3io -3ship -shiv5 -sho4 -sh5old -shon3 -shor4 -short5 -4shw -si1b -s5icc -3side. -5sides -5sidi -si5diz -4signa -sil4e -4sily -2s1in -s2ina -5sine. -s3ing -1sio -5sion -sion5a -si2r -sir5a -1sis -3sitio -5siu -1siv -5siz -sk2 -4ske -s3ket -sk5ine -sk5ing -s1l2 -s3lat -s2le -slith5 -2s1m -s3ma -small3 -sman3 -smel4 -s5men -5smith -smol5d4 -s1n4 -1so -so4ce -soft3 -so4lab -sol3d2 -so3lic -5solv -3som -3s4on. -sona4 -son4g -s4op -5sophic -s5ophiz -s5ophy -sor5c -sor5d -4sov -so5vi -2spa -5spai -spa4n -spen4d -2s5peo -2sper -s2phe -3spher -spho5 -spil4 -sp5ing -4spio -s4ply -s4pon -spor4 -4spot -squal4l -s1r -2ss -s1sa -ssas3 -s2s5c -s3sel -s5seng -s4ses. -s5set -s1si -s4sie -ssi4er -ss5ily -s4sl -ss4li -s4sn -sspend4 -ss2t -ssur5a -ss5w -2st. -s2tag -s2tal -stam4i -5stand -s4ta4p -5stat. -s4ted -stern5i -s5tero -ste2w -stew5a -s3the -st2i -s4ti. -s5tia -s1tic -5stick -s4tie -s3tif -st3ing -5stir -s1tle -5stock -stom3a -5stone -s4top -3store -st4r -s4trad -5stratu -s4tray -s4trid -4stry -4st3w -s2ty -1su -su1al -su4b3 -su2g3 -su5is -suit3 -s4ul -su2m -sum3i -su2n -su2r -4sv -sw2 -4swo -s4y -4syc -3syl -syn5o -sy5rin -1ta -3ta. -2tab -ta5bles -5taboliz -4taci -ta5do -4taf4 -tai5lo -ta2l -ta5la -tal5en -tal3i -4talk -tal4lis -ta5log -ta5mo -tan4de -tanta3 -ta5per -ta5pl -tar4a -4tarc -4tare -ta3riz -tas4e -ta5sy -4tatic -ta4tur -taun4 -tav4 -2taw -tax4is -2t1b -4tc -t4ch -tch5et -4t1d -4te. -tead4i -4teat -tece4 -5tect -2t1ed -te5di -1tee -teg4 -te5ger -te5gi -3tel. -teli4 -5tels -te2ma2 -tem3at -3tenan -3tenc -3tend -4tenes -1tent -ten4tag -1teo -te4p -te5pe -ter3c -5ter3d -1teri -ter5ies -ter3is -teri5za -5ternit -ter5v -4tes. -4tess -t3ess. -teth5e -3teu -3tex -4tey -2t1f -4t1g -2th. -than4 -th2e -4thea -th3eas -the5at -the3is -3thet -th5ic. -th5ica -4thil -5think -4thl -th5ode -5thodic -4thoo -thor5it -tho5riz -2ths -1tia -ti4ab -ti4ato -2ti2b -4tick -t4ico -t4ic1u -5tidi -3tien -tif2 -ti5fy -2tig -5tigu -till5in -1tim -4timp -tim5ul -2t1in -t2ina -3tine. -3tini -1tio -ti5oc -tion5ee -5tiq -ti3sa -3tise -tis4m -ti5so -tis4p -5tistica -ti3tl -ti4u -1tiv -tiv4a -1tiz -ti3za -ti3zen -2tl -t5la -tlan4 -3tle. -3tled -3tles. -t5let. -t5lo -4t1m -tme4 -2t1n2 -1to -to3b -to5crat -4todo -2tof -to2gr -to5ic -to2ma -tom4b -to3my -ton4ali -to3nat -4tono -4tony -to2ra -to3rie -tor5iz -tos2 -5tour -4tout -to3war -4t1p -1tra -tra3b -tra5ch -traci4 -trac4it -trac4te -tras4 -tra5ven -trav5es5 -tre5f -tre4m -trem5i -5tria -tri5ces -5tricia -4trics -2trim -tri4v -tro5mi -tron5i -4trony -tro5phe -tro3sp -tro3v -tru5i -trus4 -4t1s2 -t4sc -tsh4 -t4sw -4t3t2 -t4tes -t5to -ttu4 -1tu -tu1a -tu3ar -tu4bi -tud2 -4tue -4tuf4 -5tu3i -3tum -tu4nis -2t3up. -3ture -5turi -tur3is -tur5o -tu5ry -3tus -4tv -tw4 -4t1wa -twis4 -4two -1ty -4tya -2tyl -type3 -ty5ph -4tz -tz4e -4uab -uac4 -ua5na -uan4i -uar5ant -uar2d -uar3i -uar3t -u1at -uav4 -ub4e -u4bel -u3ber -u4bero -u1b4i -u4b5ing -u3ble. -u3ca -uci4b -uc4it -ucle3 -u3cr -u3cu -u4cy -ud5d -ud3er -ud5est -udev4 -u1dic -ud3ied -ud3ies -ud5is -u5dit -u4don -ud4si -u4du -u4ene -uens4 -uen4te -uer4il -3ufa -u3fl -ugh3en -ug5in -2ui2 -uil5iz -ui4n -u1ing -uir4m -uita4 -uiv3 -uiv4er. -u5j -4uk -u1la -ula5b -u5lati -ulch4 -5ulche -ul3der -ul4e -u1len -ul4gi -ul2i -u5lia -ul3ing -ul5ish -ul4lar -ul4li4b -ul4lis -4ul3m -u1l4o -4uls -uls5es -ul1ti -ultra3 -4ultu -u3lu -ul5ul -ul5v -um5ab -um4bi -um4bly -u1mi -u4m3ing -umor5o -um2p -unat4 -u2ne -un4er -u1ni -un4im -u2nin -un5ish -uni3v -un3s4 -un4sw -unt3ab -un4ter. -un4tes -unu4 -un5y -un5z -u4ors -u5os -u1ou -u1pe -uper5s -u5pia -up3ing -u3pl -up3p -upport5 -upt5ib -uptu4 -u1ra -4ura. -u4rag -u4ras -ur4be -urc4 -ur1d -ure5at -ur4fer -ur4fr -u3rif -uri4fic -ur1in -u3rio -u1rit -ur3iz -ur2l -url5ing. -ur4no -uros4 -ur4pe -ur4pi -urs5er -ur5tes -ur3the -urti4 -ur4tie -u3ru -2us -u5sad -u5san -us4ap -usc2 -us3ci -use5a -u5sia -u3sic -us4lin -us1p -us5sl -us5tere -us1tr -u2su -usur4 -uta4b -u3tat -4ute. -4utel -4uten -uten4i -4u1t2i -uti5liz -u3tine -ut3ing -ution5a -u4tis -5u5tiz -u4t1l -ut5of -uto5g -uto5matic -u5ton -u4tou -uts4 -u3u -uu4m -u1v2 -uxu3 -uz4e -1va -5va. -2v1a4b -vac5il -vac3u -vag4 -va4ge -va5lie -val5o -val1u -va5mo -va5niz -va5pi -var5ied -3vat -4ve. -4ved -veg3 -v3el. -vel3li -ve4lo -v4ely -ven3om -v5enue -v4erd -5vere. -v4erel -v3eren -ver5enc -v4eres -ver3ie -vermi4n -3verse -ver3th -v4e2s -4ves. -ves4te -ve4te -vet3er -ve4ty -vi5ali -5vian -5vide. -5vided -4v3iden -5vides -5vidi -v3if -vi5gn -vik4 -2vil -5vilit -v3i3liz -v1in -4vi4na -v2inc -vin5d -4ving -vio3l -v3io4r -vi1ou -vi4p -vi5ro -vis3it -vi3so -vi3su -4viti -vit3r -4vity -3viv -5vo. -voi4 -3vok -vo4la -v5ole -5volt -3volv -vom5i -vor5ab -vori4 -vo4ry -vo4ta -4votee -4vv4 -v4y -w5abl -2wac -wa5ger -wag5o -wait5 -w5al. -wam4 -war4t -was4t -wa1te -wa5ver -w1b -wea5rie -weath3 -wed4n -weet3 -wee5v -wel4l -w1er -west3 -w3ev -whi4 -wi2 -wil2 -will5in -win4de -win4g -wir4 -3wise -with3 -wiz5 -w4k -wl4es -wl3in -w4no -1wo2 -wom1 -wo5ven -w5p -wra4 -wri4 -writa4 -w3sh -ws4l -ws4pe -w5s4t -4wt -wy4 -x1a -xac5e -x4ago -xam3 -x4ap -xas5 -x3c2 -x1e -xe4cuto -x2ed -xer4i -xe5ro -x1h -xhi2 -xhil5 -xhu4 -x3i -xi5a -xi5c -xi5di -x4ime -xi5miz -x3o -x4ob -x3p -xpan4d -xpecto5 -xpe3d -x1t2 -x3ti -x1u -xu3a -xx4 -y5ac -3yar4 -y5at -y1b -y1c -y2ce -yc5er -y3ch -ych4e -ycom4 -ycot4 -y1d -y5ee -y1er -y4erf -yes4 -ye4t -y5gi -4y3h -y1i -y3la -ylla5bl -y3lo -y5lu -ymbol5 -yme4 -ympa3 -yn3chr -yn5d -yn5g -yn5ic -5ynx -y1o4 -yo5d -y4o5g -yom4 -yo5net -y4ons -y4os -y4ped -yper5 -yp3i -y3po -y4poc -yp2ta -y5pu -yra5m -yr5ia -y3ro -yr4r -ys4c -y3s2e -ys3ica -ys3io -3ysis -y4so -yss4 -ys1t -ys3ta -ysur4 -y3thin -yt3ic -y1w -za1 -z5a2b -zar2 -4zb -2ze -ze4n -ze4p -z1er -ze3ro -zet4 -2z1i -z4il -z4is -5zl -4zm -1zo -zo4m -zo5ol -zte4 -4z1z2 -z4zy -.con5gr -.de5riva -.dri5v4 -.eth1y6l1 -.eu4ler -.ev2 -.ever5si5b -.ga4s1om1 -.ge4ome -.ge5ot1 -.he3mo1 -.he3p6a -.he3roe -.in5u2t -.kil2n3i -.ko6r1te1 -.le6ices -.me4ga1l -.met4ala -.mim5i2c1 -.mi1s4ers -.ne6o3f -.noe1th -.non1e2m -.poly1s -.post1am -.pre1am -.rav5en1o -.semi5 -.sem4ic -.semid6 -.semip4 -.semir4 -.sem6is4 -.semiv4 -.sph6in1 -.spin1o -.ta5pes1tr -.te3legr -.to6pog -.to2q -.un3at5t -.un5err5 -.vi2c3ar -.we2b1l -.re1e4c -a5bolic -a2cabl -af6fish -am1en3ta5b -anal6ys -ano5a2c -ans5gr -ans3v -anti1d -an3ti1n2 -anti1re -a4pe5able -ar3che5t -ar2range -as5ymptot -ath3er1o1s -at6tes. -augh4tl -au5li5f -av3iou -back2er. -ba6r1onie -ba1thy -bbi4t -be2vie -bi5d2if -bil2lab -bio5m -bi1orb -bio1rh -b1i3tive -blan2d1 -blin2d1 -blon2d2 -bor1no5 -bo2t1u1l -brus4q -bus6i2er -bus6i2es -buss4ing -but2ed. -but4ted -cad5e1m -cat1a1s2 -4chs. -chs3hu -chie5vo -cig3a3r -cin2q -cle4ar -co6ph1o3n -cous2ti -cri3tie -croc1o1d -cro5e2co -c2tro3me6c -1cu2r1ance -2d3alone -data1b -dd5a5b -d2d5ib -de4als. -de5clar1 -de2c5lina -de3fin3iti -de2mos -des3ic -de2tic -dic1aid -dif5fra -3di1methy -di2ren -di2rer -2d1lead -2d1li2e -3do5word -dren1a5l -drif2t1a -d1ri3pleg5 -drom3e5d -d3tab -du2al. -du1op1o1l -ea4n3ies -e3chas -edg1l -ed1uling -eli2t1is -e1loa -en1dix -eo3grap -1e6p3i3neph1 -e2r3i4an. -e3spac6i -eth1y6l1ene -5eu2clid1 -feb1rua -fermi1o -3fich -fit5ted. -fla1g6el -flow2er. -3fluor -gen2cy. -ge3o1d -ght1we -g1lead -get2ic. -4g1lish -5glo5bin -1g2nac -gnet1ism -gno5mo -g2n1or. -g2noresp -2g1o4n3i1za -graph5er. -griev1 -g1utan -hair1s -ha2p3ar5r -hatch1 -hex2a3 -hite3sid -h3i5pel1a4 -hnau3z -ho6r1ic. -h2t1eou -hypo1tha -id4ios -ifac1et -ign4it -ignit1er -i4jk -im3ped3a -infra1s2 -i5nitely. -irre6v3oc -i1tesima -ith5i2l -itin5er5ar -janu3a -japan1e2s -je1re1m -1ke6ling -1ki5netic -1kovian -k3sha -la4c3i5e -lai6n3ess -lar5ce1n -l3chai -l3chil6d1 -lead6er. -lea4s1a -1lec3ta6b -le3g6en2dre -1le1noid -lith1o5g -ll1fl -l2l3ish -l5mo3nell -lo1bot1o1 -lo2ges. -load4ed. -load6er. -l3tea -lth5i2ly -lue1p -1lunk3er -1lum5bia. -3lyg1a1mi -ly5styr -ma1la1p -m2an. -man3u1sc -mar1gin1 -medi2c -med3i3cin -medio6c1 -me3gran3 -m2en. -3mi3da5b -3milita -mil2l1ag -mil5li5li -mi6n3is. -mi1n2ut1er -mi1n2ut1est -m3ma1b -5maph1ro1 -5moc1ra1t -mo5e2las -mol1e5c -mon4ey1l -mono3ch -mo4no1en -moro6n5is -mono1s6 -moth4et2 -m1ou3sin -m5shack2 -mu2dro -mul2ti5u -n3ar4chs. -n3ch2es1t -ne3back -2ne1ski -n1dieck -nd3thr -nfi6n3ites -4n5i4an. -nge5nes -ng1ho -ng1spr -nk3rup -n5less -5noc3er1os -nom1a6l -nom5e1no -n1o1mist -non1eq -non1i4so -5nop1oly. -no1vemb -ns5ceiv -ns4moo -ntre1p -obli2g1 -o3chas -odel3li -odit1ic -oerst2 -oke1st -o3les3ter -oli3gop1o1 -o1lo3n4om -o3mecha6 -onom1ic -o3norma -o3no2t1o3n -o3nou -op1ism. -or4tho3ni4t -orth1ri -or5tively -o4s3pher -o5test1er -o5tes3tor -oth3e1o1s -ou3ba3do -o6v3i4an. -oxi6d1ic -pal6mat -parag6ra4 -par4a1le -param4 -para3me -pee2v1 -phi2l3ant -phi5lat1e3l -pi2c1a3d -pli2c1ab -pli5nar -poin3ca -1pole. -poly1e -po3lyph1ono -1prema3c -pre1neu -pres2pli -pro2cess -proc3i3ty. -pro2g1e -3pseu2d -pseu3d6o3d2 -pseu3d6o3f2 -pto3mat4 -p5trol3 -pu5bes5c -quain2t1e -qu6a3si3 -quasir6 -quasis6 -quin5tes5s -qui3v4ar -r1abolic -3rab1o1loi -ra3chu -r3a3dig -radi1o6g -r2amen -3ra4m5e1triz -ra3mou -ra5n2has -ra1or -r3bin1ge -re2c3i1pr -rec5t6ang -re4t1ribu -r3ial. -riv1o1l -6rk. -rk1ho -r1krau -6rks. -r5le5qu -ro1bot1 -ro5e2las -ro5epide1 -ro3mesh -ro1tron -r3pau5li -rse1rad1i -r1thou -r1treu -r1veil -rz1sc -sales3c -sales5w -5sa3par5il -sca6p1er -sca2t1ol -s4chitz -schro1ding1 -1sci2utt -scrap4er. -scy4th1 -sem1a1ph -se3mes1t -se1mi6t5ic -sep3temb -shoe1st -sid2ed. -side5st -side5sw -si5resid -sky1sc -3slova1kia -3s2og1a1my -so2lute -3s2pace -1s2pacin -spe3cio -spher1o -spi2c1il -spokes5w -sports3c -sports3w -s3qui3to -s2s1a3chu1 -ss3hat -s2s3i4an. -s5sign5a3b -1s2tamp -s2t1ant5shi -star3tli -sta1ti -st5b -1stor1ab -strat1a1g -strib5ut -st5scr -stu1pi4d1 -styl1is -su2per1e6 -1sync -1syth3i2 -swimm6 -5tab1o1lism -ta3gon. -talk1a5 -t1a1min -t6ap6ath -5tar2rh -tch1c -tch3i1er -t1cr -teach4er. -tele2g -tele1r6o -3ter1gei -ter2ic. -t3ess2es -tha4l1am -tho3don -th1o5gen1i -tho1k2er -thy4l1an -thy3sc -2t3i4an. -ti2n3o1m -t1li2er -tolo2gy -tot3ic -trai3tor1 -tra1vers -travers3a3b -treach1e -tr4ial. -3tro1le1um -trof4ic. -tro3fit -tro1p2is -3trop1o5les -3trop1o5lis -t1ro1pol3it -tsch3ie -ttrib1ut1 -turn3ar -t1wh -ty2p5al -ua3drati -uad1ratu -u5do3ny -uea1m -u2r1al. -uri4al. -us2er. -v1ativ -v1oir5du1 -va6guer -vaude3v -1verely. -v1er1eig -ves1tite -vi1vip3a3r -voice1p -waste3w6a2 -wave1g4 -w3c -week1n -wide5sp -wo4k1en -wrap3aro -writ6er. -x1q -xquis3 -y5che3d -ym5e5try -y1stro -yes5ter1y -z3ian. -z3o1phr -z2z3w diff --git a/test/hyphenate-nbsp.html b/test/hyphenate-nbsp.html deleted file mode 100644 index 1bfd9a25..00000000 --- a/test/hyphenate-nbsp.html +++ /dev/null @@ -1,3 +0,0 @@ -
-Wei kurz und knapp www.dillo.org -
diff --git a/test/hyphens-etc.html b/test/hyphens-etc.html deleted file mode 100644 index cbc55b79..00000000 --- a/test/hyphens-etc.html +++ /dev/null @@ -1,6 +0,0 @@ -

Abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde­abcde

-

Abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde-abcde

-

Abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde‐abcde

-

Abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde—abcde

-

Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen—Nordrhein-Westfalen

-

Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen—Nord­rheinwestfalen

diff --git a/test/identity.cc b/test/identity.cc deleted file mode 100644 index a1a136eb..00000000 --- a/test/identity.cc +++ /dev/null @@ -1,55 +0,0 @@ -/* - * This small program tests how IdentifiableObject works with multiple - * inheritance ("diamond" inheritance, more precisely, since all - * classes have there root in IdentifiableObject.) - * - * Current status: With virtual superclasses, you get a class - * hierarchie "root -> A -> B -> C", so that the first part of this - * example works actually (C is a subclass of A and of B), but the - * second fails (it should print "false", but it is erroneously - * assumed that B is a subclass of A.) - */ - -#include "../lout/identity.hh" - -using namespace lout::identity; - -class A: virtual public IdentifiableObject -{ -public: - static int CLASS_ID; - inline A () { registerName ("A", &CLASS_ID); } -}; - -class B: virtual public IdentifiableObject -{ -public: - static int CLASS_ID; - inline B () { registerName ("B", &CLASS_ID); } -}; - -class C: public A, public B -{ -public: - static int CLASS_ID; - inline C () { registerName ("C", &CLASS_ID); } -}; - -int A::CLASS_ID = -1, B::CLASS_ID = -1, C::CLASS_ID = -1; - -int main (int argc, char *argv[]) -{ - printf ("A: %d, B: %d, C: %d\n", A::CLASS_ID, B::CLASS_ID, C::CLASS_ID); - - C x; - assert (x.instanceOf (A::CLASS_ID)); - assert (x.instanceOf (B::CLASS_ID)); - assert (x.instanceOf (C::CLASS_ID)); - printf ("x: %d\n", x.getClassId ()); - - B y; - printf ("y: %d; instance of A: %s\n", - y.getClassId (), y.instanceOf (B::CLASS_ID) ? "true" : "false"); - - return 0; -} diff --git a/test/lang.html b/test/lang.html deleted file mode 100644 index c5a6f562..00000000 --- a/test/lang.html +++ /dev/null @@ -1,27 +0,0 @@ -

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla -bla bla bla bla bla: -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

-

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla -bla bla bla bla bla: -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

-

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla -bla bla bla bla bla: -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

-

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla -bla bla bla bla bla: -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

- -
- -

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla -bla bla bla bla bla: -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

-

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla -bla bla bla bla bla: -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

-

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla -bla bla bla bla bla: -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

-

Bla bla bla bla bla bla bla bla bla Bla bla bla bla bla -bla bla bla bla bla: -Grundstücksverkehrsgenehmigungszuständigkeitsübertragungsverordnung

diff --git a/test/liang.cc b/test/liang.cc deleted file mode 100644 index ee3f8e9e..00000000 --- a/test/liang.cc +++ /dev/null @@ -1,79 +0,0 @@ -#include - -#include "../dw/fltkcore.hh" -#include "../dw/hyphenator.hh" - -void hyphenateWord (dw::core::Platform *p, const char *lang, const char *word) -{ - dw::Hyphenator *h = dw::Hyphenator::getHyphenator (lang); - - int numBreaks; - int *breakPos = h->hyphenateWord (p, word, &numBreaks); - for (int i = 0; i < numBreaks + 1; i++) { - if (i != 0) - printf (" \xc2\xad "); - int start = (i == 0 ? 0 : breakPos[i - 1]); - int end = (i == numBreaks ? strlen (word) : breakPos[i]); - for (int j = start; j < end; j++) - putchar (word[j]); - } - putchar ('\n'); - if (breakPos) - free (breakPos); -} - -int main (int argc, char *argv[]) -{ - dw::fltk::FltkPlatform p; - - if (argc > 1) { - // Usage: liang [-l LANG] WORD ... - - const char *lang = "de"; - char opt; - - while ((opt = getopt(argc, argv, "l:")) != -1) { - switch (opt) { - case 'l': - lang = optarg; - break; - } - } - - for (int i = optind; i < argc; i++) - hyphenateWord (&p, lang, argv[i]); - - } else { - hyphenateWord (&p, "de", "..."); - hyphenateWord (&p, "de", "Jahrhundertroman"); - hyphenateWord (&p, "de", "JAHRHUNDERTROMAN"); - hyphenateWord (&p, "de", "„Jahrhundertroman“"); - hyphenateWord (&p, "de", "währenddessen"); - hyphenateWord (&p, "de", "„währenddessen“"); - hyphenateWord (&p, "de", "Ückendorf"); - hyphenateWord (&p, "de", "über"); - hyphenateWord (&p, "de", "aber"); - hyphenateWord (&p, "de", "Ackermann"); - hyphenateWord (&p, "de", "„Ackermann“"); - hyphenateWord (&p, "de", "entscheidet."); - hyphenateWord (&p, "de", "Grundstücksverkehrsgenehmigungszuständigkeits" - "übertragungsverordnung"); - hyphenateWord (&p, "de", "„Grundstücksverkehrsgenehmigungszuständigkeits" - "übertragungsverordnung“"); - hyphenateWord (&p, "de", "Grundstücksverkehrsgenehmigungszuständigkeit"); - hyphenateWord (&p, "de", - "„Grundstücksverkehrsgenehmigungszuständigkeit“"); - hyphenateWord (&p, "de", - "(6R,7R)-7-[2-(2-Amino-4-thiazolyl)-glyoxylamido]-3-" - "(2,5-dihydro-6-hydroxy-2-methyl-5-oxo-1,2,4-triazin-3-yl-" - "thiomethyl)-8-oxo-5-thia-1-azabicyclo[4.2.0]oct-2-en-2-" - "carbonsäure-7²-(Z)-(O-methyloxim)"); - hyphenateWord (&p, "de", "Abtei-Stadt"); - hyphenateWord (&p, "de", "Nordrhein-Westfalen"); - hyphenateWord (&p, "de", "kurz\xc2\xa0und\xc2\xa0knapp"); - hyphenateWord (&p, "de", "weiß"); - hyphenateWord (&p, "de", "www.dillo.org"); - } - - return 0; -} diff --git a/test/notsosimplevector.cc b/test/notsosimplevector.cc deleted file mode 100644 index d41288fb..00000000 --- a/test/notsosimplevector.cc +++ /dev/null @@ -1,63 +0,0 @@ -#include "../lout/misc.hh" - -static void print (lout::misc::NotSoSimpleVector *v) -{ - for (int i = 0; i < v->size(); i++) { - // Uncomment for debugging, after making the respective members public. - //if (v->startExtra != -1 && i == v->startExtra + v->numExtra) - // printf (" ]"); - if (i > 0) - printf (", "); - //if (i == v->startExtra) - // printf ("[ "); - - printf ("%d", v->get(i)); - } - - printf (" (%d elements)\n", v->size ()); -} - -int main (int argc, char *argv[]) -{ - lout::misc::NotSoSimpleVector v(1); - - for (int i = 1; i <= 10; i++) { - v.increase (); - v.set(v.size () - 1, i); - } - - print (&v); - - v.insert (2, 4); - for (int i = 0; i < 5; i++) - v.set (2 + i, 31 + i); - - print (&v); - - v.insert (8, 4); - for (int i = 0; i < 5; i++) - v.set (8 + i, 51 + i); - - print (&v); - - v.insert (10, 4); - for (int i = 0; i < 5; i++) - v.set (10 + i, 531 + i); - - print (&v); - - v.insert (1, 4); - for (int i = 0; i < 5; i++) - v.set (1 + i, 21 + i); - - print (&v); - - int n = v.size (); - v.insert (n, 5); - for (int i = 0; i < 5; i++) - v.set (n + i, 101 + i); - - print (&v); - - return 0; -} diff --git a/test/shapes.cc b/test/shapes.cc deleted file mode 100644 index 30aa7d81..00000000 --- a/test/shapes.cc +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Dillo Widget - * - * Copyright 2005-2007 Sebastian Geerken - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - - - -#include "../dw/core.hh" - -using namespace dw::core; -using namespace lout::misc; - -int main() -{ - Polygon poly; - poly.addPoint (50, 10); - poly.addPoint (90, 90); - poly.addPoint (10, 90); - - printf("first test\n"); - assert (poly.isPointWithin (50, 50)); - printf("second test\n"); - assert (!poly.isPointWithin (10, 10)); - printf("third test\n"); - assert (!poly.isPointWithin (90, 50)); -} diff --git a/test/table-1.html b/test/table-1.html deleted file mode 100644 index 58635d2c..00000000 --- a/test/table-1.html +++ /dev/null @@ -1,21 +0,0 @@ - - - -
Short, then some more text, -which must not be broken. -This is a rather long text to increase the maximal paragraph -width. Sed ut perspiciatis, unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae -ab illo inventore veritatis et quasi architecto beatae vitae dicta -sunt, explicabo. nemo enim ipsam voluptatem, quia voluptas sit, -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, -qui dolorem ipsum, quia dolor sit, amet, consectetur, adipisci velit, -sed quia non numquam eius modi tempora incidunt, ut labore et dolore -magnam aliquam quaerat voluptatem. ut enim ad minima veniam, quis -nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut -aliquid ex ea commodi consequatur? quis autem vel eum iure -reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae -consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla -pariatur? -
diff --git a/test/table-h1.html b/test/table-h1.html deleted file mode 100644 index fb82c3ec..00000000 --- a/test/table-h1.html +++ /dev/null @@ -1,37 +0,0 @@ - - -
Grundstücksverkehrsgenehmigungszuständigkeit ABC -Sed ut perspiciatis, unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae -ab illo inventore veritatis et quasi architecto beatae vitae dicta -sunt, explicabo. nemo enim ipsam voluptatem, quia voluptas sit, -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, -qui dolorem ipsum, quia dolor sit, amet, consectetur, adipisci velit, -sed quia non numquam eius modi tempora incidunt, ut labore et dolore -magnam aliquam quaerat voluptatem. ut enim ad minima veniam, quis -nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut -aliquid ex ea commodi consequatur? quis autem vel eum iure -reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae -consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla -pariatur? -
- - - -
Grund­stücks­ver­kehrs­ge­neh­mi­gungs­zu­stän­dig­keit ABC -Sed ut perspiciatis, unde omnis iste natus error sit voluptatem -accusantium doloremque laudantium, totam rem aperiam eaque ipsa, quae -ab illo inventore veritatis et quasi architecto beatae vitae dicta -sunt, explicabo. nemo enim ipsam voluptatem, quia voluptas sit, -aspernatur aut odit aut fugit, sed quia consequuntur magni dolores -eos, qui ratione voluptatem sequi nesciunt, neque porro quisquam est, -qui dolorem ipsum, quia dolor sit, amet, consectetur, adipisci velit, -sed quia non numquam eius modi tempora incidunt, ut labore et dolore -magnam aliquam quaerat voluptatem. ut enim ad minima veniam, quis -nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut -aliquid ex ea commodi consequatur? quis autem vel eum iure -reprehenderit, qui in ea voluptate velit esse, quam nihil molestiae -consequatur, vel illum, qui dolorem eum fugiat, quo voluptas nulla -pariatur? -
diff --git a/test/table-narrow.html b/test/table-narrow.html deleted file mode 100644 index ad28417d..00000000 --- a/test/table-narrow.html +++ /dev/null @@ -1,9 +0,0 @@ - - -
W daaaaaaaaaaaa*
-
WW daaaaaaaaaaaa*
-
WWW daaaaaaaaaaaa*
-
WWWW daaaaaaaaaaaa*
-
WWWWW daaaaaaaaaaaa*
-
WWWWWW daaaaaaaaaaaa*
-
diff --git a/test/table-thead-tfoot.html b/test/table-thead-tfoot.html deleted file mode 100644 index 66be2710..00000000 --- a/test/table-thead-tfoot.html +++ /dev/null @@ -1,41 +0,0 @@ - - - - Test thead, tbody and tfoot - - - - - - - - - - - - - - - - - - - - - - - - - - -
MonthSavings
January$100
February$80
Sum$180
- - diff --git a/test/trie.cc b/test/trie.cc deleted file mode 100644 index 41b56c70..00000000 --- a/test/trie.cc +++ /dev/null @@ -1,14 +0,0 @@ -#include "../dw/hyphenator.hh" - -int main (int argc, char *argv[]) -{ - if (argc < 2) { - fprintf(stderr, "Usage: trie \n"); - exit (1); - } - - /* Use pack = 1024 to create a really small trie - can take a while. - */ - dw::Hyphenator hyphenator (argv[1], NULL, 1024); - hyphenator.saveTrie (stdout); -} diff --git a/test/unicode_test.cc b/test/unicode_test.cc deleted file mode 100644 index 7c079305..00000000 --- a/test/unicode_test.cc +++ /dev/null @@ -1,39 +0,0 @@ -#include -#include -#include -#include "../lout/unicode.hh" - -using namespace lout::unicode; - -int main (int argc, char *argv[]) -{ - // 0-terminated string - const char *t1 = "abcäöüабв−‐"; - - // not 0-terminated; copy from 0-terminated - int t2len = strlen (t1); - char t2[t2len]; - for (int i = 0; i < t2len; i++) - t2[i] = t1[i]; - - puts ("===== misc::unicode, 0-terminated ====="); - for (const char *s = t1; s; s = nextUtf8Char (s)) - printf ("%3d -> U+%04x ('%s')\n", (int)(s - t1), decodeUtf8(s), s); - - puts ("===== Fltk, 0-terminated ====="); - for (const char *s = t1; *s; s = fl_utf8fwd (s + 1, t1, t1 + strlen (t1))) - printf ("%3d -> U+%04x ('%s')\n", (int)(s - t1), decodeUtf8(s), s); - - puts ("===== misc::unicode, not 0-terminated ====="); - for (const char *s = t2; s; s = nextUtf8Char (s, t2len - (s - t2))) - printf ("%3d -> U+%04x\n", (int)(s - t2), - decodeUtf8(s, t2len - (s - t2))); - - puts ("===== Fltk, not 0-terminated ====="); - for (const char *s = t2; *s; - s - t2 < t2len && (s = fl_utf8fwd (s + 1, t2, t2 + t2len))) - printf ("%3d -> U+%04x\n", (int)(s - t2), - decodeUtf8(s, t2len - (s - t2))); - - return 0; -} diff --git a/test/unit/Makefile.am b/test/unit/Makefile.am new file mode 100644 index 00000000..41bc56df --- /dev/null +++ b/test/unit/Makefile.am @@ -0,0 +1,59 @@ +AM_CPPFLAGS = \ + -I$(top_srcdir) \ + -DCUR_SRC_DIR="\"$(srcdir)\"" \ + -DCUR_WORKING_DIR='"@BASE_CUR_WORKING_DIR@/test/unit"' + +AM_CFLAGS = @LIBFLTK_CFLAGS@ +AM_CXXFLAGS = @LIBFLTK_CXXFLAGS@ + +LDADD = \ + $(top_builddir)/lout/liblout.a + +TESTS = \ + containers \ + identity \ + liang \ + notsosimplevector \ + shapes + +# Some test are broken, so only build them +check_PROGRAMS = $(TESTS) \ + cookies \ + trie \ + unicode_test + +containers_SOURCES = containers.cc +notsosimplevector_SOURCES = notsosimplevector.cc +hyphenation_LDADD = \ + $(top_builddir)/dw/libDw-widgets.a \ + $(top_builddir)/dw/libDw-fltk.a \ + $(top_builddir)/dw/libDw-core.a \ + $(top_builddir)/lout/liblout.a \ + @LIBFLTK_LIBS@ @LIBX11_LIBS@ +identity_SOURCES = identity.cc +cookies_SOURCES = cookies.c +cookies_LDADD = \ + $(top_builddir)/dpip/libDpip.a \ + $(top_builddir)/dlib/libDlib.a +shapes_SOURCES = shapes.cc +shapes_LDADD = \ + $(top_builddir)/dw/libDw-core.a \ + $(top_builddir)/lout/liblout.a +unicode_test_SOURCES = unicode_test.cc +unicode_test_LDADD = \ + $(top_builddir)/lout/liblout.a \ + @LIBFLTK_LIBS@ @LIBX11_LIBS@ +liang_SOURCES = liang.cc +liang_LDADD = \ + $(top_builddir)/dw/libDw-widgets.a \ + $(top_builddir)/dw/libDw-fltk.a \ + $(top_builddir)/dw/libDw-core.a \ + $(top_builddir)/lout/liblout.a \ + @LIBFLTK_LIBS@ @LIBX11_LIBS@ +trie_SOURCES = trie.cc +trie_LDADD = \ + $(top_builddir)/dw/libDw-widgets.a \ + $(top_builddir)/dw/libDw-fltk.a \ + $(top_builddir)/dw/libDw-core.a \ + $(top_builddir)/lout/liblout.a \ + @LIBFLTK_LIBS@ @LIBX11_LIBS@ diff --git a/test/unit/containers.cc b/test/unit/containers.cc new file mode 100644 index 00000000..af317d7e --- /dev/null +++ b/test/unit/containers.cc @@ -0,0 +1,157 @@ +#include "../lout/object.hh" +#include "../lout/container.hh" + +using namespace lout::object; +using namespace lout::container::typed; + +class ReverseComparator: public Comparator +{ +private: + Comparator *reversed; + +public: + ReverseComparator (Comparator *reversed) { this->reversed = reversed; } + int compare(Object *o1, Object *o2) { return - reversed->compare (o1, o2); } +}; + +void testHashSet () +{ + puts ("--- testHashSet ---"); + + HashSet h(true); + + h.put (new String ("one")); + h.put (new String ("two")); + h.put (new String ("three")); + + puts (h.toString()); +} + +void testHashTable () +{ + puts ("--- testHashTable ---"); + + HashTable h(true, true); + + h.put (new String ("one"), new Integer (1)); + h.put (new String ("two"), new Integer (2)); + h.put (new String ("three"), new Integer (3)); + + puts (h.toString()); + + h.put (new String ("one"), new Integer (4)); + h.put (new String ("two"), new Integer (5)); + h.put (new String ("three"), new Integer (6)); + + puts (h.toString()); +} + +void testVector1 () +{ + ReverseComparator reverse (&standardComparator); + + puts ("--- testVector (1) ---"); + + Vector v (true, 1); + + v.put (new String ("one")); + v.put (new String ("two")); + v.put (new String ("three")); + puts (v.toString()); + + v.sort (&reverse); + puts (v.toString()); + + v.sort (); + puts (v.toString()); +} + +void testVector2 () +{ + puts ("--- testVector (2) ---"); + + Vector v (true, 1); + + v.insertSorted (new String ("one")); + puts (v.toString()); + + v.insertSorted (new String ("two")); + puts (v.toString()); + + v.insertSorted (new String ("three")); + puts (v.toString()); + + v.insertSorted (new String ("five")); + puts (v.toString()); + + v.insertSorted (new String ("six")); + puts (v.toString()); + + v.insertSorted (new String ("four")); + puts (v.toString()); + + for (int b = 0; b < 2; b++) { + bool mustExist = b; + printf ("mustExist = %s\n", mustExist ? "true" : "false"); + + String k ("alpha"); + printf (" '%s' -> %d\n", k.chars(), v.bsearch (&k, mustExist)); + + for (Iterator it = v.iterator(); it.hasNext(); ) { + String *k1 = it.getNext(); + printf (" '%s' -> %d\n", k1->chars(), v.bsearch (k1, mustExist)); + + char buf[64]; + strcpy (buf, k1->chars()); + strcat (buf, "-var"); + String k2 (buf); + printf (" '%s' -> %d\n", k2.chars(), v.bsearch (&k2, mustExist)); + } + } +} + +void testVector3 () +{ + // Regression test: resulted once incorrently (0, 2, 3), should + // result in (1, 2, 3). + + puts ("--- testVector (3) ---"); + + Vector v (true, 1); + String k ("omega"); + + v.put (new String ("alpha")); + printf (" -> %d\n", v.bsearch (&k, false)); + v.put (new String ("beta")); + printf (" -> %d\n", v.bsearch (&k, false)); + v.put (new String ("gamma")); + printf (" -> %d\n", v.bsearch (&k, false)); +} + +void testStackAsQueue () +{ + puts ("--- testStackAsQueue ---"); + + Stack s (true); + + for (int i = 1; i <= 10; i++) + s.pushUnder (new Integer (i)); + + while (s.size () > 0) { + Integer *i = s.getTop (); + printf ("%d\n", i->getValue ()); + s.pop (); + } +} + +int main (int argc, char *argv[]) +{ + testHashSet (); + testHashTable (); + testVector1 (); + testVector2 (); + testVector3 (); + testStackAsQueue (); + + return 0; +} diff --git a/test/unit/cookies.c b/test/unit/cookies.c new file mode 100644 index 00000000..eaa0f59d --- /dev/null +++ b/test/unit/cookies.c @@ -0,0 +1,1164 @@ +/* + * Dillo cookies test + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +/* + * This has a big blob of the current src/IO/dpi.c in it. + * I hope there's a better way. + */ + +#include /* malloc, etc. */ +#include /* read, etc. */ +#include +#include /* va_list */ +#include /* strchr */ +#include +#include +#include +/* net */ +#include +#include +#include +#include + + +#define _MSG(...) + +#define MSG_INNARDS(prefix, ...) \ + D_STMT_START { \ + printf(prefix __VA_ARGS__); \ + fflush (stdout); \ + } D_STMT_END + +#define MSG(...) MSG_INNARDS("", __VA_ARGS__) +#define MSG_WARN(...) MSG_INNARDS("** WARNING **: ", __VA_ARGS__) +#define MSG_ERR(...) MSG_INNARDS("** ERROR **: ", __VA_ARGS__) + + +#include "../dlib/dlib.h" +#include "../dpip/dpip.h" + +static uint_t failed = 0; +static uint_t passed = 0; + +static char SharedKey[32]; + +/* + * Read all the available data from a filedescriptor. + * This is intended for short answers, i.e. when we know the server + * will write it all before being preempted. For answers that may come + * as an stream with delays, non-blocking is better. + * Return value: read data, or NULL on error and no data. + */ +static char *Dpi_blocking_read(int fd) +{ + int st; + const int buf_sz = 8*1024; + char buf[buf_sz], *msg = NULL; + Dstr *dstr = dStr_sized_new(buf_sz); + + do { + st = read(fd, buf, buf_sz); + if (st < 0) { + if (errno == EINTR) { + continue; + } else { + MSG_ERR("[Dpi_blocking_read] %s\n", dStrerror(errno)); + break; + } + } else if (st > 0) { + dStr_append_l(dstr, buf, st); + } + } while (st == buf_sz); + + msg = (dstr->len > 0) ? dstr->str : NULL; + dStr_free(dstr, (dstr->len > 0) ? FALSE : TRUE); + return msg; +} + +static void Dpi_close_fd(int fd) +{ + int st; + + dReturn_if (fd < 0); + do + st = close(fd); + while (st < 0 && errno == EINTR); +} + +static int Dpi_make_socket_fd() +{ + int fd, ret = -1; + + if ((fd = socket(AF_INET, SOCK_STREAM, 0)) != -1) { + ret = fd; + } + return ret; +} + +/* + * Read dpid's communication keys from its saved file. + * Return value: 1 on success, -1 on error. + */ +static int Dpi_read_comm_keys(int *port) +{ + FILE *In; + char *fname, *rcline = NULL, *tail; + int i, ret = -1; + + fname = dStrconcat(dGethomedir(), "/.dillo/dpid_comm_keys", NULL); + if ((In = fopen(fname, "r")) == NULL) { + MSG_ERR("[Dpi_read_comm_keys] %s\n", dStrerror(errno)); + } else if ((rcline = dGetline(In)) == NULL) { + MSG_ERR("[Dpi_read_comm_keys] empty file: %s\n", fname); + } else { + *port = strtol(rcline, &tail, 10); + for (i = 0; *tail && isxdigit(tail[i+1]); ++i) + SharedKey[i] = tail[i+1]; + SharedKey[i] = 0; + ret = 1; + } + if (In) + fclose(In); + dFree(rcline); + dFree(fname); + + return ret; +} + +static int Dpi_check_dpid_ids() +{ + struct sockaddr_in sin; + const socklen_t sin_sz = sizeof(sin); + int sock_fd, dpid_port, ret = -1; + + /* socket connection test */ + memset(&sin, 0, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + + if (Dpi_read_comm_keys(&dpid_port) != -1) { + sin.sin_port = htons(dpid_port); + if ((sock_fd = Dpi_make_socket_fd()) == -1) { + MSG("Dpi_check_dpid_ids: sock_fd=%d %s\n", sock_fd, dStrerror(errno)); + } else if (connect(sock_fd, (struct sockaddr *)&sin, sin_sz) == -1) { + MSG("Dpi_check_dpid_ids: %s\n", dStrerror(errno)); + } else { + Dpi_close_fd(sock_fd); + ret = 1; + } + } + return ret; +} + +static int Dpi_blocking_write(int fd, const char *msg, int msg_len) +{ + int st, sent = 0; + + while (sent < msg_len) { + st = write(fd, msg + sent, msg_len - sent); + if (st < 0) { + if (errno == EINTR) { + continue; + } else { + MSG_ERR("[Dpi_blocking_write] %s\n", dStrerror(errno)); + break; + } + } + sent += st; + } + + return (sent == msg_len) ? 1 : -1; +} + +/* + * Start dpid. + * Return: 0 starting now, 1 Error. + */ +static int Dpi_start_dpid(void) +{ + pid_t pid; + int st_pipe[2], ret = 1; + char *answer; + + /* create a pipe to track our child's status */ + if (pipe(st_pipe)) + return 1; + + pid = fork(); + if (pid == 0) { + /* This is the child process. Execute the command. */ + char *path1 = dStrconcat(dGethomedir(), "/.dillo/dpid", NULL); + Dpi_close_fd(st_pipe[0]); + if (execl(path1, "dpid", (char*)NULL) == -1) { + dFree(path1); + if (execlp("dpid", "dpid", (char*)NULL) == -1) { + MSG("Dpi_start_dpid (child): %s\n", dStrerror(errno)); + if (Dpi_blocking_write(st_pipe[1], "ERROR", 5) == -1) { + MSG("Dpi_start_dpid (child): can't write to pipe.\n"); + } + Dpi_close_fd(st_pipe[1]); + _exit (EXIT_FAILURE); + } + } + } else if (pid < 0) { + /* The fork failed. Report failure. */ + MSG("Dpi_start_dpid: %s\n", dStrerror(errno)); + /* close the unused pipe */ + Dpi_close_fd(st_pipe[0]); + Dpi_close_fd(st_pipe[1]); + + } else { + /* This is the parent process, check our child status... */ + Dpi_close_fd(st_pipe[1]); + if ((answer = Dpi_blocking_read(st_pipe[0])) != NULL) { + MSG("Dpi_start_dpid: can't start dpid\n"); + dFree(answer); + } else { + ret = 0; + } + Dpi_close_fd(st_pipe[0]); + } + + return ret; +} + +/* + * Confirm that the dpid is running. If not, start it. + * Return: 0 running OK, 1 starting (EAGAIN), 2 Error. + */ +static int Dpi_check_dpid(int num_tries) +{ + static int starting = 0; + int check_st = 1, ret = 2; + + check_st = Dpi_check_dpid_ids(); + _MSG("Dpi_check_dpid: check_st=%d\n", check_st); + + if (check_st == 1) { + /* connection test with dpi server passed */ + starting = 0; + ret = 0; + } else { + if (!starting) { + /* start dpid */ + if (Dpi_start_dpid() == 0) { + starting = 1; + ret = 1; + } + } else if (++starting < num_tries) { + /* starting */ + ret = 1; + } else { + /* we waited too much, report an error... */ + starting = 0; + } + } + + _MSG("Dpi_check_dpid:: %s\n", + (ret == 0) ? "OK" : (ret == 1 ? "EAGAIN" : "ERROR")); + return ret; +} + + +static int Dpi_blocking_start_dpid(void) +{ + int cst, try = 0, + n_tries = 12; /* 3 seconds */ + + /* test the dpid, and wait a bit for it to start if necessary */ + while ((cst = Dpi_check_dpid(n_tries)) == 1) { + MSG("Dpi_blocking_start_dpid: try %d\n", ++try); + usleep(250000); /* 1/4 sec */ + } + return cst; +} + + +/* + * Return the dpi server's port number, or -1 on error. + * (A query is sent to dpid and then its answer parsed) + * note: as the available servers and/or the dpi socket directory can + * change at any time, we'll ask each time. If someday we find + * that connecting each time significantly degrades performance, + * an optimized approach can be tried. + */ +static int Dpi_get_server_port(const char *server_name) +{ + int sock_fd = -1, dpi_port = -1; + int dpid_port, ok = 0; + struct sockaddr_in sin; + char *cmd, *request, *rply = NULL, *port_str; + socklen_t sin_sz; + + dReturn_val_if_fail (server_name != NULL, dpi_port); + _MSG("Dpi_get_server_port:: server_name = [%s]\n", server_name); + + /* Read dpid's port from saved file */ + if (Dpi_read_comm_keys(&dpid_port) != -1) { + ok = 1; + } + if (ok) { + /* Connect a socket with dpid */ + ok = 0; + sin_sz = sizeof(sin); + memset(&sin, 0, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + sin.sin_port = htons(dpid_port); + if ((sock_fd = Dpi_make_socket_fd()) == -1 || + connect(sock_fd, (struct sockaddr *)&sin, sin_sz) == -1) { + MSG("Dpi_get_server_port: %s\n", dStrerror(errno)); + } else { + ok = 1; + } + } + if (ok) { + /* ask dpid to check the dpi and send its port number back */ + ok = 0; + request = a_Dpip_build_cmd("cmd=%s msg=%s", "check_server", server_name); + _MSG("[%s]\n", request); + + if (Dpi_blocking_write(sock_fd, request, strlen(request)) == -1) { + MSG("Dpi_get_server_port: %s\n", dStrerror(errno)); + } else { + ok = 1; + } + dFree(request); + } + if (ok) { + /* Get the reply */ + ok = 0; + if ((rply = Dpi_blocking_read(sock_fd)) == NULL) { + MSG("Dpi_get_server_port: can't read server port from dpid.\n"); + } else { + ok = 1; + } + } + if (ok) { + /* Parse reply */ + ok = 0; + cmd = a_Dpip_get_attr(rply, "cmd"); + if (strcmp(cmd, "send_data") == 0) { + port_str = a_Dpip_get_attr(rply, "msg"); + _MSG("Dpi_get_server_port: rply=%s\n", rply); + _MSG("Dpi_get_server_port: port_str=%s\n", port_str); + dpi_port = strtol(port_str, NULL, 10); + dFree(port_str); + ok = 1; + } + dFree(cmd); + } + dFree(rply); + Dpi_close_fd(sock_fd); + + return ok ? dpi_port : -1; +} + + +static int Dpi_connect_socket(const char *server_name) +{ + struct sockaddr_in sin; + int sock_fd, dpi_port, ret = -1; + char *cmd = NULL; + + /* Query dpid for the port number for this server */ + if ((dpi_port = Dpi_get_server_port(server_name)) == -1) { + _MSG("Dpi_connect_socket:: can't get port number for %s\n", server_name); + return -1; + } + _MSG("Dpi_connect_socket: server=%s port=%d\n", server_name, dpi_port); + + /* connect with this server's socket */ + memset(&sin, 0, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + sin.sin_port = htons(dpi_port); + + if ((sock_fd = Dpi_make_socket_fd()) == -1) { + perror("[dpi::socket]"); + } else if (connect(sock_fd, (void*)&sin, sizeof(sin)) == -1) { + MSG("[dpi::connect] errno:%d %s\n", errno, dStrerror(errno)); + + /* send authentication Key (the server closes sock_fd on auth error) */ + } else if (!(cmd = a_Dpip_build_cmd("cmd=%s msg=%s", "auth", SharedKey))) { + MSG_ERR("[Dpi_connect_socket] Can't make auth message.\n"); + } else if (Dpi_blocking_write(sock_fd, cmd, strlen(cmd)) == -1) { + MSG_ERR("[Dpi_connect_socket] Can't send auth message.\n"); + } else { + ret = sock_fd; + } + dFree(cmd); + if (sock_fd != -1 && ret == -1) /* can't send cmd? */ + Dpi_close_fd(sock_fd); + + return ret; +} + + +char *a_Dpi_send_blocking_cmd(const char *server_name, const char *cmd) +{ + int cst, sock_fd; + char *ret = NULL; + + /* test the dpid, and wait a bit for it to start if necessary */ + if ((cst = Dpi_blocking_start_dpid()) != 0) { + return ret; + } + + if ((sock_fd = Dpi_connect_socket(server_name)) == -1) { + MSG_ERR("[a_Dpi_send_blocking_cmd] Can't connect to server.\n"); + } else if (Dpi_blocking_write(sock_fd, cmd, strlen(cmd)) == -1) { + MSG_ERR("[a_Dpi_send_blocking_cmd] Can't send message.\n"); + } else if ((ret = Dpi_blocking_read(sock_fd)) == NULL) { + MSG_ERR("[a_Dpi_send_blocking_cmd] Can't read message.\n"); + } + Dpi_close_fd(sock_fd); + + return ret; +} + + + +void a_Cookies_set(const char *cookie, const char *host, const char *path, + const char *date) +{ + char *cmd, *dpip_tag; + + if (date) + cmd = a_Dpip_build_cmd("cmd=%s cookie=%s host=%s path=%s date=%s", + "set_cookie", cookie, + host, path, date); + else + cmd = a_Dpip_build_cmd("cmd=%s cookie=%s host=%s path=%s", + "set_cookie", cookie, + host, path); + + dpip_tag = a_Dpi_send_blocking_cmd("cookies", cmd); + _MSG("a_Cookies_set: dpip_tag = {%s}\n", dpip_tag); + dFree(dpip_tag); + dFree(cmd); +} + + +char *a_Cookies_get_query(const char *scheme, const char *host, + const char *path) +{ + char *cmd, *dpip_tag, *query; + + cmd = a_Dpip_build_cmd("cmd=%s scheme=%s host=%s path=%s", + "get_cookie", scheme, + host, path); + + /* Get the answer from cookies.dpi */ + _MSG("cookies.c: a_Dpi_send_blocking_cmd cmd = {%s}\n", cmd); + dpip_tag = a_Dpi_send_blocking_cmd("cookies", cmd); + _MSG("cookies.c: after a_Dpi_send_blocking_cmd resp={%s}\n", dpip_tag); + dFree(cmd); + + if (dpip_tag != NULL) { + query = a_Dpip_get_attr(dpip_tag, "cookie"); + dFree(dpip_tag); + } else { + query = dStrdup(""); + } + + return query; +} + +static void expect(int lineno, const char *exp_reply, + const char *scheme, const char *host, const char *path) +{ + char *reply = a_Cookies_get_query(scheme, host, path); + + if (strcmp(reply, exp_reply)) { + MSG("line %d: EXPECTED: %s GOT: %s\n", lineno, exp_reply, reply); + failed++; + } else { + passed++; + } +} + +static void toomany() +{ + a_Cookies_set("1=1", "toomany.com", "/", NULL); + a_Cookies_set("2=1", "toomany.com", "/", NULL); + a_Cookies_set("3=1", "toomany.com", "/", NULL); + a_Cookies_set("4=1", "toomany.com", "/", NULL); + a_Cookies_set("5=1", "toomany.com", "/", NULL); + a_Cookies_set("6=1", "toomany.com", "/", NULL); + a_Cookies_set("7=1", "toomany.com", "/path/", NULL); + a_Cookies_set("8=1", "toomany.com", "/", NULL); + a_Cookies_set("9=1", "toomany.com", "/", NULL); + a_Cookies_set("10=1", "toomany.com", "/", NULL); + a_Cookies_set("11=1", "toomany.com", "/", NULL); + a_Cookies_set("12=1", "toomany.com", "/", NULL); + a_Cookies_set("13=1", "toomany.com", "/", NULL); + a_Cookies_set("14=1", "toomany.com", "/", NULL); + a_Cookies_set("15=1", "toomany.com", "/", NULL); + a_Cookies_set("16=1", "toomany.com", "/", NULL); + a_Cookies_set("17=1", "toomany.com", "/", NULL); + a_Cookies_set("18=1", "toomany.com", "/", NULL); + a_Cookies_set("19=1", "toomany.com", "/", NULL); + a_Cookies_set("20=1", "toomany.com", "/", NULL); + a_Cookies_set("21=1", "toomany.com", "/", NULL); + /* 1 was oldest and discarded */ + expect(__LINE__, "Cookie: 7=1; 2=1; 3=1; 4=1; 5=1; 6=1; 8=1; 9=1; 10=1; " + "11=1; 12=1; 13=1; 14=1; 15=1; 16=1; 17=1; 18=1; 19=1; " + "20=1; 21=1\r\n", "http", "toomany.com", "/path/"); + sleep(1); + /* touch all of them except #7 (path matching) */ + expect(__LINE__, "Cookie: 2=1; 3=1; 4=1; 5=1; 6=1; 8=1; 9=1; 10=1; " + "11=1; 12=1; 13=1; 14=1; 15=1; 16=1; 17=1; 18=1; 19=1; " + "20=1; 21=1\r\n", "http", "toomany.com", "/"); + a_Cookies_set("22=1", "toomany.com", "/", NULL); + /* 7 was oldest and discarded */ + expect(__LINE__, "Cookie: 2=1; 3=1; 4=1; 5=1; 6=1; 8=1; 9=1; 10=1; " + "11=1; 12=1; 13=1; 14=1; 15=1; 16=1; 17=1; 18=1; 19=1; " + "20=1; 21=1; 22=1\r\n", "http", "toomany.com", "/path/"); +} + +static void maxage() +{ + time_t t = time(NULL)+1000; + char *server_date = dStrdup(ctime(&t)); + + a_Cookies_set("name=val; max-age=0", "maxage0.com", "/", NULL); + expect(__LINE__, "", "http", "maxage0.com", "/"); + + a_Cookies_set("name=val; max-age=-0", "maxage-0.com", "/", NULL); + expect(__LINE__, "", "http", "maxage-0.com", "/"); + + a_Cookies_set("name=val; max-age=100", "maxage100.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "maxage100.com", "/"); + + a_Cookies_set("name=val; max-age=-100", "maxage-100.com", "/", NULL); + expect(__LINE__, "", "http", "maxage-100.com", "/"); + + a_Cookies_set("name=val; max-age=2000000000", "maxage2bil.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "maxage2bil.com", "/"); + + a_Cookies_set("name=val; max-age=3000000000", "maxage3bil.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "maxage3bil.com", "/"); + + a_Cookies_set("name=val; max-age=7000000000", "maxage7bil.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "maxage7bil.com", "/"); + + a_Cookies_set("name=val; max-age=-2000000000", "maxage-2bil.com", "/",NULL); + expect(__LINE__, "", "http", "maxage-2bil.com", "/"); + + a_Cookies_set("name=val; max-age=-3000000000", "maxage-3bil.com", "/",NULL); + expect(__LINE__, "", "http", "maxage-3bil.com", "/"); + + a_Cookies_set("name=val; max-age=-7000000000", "maxage-7bil.com", "/",NULL); + expect(__LINE__, "", "http", "maxage-7bil.com", "/"); + + /* just having a server date shouldn't matter */ + + a_Cookies_set("name=val; max-age=0", "maxage0s.com", "/", server_date); + expect(__LINE__, "", "http", "maxage0s.com", "/"); + + a_Cookies_set("name=val; max-age=100", "maxage100s.com", "/", server_date); + expect(__LINE__, "Cookie: name=val\r\n", "http", "maxage100s.com", "/"); + + a_Cookies_set("name=val; max-age=-100", "maxage-100s.com", "/",server_date); + expect(__LINE__, "", "http", "maxage-100s.com", "/"); + + /* MAX-AGE and EXPIRES */ + a_Cookies_set("name=val; max-age=90; expires=Wed Jan 20 01:26:32 2010", + "maxagelater.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "maxagelater.com", "/"); + + a_Cookies_set("name=val; max-age=90; expires=Wed Jan 20 01:26:32 2010", + "maxagelaters.com", "/", server_date); + expect(__LINE__, "Cookie: name=val\r\n", "http", "maxagelaters.com", "/"); + + dFree(server_date); +} + +static void expires_server_ahead() +{ + char *string; + time_t t = time(NULL)+1000; + char *server_date = dStrdup(ctime(&t)); + time_t expt = t + 1000; + char *exp_date = dStrdup(ctime(&expt)); + + string = dStrconcat("name=val; expires=", exp_date, NULL); + a_Cookies_set(string, "e2000s1000.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "e2000s1000.com", "/"); + + a_Cookies_set(string, "e2000s1000s.com", "/", server_date); + expect(__LINE__, "Cookie: name=val\r\n", "http", "e2000s1000s.com", "/"); + + expt = t - 500; /* past for the server, future for us */ + dFree(exp_date); + exp_date = dStrdup(ctime(&expt)); + + string = dStrconcat("name=val; expires=", exp_date, NULL); + a_Cookies_set(string, "e500s1000.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "e500s1000.com", "/"); + + a_Cookies_set(string, "e500s1000s.com", "/", server_date); + expect(__LINE__, "", "http", "e500s1000s.com", "/"); + + expt = t; /* expire at future-for-us server date */ + dFree(exp_date); + exp_date = dStrdup(ctime(&expt)); + + string = dStrconcat("name=val; expires=", exp_date, NULL); + a_Cookies_set(string, "e1000s1000.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "e1000s1000.com", "/"); + + a_Cookies_set(string, "e1000s1000s.com", "/", server_date); + expect(__LINE__, "", "http", "e1000s1000s.com", "/"); + + expt = time(NULL); /* now */ + dFree(exp_date); + exp_date = dStrdup(ctime(&expt)); + + string = dStrconcat("name=val; expires=", exp_date, NULL); + a_Cookies_set(string, "e0s1000.com", "/", NULL); + expect(__LINE__, "", "http", "e0s1000.com", "/"); + + a_Cookies_set(string, "e0s1000s.com", "/", server_date); + expect(__LINE__, "", "http", "e0s1000s.com", "/"); + + dFree(exp_date); + dFree(server_date); +} + +static void expires_server_behind() +{ + char *string; + time_t t = time(NULL)-1000; + char *server_date = dStrdup(ctime(&t)); + + time_t expt = t + 1000; + char *exp_date = dStrdup(ctime(&expt)); + + string = dStrconcat("name=val; expires=", exp_date, NULL); + a_Cookies_set(string, "e0s-1000.com", "/", NULL); + expect(__LINE__, "", "http", "e0s-1000.com", "/"); + + a_Cookies_set(string, "e0s-1000s.com", "/", server_date); + expect(__LINE__, "Cookie: name=val\r\n", "http", "e0s-1000s.com","/"); + + expt = t + 500; /* future for the server, past for us */ + dFree(exp_date); + exp_date = dStrdup(ctime(&expt)); + + string = dStrconcat("name=val; expires=", exp_date, NULL); + a_Cookies_set(string, "e-500s-1000.com", "/", NULL); + expect(__LINE__, "", "http", "e-500s-1000.com", "/"); + + a_Cookies_set(string, "e-500s-1000s.com", "/", server_date); + expect(__LINE__, "Cookie: name=val\r\n", "http", "e-500s-1000s.com", "/"); + + expt = t; /* expire at past-for-us server date */ + dFree(exp_date); + exp_date = dStrdup(ctime(&expt)); + + string = dStrconcat("name=val; expires=", exp_date, NULL); + a_Cookies_set(string, "e-1000s-1000.com", "/", NULL); + expect(__LINE__, "", "http", "e-1000s-1000.com", "/"); + + a_Cookies_set(string, "e-1000s-1000s.com", "/", server_date); + expect(__LINE__, "", "http", "e-1000s-1000s.com", "/"); + + dFree(server_date); + dFree(exp_date); +} + +static void expires_extremes() +{ + time_t t; + char *server_date; + + a_Cookies_set("name=val; expires=Fri Dec 13 20:45:52 1801", "expmin.com", + "/", NULL); + expect(__LINE__, "", "http", "expmin.com", "/"); + + a_Cookies_set("name=val; expires=Fri Dec 13 20:45:52 1901", "expmin2.com", + "/", NULL); + expect(__LINE__, "", "http", "expmin2.com", "/"); + + a_Cookies_set("name=val; expires=Wed Dec 31 23:59:59 1969", "expneg.com", + "/", NULL); + expect(__LINE__, "", "http", "expneg.com", "/"); + + a_Cookies_set("name=val; expires=Thu, 01-January-70 00:00:00 GMT", + "expepoch.com", "/", NULL); + expect(__LINE__, "", "http", "expepoch.com", "/"); + + /* TODO: revisit these tests in a few decades */ + a_Cookies_set("name=val; expires=Tue Jan 19 03:14:07 2038", "expmax.com", + "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "expmax.com", "/"); + + a_Cookies_set("name=val; expires=Sun January 1 00:00:00 2040", + "pastmax.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "pastmax.com", "/"); + + t = time(NULL)+1000; + server_date = dStrdup(ctime(&t)); + + a_Cookies_set("name=val; expires=Fri Dec 13 20:45:52 1901", "expmina.com", + "/", server_date); + expect(__LINE__, "", "http", "expmina.com", "/"); + + a_Cookies_set("name=val; expires=Wed Dec 31 23:59:59 1969", "expnega.com", + "/", server_date); + expect(__LINE__, "", "http", "expnega.com", "/"); + + a_Cookies_set("name=val; expires=Thu Jan 1 00:00:00 1970", "expepocha.com", + "/", server_date); + expect(__LINE__, "", "http", "expepocha.com", "/"); + + a_Cookies_set("name=val; expires=Tue Jan 19 03:14:07 2038", "expmaxa.com", + "/", server_date); + expect(__LINE__, "Cookie: name=val\r\n", "http", "expmaxa.com", "/"); + + a_Cookies_set("name=val; expires=Thu, 01-Jan-40 00:00:00 GMT", + "pastmaxa.com", "/", server_date); + expect(__LINE__, "Cookie: name=val\r\n", "http", "pastmaxa.com", "/"); + + t = time(NULL)-1000; + dFree(server_date); + server_date = dStrdup(ctime(&t)); + + a_Cookies_set("name=val; expires=Fri Dec 13 20:45:52 1901", "expminb.com", + "/", server_date); + expect(__LINE__, "", "http", "expminb.com", "/"); + + a_Cookies_set("name=val; expires=Wed Dec 31 23:59:59 1969", "expnegb.com", + "/", server_date); + expect(__LINE__, "", "http", "expnegb.com", "/"); + + a_Cookies_set("name=val; expires=Thu Jan 1 00:00:00 1970", "expepochb.com", + "/", server_date); + expect(__LINE__, "", "http", "expepochb.com", "/"); + + a_Cookies_set("name=val; expires=Tue Jan 19 03:14:07 2038", "expmaxb.com", + "/", server_date); + expect(__LINE__, "Cookie: name=val\r\n", "http", "expmaxb.com", "/"); + + a_Cookies_set("name=val; expires=Sun Jan 1 00:00:00 2040", "pastmaxb.com", + "/", server_date); + expect(__LINE__, "Cookie: name=val\r\n", "http", "pastmaxb.com", "/"); + + dFree(server_date); +} + +/* + * On 11 Aug 2009, Dan Winship posted to the http-state list with a bunch of + * date formats he'd gathered. Let's work from that. I'll include his comments + * below in double quotes. + */ +static void expires_date_formats() +{ + /* "Revised Netscape spec format" */ + a_Cookies_set("name=val; expires=Mon, 10-Dec-2037 17:02:24 GMT", + "format1.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "format1.com", "/"); + + /* "rfc1123-date" */ + a_Cookies_set("name=val; expires=Wed, 09 Dec 2037 16:27:23 GMT", + "format2.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "format2.com", "/"); + + /* "4-digit-year version of Netscape spec example (see below). + * Seems to only come from sites using PHP, but it's not PHP + * itself; maybe some framework?" + */ + a_Cookies_set("name=val; expires=Thursday, 01-Jan-2036 00:00:00 GMT", + "format3.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "format3.com", "/"); + + /* "The not-quite-asctime format used by Amazon." */ + a_Cookies_set("name=val; expires=Mon Dec 10 16:32:30 2037 GMT", + "format4.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "format4.com", "/"); + + /* "The syntax used by the example text in the Netscape spec, + * although the actual grammar uses abbreviated weekday names" + */ + a_Cookies_set("name=val; expires=Wednesday, 01-Jan-37 00:00:00 GMT", + "format5.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "format5.com", "/"); + + /* "Original Netscape spec" */ + a_Cookies_set("name=val; expires=Mon, 10-Dec-37 20:35:03 GMT", + "format6.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "format6.com", "/"); + + /* "If this had '01 Jan' it would be an rfc1123-date. This *is* a + * legitimate rfc822 date, though not an rfc2822 date because 'GMT' + * is deprecated in favor of '+0000' there." + */ + a_Cookies_set("name=val; expires=Wed, 1 Jan 2035 00:00:00 GMT", + "format7.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "format7.com", "/"); + + /* "Would match the 'weird php' syntax above if it was '08-Dec'" */ + a_Cookies_set("name=val; expires=Saturday, 8-Dec-2035 21:24:09 GMT", + "format8.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "format8.com", "/"); + + /* "God only knows what they were thinking. This came from a hit-tracker + * site, and it's possible that it's just totally broken and no one parses + * it 'correctly'" + */ + a_Cookies_set("name=val; expires=Thu, 31 Dec 23:55:55 2037 GMT", + "format9.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "format9.com", "/"); + + /* "Another kind of rfc822 / nearly-rfc1123 date, using superfluous + * whitespace." + */ + a_Cookies_set("name=val; expires=Sun, 9 Dec 2036 13:42:05 GMT", + "formata.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "formata.com", "/"); + + /* "Another kind of 'lets throw components together at random'. The + * site that this cookie came has apparently been fixed since then. + * (It uses the Netscape spec format now.)" + */ + a_Cookies_set("name=val; expires=Wed Dec 12 2037 08:44:07 GMT-0500 (EST)", + "formatb.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "formatb.com", "/"); + + a_Cookies_set("name=val; expires=Sun, 1-Jan-2035 00:00:00 GMT", + "formatc.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "formatc.com", "/"); + + /* ...and the remaining handful that he encountered once or twice were + * far too broken to deserve our attention (e.g., times like "13:57:2"). + */ + + /* Now here's what github was sending in 2015. */ + a_Cookies_set("name=val; expires=Sat, 07 Jul 2035 21:41:24 -0000", + "formatd.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "formatd.com", "/"); + +} + +static void path() +{ + a_Cookies_set("name=val; path=/", "p1.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "p1.com", "/"); + + a_Cookies_set("name=val; path=/dir1", "p2.com", "/dir2", NULL); + expect(__LINE__, "", "http", "p2.com", "/"); + expect(__LINE__, "", "http", "p2.com", "/d"); + expect(__LINE__, "Cookie: name=val\r\n", "http", "p2.com", "/dir1"); + expect(__LINE__, "Cookie: name=val\r\n", "http", "p2.com", "/dir1/"); + expect(__LINE__, "", "http", "p2.com", "/dir2"); + expect(__LINE__, "", "http", "p2.com", "/dir11"); + + a_Cookies_set("name=val; path=dir1", "p3.com", "/dir2", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "p3.com", "/"); + expect(__LINE__, "Cookie: name=val\r\n", "http", "p3.com", "/dir1"); + expect(__LINE__, "Cookie: name=val\r\n", "http", "p3.com", "/dir2"); + + a_Cookies_set("name=val; path=/dir1/", "p4.com", "/dir2", NULL); + expect(__LINE__, "", "http", "p4.com", "/"); + /* this next one strikes me as a bit odd, personally, but I suppose it's not + * a big deal */ + expect(__LINE__, "", "http", "p4.com", "/dir1"); + expect(__LINE__, "", "http", "p4.com", "/dir11"); + expect(__LINE__, "Cookie: name=val\r\n", "http", "p4.com", "/dir1/"); + expect(__LINE__, "Cookie: name=val\r\n", "http", "p4.com", "/dir1/sub"); + + a_Cookies_set("name=val", "p5.com", "/dir/subdir", NULL); + expect(__LINE__, "", "http", "p5.com", "/"); + expect(__LINE__, "", "http", "p5.com", "/bir"); + expect(__LINE__, "Cookie: name=val\r\n", "http", "p5.com", "/dir"); + expect(__LINE__, "Cookie: name=val\r\n", "http", "p5.com", "/dir/"); + + a_Cookies_set("name=val", "p6.com", "/dir/subdir/", NULL); + expect(__LINE__, "", "http", "p6.com", "/dir/"); + expect(__LINE__, "Cookie: name=val\r\n", "http", "p6.com", "/dir/subdir"); + expect(__LINE__, "Cookie: name=val\r\n", "http", "p6.com", "/dir/subdir/s"); +} + +int Cookies_rc_check() +{ + const int line_maxlen = 4096; + FILE *stream; + char *filename; + char line[line_maxlen]; + bool_t default_deny = TRUE; + + /* Get a file pointer */ + filename = dStrconcat(dGethomedir(), "/.dillo/cookiesrc", NULL); + stream = fopen(filename, "r"); + dFree(filename); + + if (!stream) { + MSG_ERR("Cannot run test; cannot open cookiesrc.\n"); + return 1; + } + + /* Get all lines in the file */ + while (!feof(stream)) { + char *rc; + + line[0] = '\0'; + rc = fgets(line, line_maxlen, stream); + if (!rc && ferror(stream)) { + MSG_ERR("Error while reading rule from cookiesrc: %s\n", + dStrerror(errno)); + fclose(stream); + return 2; + } + + /* Remove leading and trailing whitespaces */ + dStrstrip(line); + + if (line[0] != '\0' && line[0] != '#') { + int domain_end, i = 0; + const char *rule; + + /* Get the domain */ + while (line[i] != '\0' && !dIsspace(line[i])) + i++; + domain_end = i; + + /* Skip past whitespace */ + while (dIsspace(line[i])) + i++; + line[domain_end] = '\0'; + + /* Get the rule */ + rule = line + i; + while (line[i] != '\0' && !dIsspace(line[i])) + i++; + line[i] = '\0'; + + if (!dStrAsciiCasecmp(line, "DEFAULT")) { + if (!dStrAsciiCasecmp(rule, "ACCEPT") || + !dStrAsciiCasecmp(rule, "ACCEPT_SESSION")) + default_deny = FALSE; + } else { + if (!dStrAsciiCasecmp(rule, "DENY")) + MSG_WARN("DENY rules in cookiesrc can interfere with test.\n"); + } + } + } + fclose(stream); + + if (default_deny) { + MSG_ERR("Cannot run test with cookiesrc default of deny.\n"); + return 1; + } else { + return 0; + } +} + +int main() +{ + if (Cookies_rc_check()) { + MSG("If you change cookiesrc, remember to stop the DPIs via dpidc.\n"); + return 1; + } + + a_Cookies_set("name=val", "ordinary.com", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "ordinary.com", "/"); + + toomany(); + maxage(); + expires_server_ahead(); + expires_server_behind(); + expires_extremes(); + expires_date_formats(); + + a_Cookies_set("name=val; expires=\"Sun Jan 10 00:00:00 2038\"", + "quoted-date.org", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "quoted-date.org", "/"); + + a_Cookies_set("name=val; expires=\"Sun Jan 11 00:00:00 1970\"", + "quoted-pastdate.org", "/", NULL); + expect(__LINE__, "", "http", "quoted-pastdate.org", "/"); + + path(); + + /* LEADING/TRAILING DOTS AND A LITTLE PUBLIC SUFFIX */ + a_Cookies_set("name=val; domain=co.il", "www.co.il", "/", NULL); + expect(__LINE__, "", "http", "www.co.il", "/"); + + a_Cookies_set("name=val; domain=.co.il", "www.co.il", "/", NULL); + expect(__LINE__, "", "http", "www.co.il", "/"); + + a_Cookies_set("name=val; domain=co.il.", "www.co.il.", "/", NULL); + expect(__LINE__, "", "http", "www.co.il.", "/"); + + a_Cookies_set("name=val; domain=.co.il.", "www.co.il.", "/", NULL); + expect(__LINE__, "", "http", ".www.co.il.", "/"); + + a_Cookies_set("name=val; domain=co.org", "www.co.org", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "www.co.org", "/"); + + a_Cookies_set("name=val; domain=.cp.org", "www.cp.org", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "www.cp.org", "/"); + + + /* DOTDOMAIN */ + a_Cookies_set("name=val; domain=.dotdomain.org", "dotdomain.org", "/", + NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "dotdomain.org", "/"); + expect(__LINE__, "Cookie: name=val\r\n", "http", "www.dotdomain.org", "/"); + + /* HOST_ONLY */ + a_Cookies_set("name=val; domain=.hostonly.org", "hostonly.org", "/", NULL); + a_Cookies_set("name2=val2", "hostonly.org", "/", NULL); + a_Cookies_set("name3=val3; domain=hostonly.org", "hostonly.org", "/", NULL); + expect(__LINE__, "Cookie: name=val; name2=val2; name3=val3\r\n", "http", + "hostonly.org", "/"); + a_Cookies_set("name=new; domain=.hostonly.org", "hostonly.org", "/", NULL); + expect(__LINE__, "Cookie: name=new; name2=val2; name3=val3\r\n", "http", + "hostonly.org", "/"); + a_Cookies_set("name2=new2", "hostonly.org", "/", NULL); + expect(__LINE__, "Cookie: name=new; name2=new2; name3=val3\r\n", "http", + "hostonly.org", "/"); + a_Cookies_set("name3=new3; domain=hostonly.org", "hostonly.org", "/", NULL); + expect(__LINE__, "Cookie: name=new; name2=new2; name3=new3\r\n", "http", + "hostonly.org", "/"); + + /* SUBDOMAIN */ + a_Cookies_set("name=val; domain=www.subdomain.com", "subdomain.com", "/", + NULL); + a_Cookies_set("name=val; domain=.www.subdomain.com", "subdomain.com", "/", + NULL); + expect(__LINE__, "", "http", "subdomain.com", "/"); + expect(__LINE__, "", "http", "www.subdomain.com", "/"); + + /* SUPERDOMAIN(?) */ + a_Cookies_set("name=val; domain=.supdomain.com", "www.supdomain.com", "/", + NULL); + a_Cookies_set("name2=val2; domain=supdomain.com", "www.supdomain.com", "/", + NULL); + expect(__LINE__, "Cookie: name=val; name2=val2\r\n", "http", + "sub2.sub.supdomain.com", "/"); + expect(__LINE__, "Cookie: name=val; name2=val2\r\n", "http", + "www.supdomain.com", "/"); + expect(__LINE__, "Cookie: name=val; name2=val2\r\n", "http", + "supdomain.com", "/"); + + /* UNRELATED */ + a_Cookies_set("name=val; domain=another.com", "unrelated.com", "/", NULL); + expect(__LINE__, "", "http", "another.com", "/"); + a_Cookies_set("name=val; domain=another.com", "a.org", "/", NULL); + expect(__LINE__, "", "http", "another.com", "/"); + a_Cookies_set("name=val; domain=another.com", "badguys.com", "/", NULL); + expect(__LINE__, "", "http", "another.com", "/"); + a_Cookies_set("name=val; domain=another.com", "more.badguys.com", "/", + NULL); + expect(__LINE__, "", "http", "another.com", "/"); + a_Cookies_set("name=val; domain=another.com", "verybadguys.com", "/", NULL); + expect(__LINE__, "", "http", "another.com", "/"); + + a_Cookies_set("name=val; domain=similar.com", "imilar.com", "/", NULL); + a_Cookies_set("name2=val2; domain=similar.com", "ssimilar.com", "/", NULL); + a_Cookies_set("name3=val3; domain=.similar.com", "imilar.com", "/", NULL); + a_Cookies_set("name4=val4; domain=.similar.com", "timilar.com", "/", NULL); + a_Cookies_set("name4=val4; domain=.similar.com", "tiimilar.com", "/", NULL); + expect(__LINE__, "", "http", "similar.com", "/"); + + /* SECURE */ + a_Cookies_set("name=val; secure", "secure.com", "/", NULL); + expect(__LINE__, "", "http", "secure.com", "/"); + expect(__LINE__, "Cookie: name=val\r\n", "https", "secure.com", "/"); + + /* HTTPONLY */ + a_Cookies_set("name=val; HttpOnly", "httponly.net", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "httponly.net", "/"); + + /* GIBBERISH ATTR IGNORED */ + a_Cookies_set("name=val; ldkfals", "gibberish.net", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "gibberish.net", "/"); + + /* WHITESPACE/DELIMITERS */ + a_Cookies_set(" name=val ", "whitespace.net", "/", NULL); + a_Cookies_set("name2=val2;", "whitespace.net", "/", NULL); + expect(__LINE__, "Cookie: name=val; name2=val2\r\n", "http", + "whitespace.net", "/"); + + /* NAMELESS/VALUELESS */ + a_Cookies_set("value", "nonameval.org", "/", NULL); + a_Cookies_set("name=", "nonameval.org", "/", NULL); + a_Cookies_set("name2= ", "nonameval.org", "/", NULL); + expect(__LINE__, "Cookie: name=; name2=\r\n", "http", "nonameval.org", "/"); + a_Cookies_set("=val2", "nonameval.org", "/", NULL); + expect(__LINE__, "Cookie: name=; name2=\r\n", "http", "nonameval.org", "/"); + + + /* SOME IP ADDRS */ + + a_Cookies_set("name=val", "FEDC:BA98:7654:3210:FEDC:BA98:7654:3210", + "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", + "FEDC:BA98:7654:3210:FEDC:BA98:7654:3210", "/"); + + a_Cookies_set("name=val", "::FFFF:129.144.52.38", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "::FFFF:129.144.52.38", + "/"); + + a_Cookies_set("name=val", "127.0.0.1", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "127.0.0.1", "/"); + + a_Cookies_set("name=val; domain=128.0.0.1", "128.0.0.1", "/", NULL); + expect(__LINE__, "Cookie: name=val\r\n", "http", "128.0.0.1", "/"); + + a_Cookies_set("name=val; domain=130.0.0.1", "129.0.0.1", "/", NULL); + expect(__LINE__, "", "http", "129.0.0.1", "/"); + expect(__LINE__, "", "http", "130.0.0.1", "/"); + + a_Cookies_set("name=val", "2.0.0.1", "/", NULL); + a_Cookies_set("name=bad; domain=22.0.0.1", "2.0.0.1", "/", NULL); + a_Cookies_set("name=bad; domain=.0.0.1", "2.0.0.1", "/", NULL); + a_Cookies_set("name=bad; domain=not-ip.org", "2.0.0.1", "/", NULL); + expect(__LINE__, "", "http", "22.0.0.1", "/"); + expect(__LINE__, "", "http", "not-ip.org", "/"); + expect(__LINE__, "Cookie: name=val\r\n", "http", "2.0.0.1", "/"); + +#if 0 +HAD BEEN PLAYING AROUND WITH REAL PUBLIC SUFFIX +a_Cookies_set("name=val;domain=sub.sub.yokohama.jp", "sub.sub.yokohama.jp", "/", NULL); +MSG("sub sub yokohama should work: %s\n", + a_Cookies_get_query("http", "sub.sub.yokohama.jp", "/")); +a_Cookies_set("name=val; domain=sub.tokyo.jp", "sub.sub.tokyo.jp", "/", NULL); +MSG("sub tokyo jp should fail: %s\n", + a_Cookies_get_query("http", "sub.sub.tokyo.jp", "/")); +a_Cookies_set("name=val; domain=pref.chiba.jp", "sub.pref.chiba.jp", "/", NULL); +MSG("pref chiba jp should succeed: %s\n", + a_Cookies_get_query("http", "sub.pref.chiba.jp", "/")); +a_Cookies_set("name=val; domain=org", "www.dillo.org", "/", NULL); +a_Cookies_set("name=val; domain=org", "dillo.org", "/", NULL); +a_Cookies_set("name=val; domain=org", ".dillo.org", "/", NULL); +a_Cookies_set("name=val; domain=org.", ".dillo.org", "/", NULL); +a_Cookies_set("name=val; domain=org.", ".dillo.org.", "/", NULL); +MSG("org should fail: %s\n", + a_Cookies_get_query("http", "www.dillo.org", "/")); +#endif + + MSG("TESTS: passed: %u failed: %u\n", passed, failed); + + MSG("Now that everything is full of fake cookies, you should run " + "'dpidc stop', plus delete cookies.txt if necessary.\n"); + + return 0; +} diff --git a/test/unit/hyph-de.pat b/test/unit/hyph-de.pat new file mode 100644 index 00000000..302951de --- /dev/null +++ b/test/unit/hyph-de.pat @@ -0,0 +1,14236 @@ +% TeX-Trennmuster für die reformierte (2006) deutsche Rechtschreibung +% +% +% Copyright (C) 2007, 2008, 2009, 2011, 2012 Werner Lemberg +% +% This program can be redistributed and/or modified under the terms +% of the LaTeX Project Public License Distributed from CTAN +% archives in directory macros/latex/base/lppl.txt; either +% version 1 of the License, or any later version. +% +% +% The word list is available from +% +% http://repo.or.cz/w/wortliste.git?a=commit;h=7915938d035684993f8c363729f963eec71c85b1 +% +% The used patgen parameters are +% +% 1 1 | 2 5 | 1 1 1 +% 2 2 | 2 5 | 1 2 1 +% 3 3 | 2 6 | 1 1 1 +% 4 4 | 2 6 | 1 4 1 +% 5 5 | 2 7 | 1 1 1 +% 6 6 | 2 7 | 1 6 1 +% 7 7 | 2 13 | 1 4 1 +% 8 8 | 2 13 | 1 8 1 +.ab1a +.abi4 +.ab3l +.abo2 +.ab3ol +.ab1or +.ack2 +.ag4n +.ag4r +.ag2u +.ai2s +.akt2a +.al3br +.al2e +.al5l4en +.al4tei +.alt3s +.ampe4 +.amt4s3 +.an3d2 +.anden6k +.and4ri +.ang2 +.an3gli +.angs4 +.angst3 +.an3s +.an4si. +.ans2p +.ans2t +.an4tag +.an3th +.apo1 +.aps2 +.ari1e +.ark2a +.ar4m3ac +.ar2sc +.ar4t3ei +.as3t +.as4ta +.at4h +.au3d +.au2f3 +.au4s3 +.ausch3 +.ax4 +.äm3 +.ät2s +.be3erb +.bei6ge. +.be3ra +.be3r2e +.berg3a +.ber6gab +.ber4g3r +.boge2 +.bo4s3k +.bu4ser +.by4t +.ch2 +.dab4 +.da2r1 +.da4rin +.darm1 +.da4te. +.da4tes +.de2al +.de1i +.de4in. +.de1o2 +.de3r4en +.de1s +.des2e +.de3sk +.des2t +.dien4e +.do2mo +.do1pe +.dorf1 +.dü1b +.dys1 +.ebe2r1 +.ehe1i +.ei3e2 +.ei4na +.einen6g +.ei2sp +.ei4st +.ei4tr +.eke2 +.el2bi +.elb3s +.em3m2 +.en1 +.en4d3er +.en5der. +.en2d3r +.end3s +.enn2 +.enns3 +.en2t3 +.en4tei +.en4tr +.er8brecht +.er2da +.er4dan +.er4dar +.er4dei +.er4der +.er1e +.ere3c +.erf4 +.er1i +.er8stein +.er8stritt. +.er8stritten. +.er4zen4 +.es1p +.es3ta +.es5t4e +.est2h +.es3to +.es5tr +.et2s +.eu1 +.eu3g4 +.eu3t +.eve4r +.ext4 +.fe2i +.fer4no +.fi3est +.fi4le. +.fi4len +.fi2s +.flug1 +.for2t +.fs4 +.fu2sc +.ga4t +.gd2 +.ge5nar +.ge3ne +.ge3r2a +.ge3r2e +.ge3u +.gs4 +.guss1 +.hau2t1 +.he2 +.he3fe +.her3an +.he3ri +.he6r5inn +.ho4met +.ia4 +.im2a +.ima4ge +.im5m +.in1 +.in3e +.ink4 +.inn2e +.int6 +.inu1 +.ire3 +.is2a +.jor3 +.ka2b5l +.ka2i +.kamp2 +.ka4t3io +.ki4e +.kle2i +.kopf1 +.ks2 +.kus2 +.le4ar +.li2f +.li4tu +.lo4g3in +.lo3ver +.lus4tr +.ma3d +.ma2i +.ma3la +.ma2st +.md2 +.me2e +.mel2a +.men8schl +.men8schw +.men3t4 +.mi4t1 +.mm2 +.näs1c +.ne4s +.ni4e +.nob4 +.no4th +.nus2 +.oa3 +.ob1a +.obe2 +.oper4 +.or2a +.ort2 +.orts3e +.oste2 +.ost5end +.os8ten8de +.oste6re +.ost3r +.ozo4 +.öd2 +.pa4r1e +.par3t4h +.pf4 +.ph4 +.poka2 +.pro1 +.ps2 +.ram3s +.reb3s2 +.re3cha +.rein4t +.reli1 +.reli3e +.res6tr +.ri2as +.richt6e +.ro4a +.ro3m2a +.rö2s1 +.rü1b +.rü6cker6 +.sali3e +.sch4 +.se3ck +.sen3s +.ser2u +.se2t1 +.sha2 +.sim3p4 +.si4te +.ski1e +.spiege8lei +.st4 +.sto4re +.sucher6 +.tage4s +.tal2e +.tan4k3l +.ta2to +.te2e +.te2f +.te3no +.te2s +.te4st +.th4 +.ti2a +.tid1 +.ti2s +.ti5ta +.tite4 +.to4nin +.to4pl +.to2w +.tri3es +.tro2s +.ts2 +.tu3ri +.uf2e2 +.ufer1 +.ul4mei +.um3 +.umo2 +.un3a2 +.un3d +.un3e +.un3g +.uni4t +.un3s +.uns4t +.ur1 +.ur2i +.urin4s +.ur3o2m +.uro2p +.ur3s2 +.ut2a +.ut3r +.übe4 +.ve5n2e +.vo4r +.wah4l +.wa2s +.wei4ta +.wi4e +.wor2 +.wort5en6 +.wor8tend +.wor4tu +.xe3 +.ya4l +.za2s +.zi2e +.zin4st +.zwe2 +2aa +a1ab +aa2be +aa1c +aa2gr +4a1a2n +4a2ar +aa2r1a +aar3f4 +aart4 +aas5t +aat4s3 +a3au +a1ä +a1b +2aba +ab1auf +ab1ä +ab2äu +1abd +ab1eb +abe1e +abei1 +ab1eil +2abel +abe2la +a3ber +ab1erk +ab1err +ab1erz +ab3esse +2abet +2abew +1abf +3abfi +1abg +1abh +2abi +ab1ins +ab1ir +ab1it +1abk +ab1l +1a2bla +ab5lag +1a2blä +2able +ab4le. +ab3li +ab4lo +3a2blö +a2blu +1abn +a2bo. +ab2of +a2bon +2abor +ab3r +a3bra +a4brä +2abrü +1abs +2abs. +abs2a +2absar +ab3s2i +ab3sp +abst4 +2abst. +ab3ste +ab3sz +1abtei +2abu +ab1ur +2abü +1abw +2aby +aby4t +1abz +2ac. +2aca +2ac1c +a1cem +2ach. +ach1a +a1chal +ach3au +2achb +a1che +a2ch1e2c +ach1ei +a4cherf +a4cherk +a4cherö +a4ch3erw +4achf +a1chi +ach3l +ach3m +ach3n +a1cho +a3cho. +ach1o2b +ach1or +ach3ö +ach3r +ach3su +a4cht +acht5erg +ach2t1o +ach8traum +ach8träume. +ach8träumen. +ach6trit +a1chu +ach1u2f +ach3ü +2achv +4ach1w +a1ci +ac1in +a1ckar +ack2en +a2ckin +ack2se +ack3sl +ack3sta4 +a1cl +acon4n +2acu +a1ç +a1d +2ada. +a3d2ab +ad2ag +ad3ama +a2d1an +3a4dap +a3d2ar3 +4adav +1a2dä +ad1c +1add +2ade. +ade2al +adefi4 +a2dein +2aden +ade1r2a +a2deri +4ade1s +ade3s2p +ades4s +ade5str +2adf +2adh +4a3di +adi3en +5adj +2ado +ad2ob +2adp +2adq +2ad3rec +ad4res +ad3ru +2ads2 +ad3st +ad3sz +2ad2t1 +ad4te +ad4tr +2adu +2a1e +ae2b +ae2c +ae2d +a2ek +a2ela +a2ele +ae2o3 +ae2p +3a2er2o1 +aes5t +a2et +a2ew +ae2x +af1a +a2fak +a2fan +a3far +af4at +a2fau +2afe +a2f1ec +a2fent +af1erl +a2fex +af2fl +af4flu +2afi +2af3l +afo1s +a2fö +af3ra +af3rä +af3re +af3rö +af3s2a +af2sp +af2t1a +af2tei +af4t3erl +af2t3r +af4t5re +af2tur +a2f3ur +a1g +2aga +ag1ab +ag1a2d +ag1ar +ag1au +ag2di +ag2dr +ag2du +age1i +age4na +age4neb +a2gent +a4gentu +age4ral +2ages +age2sa +age4sel +age4si +age2s3p +ag3esse +age4s3ti +ag3gl +1aggr +3a2git +2a2gl +ag4la +a4glö +ag2n +ag4ne. +ag4nu +a2g3re +a2g3ri +ag4ro +agsa2 +ag4sam +ag4set +ags3p +ag4spo +ag3sta +ag3ste +ags4toc +2agt +ag2th +a2gund +2ah. +2a1ha +ah4at +2a1he +a2h1erh +ahe1s +a1h2i +ahin3 +ahl3a2 +ah4l1ei +ah4l3erh +ah2lö +ahl3sz +ah4n1a +ahner4e +ahnt2 +1ahor +ah1os +a2h3ö +ahr1a +ah3r2e +ahre4s3 +ah3ri +ahrta4 +ahr6tri +2ahs +aht3s +a1hu +ah1w +a1hy +2ai +aian3 +aid2s +ai1e2 +aien3 +aif2 +ai3g4 +a3ik. +ai3ke +ai3ku +a2il +ai2lo +a1ind +ain4e +a1ing +ain3sp +ai2sa +a3isch. +ai3s2e +aiso2 +a3iv. +aive3 +a3ivl +a3ivs +a1j +aje2 +2ak. +1a2k4ad +2akal +2a3kam +2akar +ak4at +1a2kaz +2akb +2akc +2akd +4a1ke +a2kef +aken2n +a2keu +2a1ki +2ak3l +ak4li +4ako +2a1kr +4akra +ak3rau +3akro +2aks +ak3sh +2akta +ak5tan +2aktb +2aktik +ak2t3r +ak5t4ri +2aktst +2a1ku +a2kun +4a3kü +1akz +a1la +2ala. +al1ab +ala5ch2 +al1af +ala2g +al1age +a3lal +al1am +al3ame +alami5 +al3amp +al1ana +a2l1ang +al1ans +al1anz +a2lar +a3lar. +a3lare +al2arm +al3arr +ala4s +al1asi +al1ass +2alat +al1au +al3aug +a1lä +al1äm +alb3ein +alb3eis +al4berh +al4b3erw +al2b1l +alb3li +al2boh +al2br +alb3ru +alb3s +al2dä +al2dr +alds2t +al3du +2ale +3a2l1e2b +3a2l1ef +a4l1eh +a2l1ei +a4l3ein +a2l1el +alen1 +al3ends +a2leng +ale2p +al1epo +a2l1erf +a2l1erh +al1erl +3alerm +a2l1ert +3a2lerz +a2l1esk +ale4t +al1eta +al1eth +a2l1eu +a4leur +3a2lex +alf4r +3algi +al2gli +2ali +ali4ene +ali4nal +al1ins +a2linv +alk1ar +1alkoh +alk3s2 +alks4t +al2lab +al2l3a4r +al2lau +al3lend +all5erfa +al3les +alli5er. +alli7ers. +al2lob +3almb +2alo +a2l1o2b +alo2ga +al1ope +al1orc +a2l1ö +al2ös +3alpe. +1alph +al3skl +al4spal +al5s6terb +al3sun +al2tak +al3tam +alt3eig +al4t3erf +al2tre +al2tri +alt3ric +al2tro +alt2se +alt4stü +a1lu +al2uf +a2lum +al1umb +al1ur +4aly +alzer4z +al2zw +2am. +2am2a +amab4 +amad2 +ama3g +2amä +2ambiq +2am4e +4ame. +a2meb +ame2n1 +amer2a +a2meri +ame3ru +a4mesh +a3met +a2mew +2amf +a3mi. +a3mie +2a3mir +a3mis +ami3ta +ami3ti +2amk +2aml +2ammal +am2mei +am2min +2amml +ammu2 +a2mö +amp2fa2 +am3pr +2am2s +am3sa +am4schl +am3str +1amt. +am2t1a +am2t1ä +am4tel +2amtem +am4t3ern +am4tö +am2t3r +am4tre +am2tu +2amu +2ana. +2anab +ana3c +anadi3 +a3nak +an1alg +ana4lin +2anam +2anan +2ana1s4 +an1äs +1anb +2anbu +an3ch +2and. +an3dac +and4art +andel4s +ande2s +an2dex +an2d3rü +and4sas +and6spas +and3ste +and2su +2andu +and1ur +2ane +an3e2c +a3nee +an2ei. +an3eif +an1e4k +3a4n1erb +an1eth +1anf +2anfi +anft5s +an3f2u +4ang. +3angeb +an2g1ei +an4g3erf +an4g3erl +an4g3erz +2angf +2angh +2angie +ang1l +an2gla +2ango +ang1r +an2g3ra +4angs. +ang4s3po +1anh +2a3ni +an2id +ani5ers. +3a4nim +a4nins +2anj +2ank. +an2k1an +an2kei +an3kl +an4klö +an2k3no +ank1r +an2k3ra +an2k3rä +ankt4 +an2ky +1anl +2anmu +2ann +3an3na +ann2ab +3annä +an3n2e +an1od +a3nol +a2n1or +a3nos +a1nö +2anpr +1anr +1ansä +1ansc +ans2en +an2seu +2ansk +an3skr +ans1pa +1anspr +an3s2z +2ant. +an2t3a4r +1antá +1antei +3antenn +an3t4he +1anthr +2anto +1antr +ant3rin +an2tro +1antw +2a1nu +anu3s +a1nü +1anw +2anwet +2anzb +1anzei +2anzg +an2z1i4n +2anzs +1anzü +2anzw +an2zwi +2ao +ao1i +a1op +a1or +a1os3 +ao3t2 +a3ot. +a1ö +a1p +2ap. +2apa +2ape +a2pef +a3pel +a2pé +a2pf +ap2fa +a3pfl +a3phä +a2pht +2ap3l +ap2n +a2pot +3appl +ap3pu +2apr +2a3pu +2aq +2ar. +a1ra +a3ra. +ar2ab +ar3abt +ara3d2 +a2r3al +a3ra3li +a2r1ang +a2r1ans +a2r1anz +a2r3app +2a2rar +a2r1au +a1rä +1arb +2arb. +4arba +ar2bau +ar2bec +2arben +2arbi +ar2bl +2arbr +ar2bre +2arbs2 +2arbt +2arbu +ar2b3un +1ar1c +ar2dro +2are +a2rea +ar1eff +a4reg +a2reh +ar1ehr +a2rein +a4rek +a3ren +aren4se +are3r2a +ar2erf +a2r1erh +a2reri +a2rerl +are3u +ar2ew +2arf +arf1r +ar2f3ra +ar2gl +ar2gn +2arh +2ari +ar2ia +ari3e4n +ari3erd +ari3erg +ar1im +arin3it +ar1int +a3riu +ar2kal +ark3amt +ar2k1ar +ark3aue +ark3lag +ar2kor +ar4kri +ark1s4 +ark3sa +ark3sh +ark4tre +ar2les +arm2ä +ar4merk +ar3m2or +ar2nan +arn2e +2a1ro +ar1ob +a2r1o2d +a2r1op +a2ror +2arr +ar2r3ad +arre4n3 +ar2rh +arr3he +2arsa +ar4schl +arse3 +ar3s2h +2arsi +ar2st +ar3sta +ar3t2e +ar2the +ar3t2i +artin2 +2arto +art3r +ar4tram +ar6tri +2arts +2aru +ar1uh +ar1um +a2rü +2arv +arwa2 +2ary +ar2zä +2arze +1arzt +ar2z1w +as1ala +as3au +a2s1ä +a2sca +a3sche +a4schec +a3schi +asch3la +a2schm +a3schu +4as2e +a2seb +a2s3e2m +a3ses +4ash +a3s2hi +asin2g +2asis +aska3s +a3skop +a2s1o2f +as1or +a2sö +a2s1p +as3pan +as2ph +as2pi +as2po +a3spu +as3s2a +as3s2e +as4s3ei +as3s2i +as2s1p +as2st +ass3ti +as3str +as3stu +2as3ta +a1s4tas +as4tau +as3te +as2th +as3ti +as3to +as4tof +2astr +ast3rä +as6t3re +a2sü +aswa2s +3a2syl +a1ß +aße2 +aßen3 +2a1t +ata1 +at1ab +at2af +at4ag +a2t1akt +ata3l +a3tam +at1apf +at1au +a2taus +a2t1ä +at2c +at2e +4ate. +a2teb +at3eig +a2teli +4aten +a2tep +ater3s2 +ate2ru +4ates +at2h +at3ha +4athe1 +3athl +4a3ti +atil4s +ati2st +3atm +4atmus +ato4man +4ator +a2t1ort +at1ö +4atr +atra4t +at3rä +at3re +at3rom +at2sa +at4schn +at2se +at4set +at2si +at2so +at2s1p +at3ta +at4tak +att3ang +at4tau +at2tei +at3t4hä +at2t3rä +att3s +a3tub +atu2n +a3tü +atz1er +at4zerk +at4zerw +at2z1in +at2zo +atz3t2 +at2z1w +a2u +2au. +2au1a2 +2aub +au2bli +au2blo +4auc +auch3ta +au2dr +2aue +aue2b +au5erein +aue2s +au2fa +auf1an +2aufe. +2aufeh +auf1er +au4ferk +auff4 +3aufn +2aufs. +2aug +4augeh +4au1i +au2is +2auj +aule2s +au3lü +4aum +au2mal +au2m1o +aum3p2 +aum3s6 +4aun +au3n4a +aun2e +au2nio +au1nu +a4unz +au1o +2aup2 +aup4ter +2au3r2 +au2s1ah +ausan8ne. +au2sau +2ausc +au4schm +au4scho +1ausd +aus3erp +au4s3erw +3ausf +1ausg +1ausl +au2so +au2spr +1ausr +aus3s2 +3aussag +aus4se. +auster6m +aus5tri +1ausü +1ausz +2aut. +au2t1äu +2aute +au4ten4g +au4t3erh +1auto +2auts4 +2auu +2auw +2aux +2auz +auz2w +2a1ü +2a1v +a3v4a +ava3t4 +4avi +a2vr +2a1w +awi3e +a1x +ax4am +ax2e +2a1ya +a1yeu +ays4 +aysi1 +ay3t +2a1z +az2a +az2o +az2u +ä1a +ä1b +ä2b3l +äb2s +ä1che +äche1e +ä1chi +äch3l +ä2chr +äch2sp +äch4st +ä1chu +ä1ck +äck2e +ä1d +ä2da +ä2d1ia +ä2dr +äd2s +2ä1e +äf2fl +äf3l +äf3r +äf2s +äft4s3 +ä1g +äge1i +äge3s +ä2g3l +äg2n +ä2g3r +äg4ra +äg3str +1ä2gy +äh1a +2ä3he +ä3hi +ähl1a +ähl2e +äh4l3e4be +2ähm +äh3ne +äh3ri +2ähs +2äh3t4 +ä1hu +äh1w +ä1im +ä1is. +ä3isch. +ä1isk +ä1j +ä1k +ä2k3l +ä2k3r +ä1la +älbe2 +äl2bl +2äle +äl2l1a +äl2p3 +äl4schl +ä1lu +ämi3en +2äml +äm2s +ämt2e +2än. +än5de +än2dr +2äne +äne2n1 +äne1s +än2f5 +2änge +än2gl +än2gr +äng3se +2ä3ni +änk2e +än2k3l +än2kr +änk2s +än3n4e2 +2äns +än2s1c +änse3h +ä1on +ä1pa +äp2pl +äp2pr +äp2s1c +äp4st +1äq +ä2r3a2 +är4af +är1ä +är1c +4äre +ä2r1ei +äre2n +ä2r1ene +är2gr +är1int +är2k3l +ärk2s +är4ment +ärm2s +är1o2 +ä1rö +ärse2 +är4si +är2st +ärt4e +är2th +ärt2s3 +ä2rü +1ärz +är2zw +ä5s4e +äse3g2 +äser4ei +äse4ren +äser2i +äse3t +äskop2 +äskopf3 +ä3s2kr +ä2s1p +äs6s1c +äss2e +äs4s3erk +äs2st +ä4s3t2 +äs4tr +ä3su +ä1ß +äß1erk +ä4t1a2 +ä3te +ät2e1i +ätein2 +äte2n +ät2h +ät1ob +ä2t3r +ät2sa +ät2sä +ät4schl +ät4schr +ät2s1i +äts3l +ät2s1p +ät2s3t +ät4tr +ät2zw +äu2br +äu1c +äude3 +äu3el +ä2uf +äuf2e +1äug +äug3l +4äul +2äum +äu2ma +äum4s5 +ä2un +äun2e +äu1nu +2äur +2ä3us. +äu4schm +äu3se +ä3usg +ä3usk +ä3usn +äu2sp +äus2s1c +1äuß +äu2tr +4ä1v +1äx +ä1z +â1t +á1n +ba2bl +2babs +bach7t4e +backs4 +b1a2dr +2b1af +3bah +bah2nu +bais2 +ba2ka +ba2k1er +ba2k1i +bak1l +bak1r +ba2kra +3bal +bal2a +bal4l3eh +bal6lerg +bal3th +2b1am +ban2a +3b2and +ban2dr +ba3n2e +b1ang +ban2k1a +ban4kl +ban2kr +2banl +2b1ans +ban3t +b1anz +bar3b +bar3de +ba2rei +bar2en +bar3n +bar3zw +3bas +ba3s2a +ba2sc +ba2st +bau3g +bau1s +bau3s2k +bau3sp +ba1yo +3b2ä1c +b2är +b2äs +4b1b +b3be +bben3 +bbens2 +bbe4p +bb3ler +bb2lö +bbru2c +bb2s +bbu1 +2b1c +2b3d4 +bde1s +3be. +3bea +be3an +be3ar +be3as +3beb +b2ebe +1be1c +be2del +bedi4 +be1eh +be2erk +be1erl +be1eta +3bef4 +be3g2 +2b1eier +bei1f4 +beik4 +beil2 +bei3la +2b1eime +b2ein +be1ind +be1in2h +bei3sc +beis2e +bei1st +beit2s +3bek +3bel +be3las +be3lec +be3lei +be2l1en +be2let +be3li +bel3la +bel3sz +bel3t4 +1bem +1ben. +ben3ar +ben3dor +be3nei +3ben3g +be3n2i +ben3n +ben2se +ben4spa +ben4spr +benst4 +ben2su +2bentb +b2enti +ben5t4r +b1ents +2bentw +ben3un +ben3z2 +be1o +be1ra +ber3am +be2ran +ber4ei. +be4r3eiw +be4rerk +bere4s +ber6gan. +ber4in. +ber3iss +ber3na +b1ernt +be2rob +be3rop +ber3st4a +be3rum +3be1s +bes2a +be2s1er +be3slo +bes2po +bess4e +b3esst. +bes3sz +be6stein +be4s3tol +be3s4ze +3bet +be2tap +be3tha +be1ur +3b2ew +2b1ex +1bez +2b5f4 +bfal2 +2b1g2 +bge3 +bges4 +2b5h2 +bhut2 +1bi +bi3ak +bib2 +bibe2 +bien3s +bie2s +bik2a +bi2ke. +bi2kes +3bil +bil2a +bi2lau +4b1illu +bi2lu +2b1inb +bin2e +2b1inf +bin3gl +2b1int +bi2o1 +bio3d +bi3on +biri1 +bi3se +b1iso +bi2sol +bi2sp +bis2s1c +bi2s5t +b2it. +b2it2a +b2ite +bi2tu +b2i3tus +biz2 +4b1j +bjek4to +2b1k4 +bl2 +2bl. +bla3b4 +b3lad +b2lanc +3blat +b2latt +2b3law +b2le +3ble2a +b3leb +2b3leg +2b3leid +b3lein +3blem +3blen +b3lese +ble3sz +b4let +b3leu +2blich +3blick +b2lie +2blig +bling4 +b3lis +b2lit +3blitz +b2lo +b4loc +b3los +2blun +3blut +3blü +2b1m +4b3n2 +bni2 +bnis1 +bo4a +bo5as +b1ob3 +bo2bl +bo2br +bo2c +bo3ch2 +bo3d2 +boe1 +bo2e3i +2b1of +bo3fe +bo1is +bo2l1an +3bon. +bond1 +bon2de +bo2ne +3bons +b1op +bo1r2a +bo4rä +bor2d1i +bor2d3r +bo2rei +bo4rig +bor2s +b1ort +bor2t3r +bo2sc +bo4s3p +bote3n4e +bo3th +bot2st +bo2xi +bö2b3 +2böf +2b1p2 +bpa2g +2b1q +b2r4 +2br. +b4ra. +2b3rad +b4rah +b4ra3k +bra1st4 +3brä +brä4u +2bre. +3brea +6b5rechte +2b3ref +2breg +b3reif +3brem +2b3rep +b4rer +2b3riem +bri2er +2brig +b4rio +b3roh +2b3rol +b4ron +b4ruc +bru4s +brust3 +bru2th +3brü +4b1s +b2s1ad +b3sand +bs3ar +bsat2 +b3sä +b4sär +bs2äu +b5sc +bs2ca +b6schan +b6schef +bs4cu +b3se. +bse2b +b3sel. +bse2n1 +b4s1erf +bs3e4r3in +b4s1ers +b3s2es +bsi4t +bs2ku +b4sl +b2s1of +bso2r +b2sö +bs2pl +b3s2pu +bss2 +bs2t +bst1a2b +bst3ac +bst1ak +bs3tät +bst3er +b2stip +b3sto +b4stod +b3stö +b2s3trä +bs3treu +bs4tri +b3stü +b4stüb +b2s1un +4b3t +btal3 +btast3r +b5te +b4th +btil4 +bt4r +b4ts2 +btü1 +bu2chi +bu2e3 +bu2f +bu3li +bul2la +2b3umk +bung4 +b2urg +bu3r4i +bu2sa +bu4s3cha +bu4schl +bu4schm +bu4schw +bus1er +bu2sin +bu2s1p +bu2s1u +bü1c +bügel3e +2b1v +2b1w +3by1 +by3p +bys2 +2b3z2 +bzeit1 +1ca +2c1ab +ca1ch +ca2e3 +ca3g4 +ca1h +cal3t +3cam +c4an +ca2pe +3car +car3n +carri1 +ca3s2a3 +cas3t +ca3t4h +ca1y2 +cä3 +cäs2 +2cc +c1ce +c1ch2 +c2d2 +c3do +2cec +ce2dr +2cef +ce1i +2cek +1cen +cen3g +1cer +cere3 +ce3sh +1cet +2ceta +ce1u +1cé +2c1f +c4h +4ch. +2chab +ch3a2bi +cha2ck +2chaf +2ch1ak +ch2anb +3chanc +ch1ang +ch3anst +4chanz +1chao +4char. +1chara +3charta +cha2sc +3chato +4chatu +ch1ärm +ch1äs +1châ +2chb +2chc +2chd +ch3e4ben +1chef +3chef. +che4fer +3chefi +3chefs +4chei +ch1eim +4chelem +che4ler +4chents +4chentw +cher3a +che3rei +6chergeb +cher6zie +ch1ess +2cheta +2ch1e4x +1ché +2chf +2chg +2chh +1ch1ia +2chic +chi3na +4chind +3chines +2chinf +2chinh +ch1ins +ch1int +2ch1inv +1chiru +2chj +2chk +2chl2 +ch2le +ch3lein +ch2lu +4ch2m +2chn4 +chner8ei. +2chob +cho2f +ch1off +ch1oh +ch1orc +2chp +ch2r4 +4chre +chre3s +ch3rh +1chron +4chs +2cht +2chuf +2chuh +2chum +2ch1unf +2chunt +4chü +2chv +4chw +2chz +ci1c +ci2s +c1j +c4k +4ck. +ck1a +1cka. +2ckac +1ckag +2ckal +2ck3an +cka4r1 +2ckau +ck1ä +2ckb +2ckc +2ckd +1cke +4ckeff +2ckeh +ck1ehe +4ck1ei +4ckense +ck1ent +4ckentw +cke2ra +ck2ere +6ckergeb +ck1erh +4ckerhö +4ckerke +ck2ern +2ckero +2ck1err +4ckerze +2ck1ese +2ckex +2ckf +2ckg +2ckh +1cki +2ck1id +ck1im +ck1in +3ckis +2ckk +2ck3l +2ckm +2ck3n +ck1o2 +2ckp +2ck3r +4cks +ck4stro +2ckt +ckt2e +1cku +2ck1um3 +2ckunt +2ck1up +2ckv +2ckw +1cky +2ckz +c4l2 +clet4 +clo1 +1clu +c2m2 +3co +co2c +co3ch +co2d2 +co4der. +co3di +coff4 +coi2 +co1it +co2ke +co2le +col2o +com4te. +comtes4 +con2ne +co2pe +co1ra +cor3d +co3re +cos4 +co4te +cô4 +2cp +2c1q +1c4r2 +cre2 +cre4mes +cry2 +2cs +cs2a +c2si +c1s4tr +4c1t +cte3e +cti2 +cti4o +ctur6 +3cu +cu2p3 +cussi4 +1cy +2c1z +3da. +da1a +2d1ab +3d2abä +da2ben +3d2abl +da2bre +dab4rü +2d1ac +dach3a +da2cho +dach1s +4d3achse +d1af +d1ag +dagi2 +dah3l +da1ho +3d4ai +da1in +da1is +dal2a +2d1alar +dal3b2 +da3lö +d1alt +d1amma +2d1ammä +damo3 +d4amp +dampf8erf +2d1amt +d2an. +2d1ana +dan4ce. +2d1an3d2 +d1ang +2dange +dan4kl +dan5kla +dan2k1o +dan2kr +2d1ans +2dantw +2danw +d2anz. +4danzi +2d1ap +d2aph +4dapp +da2r3a +2darb2 +3d2arl +dar2ma +dar2m1i +da2ro +d3arr +d2ar3s +d1art +da2ru +d2arw +da1s +da3s2h +das4t +dat2a +dat4e2 +da3tei +date4n +4d3atl +4datm +dau3e +2d1au2f +2dauk +2d1aus3 +4daush +2d1äh +2d1ämt +2d1änd +2d1äng +2d1äp +2därz +dä2u +dä3us +2d1b4 +dbu2c +2dc +d1ch +dco4r +2d1d2 +ddar2 +d3dh +d5do +1de +de2ad +de3as +de3a2t +de3b4 +2d1e4ben +3de1c +de4ca. +de2cka +deco3 +de1e4 +2d1eff +deg2 +de3gl +dehe2 +de3ho +2d1ehr +d1ei +d2eic +3d2e1im +dein2d +dein2s +de2l1a4g +de4l3aug +del1än +del1ec +delei4g +de3lein +2delek +2delem +2delfm +delle2 +del4leb +del4lei +de2l1ob +de2lop +de3lor +de2lö +del4san +del5sc +del2s5e +del2so +del2s1p +del5ster +del3t4 +dem2ar +2d1emp +d2en. +dend2 +de4n3end +4denerg +den3g +d2enh +de2ni +den4k3li +4den4sem +den4sen +den6s5tau +den3th +2dentw +de1nu +de1on +depi2 +d4er. +dera2b +de1rad +de2rap +der2bl +2derdb +de2re2b +de4reck +der3edi +derer3 +de3r4erb +de3r4erf +de4r3ero +derer4t +4d3erhöh +3derie +derin4f +4derklä +der3m2 +4derneu +4d3ersat +der3tau +der6t5en6d +de3ru +de4ruh +de4rum +des1 +de2sa +de3sac +desa4g +de4sam +des2äc +de2seb +de4seh +de2sei +des3elt +de2sen1 +de4set +de2sin +de2sor +de2sp +des3s2 +dest5alt +de2sto +dest5rat +de4stre +des4tum +de2su +det2 +deten4t +2d1etw +de1un +de1url +de3us +de2xis +2dexp +2d1f4 +2d1g2 +dga2 +d2ge. +dge4t1e +d3gl +2d1h2 +dha1s4 +d2his +1di +di4ab +di2ad +di4am +3dic +di1ce +di2e +di3e2d +die4neb +di3eni +di3ens. +die2s3c +diet3 +die2th +dige4s +dik2a +dil2s5 +2d1imb +din2a +2d1ind +2d1inf +2d1inh +2d1in1it +4d3inner +2d1ins +2d1int +di2ob +dion3s +di1p +di4re. +di2ren +di2ris +2d1irl +di2sp +2d1isr +dist2 +di2s5te +di2ta +di4teng +di4t3erl +di4t3erm +di4t3ers +di2th +di4t3r +dit3s +di2tu +di5v +di3z2 +2d1j +2d1k4 +4d1l2 +d3la +d3le +dle2ra +dli2f +dl3m +dl3s +2d3m2 +4d5n2 +dni2 +dnis1 +d1ob +d2oba +2dobe +dob4l +d2obr +2d1o2f +dole4 +doll2 +do2mar +do5n4a +doni1e +do2o +2dope +2d1opf +d2opp +d2o3r4a +2dorc +2dord +dor2f1a +dor2fä +dor2fl +dor2fr +2d1org +do2rie +d2orp +2dort +dor2ta +d2os. +dos3s +dost1r +dot6h +do3un +d1ö +dö2l1 +3d2ör +dö2s1c +2d3p2 +2d1q +d2r4 +3d4ra. +2d3rad +drag4 +2drahm +d3rai +3d4ram +d3rand +2d3rast +2d3rauc +2dräd +d4räh +2d3rät +2d3räu +4dre. +d4rea. +d4reas +3d4reck +2dreg +3d4reh +2d3reic +d4reiv +4drem +4d3ren +2d3rep +4d3rer +4dres. +d4resc +2d3rh +d3ri +d4ri. +3d4ria +2d5ric +d4rid +d4rie +d5rieg +d4rif +d4rik +d4ril +d4rin. +3d4risc +3d4rit +4dritu +d3rob +d3roc +2d3rod +d4roi +2d3rot +d3rou +2d3rov +d3rö +drö2s1 +d5rub +3d4ruc +2d3ruh +drunge3 +2d5rut +drü1b +drü5cke +2d1s +d4s1amt +d2san +ds3assi +d2sau2 +ds1än +4dsb +d4schin +d2s1e2b +d2s1ef +d3sei +ds2eig +d4seins +d2s1eng +d2s1ent +d2s1erf +d2serh +d2s1erk +ds1err +d2s1erz +dse4t +d4s1eta +d3s2ha +d3sho +d2s1im +ds2inf +d3s2kan +d3skul +4dsl +d2s1op +dso2r +ds1ori +d2sö +d2s1par +ds1pas +d2spä +ds2po +d2spro +ds2pu +dss4 +dst4 +ds3tab +d4stag +d4s3täti +d2ste +d4stea +d3stei +d3stell +d4stem +d3s4tern +ds2ti +ds4til +ds4tip +ds2tu +ds1ums +d2sun +ds2zen +2d1t +dta2d +d5tea +d2th +d4thei +dt3ho +dto2 +d3tö +dt3r +dtran2 +dt5s2 +d3tü +1du +du1alv +du1ar +dub3l +du2bli +du2f +2d1ufe +2d1uh +du1i +2d1umb +2dumd +2d1u2m1e +2dumf +2dumg +2d3umk +2duml +d2ump +2dumr +d1ums +d2ums. +2d1umv +2d1un3d +dund2a +2d1unf +dung4 +dun3ke +dun2kl +2dunr +dun2s +2dunt +du1o +dur2 +2d1url +2dursa +du4schn +du4schr +du4schw +dus3t +2düb +3düf +3dün +2d1v2 +2d1w +dwa2 +dwest3 +dy2s +2d1z +2e1a +e3a2b +eab3l +ea2c +ea3der +eadli4 +ea2dr +ea2g4 +ea3ga +ea4ge +ea3gl +eak1 +eakt2 +ea2la +e3alei +e4aler. +eam3 +eam1o +ea2na +e2ano +e3ar. +ea2ra +e3a4rene +e3arr +e3arv +e2as +eas3s +eat4e2 +eater1 +e3ath +ea5tr +eat3s2 +e3at5t4 +e3au2f +e3aug +eau1st +e1ä2 +e1b +2eba +e3b2ak +2ebed +ebe2i +2ebel +eb2en +ebens3e +2ebet +2ebl +eb3ler +eb4leu +e3blie +eb3lo +eb2lö +2eb2o +ebot2 +ebö2s +2ebr +eb3rei +eb4ru +eb2s1 +eb6sche +ebse2 +ebs3pa +eb3sta +eb4stät +ebs3tem +ebs3t2h +eb3str +e3bu +ebu2t1 +2e3ca +e1ce +ech1ä +2e3che +ech1ei +e6ch5erzi +e1chi +ech3l +ech3m +ech3n +e2cho. +ech1o2b +e2ch3r +ech3ta +ech3t4ei +e1chu +ech1uh +ech1w +e1ci +eci6a +eck3se +2eckt +2e1cl +2eco +e3cr +ec1s4 +2ect +e1d +e3d2a +ed2dr +ed2e +ede2al +e3dei +ede3n2e +edens1 +eden4se +eden4sp +ede2r +eder3t2 +edi4al +e3d2o +ed2ö +eds2ä +ed2s1es +ed2s1o +ed2s1p +ed2s3tr +ed2su +edu2s +e3dy3 +4ee +ee3a2 +eeb2l +ee2ce +ee1ch +ee2cho +ee2ck +eede3 +eed3s2 +ee1e +e1eff +eef4l +eef3s +eeg2 +e1ei +ee1im +eein4se +eel2e +ee2lek +ee3len +e1emp +e1en +eena2 +ee4nag +e2enä +e2enc +ee3ni +e2eno +een3s +e1e2pi +ee1ra +e1erbt +e1erd +ee3r2e +ee4r3en4g +eere2s +ee4ret +e1erk +ee1rö +eer2ös +eert2 +e1ertr +ee3r2u +e1erz +ee3s2 +ees3k +ee3ta +ee4tat +ee2th +ee1u2 +eewa4r +e1e2x +e1f +2ef. +2efa +e2f1ad +ef1ana +ef1ar +e2fat +e2fäu +2efe +e3fe. +e2f1e2b +ef1em +e2fent +ef2er +2eff. +1effi +ef2fl +2efi +e2f1i2d +e2f1ins +efi2s +1efku +2efl +e3f4lu +2e3f2o +e3fra +ef3rea +ef3rol +ef3rom +ef4rü +efs2 +ef3so +ef3sp +ef2tan +2efu +e2fum +2efü +e1g +egas3 +egd4 +e3ge +ege4n3a4 +ege2ra +ege4str +ege1u +e2glo +e2gn +eg3ni +eg4sal +eg4se4r1 +eg4sto +eg2th +2egu +egung4 +egus3 +2e1ha +eh1ach +e3h2al +eh2aus +2e1hä +e1he +eh2ec +eh1eff +eh2el +ehen6t3 +1e2hep +e3her +ehe1ra +ehe3str +e1hi +eh1int +eh1lam +eh1lä +ehle2 +ehl3ein +eh4lent +eh5l2er +eh2lin +eh3lo +ehl2se +2ehm +eh3mu +e1ho +e3hol +ehr1a2 +ehr1ä +ehr1e2c +eh2rei +ehr3erl +ehr6erle +ehre3s +eh3ri +eh1ro2 +ehr1ob +ehr1of +ehs2 +eh3sh +eh1ste +2eht +e1hu +e2hunt +e1hü +eh3üb +eh1w +e1hy +2ei3a2 +4eib +ei2bar +ei2bl +eibu4t +ei4b3ute +ei2cho +e2id +ei2d1a +ei3dan +ei3de +ei4d3err +2eidn +ei3dra +ei1e +4eien3 +eienge4 +1eifr +ei3g2a +4eigeno +eig2er +2eigew +ei3gl +1ei2g3n +2eigru +2eigt +2eigu +eik2ar +ei3kau +eik4la +e4il +2eil. +ei2lar +ei2lau +2eilb +eil3d +ei4lein +eilen1 +eil3f4 +eil3ins +2eiln +1eilzu +ei2m1a4g +eim3all +ei2mor +e1imp +eim2pl +ei2n1a +ei4nas +ei4nä +ein3dr +2eindu +ei4neng +ei2neu +2einfo +ein4fo. +ein4fos +ein3g2 +ein4hab +e1init +ein3k +ein6karn +3einkom +ei2n1o2 +3einsat +ein6stal +ein4sz +e4inver +ei3o2 +ei1p +eip2f +2eir +ei3re +e1irr +e2is. +ei2sa4 +ei6schwu +ei4s3erw +eis2pe +eis4th +ei1sto +ei2sum +e2it +ei2tab +ei2tan +ei2tar +2eitä +ei3te +ei2th +ei2tro +eitt4 +eit3um +2eiu +2e1j +e1k +ek2a +1ekd +e3ke. +e3ken +e3kes +e3key +e3k2l +ek4n +ek2o +ek4r +ek1s4t +2ekt +ekt4ant +ekt3erf +ekt3erg +ek4t3erz +ekt2o +ek5tri +ek2u +e3k2w +e1la +ela4ben +el2abt +ela2c +el1af +ela2h +e2l1ak +e2l3a2m +el4ami +el4amp +el1ans +el1anz +2elao +e2l1ap +e2l1a2r +el3ari +ela4s +el1asi +el1asp +el2ast +2e1lä +3elbis +el2da +eld5erst +el4d3erw +eld3s2 +2ele. +elea2 +ele2c +2eleh +2elei +e6l5eier. +e2l1ein +e3leine +e4leing +1elek +e2l1el +1e2lem +e3lem. +el1emp +2e3len. +e4lense +e2l1ent +e3lep +el1erd +el1erf +e4ler4fa +e2l1erg +el1erk +el1erl +e4ler4la +e4l3ernä +e2l1err +2eles2 +el1ess +e4l1e4ta +e3leu +2elev +ele2x +1elf. +el3fe +elf4l +1elfm +1elft +elgi5er. +elgi5ers +2eli +e2l1id +e3lie +eli2ne +el1ita +el3kl +el3lan +el3le +el5le. +ell3ebe +el4l3ein +ell3eis +el3lin +ell3sp +elm2a +2eln +el5na +2elo +e2lof +e2lol +elon2 +el1ope +e2l1or +elo2ri +el2öf +elö2s +el2sum +elte2k +elt3eng +3eltern +elto2 +el2t3r +elt3s2k +elt3s2p +2e1lu +e2l1um +el1ur +el3use +e1lü +e2lya +2elz +elz2e +el2zwa +e1m +2ema +e2m1ad +ema2k +e2m3anf +e2m1ans +3emanz +em2d3a2 +e3m2en +emen4t3h +e6mentsp +e2m1erw +eme2s +1e2meti +e2m1im +em1int +emi3ti +2emm +emma3u +em2mei +e2mop +3empf +em3pfl +em2p3le +em2sa +em2spr +em2st +em3t2 +1emul +2emü +e2n1a +4ena. +2enac +e3nad +e4naf +4enah +e4nak +ena3l2i +4enam +en4ame +e4nand +en3ang +en3are +en2asc +4enat +en3att +e3naue +e2n1är +en1äu +en4ce. +en3d2ac +en2dal +en4d3ess +end4ort +end3rom +end3si +end3s2p +end3sz +end2um +2ene. +ene4ben +en1e2c +e2neff +e4nein +e2n1el +ene4le +2enem +2enen +e4n1ent +en4entr +4e3ner. +e2n1erd +e2nerf +1e2nerg +e4nerh +e4nerk +e2n1erl +e4n3ermo +4enern +e2n1err +e2n1ers +e2n1ert +e2n3eru +e2n1erw +e4nerz +2enes +e4n3ess +en3f +enf2a +enf2u +1engad +3engag +en3ge +en3g2i +en2gl +en3glo +1engp +eng3se +e3ni. +e3nic +e4nid +e3nie +eni3er. +eni5ers. +e2n1i4m +e2n1in +e3nio +2enis +eni3se +e3nit +2eniv +en3k2ü +e2n1o2b +enob4le +e2nof +en1oh +e3nol +eno2ma +en1on +e2n1op +e2n1o2r +enost3 +e3not +eno2w +2e1nö +en1ö2d +e4nr +en3sac +en2sau +en5sch4e +en2seb +ens2el +1ensem +ensen1 +en3ska +en3s2po +enst5alt +en4s3tät +2ensto +e4nt +ent4ag +1entd +en2teb +en4terb +1entfa +3entga +en2thi +3entla +1entn +en4t3rol +3entspr +2entü +1entw +4entwet +1entz +en1u +2enut +e1nü +enü1st +4enwü +e1ny +en4z3erf +en4z3erg +en4z3erk +enz3ert +e1ñ +2eo +e1o2b1 +e1of +eo2fe +e1oh +e4ol +e1on. +e1ond +e1onf +e1onl +e1onr +e1ons +e1ope +e1opf +eop4t +e1or +e3or. +e3orb +e3ors +e3orw +eo1s2 +e3os. +eo3ul +e1ov +e1ö2 +e1p +e3pa +epa2g +e3p2f4 +1episo +ep3le +1e2poc +ep2pa +ep4pl +ep2pr +ept2a +ep2tal +e3pu +epu2s +e1q +er1a +e3ra. +e3rad. +er3adm +eraf4a +era1fr +era2g +e1rai +er3aic +e2rak +e1ral +er3all +eran3d +e3rane +er3anf +e2ranh +er3anm +e1rap +er3apf +e2rar +e3rari +e1ras +e2r3a4si +era2ß +e2rath +e3rati +e2ratm +e1raub +er3aue +erau2f +er3aug +e1raw +e1raz +e1rä +er1äh +er1äm +erb2e +er3br +erb4sp +er1c +er3chl +er3da +1erdb +er3de +2erdec +erd3erw +4ere. +er1eb +e3rech +er3echs +er1e2ck +ere4dit +er1eff +e2r1e2h +4e3rei. +er1eig +e2rein +e4r3eis. +ere2l +er1ele +2e3rem +2eren +4e3ren. +e3rena +e4rense +e4r3entf +e4rentn +e3renz +eren8z7end +2erer +4erer. +e2r3erf +e2r1erh +e4rerl +4erern +e3rero +er1err +er1ers +e2rert +er1erw +2eres +er1ess +er3e4ti +er1eul +ere4vid +erf2e +erf4r +4erfür +3ergebn +4ergehä +erg3el4s3 +1ergol +erg3s +ergs4t +er3h +1erhab +2erhü +2eri +e2riat +e3rib +4e3ric +4e3rie +eri3e4n3 +e3ri3k4 +4e3rin. +er1inb +e2r1ini +er1ink +er1int +e3rio +er1ita +2erk. +1erklä +2erkre +erk3t +3erlebn +ermen4s +erm3ers +ern1os +e1ro +e3ro. +er3oa +er1o2b +er1of +er1oh +e3ron +e2r1o2p +e4ro2r +e3ros +e3row +er1ö +erö2d +2erök +er3p4 +er3rä +2errü +ers2a +er3se +ers2i +er3sk +er3smo +er3sn +er3sp +er3sz +ert2ak +er6terei +er4ters +er2tho +4erti +ert3ins +ert4ra +erts2e +2eru +eruf4s +er1u4m +er1und +erung4 +er1uns +er3uz +erü4b +3erweck +6erweis +es3ab +es2ach +es3ak +es3anz +e3s2as +e4s3ato +2esb +es2c +es3cap +e3sce +esch2 +e3scha +e2s3ein +es2el +ese4ler +es3eva +2esf +4esh +es2har +es2hu +es2id +e2sil +es3int +es2ir +es2kat +e4ske +es3kl +es3ku +e4sky +es3l +es4log +2esm +es2ort +e3sot +es2ö +2esp +e3s2pek +e3spi +e3s2por +e3s4pra +2esr +es2sau +es3sc +es3se +4essem +ess4e3re +ess3erg +2esso +es2sof +es2s1pa +es2spu +es3str +es3stu +estab4b +est1ak +e1star +e4starb +1e2stas +e1stat +e1s2tec +e3stel +es4t3eng +es4t3erh +es4t3ess +e1stil +e2stip +estmo6de +est3ori +e1str +es4tri +es3trop +e1stu +es4tü +e2s1um +es3ums +es3w +e3sy +es3z +e1ß +eße3r2e +e1t +etab4 +et1am +3etap +et4at +et1äh +e3te +e4tein +et2en +eten3d2 +ete2o +eter4hö +eter4tr +et2h +et3hal +et3hü +e3ti +eti2m +eti2ta +2e3to +eto2b +e4t1of +etons4 +e3tö +2etr +e4traum +e6t3rec +e2tres +et4rig +etsch3w +ets2p +et3su +ett1a +et2tab +et2t3au +et2tei +ette4n1 +et2th +et2t3r +et4tro +ett3sz +et4t1um +e3tü +etwa4r +2etz +et2zä +et4z3ent +etze4s +et2zw +eu1a2 +eu3erei +eue6reif +eu2esc +eu2ga +eu4gent +eu3g2er +eu4gla +eugs4 +euil4 +eu1in +1euk +eu2kä +e1um +e3um. +e3umb +e3uml +e3um2s +eum4sc +eums1p +eum3st +2eun +eun2e +eu4nei +e3un2g +eu2nio +eun3ka +eu1o2 +eu1p +eur2e +3eu3ro +eu3sp +eust4 +eu1sta +eu1sto +eu1str +2eut +eut2h +eut6schn +2eux +eu2zw +e3ü +2e1v +e2vela +e2vent +4ever +eve5r2i +e3vo +e1w +2ewa +e3wä +ewä2s +2ewe +e2we. +ewinde3 +e3wir +ewi2s +e3wit +ew2s +2ex. +ex3at +1e2xem +ex1er +e1xi +e2x1in +1exis +ex3l +3exp +2ext. +ex2tin +ex2tu +2exu +2e3xy +ey1 +ey4n +eys4 +e1z +e3z2a +e2z1enn +e3zi +ezi2s +ez2w +é1b +é1c +é1g +égi2 +é1h +é1l +élu2 +é1o +é1p +é1r +é1s +é1t2 +é1u2 +é1v +é1z2 +è1c +è1m +è1n +è1r +ê1p +ê4t +1fa +fab4 +f1abe +fa2ben +fab5s +3fac +fa4cheb +facher5f +fa2ch1i +fa2cho +f1ader +fa2dr +f4ah +faib4 +fa2ke +f2al +fa3l2a +fal2kl +fal6l5erk +fal6scha +fal6schm +fal3te +falt2s +2fanb +2fanf +fan2gr +2f1ank +2fanl +f1anp +2fanr +fan3s +2fanw +f1an3z +2f1ap +f2ar +far2br +2f3arc +3fari +farr3s +3f4art +2f3arz +fa3s4a +fa3sh +f3at +fa2to3 +2f1auf +f3aug +f1ausb +3f4av +fa2xa +1fä +fä1c +fäh2r1u +2f1ärm +fä2ßer +f1äu +2f1b2 +2f1c +2f3d4 +fdie2 +1fe +featu4 +fe2c +f2ech +2f1eck +fe2dr +fe2ei +fe1em +fef4l +feh4lei +f4eie +2f1eing +4f1einh +fe1ini +2f1einw +f1eis +fek2ta +fe2l1a +fel2dr +2fe2lek +fe2l1er +fe2les +fe2l1o +fel4soh +fel3t +f2em. +fem4m +2femp +fe2nä +fen3g +fe2no +fen3sa +f1ent +f2er. +fe1ra +fer2an +fe4rang +fe4r3anz +fe2rau +ferde3 +f2ere +fer2er +fer3erz +f1erfa +f2erl. +4ferneu +f4erpa +f2ers. +f2ert +f1erw +fe2st +fest1a +fest3ei +2f1e4ta +3fete +fet2t3a +feuer3e +feu4ru +3few +f1ex +2fexp +3fez +1fé +2f1f +ff3ar +ff1au +ff2e +ffe2e +f2f3ef +ff3ei +ffe1in +ffe2m +f2f3emi +ff4en +f2fex +fff4 +ff3l +ff4la +ff4lä +ff4lo +f3flu +f3flü +f3f4rä +ff3ro +ff3rö +ff2s +ff3sho +ffs3t +ffs4tr +4f3g2 +fge3s +2f1h2 +1fi +3fi. +fi3at +fid2 +fi4ds +fid3sc +fien3 +fi1er2f +fi2kin +fi3kl +fik1o2 +fi2kob +fi2kr +fi2l1an +fil4auf +fil3d +fi2les +filg4 +fi3li +fi4lin +fil2ip +f2ina +fi3ni +fin2s +fin3sp +2f1int +fi2o +fi3ol +fi2r +fi3ra +3fis +fis2a +fisch3o +fis2p +fi2s5t +fit1o2 +fi2tor +fi3tu +3fiz +2f1j +4f1k4 +f2l2 +2fl. +f3lad +f3lap +1flä +3f4läc +2f5läd +f3län +2f3läu +2f3leb +f4lee +2f3lein +f3ler +f4lé +f3li. +3f6lim +fli4ne +2f5lon +1f4lop +1f4lot +flo2w +f3lö +f4luc +1f4lug +flu4ger +f4lü +2f3m2 +2f3n2 +fni2s +1fo +fob2l +2f1of +foli3 +fo2na +fo2nu +2f1op +fo1ra +4f3org +fo3rin +3form +for4m3a4g +forni7er. +for4st +for4tei +for2th +for2t3r +for3tu +2f1o2x +1fö +2föf +2f1ök +2f1öl +för2s +4f1p2 +2f1q +f2r2 +f4rac +frach6tr +f5rad +fra4m +f3rand +f5rap +1f4rän +2fre. +f3rec +f3red +2freg +freik2 +frein4 +f3rep +f4reu +2f3ric +fri3d +fri2e +2frig +1fris +f4risc +f3roc +1f4ron +fro2na +fro2s +f3rot +f3ru +f3rü +4f1s +fs1all +fs4amm +f2san +fs3ar +f2s1as +f2sauf +f2saus +f2saut +f3sc +f4sce +f4schan +f4schef +fs4co +fs1e2b +f4s1ehr +f2s1em +f2s1ent +f2s1er +fse4t +f4s1eta +f3si +f2si2d +f3s2kie +f2s1o2 +f3span +f2s1pas +fs1pen +f2sph +f3s2pl +f3s2por +fs1pr +f2spre +fs2pri +f2spro +fs2pru +fs3s4 +fs2t +f2stas +f4s3täti +f4stech +f3stei +f3s4tel +f3stern +fs3th +f2stip +f3st4r +f4s3tres +f4s3tüte +f2s1un +f2sü +f3sy +4f1t +f4ta. +f2tab +ft1a2be +ft1af +f2t1al +ft1an +ft1ar +f3tat +ft1e2h +ft1eig +ft1eis +f4t1ent +f4t1e4ti +f2th +f4thei +ft3ho +ft1op +f3tö +f2t3ro +f2t3rö +f3t4ru +ft2s1 +ftsa4 +ft4sam +ft3s2c +ft4sche +ftse4 +ft4seh +fts3el +ft3st +ft4s3tan +ft4s3tä +fts2ti +ft4stri +f2tum +ft1url +f3tü +ftwa4 +ft3z2 +1fu +3fug +3f2uh +f1um +2f1unf +fung4 +2f1u2ni +fun2kl +fun2ko +fun2k3r +2f1unm +2funt +f2ur +fu4re. +fus2sa +fus2s1p +fus2st +fu2ß1er +3fut +1fü +2füb +fü2r +2f1v +2f1w +1fy +2f1z +fz2a +fzeiten6 +fzei8tend +fz2ö +fzu3 +fzu4ga +3ga. +2gabf +ga2b5l +gab4r +2gabz +ga1c +2gadl +2ga2dr +ga1fl +ga3ge +5gai +ga1k +ga2ka +gal2a +g4amo +2g1amt +2ganb +gan3d +gan2g1a +4gangeb +gan2gr +2ganh +2g3anku +2ganl +g3anla +3g2ano +2ganw +ga1ny +2garb +2garc +3gard +2g1arm +ga3r2o +g1arti +ga3ru +2g1arz +ga2sa +gas3ei +ga2si +ga2sor +ga3sp +ga4spe +ga4spr +gas3s +gas4ta +gas5tan +ga4ste +gas4t3el +gat2a +2gatm +gat4r +gau1c +2g1auf +g2auk +g1aus +2g1aut +2g1äp +2gärz +gäs5 +gä4u +2g1b2 +gber2 +gbi2 +gby4t +2g1c +2gd +g1da +g2d1au +g2d1er +gd1in +g1do +g1dö +g1d3r +gd3s2 +gdt4 +gd1u +1ge +ge3a2 +geb2a +gebe4am +geb4r +ge1c +ged4 +ge1e2 +ge3ec +ge2es +gef4 +ge3g2l +ge1im +ge2in. +gein2s +ge2int +gein2v +ge1ir +ge2is +2g1eise2 +gei3sh +g2el +ge4lanz +gelb1r +gel4b3ra +gel6ders +ge3le +ge5leh +ge4l3ers +ge4less +gell2a +ge3lor +gels2t +gel3ste +gel3sz +gel3t2a +ge3lum +ge3lü +gelz2 +ge3mi +gem2u +3gen +ge3na +ge4nam +ge4nar +gen4aug +gen2d1r +gen1eb +ge3nec +gen3eid +gen3ern +gen3g +gen3n +gen4sam +gen3sz +2g1entf +gen3th +4gentw +geo2r +ge1ou +ge3p4 +ge1ra +ge2rab +4g3ereig +ge4reng +ge4ren4s +ge4r3ent +ger2er +gerin4f +ger4inn +gerin4t +germ4 +ger3no +ge1r2ö +ger4sto +ge3r2u +g2e1s2 +ges3auf +ge3sc +ges3elt +ge2s3er +ge3si +ges4pi +ges3s2t +gest2 +ge3ste +ge4s3ter +ges3th +ge3t2a +2getap +ge5tr +ge3t4u +ge1ul +ge1ur +2g1ex +2g1f4 +4g1g +gga4t +g3ge +gge2ne +g2g3l +gg4lo +g2g3n +gg4r +2g1h +4gh. +gh2e +3g2het +3g2hie +gh1l +3gh2r +g2hu +gh1w +gi3alo +gie3g +gi2e1i +gi2el +gien2e1 +gie1st +gi2gu +gi2me. +gi4mes +gi2met +2g1ind +gi3ne +gin2ga +2g1ins +2g3isel +gi3t2a +gi3tu +gi4us +2g1j +4g3k2 +4gl. +g1lab +g1lac +3glad +g2lade +2g1lag +3glanz +3g2laub +2g1lauf +3glät +2gläuf +g2l4e +2gle. +3glea +2g3leb +g3lec +g3leg +2gleh +4g3lein +glei4t5r +g3len +4g5ler +2gles +g3lese +g4lia +2glib +3g2lid +3g2lie +2glif +g2lik +4glin +g2lio +2glis +4g3lisc +3g2lit +g2liz +3g2loa +3g2lob +g3loch +glo3g +3g4lok +g2lom +3g2lop +3g2lot +2gls +2g1lu +glu2t +3glü +g2ly +2g1m2 +g1n +2gn. +g2n2a +g4na. +2gnac +g4nat +3g2nä +gn2e +g3neh +gne2tr +2gneu +2gng +g2nie +g2nif +g4nin +2gni2s1 +3g2no +gno1r +4g3not +2gnp +2gns +2gnt +2gnu +3g2num. +g2nü +g2ny +2gnz +go4a +goa3li +2g1of +2gog +2g1oh +go1i +gol2a +2gonis +2g1ope +2g1opf +g2o1ra +2gord +2gorg +go2s1 +go3st +go3th +got6t5erg +go1y +2g1p2 +2g1q +g2r4 +gra2bi +gra2bl +2gradl +2g3rah +2g3rak +grammen6 +gram8m7end +2g3räu +2g5re. +g4reb +2g3rec +2g3rede +g4re2e +2g3reic +2g3rein +g3reit +g4rem +2g3renn +gren6z5ei +g4rer +g3ret +g3rev +2g3ric +gri2e +g3riese +3grif +2grig +2g3ring +2groc +2groh +gron4 +g4ros +gros6sel +gro4u +2g3röh +g4ruf +2g3rui +2g3rum +3g4runs +3g4rup +2grut +2g3rüc +3g4rün +4g2s1 +gsa4g +g3s2ah +g4s3a2k +g3sal +g4salt +gs3ama +gs3an +gs3ar +gs3aug +g3s2c +g4sca +g4s3ce +gsch4 +g4schef +gs4chi +g4sco +g4s3cr +gse2 +gs2eh +g3s2eil +g3sel. +gs3eli +g3seln +gsen1 +gs3er +gs5erk +gse4t +g4seta +gsi2d +g3sil +g4sl +gso2 +gsp4 +g3s2pek +g3spi +gs4pie +g4spin +gs2pit +gs3pl +g3s2por +gsrat4 +gsrü2 +gs5s4 +gs3ta +g3stan +g3star +g3s4tati +g4s3tä +g5stäm +g3stel +gst3ent +gst3err +g1steu +gst2he +g3stir +g3sto +gs3toc +g4stol +gs3top +g4s3tor +g3stö +gs3tr +gst4ra +gs4trat +gst4ri +gs4t3ros +g3stu +g4stur +gs3tü +gs4tüc +g4sw +g3sy +2g1t +g3te +gti2m +gt4r +gt2s +g3tü +1gu +gu3am +gu1an. +gu1ant +gu1c +gu2e +2gued +guet4 +2g1u2f +2g1uh +gu1ins +gu1is +3gumm +2g1unf +g2ung. +gunge2 +4gungew +2g1ungl +g2un4s +2gunt2 +2g1url +gurt3s +gu2s3a +guschi5 +gus4ser +gus2sp +gus2st +gu4st +gu2t +gut1a +gu4t3erh +gut3h +2güb +gür1 +güs3 +2g1v +2g1w +2g3z2 +3haa +hab2a +hab2e +h2abs +ha2cho +ha2del +ha4din +h1adle +haf3f4l +haft4s3p +h1ah +ha1kl +2h2al. +halan4c +ha2lau +hal2ba +hal4bei +halb3r +2hale +hal2la +hal6lerf +h1alp +hal2st +hal4t3r +h1amt +h2an. +h2and +hand3s +h4ann +2hanr +2hant +h1ap +ha2pl +ha2pr +h4a3ra +2harb +h2ard +h1arm. +har4me. +har4mes +har2th +h1arti +h2as +2ha3sa +hasi1 +hat5t2 +hau3f4li +2h1aufm +h1aukt +hau2sa +hau2sc +hau4spa +hau5stei +hau6terk +2hauto +hau2tr +h1äff +hä6s5chen +häu2s1c +hä3usp +2h3b2 +hba2r3a +2h1c +2h3d4 +hdan2 +2hea +he2ad +he3be +he4b1ei +he2bl +he3br +he5ch2e +he1cho +h1echt +he3cke +hed2g +he3di +he2e3l +hee4s +he2fan +he2fä +he2f1ei +hef3erm +2heff +he4f3ing +he2f3l +he2fr +he3fri +he2fu +he3gu +h1eie +h1eif +h1eig +he2im +heim3p +hei4mu +heine2 +hei4neh +h1eink +4heio +he1ism +he1ist +heit4s3 +h1eiw +he2l3au +hel1ec +h3e2lek +he3len +hel3ers +he3li +hel4l3au +hel4mei +he3lo +he4lof +he2lö +3hemd +he3mi +3hemm +4h1emp +h2en. +he4n3a4 +he2nä +hend2s +he2n1e2b +hen3end +hen3erg +he2net +heng2 +2heni +he2no +henst2 +hen5tr +h1ents +2h3entw +hen3z +4he2o +he3on +he3op +he3ph +her3a2b +he2ral +2herap +he3ras +herb4s +he4reck +4hereig +he4r3eis +he2rel +he4rerw +h1er2fo +h1erfü +herg2 +herin4f +he6rin6nu +herin4s +herin8ter +h1erke +h3erlau +2herm +he3ro +he4r3o4b +h1erö +hert2 +her3th +her2zw +he1sta +he2s5tr +he2tap +heter2 +he3th +het2i +he3t4s +h2e2u +heu3g +he3x +he1x4a +he1y2 +1hè +2h3f4 +hfell1 +hfel6ler +hfi2s +2h3g2 +hget4 +2h1h2 +2hi. +2hia +hi2ac +hi2ang +hi1ce +hich6ter +2hi3d +h2ide +h1i4di +hi2e +hi3ens +hier1i +hie4rin +hiers2 +hif3f4r +hi2kr +hi2l3a4 +hil2fr +hi2n +h1indu +hi3nel +hin2en +h1inf +h1inh +hi3n2i +hin3n2 +hi3no +hin3s2 +hin4t1a +2hio +hi4on +hi3or +2hip1 +hi2ph +hi2pi +h2i2r +hi3ra +2hi3re +hi3ri +hirn1 +hir4ner +hi3ro +hir2s +his2a +hi2se +his2p +hi2st +hi1th +hi3ti +2hiu +h1j +2h1k4 +2hl +h4lac +hla2n +hl1anz +h1las +h1lat +h1laut +h3läd +h1läs +h1läu +hlb4 +hld4 +h3leb +hle3e +h5len. +hlen3g +hl2enn +h3ler +hle2ra +hl1erg +h6l3ernä +hle3run +hl1erw +h4lerz +h3les +h4lesi +h3lex +hlg4 +h2lie +h2lif +hl1ind +h2lip +h2lis +h3list +h2lit +hll2 +hlm2 +h2lo +h3loc +hl1of +hl1op +h4lor +hlo2re +h3losi +hl2ö +h3löc +h2lös +hl2san +hl2ser +hl3sku +hl3slo +hl3t2 +h3luf +h3luk +h1lüf +2h1m +h2mab +h3mag +h3man +h3mar +h4mäc +h4mäh +h4mäl +h4mäu +h3me. +hme1e +hme1in +h3men +hmen2s +hme2ra +h2mo +h4mon +h3mö +hm3p4 +hm2s +hm3sa +hms1p +h2mu +2hn +h2na +hn1ad +h3nam +hn1an +h2nä +hn3d4 +hn2e +hn3eig +hn3ein +h2nel +hne4n1 +hne4pf +hner3ei +h3nerl +h3nerz +hn3ex +h2nic +h2nid +h2nie +hn1im +hn1in +h2nip +hn3k4 +h2nor +hn3s2k +hnts2 +h1nu +h2nuc +h2nul +hn1unf +h3nunge +ho2bl +ho2ch3 +ho2cka +ho6ckerl +hock3t +2hod +hoe4 +ho2ef +ho4fa +ho2f3r +2hoi +hol1au +4holdy +3hole +ho2l1ei +hol3g4 +4holo +ho4lor +3hol3s +h1o2ly +3holz +hol6zene +hom2e +ho2mec +ho2med +h2on +hono3 +2hoo +2hop +ho1ra +hor3d +h1org +ho4sei +ho3sl +ho2sp +ho4st +2hot. +ho3th +hotli4 +2hot3s2 +3hov +2ho2w1 +h1o2x +ho1y2 +1h2ö +hö2c +hö3ck +h4ör +hö2s1 +h3öst +2h3p2 +h1q +2hr +hr1ac +hr3ad +h1rai +h1rane +h3räu +hr1c +hr3d +h2rec +h3rech +h3red +h3ref +h4rei. +hrei4ba +h3reic +h4r3eig +h3rel +h3r2en +h3rep +hr2erg +hr2erk +h6rerleb +hr2erm +hr2erz +h3re2s1 +hre2t +h2r1eta +h3rev +hrf2 +hrg2 +h2ri +h3ric +h4rick +hri4e +h3riesl +h3rin +h4rine +h4rinh +h4rist +h2rob +h3roh +h3rol +h4rome +h4romi +h4ron +h2ror +h3rou +hrr4 +hr2s1ac +hr2s3an +hr2sau +hr3schl +hr2s1en +hr2ser +hr4set +hr4s1in +hrs3k +hr4s1of +hr2su +hr4sw +hr2tab +hr2tan +hr2th +hr2tor +hrt3ri +hr2tro +hrt2sa +hrt2se +h3ruh +hr1ums +h3rü +h4rüb +h2ry +hrz2 +4hs +h2s1ach +h2san +h2sau +h4schan +h2s1ec +hse4ler +h2s1erl +h3s2ex +h2s1ing +h2s1of +h2s1par +h2sph +hs2por +h2sprä +h2spro +hss2 +h1sta +hst3alt +hst2an +h2s3tau +h1stec +h3stein +h5stell +h3s4terb +hst2he +h1s2ti +h1sto +h2stor +h1s4tr +hst3ran +hst3ri +h1stun +h2s1u +hs2ung +4h1t +h2t1a +h3t4akt. +h3takts +h3t2al +h4t3alt +h4t3a2m +hta4n +ht3ane +h3tank +ht2as +h4t3ass +h4tasy +ht3a2t +h2tär +ht1e2c +h2t1ef +ht1eh +hte2he +h2teif +h4teilz +h2t1eim +h2t1eis +h4t3elit +h2temp +h4tentf +h4t3ents +ht3erfo +ht3erfü +h2t1erh +ht5erken +h4terkl +h6terneu +h4t3erre +ht3ersc +h6t5erspa +ht3erst +h6tersta +ht6erste +h2t1erz +hte2s +h4t1ese +h4t1ess +hte3sta +h2t1eu +h2t1ex +h2th +h4thei +hthe3u +h4tho +h2t1in +hto2 +h2toly +h2torg +h3töp +h4t3rak +ht3rand +h2t3rat +ht6raume +h4tref +ht4ri +h4t5rin +h2t3rol +h2t3ros +ht3rö +h4t1rös +h2t3ru +h2t3rü +h4ts +ht2so +ht2sp +ht3spri +ht4stab +hts2ti +hts4tie +ht4s3tur +ht4s3tür +htt4 +htti2 +h2t1urs +h3tü +ht3z2 +hu2b1a +hu2b3ei +hu2b1en +hu2b3l +hu4b3r +hu2bu +hu1c +hu2h1a +hu2h1i +huko3 +huk3t4 +hu2l3a +hu2lä +hu2l3ei +hu4l3eng +hu4lent +hu2ler +hu2let +hu2l1in +hu2lo +hu3m2a +h1ums +hu2n +h1una +hung4s +hu3ni1 +h1up. +h1ups +2hur +hurg2 +hu3sa +hu2so +hus4sa +hus2sp +hu2tab +hu3t2h +hu2ti +hut2t +hut4zen +hut4z3er +hutz1i +h2ü +h4übs +h3übu +hühne4 +hüs3 +2h1v +hvi2 +hvil4 +2hw +h2wall +hwe1c +h1weib +3hyg +3hyp +hy2pe. +2hy2t +h1z +hz2o +hzug4 +i1a +2ia. +i4aa +i2ab +iab4l +2iac +i2af +iaf4l +i4a3g2 +i2ah +i2aj +i2ak +i3ak. +i3akt +2ial +i5al. +ia2l1a4 +ia2lä +ial3b +ial3d +i3alei +i3alent +i3alerf +i3alerh +ia4l3erm +i3a2let +i3a4lia +ialk2 +i3all +ial3la +ia2lor +ial3t4 +ia2lu +ial3z2 +i2am +i4amo +2ian +ia2nal +i3and2 +ian2e +i3ann +i2ano +i3ant +i3anz +i2ap +ia3p2f +ia1q +i3ar. +ia2ra +2ias +i2asc +ia3sh +i2asi +i2a3sp +ias3s +iast4 +i3at. +i3a4ta +i4ate +i3at4h +1iatr +i3ats +i3au +ia3un +2iav +2iä +i1äm +iär2 +i1är. +i1ärs +i1ät. +i1äta +i1ät3s4 +2i1b +i2b1auf +ib2bli +ib1ei +i2beig +i2beis +ibela2 +ibe4n +iben3a +ibi2k +i3bla +i3ble +i2blis +ib2o +i2b1ö +i4brä +ib3ren +ib4ste +i2bunk +i2bunt +ibu2s1 +2ic +ic1c +ice1 +ich1a +ich1ä +i1che +ich1ei +i1chi +i2chin +ich3l +i3chlo +ich3m +i1cho +i2ch3r +ich2t3r +i1chu +ich1w +i1ci +i3ck2e +i1cl +i1d +id2ab4 +i3dam +id2an +i2d1au +1i2dee +i2dei +idel2ä +ide3so +ide3sp +1i2dio +idni3 +i2dol +1idol. +2i2dr +i3d2sc +id2s1p +idt4 +i2dy +ie3a4 +ie2bä +ie2bl +ie2bre +ieb4sto +ieb4str +ie1c +ie2cho +ie2ck +ie2dr +ie1e2 +ie2f1ak +ie2f1an +ie2fau +ief3f4 +ie2f3l +ie2fro +ie4g5l +ie3g4n +ie2g3r +ie3g4ra +iegs3c +i1ei +i2e2l1a +ie3las +iel3au +iel3d +iel1ec +ieler8geb +i1ell +ielo4b +iel3sz +iel3ta +2i1en +i3en. +i3ena +iena2b +ie4n3a4g +i3e2nä +i3end +i2ene +ien1eb +ie3ner +ien4erf +ie4n3erg +i3enf +i3en3g +ienge4f +i3enh +i3enj +i3enk +i3enm +i3enn +i3e2no +i3enö +i3enp +i3enr +ien2s +ien3sc +ien3s2e +ien3si +iens2k +ien3sp +ienst5rä +ien3sz +ie1nu +i3env +i3enw +i3enz +ie1o2 +ier3a2 +ie2rap +i2ere +ie3r2er +ie4rerf +ie4r3erz +ie3res +i3ereu +i4eri +ierin3 +ier3k2 +i1ern +i3ern. +i2er5ni +ie2rö +ier4seh +iers2t +ier3sta +ier3ste +ier3te +iesen3s4 +ies2sp +ies2s3t +ie1sta +ie3su +ie2t1a +ie4t3erh +ie4t3ert +ie2t3ho +ie4t1o +ie4t1ö4 +ie2tri +iet2se +i1ett +ieu2e +ie1un +i1ex +2if +if1ar +i2f3arm +if4at +if1au +i2fec +ife2i +if2en +ifens2 +if1erg +if1erh +if2fl +if3l +i1f4la +if4lä +i1flü +if3r +if4ra +i1frau +i1fre +if4rei +if4rü +if2s +if3se +if3sp +if2ta +ift3erk +if2top +if4t3ri +ift3s2p +ift3sz +2i1g +iga3i +i2g1ang +ig1art +iga1s4 +i4gefar +ige4na +ig1erz +i2g1im +i2gl +ig1lä +ig4na +i4gnä +i3g4neu +ig4no +i3go +ig4ra +ig3rei +ig4sal +ig3sä +ig4se +ig3so +ig3spr +ig3stei +ig4sto +ig4stö +ig3str +ig4stre +ig3stü +igung4 +2i1h +i2h1am +i2har +i3he +ihe1e +ihe4n +ih3m +ih3n +ih3r +ihs2 +i2h1um +ih1w +ii2 +ii3a4 +i1ie +i3i4g +i1im +i1in +i1i4s +i2is. +ii3t +i1j +2i1k +i2k1a4k +ik1amt +i2k1ano +ik1anz +i4kanze +ik1art +ik3att +i2k1au +i2kär +4ike +i2k1ei +ike2l1 +i2k1e2r2e +ik1erf +iker6fah +i2ker2l +i2k1eta +i3ki. +ik1in +i2kind +i2k3l +i3kla +i3k4lä +i2kn +ik3no +ik2o3p4 +iko3s +i2köl +i2k3ra +ik3rä +ik3re +ik1s2 +ik3so +ik3sz +ikt2e +ikt3erk +ikt3r +ik2tre +i2kun +i3kus +i1la +i2l3ab +il1a2d +i2l1ak +i2l3a2m +il1ans +il1asp +il1au +il4aufb +il3aus +i2laut +i1lä1 +6ilb +il2c +il2da +il4d3en4t +ild2er +ild1o +il2dor +il2dr +il1e2c +ile2h +il1ehe +il1ein +il1el +i4lents +i2l1erf +i2l1erg +i2l1err +ilf2 +il2f3l +il2f3re +ilf4s3 +ilie4n +ilig1a2 +ili4gab +i2l1ind +i2l1ip +i3lip. +i3lips +2ill. +il3l2a +il3l2er +il3l2i +2ills +il2mak +il4mang +il2m3at +il2mau +il2min +2ilo +i2l1or +il3t2h +i1lu2 +i2lum +ilung4 +i3lus +ilv4 +il2z1ar +ilz3erk +2im. +i2manw +i2m1arm +im4at +ima2tr +imat5sc +ima4tur +i2meg +i2mej +i2mek +i2mele +i2melf +i2m1erf +i2m1erz +i4mesh +i2meti +i2mew +i2m1inf +i2m1ins +im2mei +im4m3ent +1immo +2imo +im1org +1impo +imp4s +im3pse +1impu +im2st +im3sta +2imt +imt3s2 +2imu +in3a2c +i4nack +i2n1ad +in2af +in3am +i3nap +in2ara +in2ars +ina4s +i2n3au +in1äs +in2dal +in2dan +1index +in3do +2indr +ind4ri +in3drü +1indus +2ine +i2n1e2be +in1ehe +in3ei +i2n1eng +in3erbe +i4nerbi +in2erh +iner4lö +i4ner4tr +i4nesk +in1eu +ine3un +ine2x +in3f +1info. +1infos +2inga +ing1af +in2g1a4g +in2gl +ing4sam +1inhab +2inhar +2inhau +4inhe +in2i3d +i3nie +2inig +ini3kr +in2ir +2inis +ini3se +i3nitz +3inkarn +inma4le +2inn. +in4n3erm +2innl +in2nor +inn4sta +1innta +2ino +in1od +in3ols +in1or +ino1s2 +ino3t +i1nö +in1ö2d +2inp +2inr +ins2am +insch2 +in2seb +2insen +ins3ert +in3skan +in3skr +1insta +in4s3tät +in3stel +in3su +1insuf +in4s3um +in3s2z +1integ +int2h +in3t4r +in5tri +in1u +i3n2um +in3unz +invil4 +i1ny +in3zw +i1ñ +2i1o +io1c +io2d +i2oda +io3e4 +iof4l +i2o3h +io2i3d +io3k4 +i3ol. +i3om. +i3oms +ion2 +i3on. +ional3a +io2nau +ion3d +i3ons3 +ion4spi +ion4st +i2ony +i2o1p +io4pf +i3ops +i3opt +i2or +i3or. +i3orc +iore4n +i3orp +i3ors +i3ort +io3s2 +i2ost +i3ot. +i3ots +i2ou +i2ov +io2x +i3oz. +i1ö2k +i3ön +i1ös. +2ip. +i1pa +i1pe +ipen3 +i3per +ip3fa +iph2 +2i1pi +ipi3el +ipi3en +ipi2s +ip4l +ip2pl +ip3pu +i1pr +2ips +2ipu +2i1q +i1r2a +i3rad +1i2rak +irat2 +i1rä +ir2bl +ir1c +ir2e +i3ree +2irek +2i3ré +ir2gl +irg4s +ir2he +ir2i +2irig +2irk +ir2k3l +irli4n +ir2mak +ir2mau +ir4mä +ir2m1ei +ir2mum +ir4m3unt +ir2nar +ir2no +i1ro +1iron +iro2s +i1rö +irpla4 +irr2h +ir4sch3w +ir3se +ir3sh +ir2st +irt2st +iru2s1 +i3sac +i4s1amt +is2ap +is3are +i2sau +i2s1än +2isb +i2sca +isch3ar +i3s2che +i4schef +i4sch3e4h +i4sch3ei +i4schin +i5sching +i2sch1l +isch3le +i2schm +isch3ob +isch3re +isch3ru +i4schwa +i6schwir +i4schwo +isch3wu +is1chy +i2s3cr +2ise +ise3e +ise3ha +ise3hi +ise3inf +i4seint +ise2n1 +is2end +isen3s +i2serh +i2s1erm +iser2u +i2s1ess +i4s3etat +is2has +isi2a +i2s1id +i2s1of +iso6nend +is1op +3i2sot +is1pa +i2spar +is1pe +is1pic +is2pit +i2spro +is3sa +is4s1ac +is4sau +is4s3che +is2st +is3sta +is3sto +iss3tr +is3stu +is2sum +is3t +is4tab +is4tam +ist2an +i1s4tat +is4tel +iste4n +istes3 +i1s4teu +i1s4til +is4toc +is4tö +is5tör +ist4ra +ist3re +is4tü +isum3p +i2sü +i1ß +iß1ers +it1ab. +ital1a +it1alt +it1am +it1an +it2an. +it3a4re +it1art +i3tat +it1au +i3tauc +i4t1ax +4itä +it2är +i2t1äs +ität2 +i2t1ei +i4teig +it2eil +i4tein +2itel +ite2la +ite4n +iten3s2 +i4tepo +i2tex +i5thr +i2t1id +1itii +iti4kan +i2t1in1 +it2inn +itmen2 +i5toc +i2t1of +i3tö +it3raf +i2t3ran +it3ras +it3rau +it3räu +it3re +it3ric +it3rom +it4ron +i3tru +it3run +it2sa +its1a4g +it2s1e4 +its3er1 +it2so +it2s1pe +it4staf +it2sto +it2teb +it4tri +itt2sp +it1uh +i2t1um +i2tuns +it1urg +itut4 +i3tü +2itz +it2zä +it4z3erg +it2z1w +2i3u2 +ium1 +i1ü +2i1v +i2v1ak +iv1ang +i2veb +i2v1ei +iv1elt +ive4n +i2v1ene +i2v1ent +i2v1ur +2i1w +iwur2 +2i1x +i2xa +ix2em +i3xi +2i1z +iz1ap +iz1au +izei3c +ize2n +i2z1ene +iz4er +i2z1ir +izo2b +i2zö +i2z1w +í1l +ja1c +jah4r3ei +jahr4s +ja3l2a +ja3ne +jani1 +ja1st +2jat +je2a +jean2s +je1c +je2g +jek4ter +jekto2 +jektor4 +jek2tr +je3na +je2p +je4s3t +je2t1a +je2t3h +je2t3r +jet3s2 +jet3t +je2t1u2 +je3w +ji2a +jit3 +ji2v +joa3 +jo2b1 +job3r +jo2i +joni1 +jo1ra +jord2 +jo2sc +jou4l +j2u +ju2bl +jugen2 +jugend3 +ju2k +jung3s4 +ju3ni +jur2o +jus3 +jut2e1 +2j1v +1ka +3ka. +k3a2a +ka3ar +kab2bl +ka2ben +2kabh +2kabla +2kablä +2k1a2bo +ka3b4r +2kabs +2k1abt +ka1c +k2ad +2k3ada +2k3a2dr +ka1f4l +ka1fr +kaf3t2 +k2ag +ka1in +ka3ka +kaken4 +2kala. +ka2lan +ka3lei +ka3len. +ka4lens +kal3eri +kal2ka +kal2kr +k1all +kalo5 +kal4tr +k3ama +kamp8ferf +kan2al +ka4n1a4s +ka2nau +kand4 +2kanda +kan2e +2k1ang +kan3k4 +2kanl +2k1anna +k1ans +k2ans. +6kantenn +ka3nu +2kanw +k2anz. +ka2o +2k1apf +3kara +2karb +k2ard +k2arg +ka3r2i +kari3es +k2ark +2k1arm +k2arp3 +kar2pf +k2ars +kar3t +k2arta +2k1arti +karu2 +k2arw +3kas +ka3se +kasi1 +kas3s +ka2s3t +ka3tan +ka3t4h +ka4t3r +2katt +kau2f1o +4kaufr +kauf4sp +k1aus +kau3t2 +2kauto +1kä +k1äh +k1ä2mi +k1än +kär2 +kä2s1c +käse3 +2k3b4 +kbo4n +kbu2s +kby4 +2k3c +2k3d2 +kdamp2 +2k1e1c +k1eff +kefi4 +kege2 +ke2gl +ke2he. +kehr2s +kehr4s3o +2k1eic +2k1eig +k1ein +ke1in2d +2keinh +kei1s +2k1eise +keit2 +ke2la +kel1ac +ke3lag +kel1au +ke2lä +kel3b4 +2ke2lek +ke2len +2ke3let +kell4e +kel3s2k +k4elt +2k1emp +k2en. +ken3au +4ken4gag +2kenlä +ke2no +kens2k +ken5stei +ken3sz +k2ente +k3enten +ken3th +k2entr +2k1ents +k2entu +2kentw +2keo2 +ke2pl +k2er. +ke1rad +k2erc +4kerfah +k4erfam +k3ergeb +ker6gebn +k3er4hö +ke6rin6nu +kerin6st +kerin4t +ker4ken +k2erko +k2erl +k3er4lau +k3er4leb +k6erlebe +ker4neu +k1e2ro +k2ers. +kerz2 +ker4zeu +2k1er2zi +k6es. +ke2sel +ke4t1a +ke2t3h +ket3s +ke1up +keu6schl +2k1e2x +2k3f4 +2k1g2 +2k1h4 +kho3m +ki3a4 +ki1c +2k1i2de +ki3dr +ki2el +kie2l3o +ki1f4l +ki1f4r +ki3k4 +2kil2a +ki3li +ki3lo +k2imi +k2in. +k2ing +2kinh +k2ini +k2inn +ki3n4o3 +kin3s +2k1inse +2k1int +ki3or +kio4s +3kir +kis2p +kist2 +kis4to +2kiz +ki3zi +2k3j +2k1k4 +kl2 +4kl. +4kla. +k4lar +4k1last +k2le +4kle. +kle3ari +4kleh +k4leid +4k3leit +k3lem. +2k3ler +kle2ra +2k3leu +kle3us +2klic +2klig +k2lin +k3lip +k2lir +k2lisc +2klist +klit2s +4kliz +2k3loc +klo2i3 +k4lop +klost4 +klö2s +k2löt +k1lu +kluf2 +klung4 +2k1lüc +2kly +2k1m +k2n2 +3knab +k3ne +k4nei +2k5ner +kno4bl +2k5nor +k3nu +3knü +1ko +ko2al +2kobj +2k1o2fe +koff4 +koh3lu +ko1i2 +kol4a +ko3le +kol2k5 +3kom +ko4mu +k2on +ko3n2e +kon3s4 +ko3nu +2kop. +ko1pe +kop4fen +2kops +2kopz +ko1r2a +2k1orc +kor6derg +ko3ri +k2os +ko2sp +ko2st +ko3ta +kot3s2 +kot4tak +2k1ou +3kow +ko2we +k1o2x +1kö +kö2f +k1öl +2k1p2 +k1q +k2r4 +2k3rad +k3rats +2kraum +k4raz +2k3rät +2k3räum +2kre. +2k3rec +2k3rede +2k3ref +2kreg +k3reic +kre1i2e4 +kreier4 +k3reih +2k3rh +2krib +2k3ric +k3ries +2krip +3kris +3k4ron +2kruf +krü1b +2ks +k4s1amt +k2san +ks3ar +k2sau +ks2än +ksch4 +ks1e2b +k2s1em +k2sent +ks1erl +k2s1ers +k2s1erw +ks3ha +k2s1id +k2s1in +k2s1o2 +k3sof +ks1pa +k3spe +ks2por +ks2pu +ks3s2 +kst4 +k1sta +k4s3tanz +k3stat4 +k1ste +k1s2ti +k1sto +k2stor +k1str +k2strä +k1stu +k2stum +k2s1u +ks2zen +4k1t +k2t1ad +kt1akt +k3tal +kt1am +kt1an +k2t3a2r +kta4re +k2t1au +ktä3s +kte3e +kt1ei +k2temp +k2tent +k4t3erfo +k2t1erh +kte3ru +k2tex +k2th +kt3ho +k2t1id +kt1im +k2t1ing +kt1ins +kti4ter +k2t1of +k3top +kt1ope +k4torga +kt3orie +kt4ran +kt3ras +k4tref +kt4ro +ktro1s +kt3run +kt3s4 +ktt2 +k2tuns +k3tü +kt3z +ku1c +kuh1 +2k1uhr +kul2a +ku3l2e +ku3l2i +4kulp +2k3uml +kum2s1 +k2u3n2a +kung4 +kun4s4 +kunst3 +2kunt +2k1up. +kur2bl +ku2rei +kuri2e +kuri4er +ku2ro +kur2sp +kur2st +ku4schl +ku2sp +kus3t +ku2su +1kü +2küb +kü1c +kür4s +2k1v +2k1w +2k3z2 +kze3l +3la. +la3ba +2labb +4l3aben +2labf +2labg +2labh +4l1a2bl +lab2o +l2abr +lab4ra +lab4ri +2l3abs +l1abt +3labu +2labw +la1ce +la2ce. +1lad +lad2i +l1adl +2ladm +2l1a2dr +3ladu +l1adv +2laf +la2fa +laf3s +laf3t +la2ga +la2gio +la2gn +lago2 +la2g1ob +2la1ho +1lai +la2k1i +l2akk +la1k4l +2l1al +4lall +4lalp +l2ami +la3min +1lammf +l2amp +2l1amt +lamt4s +la4mun +l1anal +la2nau +2lanb +3l2and +lan2d3a2 +lan6d5erw +lan6d5erz +lan2d3r +2lanf +lan2gl +lang3s4 +2lanhä +l2anhe +2lanl +4lanli +2l3ann +l1anp +2lans +4lansä +2lantr +lan2zw +3lao +l1a2po2 +lap4pl +la2r1an +la2r1ei +la4rene +3l4ar3g +lar3ini +lar3s +2l1ar3t +l3arti +la2ru +la2sau +4lasd +la3se +2lash +2lasi +la2so +2lasp +3lasser +la2st +last1o +lat2a +la3te +la4tel +2l3ath +la2t3ra +lat2s +2lat2t1a +lat4tan +lat4t3in +lat2t3r +laub4se +l2auf. +lau2fo +l2aufz +1laug +2lausl +2lausr +2l1auss +2lauto +1law +lawa4 +lay1 +lä1c +1läd +2läf +2l1ähn +1länd +lär2m1a +lä2s1c +4lät +2läub +2läuc +2läue +1läuf +1là +2l1b +l3bac +l2b1ede +l4beta +l2b1id +l2b1ins +lb2lat +l3blä +lb3le +l2bli +l3blo +l4bre. +lb3rit +lb2s +lb3sa +lb3se +lb4sk +lb3sp +lbs6t +lbst3e +lb4sto +lb2u +l2b3uf +lbzei2 +2l1c +l3che +l3chi +lch3l +lch3r +lch3ü +lch1w +l3cl +4l1d +ld3a2b1 +l3d2ac +ld3a2ck +l2d1a2d +lda4g +l2d1ak +ld1al +l3dam +ld1amm +l2d3a2n +l2d1a2r +ld3ari +l3das +l3dat +ld1au +ld1är +l2dei +l2dele +l3der. +ld1erp +l2d1e2se +l2dex +l2d1id +l2d1im +ldo2r +ld2os +ld2ö2 +ld3r +l2dran +l2dre +l3d4ru +ld4rü +ld3sa +ld3st +ldt4 +ld3th +l2d1um +1le +3le. +le2ad +leben4s3 +le2bl +2lec +le2chi +lecht4e +3led +4ledd +le3de +le2e +le3ei +lef2a +le2g1as +le2gau +le2gä +le2gl +leg4r +3leh +leh3r2e +4lehs +4leht +3lei. +lei2br +l2eic +l2eid +4l1eig +l2ein. +l2eind +lein4du +l2eine +lei6nerb +2leink +l2eint +leis6s5er +l4eist +lei4ßer +l2eit +lei2ta +lei8t7er8sc +leit3s2 +lekt2a +2lektr +3l2ela +2le2lek +lel3s +3lemes +le2m1o2 +4lemp +lem3s +l2en. +le4nad +le2nä +4lendet +2lendu +le4n3end +4lenerg +l2enf +le3ni +l2enk +2l1enni +l2e2no +len4sem +len3sz +l1ents +2l3entw +lent4wä +5lentwet +4lentz +len2zi +le1os +2lep +3lepa +3lepf +lepositi8 +3lepr +l2er. +l2e1ra +le2ra4g +le2rau +lerb4 +4l3ereig +le4r3eim +le4rers +l1erfo +l2erfr +l2erfü +3lergeh +l3ergen +3l4ergew +2l1ergi +lerin4s +lerk2 +l2erka +l2erko +l2erle +2l1er2ö +3l2erra +l4ers. +lers2k +lers2t +ler3t +6lerwerb +l1erz +l2erza +les2am +les2e +2l1esel +le3ser +le3sh +lesi1 +le3sk +les2t +leste3 +le1sto +4lesw +2lesy +le2tat +2le3th +2leto +let4tu +le2u +4leud +2leuro +3leut +3lev +2lexe +le2xis +2lexz +2l1f +l3fah +lfang3 +l2f1ec +lfe1e +l4feis +l3f4lä +lf3lo +l3f4lu +lf3ram +lf2tr +lf4u +lfur1 +l3fü +2l1g +lga3t +lgd4 +lgen2a +lge3ra +lgeräu3 +l2geti +l3go +lg3re +l3gro +2l1h2 +3lhi. +1li +3lia +li3ac +li3ak +li3ar +lia1s +libi3 +li1c +3lichem +3licher +li3chi +4lick +li2cka +li3d2a +li2deo +2l1ido +li4ds +lid3sc +l2ie +3lie. +liebe4s +li3ene +lien3s +lie2s3c +lie2st +3lig +lig4n +li2gre +li3ke +li2kr +lik2sp +lik4ter +li3l +lil2a +2lim +li3m2a +3limo +li3n2a +lin3al +2l1indu +li2nef +li2neh +li2nep +li2nes +2l1inf +lings5 +2l1inh +2l1in1it +2l1inj +lin2k1a +link2s +li2nol +l2ins. +l2insa +l2insc +2linsp +2linst +2l1int +l1inv +2linz +li2o +li4om +li3os. +li2p3a +3lis. +li3s2a +li4schu +4lish +2l1isl +2l1i4so +li2sp +liss2 +lit2a +li2tal +li3te +lit2h +lit1s2 +lit3sz +li3tu +3liu +2lixi +li2za +lizei3 +4l1j +2l1k +lk1alp +l3k2an +l3kar. +lken3t +lk2l +lk3lo +l3k4lu +lk4ne +lkor2b1 +lk4ra +l2k3ro +l2k3ru +lk2s1 +lk3sä +lks3t +lk4stä +l3k2ü +4l1l +ll1abb +ll1a2be +l2labt +ll1aff +ll1akt +l3l2al +l2l1a2m +ll3ama +lla2n +ll2anw +ll1anz +l3lap +ll1arm +ll1au +ll3aug +l2laus +l2l1äm +llb4 +llch4 +ll3d4 +ll1ech +lle3en +l2l1ef +ll1eim +ll2em +l3len. +lle4n3a +ll3endu +llen3g +l4lents +l3ler. +lle2ra +l4lerfo +l6lergen +l4lergo +ll3ernt +ll3ertr +l2lerz +ll2es +l2lex +llg4 +ll1imb +ll1imp +l2l1ind +ll1ins +llk4 +ll3l2 +ll5m +lln2 +ll1ob +l2lobe +l2l1of +ll1opf +l2l1o2r +l3lor. +l3lore +l2l1ou +l3low +l2löf +ll1ö4se +ll3sh +ll3s2k +ll2spr +ll5t4 +llti2m +llt5s2 +llu2f +ll1ur +llus5t6 +ll3z2 +2l1m +l2m3a2b +l2marc +lm1aus +lm1c +lme2e +lm3eins +l2m1e2p +l2m1erz +lm1ind +lm1ins +l2möl +lm3p +lmpf4 +lms2t +lm3ste +lm3s2z +lm3t +4ln +lna4r +ln3are +lnd2 +l3n4e +l3ni +l1nu +l1nü +1lo +3l2ob. +lo2ber +2lobj +2l1o2bl +l2obr +lob4ri +l1o2fe +lo1fl +lof4r +lo2gau +lo3h2e +2l1ohr +loi4r +3lok +lo2k3r +lol2a +l1o2ly +lo2min +lo2n1o +lo2o +2lopf +2lopt +lo1ra +lo4rä +2lorc +l1ord +lo3ren +2l1or3g2 +lo3ro +3lorq +3los. +lo4sa +3lose +lo4ske +lo2spe +loss2e +lo4ste +los3t4r +lo2ta +lo3tha +loti4o +2l1ov +lo2ve +2lox +1lö +lö2b3 +2löd +lö2f +2l3öfe +4lög +l1öhr +2l1ö4l3 +4löß +2l1p +l3pa +lpe2n3 +lp2f +l2p1ho +lp3t4 +l3pu +2l1q +2l3r2 +lrat4s +lre1s +lrut4 +lrü1b +4l1s +l3sac +l2s1a2d +l3s2al +l4s1amb +l2sann +l3sare +l2sau +l4schin +l4schmü +l2s1e2b +l2s1ec +l2s1em +ls1ere +ls1erg +l2serh +ls1erl +l2s1ers +l2s1erw +l3sex +l4sha +lsho2 +l2s1imp +ls2log +ls3ohne +l4s3ort. +l3s2pi +ls2po +l2spro +l3s2pu +ls3s2 +lst2a +lstab6 +ls4taf +l4s3täti +l2ste +l3stec +l3stei +l3stel +l4stem +ls6terne +ls6terns +ls2tie +l2stit +ls4tr +ls2tu +ls1um +l2sun +lsu3s +ls2zen +4l1t +l2tab +ltag4 +lt1ak +lt1a2m +l4t3ame +lt3and +lt1ang +l3tarb +lt1art +l2t3ato +l2t1au +lt1eh +l2t1eis +l4te4lem +lt3eli +lt2en +l5ten. +lter3a +lt2erg +lt4erö +l4t1e4sk +lte2th +l2t1eu +l2th +l4thei +lt3ho +l3thu +ltimo4 +l2tob +l2t1of +lt1op +l2t1o2ri +lto2w +lt1öl +l3tör +lt1ös +l4t3öt +ltra3l +l3trä +lt3räu +lt3re +lt4rie +lt3roc +lt3ros +l2t3rö +l6ts +lt3sc +lt2so +lt4stab +lt4stoc +ltt2 +lt1uh +l2t1um +ltu4ran +ltu2ri +l3tü +lu1an +4lu4b3 +luba2 +lubs2 +lu2dr +lu2es +1luf +2l1ufe +2luff +luf2t1a +luf2t1e +luf2t5r +lu2g1a +lu2g1e2b +lu4g3l +lu2go +lu2g3r +lug3sa +lug3sp +lu2gu +2l1uh +lu1id. +lu1is. +lume2 +2lumf +2luml +l2ump +l1ums +l1umw +1lu2n +2l1una +2l1unf +lung4sc +2l1uni +2lunt +2lunw +4luo +2lur +l1urn +l1urt +2luse +lu2sp +lus4s3a +lus2s1c +luss3er +lus6serf +lus6serk +lus6sers +lus2s1o +lus2s3p +lus2s3t +lus4stä +lu4st +lus4t1a +lust3re +lu2s1u +lu2t1a +lu2tä +lu4teg +lu4t3erg +lut1o2f +lu2top +lu4t3r +3lux +2lüb +5lüd +lüh1l +2l1v +2l3w +2lx +1ly +ly1ar +ly3c +2lymp +3lyn +ly3no +ly1o +ly3u +2l1z +l2z3ac +l3z2an +lz2erk +lz1ind +lzo2f +l2zö +lz3t2 +l2z1u4fe +lz1w +lz2wec +1ma +m1ab +m2abe +2mabk +m2ab4r +2mabs +2mabt +mach4tr +ma2ci +ma3da +ma2d4r +ma4d2s +mae2 +ma1f +ma2ge. +ma2geb +ma2gef +ma2geg +ma2gek +ma2gep +ma4ges. +ma2get +ma2gev +ma2gew +2m1agg +magi5er. +magi5ers +ma3g4n +2m1ago +mai4se +2m1akt +mal1ak +ma4lakt +ma2lan +ma4l3at +ma2lau +mal3d +ma3ler +mali1e +mal3lo +2mallt +malu4 +ma2l3ut +mam3m +2m1anal +ma2nau +2manb +man4ce. +man3d2 +man3ers +ma2net +m2anf +2m1angr +m2anh +2manl +m4ann +2mansa +2mansä +2mansc +2mantw +2manz +ma2or +m2app +2marb +mar3g2 +4ma3r2o +maro3d +4marr +mar6schm +mar6schr +ma3r2u +m1arz +3mas +ma3s2pa +4m1aspe +massen3 +mas4tel +ma1s4tr +3maß +ma2ta2b +ma2tan +mat4c +ma2tel +ma4t3erd +ma5tri +mat3se +mat3sp +2m1au2f +ma3un +2mausg +m4ay +ma1yo +3mä +m1ähn +mä1i2 +4m1änd +m1ärg +mä3t4r +mäu2s1c +2m1b2 +mbe2e +mb4l +m3b4r +mby4 +2mc +m3ch +2m1d +md1a +m2d1ä +m2dei +mds2e +m2d1um +1me +meb4 +m2e1c +medi3 +medie4 +medien3 +2medy +me1ef +mee2n1 +mega1 +3meh +2m1eif +2m1eig +m2eil +mein4da +me1i4so +3meist +me3lam +3meld +me2lek +me2ler +melet4 +2melf. +mell2 +mel2se +mel5t4 +6mel6tern +2m1e2mi +m2en. +mena2b +me3nal +men3ar +men3au +men3gl +me3nor +m2ens +men4sk +men2so +men3ta +men6tanz +2mentn +4m3entwi +me1o +2meou +2meö +3mer. +me1ra +me2r3ap +me4rens +mer2er +4m3ergän +3merin +merin4d +merin4t +me2ro +3mers +merz4en +3mes +mes1a +me2sal +me4sä +4meser +2me3sh +4m1essa +mes6serg +mes2s1o +mes2s1p +mes2st +meste2 +me1sto +4mesu +me3t2a +me3th +meu1 +2m1ex +1mé +2m1f4 +mfi4l +4m1g2 +2m1h4 +1mi +mi2ad +mi3ak +mibi1 +mi1c +mi3da +mie3dr +mi2e1i +mie3l +mien3s +mi2er +mierer4 +mie2ro +mi4et +mie4ti +3mig +mi2kar +mi2ki +mi2ku +3mil +mi3l2a +milch1 +mil4che +mild4s +4milz +2m1imp +minde4s +min2en +min2eu +min2ga +ming3s4 +mi3ni +3min2o +mi1nu +3mir. +mi3ra +3miri +3mirs +3mirw +mi2sa +mi4scha +mi4schn +mi4schw +mise1 +mis2s1c +mi2s5te +3mit +mi2ta +mi2th +mi2t1r +mit3s2 +mit5sa +mi5tsu +mi2t1u +4mitz +2m1j +4m1k4 +m3ka +mk5re. +4m1l2 +ml3c +ml3l +ml3s +2m1m +m2mab +m2m1ak +m2m1al +mm1ang +m2m1ans +mm1anz +m2m1au +mmd2 +mm1ei +mme4lin +mme4na +m4mentw +mme2ra2 +mme4rec +mme2sa +mm1inb +mm1inf +mm1inh +mm1ins +mm1int +mmi3sc +mmi1s4t +mmm2 +mm3p +mm2s +mm3si +mm3sp +mm3sta +mm3str +m2mum +mm2un +mmül2 +mmüll1 +2m3n2 +m4nesi +1mo +moa3 +2mobj +3m2od +mode3s +mo2dr +4mog. +mo2gal +3moh +mo2i3 +mo2k1l +2mol. +3mom +mom2e +3m2on +mo3ne +mo4n1er +mon2s3 +mon3su +3mo2o +2m1ope +2mopt +mo1ra +mo2rar +2m1orc +mor2d3a +mor2dr +mo2rer +morgen5s6 +mork4 +3mos +mos4ta +moster4 +3mot +m1o2x +mo1y +1mö +mö2c +4mök +m1öl +2m1p +m2pf +mp4f3erg +mpf3erp +mpf3err +mp4f3erz +mp2fl +mpf3li +mpf1or +m3pon +mp3ta +m3pu +2m1q +2m3r2 +2m1s +m2san +ms3and +m4sap +ms1as +m2sau +m3sä +m3sc +msch2 +m4sco +m3se +m4s1ef +ms1erw +m4sex +ms1ini +mso2r +ms1ori +m2spä +m2sped +ms2po +m2spot +m2spro +ms2pu +ms3s2 +m4stag +m3stel +m3s2ti +m3sto +ms4tr +ms5trä +ms5tren +m3s2tu +ms4tü +ms1um +m2sü +m3sy +4m1t +mt1ab +mt1ak +m3tam +mt1ar +mt3are +mt1elt +m2t1erf +m4t1erg +m2t1erl +m2t1ers +m2t1ert +m4t1eta +m2t1eu +m2th +mt3ho +m2t1im +m2t1ins +mti2s +mtmen2 +m3tö +mt1ös +m4ts1 +mt2sa +mt2se +mt3s2ka +mt2spr +mtt2 +mt1um +mt1urt +m3tü +mt3z +1mu +mu1a +mu3cke +2m3uh +mu3la +2muls +3mun +mun2d1a +4m3unf +4m3ungeb +mu3ni +m4unk +munt2 +4munz +mu3ra +mu4r1u2f +m4us +mu4s1a +3musi +mu2s1o +mu2sp +mus3t +mu2su +mut1au +muts3 +mut2st +1mü +2müb +mül4len +3mün +3müt +mütter3 +2m1v +mvoll1 +2m1w2 +mwa2 +mwa4r +mwel4 +1my +my4s +2m1z +1na +3na. +2n1ab +na2bä +4nabg +4nabh +na2bl +n2abo +na2br +4n3abs +4nabt +3n2ac +na2ch1 +na3chen +nach3s +nacht6ra +4nadd +n2ade +4na2dr +n1af +na1f4r +3n2ag +na2gem +3n2ah +na2h1a +n3ahn +3nai +nai2e +n3aig +n3air +2n1ak +na2ka +3nako +n2al. +na2l1a2 +na2lä +3n2ald +n4ale +na4lent +na2let +nal3la +nalmo2 +na2lop +nal2ph +n2als. +nal3t4 +na2lu +2naly +n4am. +3name +n4amen +4n3a2mer +na3m4n +3namo +2n1amt +namt4s +n1an. +4n1a2na +4nanb +n1and2 +4n1ang +2nanh +2nani +4nank +2nanl +3nann +na3no +n1anp +2nanr +2n1ans +2nantr +2nanw +nap2si +n1ar +5nar. +na2r1a +2narc +n2ard +4narg +3nari +n2ark +n2arle +2narm +n2arp +4n3art +na3r2u +3nas +n2as. +na4schw +4nasp +4n1a2sy +nasyl2 +3nat +n4ata +na3t4h +4natm +nats1 +nat4sa +nat4sc +4natt +n1au +4nauf +nauf4fr +n3aug +5naui +3n2aul +4nausb +4nausg +n2auso +4nauss +n4auste +4nausw +navi5er. +navi5ers +1nä +3n2äc +3näe +n1ähn +2n1ä2m +2n1än +när4s5 +3näs +nä2sc +n2äss +2näu +3nä1um +2n3b4 +nbe2in +nbe3n +nbe3r2e +nbes4 +nbu2s +nby4 +2n1c +n3ce2n3 +nch3m +n2ck +2n1d +nd2ag +n2d1ak +n2danl +nd1ann +n2d1anz +ndat2 +nd1au +nd1c +nde4al. +n2dei +nde4län +n4d3ents +nde4rob +nder5ste +nde2se +ndi2a3 +n2dob +ndo2be +ndo1c +nd1op +nd1or +n2dö +n2d3rat +n2d3re +n2drob +nd3rol +nd3ros +n2drö +n2drui +n4d3run +nd2sor +nd2spr +nd4stab +nds3tau +nd3th +ndt4r +n2dü4 +ndy3 +1ne +3ne. +ne2ap +ne3as +ne3at +ne2bl +2n1ebn +2nec +3neca +ne1ck +3ned +ne2de +2nee3 +ne2e2i4 +ne3ein +n1ef +neg4 +2ne2he. +3nehm +4n1ehr +2n1ei +n2eid +4neif +3neigt +4n3eing +4n3eink +ne2ke +nek3t4 +ne2l +3nela +nel3b +2n1ele +4nelek +4nelem +ne3len +ne3li +nel4la +3ne3l2o +3ne3lu +n2em. +2n1emb +n1e2mi +2n3emp +2n1ems +3nen +n4en. +nen3a2 +n2enb +n2enc +4n1endb +4n1endd +4n1endf +n1endg +4n1endh +4n1endk +4n1endp +4n1endt +4n1endw +ne2n1e2b +nen3ei +nenen1 +ne4nene +4nengb +nen4ge. +nen4gen +4nengs +4nengt +n2enh +ne2ni +n2enj +nen3k +ne2no +n2ens +nens4e +nen3sk +5n2en3t2a +n1entb +4n1entl +4nentn +5nentr +n1ents +4n3entw +4nentz +ne2n3u +n2env +n2enw +ne2ob +ne1os +2nepf +2n1epo +ne2pos +n2er. +ne1ra +ne2ra2b +ne3r4al +ne2r3am +ne2ran +ne2rap +ne2rau +4nerbe. +4nerben +n1erbi +nere2 +ne2reb +n1erf +4n5erfo +nerfor4 +2nerfü +3nergr +n1erh +2n3erhö +3neri +n1erk +n2erli +2n1erlö +n1ermä +ner4mit +n2ern. +4n1ernt +ne2ro +ne1rös +n2erp +3n2ers. +2n3ersa +ner8schle +n2ert. +n1ertr +ne2rup +n2erv +2n1erz +3n2es +n4es. +ne3san +nes4c +nesi1e +ne3ska +nes1o +ne2s1p +4n3essi +ne1sta +nes3ti +ne2tad +ne2t1ak +ne2t1an +ne2tap +n1etat +ne2tau +ne2th +net3ha +nett4sc +n1e2tu +net2zi +ne2u +neu1c +neu3g +2n1eup +n2ew +2n1ex +3nez +1né +2n1f +nf1ak +nfalt4 +nf2ä +nff4 +n3fi +nfi4le. +nf4l +nf5lin +nf2o +nfo1s +nf4r +nf3s +nft2o +nft4s3 +n2f1u +4n1g +ng2abs +n2g1ac +ng1ad +n2g1ak +n2g3a2m +n2g1and +ng2anf +ng1anz +n2g1äl +ng3d4 +n3gef +n2g1ein +ng2en +ngen2a +n3ger +nge4ram +n4g3erse +nge4zän +ng3g4 +ng3hu +n2g1i2d +n3gläs +n2glic +n2glo +n3g2loc +n2glö +ng3m +n2gn +ng3ne +ng1or +ng3rat +ng3roc +ngs3c +ng4s3e4h +ngs3pa +ngs5tri +ng3ts +n2gum +2n1h4 +n3han +n3har +n3hau +n3hä +n3he +nhe2r +n3hu +1ni +3nia +nib4l +nich1s +nich8ters +n1id +ni2de +ni3de. +ni3dr +n4ie +nie3b +ni1el +nie3l2a +nie4n3 +ni3ene +ni1ero +nifes3 +nig2a +2n3i2gel +nig3r +ni2gre +nig4sp +3nik +ni2kal +ni2kar +ni3ker +ni4k3ing +ni3kl +ni2kr +3n2il +nim2o +4n1imp +nin1 +3n2in. +n2in4a +4n3ind +2ninf +3n2ing4 +4n1inh +ni2nor +2n1ins +n2ins. +4ninse +4n1int +2n1inv +ni2ob +ni3ok +ni3ol +n2ip +ni3ra +3n2is +ni4schw +ni2s1e +ni2s1p +ni3spi +nis3s4 +ni2s1u +2nit +ni2ti +ni3t4r +nit4s +ni3tsc +nitts1 +nitt4sa +ni3tu +ni3v +3nix +n1j +2n1k +n2k3ad +n2k1ak +n3k2al +n4k3alg +nk2am +n2kans +n2kaus +n2käh +n2k1är +nke2c +n4k3erfa +nk4erg +nk1inh +n2k1ins +nk3len +nk3les +n2klie +nk2lo +nk2lu +nk3lun +nk4na +n2kne +n2k1ort +nk2öf +n2köl +n2k3ro +nk2s1al +nks2ei +nk3s2z +nk2tak +nk2tan +nkt1it +nk4top +nk2tru +2n3l2 +2n1m4 +nmen2s +4n1n +nna2be +n2nada +n4n1all +n2n1an +n2nau +nnen3g +n4nents +nn2erh +nn2erk +nne2rö +n4n3er4wa +nner2z +nne2s +nnes1e +nne4st +nn2ex +nn3f +nng4 +n3ni +n2nof +nn1o2r +nn3sc +nn3se +nn3s2p +nn2th +n2n1uf +n2n1unf +nn1ur +1no +3no. +3nobl +no2bla +n2o3ble +2n1ob2s +no1c +2no2d +no3dr +n1of +2n3o2fe +n3ole +no2leu +n2on. +3n2opa +3nor. +nor2a +no2rad +no1rak +no3ral +2norc +nor2d5r +3norh +3norm +3nors +n1ort +3n2os. +no3sh +no2sp +n2oste +nost1r +2nostv +no3tab +no2tä +no4t3ei +no2tel +no3t3h +no4tha +no2t3in +no2t1op +no2tr +3nov +3now +2n1o2x +3noz +2nöd +2nö2f +4n1ö4l +2n3p4 +npa2g +npro1 +npsy3 +2n1q +2n3r2 +nräu3s +nre3sz +nrö2s1 +6n1s +n2s1a2d +n2s1all +n2sang +n2sant +n2saus +n3sav +n2s1än +n2s1äus +ns2ca +n6schef +n4schro +nsch7werd +ns1eb +ns1e2d +nseh5ere +nsen4sp +ns1ent +n2s1ep +ns1erf +ns1erg +n2serh +n2s1erk +n2s1erö +ns1ers +n2s1erw +n2s1erz +nse2t +n4s1eta +n3sex +nsfi4l +nsho2f +n3sil +n2simp +n2s1ini +nsi4te +nsi2tr +ns2kal +n2s1op +n4s3ort. +nsp4 +n2spat +n2sph +n3s2pi +ns4pie +n2spo +ns3pon +n2sprä +n4s3prie +n4spro +nsrü2 +ns3s2 +nst1ak +n3star +n3stat +n4stat. +n4s3tate +nst3eif +n3stemm +ns4tent +ns6terbe +n5s6terne +n5s6terns +nst4erö +ns2ti +nst5opfe +ns4tor +n4strac +n4strie +ns2tu +nst2ü +nstü1b +n2sty +ns2um +n2s1un +ns2ung +ns4unr +ns4uns +n3sy +n4s3zi +2n1t +nt3abs +n3t2a3c +n3t2al +nta3m +nt1ang +n4tanza +nt2arb +nt1ark +nt2arm +nt4at +nt1äm +n2t1äu +nte3au +nte2b +nt1ebe +nte1e +nte3g6 +nt1eh +n2teig +nt2en +nt4ene +nten6te. +n3ter +nt4ern +nt4ers +nt4ert +n4t1ess +nteu3 +nte3v +nt2her +n2t3ho +n3thr +n3t4hu +nti3c +nti3k4l +n2tinf +n2t1inh +ntini1 +nt2ins +n3ti1t +ntmen2 +ntmo2 +n3to +nto3me +nton2s1 +n3tö +nt3rec +nt3reif +n5trep +nt4rig +n5trop +n2t3rü +n4ts +nt3sa +nt4sau +nts2o +nts2p +nt4s3par +nts2t +nt2sto +n3tu +3n4tu. +ntum4 +ntu2ra +ntu4re. +ntu4res +n3tü +nt3z2 +1nu. +1nu1a +nu3ar +nubi1 +1nu1c +1nud +3nue +nu2es +nuf2 +nu2fe +1nug +2n1uh +1nui +nu3k4 +n2um. +2n3umb +2numf +2numg +3numm +2numr +2n1ums +2n3umz +nu2n +2nuna +1n2ung4 +3nung. +n3ungl +2n1uni +2nunt +1nuo +2nup +2nur +3nu2s +nu3sc +nu3se +nu3sl +1nut +nu2ta +nu4t3r +1nuu +1nux +1nuz +3nü. +2nü4b +nür1c +3nüs +1nüt +2n1v2 +n3ver +4n1w +1ny. +1nyh +2nymu +n1yo +1nyr +1nys +1nyw +2n1z +n2zad +n2z1a4g +n2zan +n2z1au +n2z1än +n2zär +nzdi1s +nz1ec +n4zense +n4zentw +n4zentz +nz3erwe +nzi2ga +nzig4s +nz1ini +n2zor +nz2öl +nz3s +n2zurk +n2z1wa +n2z1wä +n2zwö +n2z1wu +ño1 +2o3a2 +o4abi +o4ac +oa3che +oa3chi +o4ad +oa3de +oa4g +o4ah +o4a3i +oa3ke +oa4k1l +o4a3la +o4a3mi +oanne4 +o2ar +o2as +3oa3se +o4at +o5au +o1b +ob2al +2oban +o3bar +2o3b2ä +2obb +ob2e +2obe. +2obea +ob3ein +2o3b4en +oben3d4 +oben3se +ober3in4 +obe4ris +2obew +2o3b2i +obi4t +ob3ite +1obj +ob1l +o2b3li +2o3blo +2o3bo +o2b3re +o3bri +ob3s2h +ob3sk +obs2p +ob2sta +2o3bu +obu2s +2o3bü +2oby4 +2oc +o3ca +oc1c +o1ce +och1a +ocha2b +o1che +oche4b +o2ch1ec +och1ei +ocher4k +och3l +och3m +och1o +och3ö2 +och3r +och1s +ocht2 +och3te +o1chu +ochu2f +och1w +o1ci +o1ck +o2ckar +o3cke +ock2er +o3cki +o2cko +ock3sz +o1cl +o1ç +o1d +o3d2a +od2dr +o3deb +o3d2e1i +odein3 +ode2n1 +odene4 +ode3sp +o3dex +2o3dia +o3dir +o3div +o2don +odo4s +2odr +o2dre +odt4 +2o3du +2o1e2 +o2ec +oen1 +o4e3s +o2e3t +o3et. +o3ets +o1ë +2ofa +of1a2c +of1am +of1au +o2f1ei +of2en +o3fer +of2f1a +of2f1in +1offiz +of2f5l +of2f3r +offs2 +of2fu +2ofi +of3l +of1la +of4lä +of4lö +2ofo +2o1f1r +of3ra +of3rä +of4rü +ofs1a +of4sam +of2spe +of2spr +of2s1u +2oft +of2tei +of3th +2o1g +o2g1ab +oga3d +og1ala +og1ang +o2g1ei +oge2l1i +o3gh +ogi2er +og2lo +o3g4n +ogs2 +og3sp +og1ste +o1ha +o1hä +o1he +o2h1eis +ohen3s +o2h1ert +o2h1erz +o1hi +ohl1a +ohl3au +oh3lec +ohl1ei +oh3lem +oh3len +oh3lep +oh4lerg +oh4l3erh +oh4lerw +oh3lo +ohls2e +oh2lu +3ohng +oh2ni +1ohnm +oh2n1o +o1ho +oho2la +oh1o2p +o2h3ö +ohr1a +oh4rin +oh1ro +oh1s +oh3t +o1hu +oh1w +2o1hy +2oi +o1i2d +o3ie +o1im +oimmu4 +o1in +oi2r +o2isc +o3isch. +o1ism +oiss2 +oi1th +2o1j +2o1k +oka2la +okale4 +3o2kel +oki2o +ok1lä +ok4n +4okr +ok2s1p +okt4 +2ol +o1la +o2lab +o2l1ak +ol2ar +olars2 +ol1auf +o1lä +ol4dam +ol4dr +ole3e +ol1eie +ol1eis +oler2 +ole3s +ol1ex +o1lé +ol2fa +ol2fl +olf1r +ol2fra +ol2gl +ol2gr +ol2i +oli3k4 +ol2kl +olk3r +ol2kre +ol2lak +ol2l3au +oll1e2c +ol2l1ei +ol2lel +oll5ends +ol4lerk +oll5erwe +o3lo +ol2of +olo3p2 +ol1ort +ol2str +o1lu +3oly +1olym +ol2z1a +ol4z3ern +ol2zin +ol2zw +2om +o2mab +oma4ner +om2anw +om1art +o2m1au +o2meb +ome3c +o2m1ei +o3m2eis +o2mel +o3men. +o2mep +o2meru +om1erz +om2es +omiet1 +o2m1ind +om1ing +o2m1int +om3ma +om1org +om3pf +oms2 +omtu3 +o4munt +omy1 +2ona +ona2b +o2nae +o3nal +on1ap +o2narb +on2au +on3aus +2onä +onbe3 +2onc +onderer5 +2one +one2i +one2n3 +onens2 +o2n1erb +o2n1erd +on1erg +on1erö +o3nett +on3f2 +on3g2l +ong4r +ong3s +4o3ni +on2i3d +o4nikr +o4n1im +on3ing +on3k2 +onli4 +onlo2c +on3n2an +on3n2e +ono1 +o3nod +o2noke +on1orc +ono3s +ons1a +onsa4g +on4sam +on2seb +onse2l +onsi2 +ons3l +ons1p +onst2h +on3t2a +ont3ant +on4t3end +ont3erw +ont2h +on4t3ri +ont3s +o1nu +2onuk +on3v +1ony +on3z +o1ñ +oof2 +oo2k3l +o1op +o1or +oor3f +oo4sk +oo2tr +2o1ö2 +o1pa +opab4 +o2p3ad +op3akt +opa5s +o1pec +o1pei +o1pe4n +2opf. +op2f3a +op3fah +o2pfe +op4ferd +opf5erde +opf1l +opf3la +op1flü +4oph2 +o3phe +o1pi +opi5a4 +opi3er. +opi5ers. +opin2 +op5lag +o2p3le +op3li +2o3po +op4pl +op2pr +2o1pr +1opsi +op3sz +1op3t4 +o1q +2or. +or1a +or3a2b +o1rad +2orak +2oral +o2r3alm +or4alt +3oram +or2and +o2ranh +or3arb +o1ras +or3att +o3rä +or1änd +or1ät +or2bar +orb2l +or1c +2orca +or2ce +4orda +or2d3am +or2dau +or4d3eng +or2deu +or2d1ir +or2dit +1ordn +or2do +2ordr +2ords +ord3s2t +or2dum +2ordw +4ore +ore4as +o2r1e2ck +o2r1ef +ore2h +or1eig +o2rein +or1er +o2rerf +or1eth +2orf +or2fle +orf3s4 +or3ga +2orget +or3g2h +2orgia +orgi1e +or2gl +or3gle +or2gn +2orh +2o3ric +o4rient +o3rier +4oril +4orin1 +2orit +ork2a +or2k3ar +ork2s +2orm +or4mans +or4ment +or5ne. +or3n2o1 +2o1ro +oro3n2a +2o1rö +2orq +2orr +orr4a +or3rh +2ors2 +or3s4a +orsch5li +or3sh +or3sz +or2t1ak +or4t1an +or2t1au +or2tär +or2tef +ort3eig +or4t3ent +or4t3ere +ort3erf +or2t3ev +or2the +ort3ins +or4t3off +or2tor +or4tö +or4trau +or4t3räu +ort3re +ort3ric +or2t1um +o3ru +or2uf +o4r3un +o2r3ü +o2rya +2o3s2a +os3ad +os4an +osa1s +o3sche +os4co +2o3se +ose3e +o2s1ei +ose2n +o4sents +2osh +o3s2hi +o3sho +2osi +o3sk +o4ska +os3ke +o4ski +2os2kl +2os2ko +os2lo +2oso +2os1p +o2s3per +o3s2po +os2sa +oss3and +os4sä +os2sei +os4s3en4k +os4s3enz +os2s3o +os4son +os2s3p +os2s3t +ost1a +osta2b +os4t3am +os3tarr +ost4art +os4ta4s +os4tei +oster3e +os6t5er6we +os2t3h +os3til +os3to +os4t1ob +ost3ran +ost3rä +ost3re +ost3rot +ost3uf +2osu4 +2o3sy +o3s2ze +o2ß1el +o2ß1en2k +o2ß1enz +o2ß1ere +o2ß1erf +2o1t +ota2go +o5tark +o2t1au +ot3aug +o2teb +o3t2e1i +otei4n +ote2l1a +ote4lei +ot4em3 +otemp2 +o2t1erw +ote2s +4ot2h +ot4he +ot5hel +o4t3hi +ot3hos +o2thr +o2t1i2m +ot2in +otli2 +ot4ol +ot1opf +ot2or +oto2ra +oto1s +o3tra +o2t3re +ot3rin +ot2sa +ot3sc +ots1p +ot4spa +ots2pe +ot2spr +ot4terk +ot2th +ot2t3r +ot4tri +o3tü +o2u +oub4 +ou2ce +ou1f4l +oug2 +ou2ge +ou3gl +o3uh +ou4le. +o3um +o3unds +oun4ge. +2our +ouri4 +our4ne. +ou3s2i +outu4 +2ouv +2o1ü +o1v +ove3s +2ovi +oviso3 +2ovo +2o1w +o3wec +owe2r1 +o3wi +o1x +ox2a +ox2e +1o2xid +ox3l +o2xu +1oxy +o1y2en +o1yo +oy1s4 +2o1z +oz2e +ozen4ta +o3zi +ozon1 +órd2 +ö1b +öbe2la +öbe4li +öb2l +ö2ble +ö2b3r +öb2s3 +2ö1c +öch1l +ö2chr +öch2s +öchs4tu +öcht4 +ö1d +ödi3 +öd2st +ö1e +1öf +öf2fl +öf3l +ögen2s1 +ög3l +ög3r +ö1he +öh3l2e +öh3ri +ö1hu +ö3ig. +ö1ke +ö2ko3 +ök3r +3öl. +öl1a2 +öl1ei +öl1em +öl4en +öl2f1ei +öl1im +öl1in +öl2k3l +öl3la +öl2nar +öl1o2 +öls2 +öl3sa +öl3sz +ö2l1u +öl2ung +ölz2w +öm2s +2ön +ön2e +ö3ni +önn2e +ön2s +ön3sc +ön3sp +ö1nu +öo1 +ö1pe +öpf3l +öp4s3t +ör3a2 +ör1c +ör2dr +ö2r3ec +ö2r1ei +ö2r1e2l +ör2erg +ö2rerl +ö3r2erz +ör2f3l +ör2gl +ö2r1im +ör2kl +örner2 +ör1o2 +örs2e +ör3s2k +ört2e +ör2tr +öru4 +ö2r1une +ö2sa +ö2scha +ö4sch3ei +ö2schl +ö2sch3m +ö2schw +ö2s1ei +ö2sp +ös2s1c +ös2st +ö2st +ös3te +ös2th +ös3tr +ö3su +ö1ß +2ö1t +ö2t3a +öte4n3 +öt2h +öts2 +öt2sc +öt2tr +ö1v +ö1w +ö1z +öze3 +özes4 +p2a +1pa. +1paa +1pac +pa3da +pa2dr +pa2el +pa1f4r +pag4 +pa3gh +pa1ho +1pak +pa1k4l +pak2to +1pala +pala3t +1palä +pa3li +2palt +pa2nar +pa3nei +pa2neu +pan3k4 +2panl +3pa2no +pan3sl +pant2 +3panz4 +1pap +papi2 +papieren8 +papie8r7end +3para +pa2r3af +par3akt +1parc +pa5reg +pa5rek +2par2er +2parg +pargel6d +1park. +par4kam +par4kau +par2kl +par2kr +1paro +2parp +1partn +1party +par3z2 +pa3s2p +pa4st +2paß +1pat +pat4c +pat4e2 +pa5t4r +1pau +p3auf +pa3uni +1pä +3pä2c +pä3cke +3päd +3pär +3päs +pä4t1e2h +pä4t3ent +pä2t3h +pä2to +pät3s4 +2p1b +2p3c +2p1d2 +pda4 +p2e +1pe. +pe2a +pea4r +pech1 +1ped +pe2en +pef4 +pei1 +2peic +pe1im +pekt4s +2peku +1pel +pe2l3a4 +pel3d +pe2let +pe2lex +pe3li4n +pe4l3ink +pell2a +pell4e +1pem +pena4 +pe3n2al +pen3da +pe4nen +1penn +pe2n1o +3pensi +1pensu +pen3z2 +1pep +pe1ra +per2an +pere2 +1perl +per4na +3pero +pe2rob +per2r1a +5pers +perwa4 +pe3sa +pes3s2 +pe2st +3pet +1pé +4pf. +p2fab +p2fad +p2faf +pf3ai +p2f1ak +pf1ans +p2fa4r +pf3are +p2f1au +4p3fe. +p2fei +pf1eim +pf1ein +p3fen. +p2fent +p3fer. +pf2erw +p3f2es +pff4 +p2f1in3s +p2f3lä +pf3lei +pf3lie +pf3lo +pf3lu +p2for +pf3r +pf1ra +2pfs2 +pf3sl +pf3sz +2pf3t +2p1g +pgra2 +1ph +4ph. +ph2a +2phä +2phb +4phd +2p1hei +phen3d +phen3s +2ph1ers +2phf +4phg +phi2ka +4phk +ph2l +2phm +2phn +p3hop +2phö +ph4r +2phs +ph3t2 +2phthe +phu4s +2p1hü +2phz +pi2a3 +pias4 +pi3as. +pi3chl +p4id2 +piegelei8en +pi2el +piela2 +3pier +3pik +1pil +pi3le +pil4zer +pin2e +pingen4 +ping3s +3pinse +pi2o +pi3oi +pi3onu +3pip +pi2pe +pi3ri +3pirin +3pis +4piso +pi3t2a +pi1th +pit2s +pi2z1in +p1j +2p1k2 +pku2 +pkur1 +1p2l4 +2pl. +3p4la +p5la. +p5lad +plan3g +3plä +2ple. +ple1c +p4leg +p4lem +3ple5n4 +2plig +p4lik +p4liz +p4lo +2p3lu +2p1m2 +2p1n +1p2o +po3b4 +po1c +3pod +2p3oh +po2i +po3id +3poin +3pok +3p4ol +po2lau +po3li +po4lor +2pond +po1o2b +po2p3ak +po2p3ar +po1pe +po2pl +po3pt +po1ral +po1rau +2porn +por3s +por4tin +por4tre +por6tri +pos2e +po4sta +pos4t3ag +po4stä +po2s3te +post3ei +po2sto +pos6tr +post3ra +po3ta +3pote +po2t1u +po2w +po3x +pö2bl +pö2c +2p1p +p2p3a2b +pp3anl +ppe4ler +ppe2n1 +p2p1f4 +p2p1h +p3p2ho +pp3l +pp5lan +pp1lä +p2ple +p2p3ra +p2p3re +p2pri +pp3sa +ppt2 +p2r2 +1prak +1prax +p4rä +1präd +1präg +3präm +3präs +2pre. +2prec +1pred +pre2e1 +1prei +3preis +2p3rer +3p4res +pri4e +2prig +1prinz +1p4ro +3prob +2proc +3prod +3prog +3proj +2pross +pro1st +3prot +1prüf +2prün +2p1s +4ps. +ps4an +p3se +p3s2h +ps1id +p2sö +ps2po +p2st +p3sta +p3stea +p3stel +p3s2ti +pst3r +ps2tu +p3stü +3p2sy +ps2ze +2p1t +pt1a +pt2ab +pt3alb +pt3at +p3te +p4t3ec +p4t1ei +pte4l +p4tele +p4t1ent +pt3erei +p4t1erw +p4t1erz +p2th +pt1in1 +pto3me +p4tos +pto2w +p2t3r +pt3s2 +ptt2 +pt1um +pt1urs +ptü4 +3p2ty +pt3z +1pu +pu1a +pub4 +2puc +pu2dr +2p1uh +pul2sp +2pund +pun2s +2punt +2pur +pu2s3t +3put +put2s +1püf +2pül +pün2 +2p1v +2p1w +pwa4r +3py1 +pys4 +py3t +2p1z +qu4 +1queu +1ra. +ra2ab +2r3aac +r3aal +ra3ar +r1ab +ra2bar +rab2bl +2rabd +r2aber +2rabf +2rabg +1r4abi +ra2br +2rabs +2rabt +2r3abw +1raby +ra1ce +2r1acet +ra4cheb +ra4chin +racht3r +rach6trä +ra2chu +r2ack +r2ad +r4ad. +rada2 +ra2dam +2radap +3radf +3radl +r3a2d3r +rad5t +1rae +r2af +raf3ar +ra2fer +ra3ge +ra3gle +ra2gn +3r2ahm +4raht +2raic +rail4l +2r3air +1rake +3ra1k4l +ra2kre +ra2kro +2rakti +3rakü +r2al +r4al. +ra2la2 +ral3ab +rala4g +r3alar +ral3b +3r4ald +ra3le +2ralg +r4ali +rali5er. +rali5ers +ralk2 +ral3la +rall2e +2rallg +2r3alm. +r3alp. +2ralpe +r4als +r3al3t +r4alt2h +ra2lu +3raly +rama3s +ra2mer +1r2ami +r2amm +ram4man +ram6m5ers +ram4m3u +ram2p3l +2r1amt +ramt4s +r2an. +4ranc +r4anda +r4ande +ran4dep +ran4d3er +rand3s +4r3anei +r4aner +2ranf +1rangi +rani1e +ran2kr +2ranl +2r1anm +2r1anp +2ranr +r2ans. +r2ansp +ran4spa +2rantr +2r3anw +r2ap +2rapf +r1ar +r2ara +2rarb +3rarei +rar3f4 +ra2r1in +r2ark +r2arp +2r3arz +r2as +r4as. +ras2a +ra4schl +2r3asph +2raß +1rat +r4at. +ra2t1a +r3atl +rat4r +rat2st +2r3atta +4rau. +3raub. +4raud +rau3e2n +2rauf +2raug +3raum +rau4m3ag +rau4man +rau2mi +3rausc +2rausg +rau2sp +2raus5s +raut5s +1raü +r2ax +3r2äd +4räf +4räg +2räh +2räm +3rän. +3räni +3räns +2r1är +r2är. +rä3ra +rä2s1c +3rätse +rä2u +räu2s +räu5sche +4räut +2r1b +r2b1ab +r2b1a2de +r2bak +rbal3a +rba3re +rb1art +rb1auf +rbb2 +rb1ech +r4belä +rb1ent +rbe3r2e +r3b2la +rbla2d +r8blasser +r4b3last +r3blä +r2ble. +rb3ler +rb2lin +rb2lö +rb2o +rb4ri +rb2s +rb3se +rb4sei +rb3ska +rbs1o +rb3sp +rb4stä +rb3str +rb2u +rby4t +2rc +r1ce +r1che. +r1chen +r1chi +rch3l +rch3m +rch3r +rch1s2 +rch3sp +rchst4r +rch3ta +rch6terw +rch1w +r1ci +r2ck1 +r1cl +r1ç +2r1d +r3d2ac +r2daf +r2d1ak +r2d1al +rd2am +rdani1 +rd1ant +rd1anz +r4dap +r2dei +rd2ei. +r2d1elb +r3den +rden3d +rden4gl +rde3re +rder4er +rderin6s +r4d3ernt +rde3sp +rdi3a2 +rdia4l +r2d1inn +rd1it +rdo2be +r3don +rd1os +r2dö +rd3rat +rd4ri +rdt4 +rd3ta +rd3th +rdwa4 +1re +3re. +re3aler +re2alt +re2am +re3as +re3at. +re3ats +2reä +re2b1a +re2b1l +reb1r +reb3ra +re2bü +r2ech +rech3ar +4rechs +2reck. +2recki +4redd +2redit +re1el +re1er +3refe +4reff +3refl +3refo +3reg +5reg. +rege4l3ä +re2hac +re4h3ent +re2h1i +rehl4 +re2h1o +r2ei. +rei4bl +r2eie +2reig +3reigew +rei3l2a +rei3l2i +reim2p +r1ein +rei3nec +4reing +r3eink +4reinr +rein8s7tre +re1in2v +reister6 +3rek +4re2ke +re3la +2r1elb +rel2e +re3lei +2re2lek +2r1elf +re3lo +2r1elt +relu2 +r4em. +r2emi +4rempf +4remu +r4en. +r2ena +rena2b +re3nal +re2nä +3rendi +ren3dr +re4n3end +ren4gl +2rengp +re2ni +r1ense +2r1entl +2r1ents +2rentw +4r3entz +r2enz +re3or +3repe +3repo +4repp +3r4er. +2r1erb +r2erbr +2r1erd +r1erf +r1erg +r4ergen +r1erk +4r3erken +r2erki +r1erl +4r3erlau +2rerlö +2r1erm +rer2n +2r1ernä +4r3erns +4r3ernt +r2ero +re2rob +r1erö +3r2ers. +2r1ersa +r2erse +2rersp +r1ert +r2erte +2rertr +2r1erz +rer5ze +r2erzy +3r4es. +re2sa +3rese +3reso +2ress +ress2e +res6s5erw +3rest +re1sta +re2s2tu +3resu +re2thy +re2u +reu3g2 +2reul +re3uni +2r1eur +2reü +2r3evid +r1ew +rewa4r +re2wi +2r3e2x1 +3rez +4rezi +1ré +2r1f +rf1ält +rf2äu +r2fent +rf2es +rfi4le. +rf3lic +rf3lin +rf4lö +r3flü +rfolg4s +r3for +rf4ru +rf4rü +rf2sa +rf2s1ä +rf4s1id +rf2s3pr +rf2s3t +rf2ta +rf3t4r +rf2u +4r1g +rg2ab +r2g1a2d +r2g1ah +r2g1ak +rg2an +rge4an +rge2bl +rge4l3er +rgen4z3w +rge4ral +rge4tap +r2geto +rgi4sel +r2glan +r2gleu +r2glig +r2gno +r2g1ob +r2g3ral +r2greg +r2gres +r2gret +rg3rin +rg3s2p +rgs4tr +rg5s2tu +r1h4 +2rh. +2rha +r2ha. +2rhä +3r4he. +3r4hen +r3her +r2hoe +rho2i3 +2rhol +2rhö +2rhs +rhu2s +1ri +ri3am +ria1s +ri3at +rib2bl +ri1ce +ri1cha +rid2 +ri2d3an +2ridol +r2ie +rie2fr +ri1el +riene4 +rien3s +rie2nu +ri1er. +ri4ere +ri3ers. +ri3esti +ri1eu +ri2f1a +ri2f1ei +ri2fer +ri2f1o +ri2fr +rif3s +rif4ter +3rig +5rig. +5rige +ri4gene +5rigj +rig1l +4rigr +rik1l +ri4kla +r2imb +2rimp +rim2s +rim4sc +r2i3na +2r1ind +rin4dex +rin4diz +ri3n4e +rine1i +2r1inf +rin2fo +ring3l +rin2gr +2r1inh +2rinit +2rink +3rinn +6r5innenm +4r3inner +4rinnta +r1innu +2r1ins +3r4ins. +rin4so +rin2sp +r4inspi +2rint +rin4teg +rin4t5r +r1inv +r2inva +2rinve +4r1ir +r2is +ris2a +ri4scho +ri4schw +3risik +ri3so +ri4s1p +3riss +ri2st +ris6t5ers +r2it +r3i2tal +ri3t2i +rit4r +rit2tr +5ritu +rix1 +1rí +2r1j +2r1k +rk2am +r2käh +r3klau +r2klis +rk4lo +rk2lu +rk4n +r2k5nu +rk3räu +r2k3rea +r3kri +rk3rin +rk2s1e +rk3shi +rk2sp +rk1st +rkstati6 +rk4stec +rk2ta +rk4t3eng +rk4t3erf +rkt3ers +rk6tersc +rk4t3erw +rk2tin +rk2t1o2 +rk2t3r +rk3tra +rk4tri +rk1uh +rk2um +rku2n +rk1uni +4r1l +r3l2a +rl2e +rle2a +r3lec +rle2i +r3let +r3l2i +rli2s +r3l2o +rl2ö +rlös3s +rl2s1p +rl3ste +rl2s3to +rl3t +4r1m +r3m2ag +rma2la +r2m1ald +rm1ans +rm1anz +rm1a2p +r2maph +rm2är +rm3d2 +r3me. +r2m1ef +r2meo +rm2es +r2mide +r2m1im +r2m1o2ri +rmo1s +rm3sa +rm3sta +rmt2a +rm2u +rm3ums +4rn +rna2b +rna4n +rn2and +rn3ani +r2n1anz +rn2a2r +rn3are +rn3ari +r2nau +rnd4 +rn3dr +r3ne +rn3e4ben +r4nef +rn2ei +rn3eif +r4n3eis +rne2n +r4n1ene +rn3ense +r4nerf +r4n1erg +rn4erhi +r4nerk +r4n1ert +r5nes +rn2et +r4nex +rn3f +rng2 +r3ni +r4n1in +r3nod +r2n1op +r2n1or +rn1ö +r1nöt +rn3s2ä +rn3s2p +rn3s2z +rn3t2e +r1nu +rn1ur +r1nü +r1ny +ro2bei +2robj +3robo +2robs +ro1c +3rock. +r2o3de +ro3e4 +2rof +roh1l +roh3na +3r2ohr +3roi +ro1ir +ro3le +rol4lan +rol3l4en +rol3s +2roly +4rom. +ro2mad +ro2mer +4romm +4romt +r2on +3ronn +rons2 +ron4tan +ro1ny +ro1pe +ro3ph +r1or +r2ora +ror3al +ro2rat +ro2rei +ro2r1o +ror3th +ro3sh +ro3s2i +ro3smo +ros2p +ros2s1c +ro3st2a +rost1r +4roß +ro2ßu +ro4tag +rote3i +ro2tho +ro4tri +rots2o +rot2ta +ro3t2u +ro3unt +3rout +2rox +rö2b3l +rö2du +2röf +4rög +1r2öh +r1ök +1r2öl +3römi +4röp +r1ör +r2ös. +r2öse +2r1p2 +rp4a +rp4e +rpe2re +rpe4r3in +rpf4 +r2pli +r3po +rpro1 +rps3t +rp3t +r3pu +r1q +2r1r +rr2ab +rr2ar +rr1äm +rrb2 +rr1c +r3r2e +rre4ale +rrer4s +rre2st +r4rew +rr2he +rrik2 +rr2n3a +rr2o +r2r3ob +rro3m +rr2st +rr3stu +rr2th +r3ru +r3r2ü +rrü1b +4r1s +rs3ab +r2s1a2d +r4samp +r4s1amt +rs2an +r2s3ang +rs3anp +rs3ant +rs3ar +r3sch2e +r6scherl +rsch2l +r3schu +r3schw +r2sein +rse2n1 +rs2end +rse4ne +rs1ere +rs1erö +rs1ers +rs1erz +rs1eta +r3sho +r3si +rs2kal +rs2kan +rs2kie +rs2kis +rs2kl +r4sko +r4skr +r4sku +rs3l +rs4no +r3so +r4sob +r4s1op +r4sord +r4s3ort. +rs2p4 +r2s3ph +rs3s2 +r4stant +rs2tec +r6st5eing +rs4temp +rs4terb +rs4t3er4w +rs2th +rs2ti +r3stie +r2stin +rst3ing +r2stip +r3sto +rs4tob +r4stot +r3stö +r3s4tr +rst3ran +r6strang +rs2tu +r3s4tü +r3swi +r3sy +4r1t +rtal2 +r2t1alm +rtals1 +rt1am +rt1ang +rt1ann +rt1ant +rt1anz +r2t1ar +rt3a4re +r2t3att +rt1är +rte1e2 +rt4eif +rtei3la +rtei1s4 +r2telf +r2temo +rte2n1 +rten3s2 +rt3erei +r4terfo +r4t3erh +r2t1erk +r4t3er4la +r4t3erle +r4t3ernä +rter4re +rt1ers +rte3s2k +r2thi +rt3hol +rt2hum +r2t1id +r2t1ima +r2tinf +rto1p +rt1or +rto2ri +r3tö +r4trak +rt3rec +r4treis +r5tri +rt1ros +rtrü2c +r4ts +rt4s1eh +rt2so +rt2spa +rt2spr +rtt4 +r2t1urt +r3tü +rt3z +1ru +ru1a +ru3a2r3 +rube2 +ruch3st +ru6ckerl +ru2cku +rude2a +ru2dr +3ruf +ru2fa +ruf2s3 +4rug +2r1uhr +3ruin +ru1ins +ru1is +2rum +4rumf +ru2mi +4ruml +r2ums. +4rumz +2r1una +2rund +run2d1a +r2unde +rund3er +run6derl +run6ders +run6derw +2r1unf +2rungl +2r1u2ni +4r3unio +run2kr +2r1unl +2r1unm +4runn +4r3unt +2runw +ru3pr +4r3ur +ru2ra +ru2r1e +5ruro +ru2si +rus2s1p +rus4st +ru2st +ru3sta +3rut +rut3h +ru2t1o2 +ru2t3r +4ruz +ru2zw +1rü +2rüb +rü1ben +rü1ch +4rümm +2r1v +rve4n1e +2r1w +rwun3s +4r1x +1ry +ry2c +2r1z +rz1a2c +rz2an +r2zar +r2zas +r5zene +rz1eng +r4z3ents +r2z1erf +r2z1erg +r2z1erk +r2z1erw +rz1id +r3z2of +rz1op +rz2ö +rz3te +rz2th +rz2t3ro +rzug2u +r3zwä +r3z2wec +1sa +3sa. +3saa +2s1ab +sa2be +3sabet +sa2bl +sa3ble +sa2br +4sabs +sa2cho2 +sach3t +2s1ada +s1adm +2s1a2dr +3safa +sa2fe +2s3aff +3safi +sa1f4r +3saga +sa4gent +sag4n +sa2gr +3sai +sa3i2k1 +sail4 +2s1ak +sa2ka +3saki +3sakr +4sakt +3s2al. +sa4l3erb +sa2l1id +3salo +sal2se +2s1alt +3s2alz +3sam +s3ameri +5samm +6s1amma +4s1amn +s1amp +sam2to +s1an +s2an. +2s3a2na +s3anb +s2an2c +s2and +s4and. +san4dri +3sang. +2s3anh +3sani +2s3anl +2s3ans +san4sk +4s3antr +2s3anw +2s1ap +sa2po +3sapr +2s1ar +3s4ar. +3s2ara +4s3arb +3s2ard +3sari +s3arr +3s2ars +4sarti +s1asp +4s3a2sy +3sat +sat2a +4s3ath +4s3atl +4satm +sa2tr +sa3ts +sat4z3en +s1a4u +3sau. +3sauc +3saue +2s3aufb +sau2gr +3saum +3saur +sauri1 +2s3ausb +3s2ause +s3ausw +2s3av +sa2vo +1sä +s3ähn +3säl +s1ält +2s1äm +2s1änd +3sänge +2s1är +3s2ät +3säul +2säuß +4s3b4 +sba4n +sbe3r2e +1sc +2sc. +2scam +s2can +s2cap +2scar +2s1ce +6sch. +2schak +s4ch2al +4schanc +4schang +2schao +s4chä +4schb +4schc +2schd +3sche. +2schef +sch3ei. +4schemp +sch2en +3sches +4schess +4schex +2schf +2schg +2schh +schi4e +s4chim +4schiru +3schis +2schk +s4chl +4schle. +6schlein +sch6lit +2schmö +2schn. +2schox +s4chö +2schp +2schq +4schre. +4schrin +sch3rom +4schrou +6schs +schs2e +sch3s2k +4sch3t +scht2a +scht4r +s4chu +4schunt +sch2up +3schü +2schv +4schwet +sch4wil +2schz +2scj +4s3cl +2sco +3s4cop +3sco4r +s2cr +2scs +2scu +4s3d2 +sda3me +sde1s +sdien4e +sd4r +1se +se3at. +2s1e2ben +seb4r +2s1echo +s1echt +2s1e2ck +3see +se1ec +se2e1i4 +see3ig +seein2 +se1er. +se1erö +2s1eff +se2gal +se2gl +seg4r +3seh +se2h1a4 +se3he +se4h1ei +se4hel +se4herk +se2hin +seh1l +seh3re +seh1s +seh3t +se2hüb +2s1ei. +2s1eig +s1ein +5s4ein. +2seinb +sein4du +sei3n2e +sein4fo +4seing +2seinh +4seink +2seinl +2seinn +4seinr +s4eins. +4seinsp +4seinst +2seinw +4s1eis +3s2eit +3s2ek +s2el. +se2l1a +se3lad +sela4g +se3lam +sel1ec +4selem +se4l3erl +sel3ers +2self. +s3elix +se2l3ö +s2els +sel3sz +sel3tr +s4e3ma +2s1emp +3s2en. +se4nag +se2nä +2s1endl +sen3gl +3s2eni +3senk +se2no +se4nob +3s2ens +s2ent. +4s1entf +2s3entg +s2enti +2s1ents +2sentw +2sentz +se2n3u +seo2r +4s1e2pos +3seq +s4er. +3sera +ser3a2d +se2r3al +se5ref +s3ereig +6sereign +se4r3eim +se4r3enk +ser2er +2s1erfo +s2erfr +s3erfü +4serfül +ser3g +s2ergr +s1erh +2serhö +3seri +4serken +2s3ernt +se2rob +4s3eröf +s2ers. +2sersa +4serseh +s4ert. +s2erta +seru2 +se4r1uf +se3rum +se3rund +3s4erv +5ses. +se2sel +se1sta +se3su +3set +4se4tap +se2tat +4s1e2th +se1u2n +2s1ex +se2xe +4sexp +sex3t +1sé +4s3f4 +sfal6l5er +sflo4 +4s3g2 +2s1h +sh2a +3s2ha. +sha2k +4s3han +1shas +s3hä +s3h2e +3shi. +3shid +shi4r +sh3n +s3hoc +4shof +3shop +sho4re +3show +s3hö +sh4r +1si +si2ach +si3ach. +si2ad +si3am. +2siat +sib4 +5si1c +2s1i2deo +s2ido +3s4ie +siege4s +sien3 +si3ene +si1err +sie2s +si1f4 +3s4ig +si2g1a2 +sig4n +si3gnu +si2g3r +sig4st +si2k1ab +si2k1ä +sik3erl +si2ki +si4k1l +si2kr +sik3s +sik3t4 +si2ku +3silo +2s1imm +si3n4a +2s1ind +2s1inf +sing1a +sin3gh +sin3g4l +sin2gr +sing3sa +4s1inh +sin1i +sini1e +2s1inq +2s1ins +2s1int +4s1inv +3sio +sion4 +3s2is +si2sa +si4schu +si2s1e +si2s1o +si2s1p +sis3s +3s2it +si2tau +sit3r +si2tra +si3tu +siv1a +sive3 +si2vr +1sí +2s1j +2s1k2 +4sk. +3skala +4skam +4skanz +s3kar +4skas +ska4te. +4skateg +ska4tes +4skb +s4kep +3s2ki. +s2kif +s2kig +3s2kik +4skir +ski1s +3skiz +sk4l +4s3klas +sk4n +4skom +4skor +4skow +4skö +4sks +4sk3t +3skulp +2s1l2 +3slal +4slan +s2law +s3lä +sl3b +s3le +sler3s +s3li +3s4lip +sli4tu +s3lo. +slo3be +s3loe +2s3m2 +2s3n4 +4sna +snab4 +sni3er. +sni3ers +4s5not +4snö +1so +3so. +so4a +2s1o2b +so1c +so3et +3soft +3sog +s1o2he +4sohng +2s1ohr +3sol +so3la +so4l1ei +sol4ler +4so2ly +3som +3s2on +son3au +sone2 +son5ende +son3sä +so2ny +so3o +2sopf +3sor. +so1ral +s1orc +2s3ord +so2rei +2s1orga +5s2orge +2s1o2rie +so2r1o2 +3sors +so4ru +3sos +s4os. +4s1ost +so3unt +3sov +4s1o2ve +3sow +2s1ox +3soz +1sö +sö2c +sö2f +2s1ök +2s1ö2l +s1ös +1sp2 +2sp. +2spaa +2spak +s2pan +spani7er. +2spap +2spara +2sparo +3sparu +3spaß +2spau +s2paz +s2pä +3späh +2spär +s2pee +2spel +4spensi +spe3p4 +2s1peri +2sperl +s2perr +2spers +2spet +3s2pez +4s3pf +2spha +s3phe +2sphi +3s2pi4e +4spier4 +spi2k +4spil +3spio +4spip +4spis +2spl +4spla +4splä +3s2pli +s3p4lu +s3pn +2spod +2spog +s2poi +2spok +4spol +4s3pos +s2pott +4spr. +s2prac +s2pran +2sprax +2spräm +4spräs +3s4prec +2spred +2spres +2sprob +3spross +3spru +2sprüf +2s3ps +2spt +2spun +2spup +3spur +4sput +4spy +2s1q +4s3r4 +srat2s +srat4sc +sret3 +srö2s1 +srücker6 +srü2d +6s1s +ssa3bo +ss1a2ck +s5saf +s3sag +ss1aj +s3sal +s4s1ala +s4s1alb +s4s3amt +s4s3ang +s2sano +s4sans +ss2ant +s4s3anz +s3sa1s2 +ss3att +s3s2ä +s4sce +s4sco +ss1ec +s2s1ega +sse3ha +sse3inf +sse3in4t +sse6r5att +ss1erö +ss3erse +s3s2es +sse3ta +ss3l +ss1off +ssoi4 +s2s1op +ss1ori +ss2po +s2spro +ssquet4 +ss3s4 +sst2a +s3stel +ss2th +ss2ti +ss4tip +ss2tur +s3stü +ss1ums +s1t +6st. +s2ta +4sta. +3staa +2stabb +st2ac +3s4tad +3staff +2stag +3stah +2stak +2stale +s3ta3li +2stalk +st1alp +st1ami +4stan. +sta4na +3stand +2stani +4s3tann +2stans +2stanw +s4tar. +4stari +s4t2ars +s3tat. +s4tau. +2stauf +2staum +3staur +2staus +3staus. +2stax +3s2tä +4stäg +4stält +s4tänd +5stätt +s3täus +2stb +2st3c +2std +st2e +4s5te. +2stea +4stechn +s2ted +4stee +3s2teg +ste2gr +3s4teh +s2te2i +3steig +4steil +3steilh +stei4na +1s2tel +2stel. +stel4l3ä +2steln +2stels +2stem +4stem. +ste4mar +4sten +s5ten. +s4t3ends +s4t3engl +st4ens +s4t3entf +s2tep +2ster +6s5ter. +ste6rers +4sterm +3sternc +4stes +s4t3ese +stes6se. +ste4st +2stet +s4teti +3s4tett +3s2teu +1steue +4steuf +st3ev +4stex +2stf +2stg +4sth +s4thä +s4thi +s2t3ho +s2thu +2stia +2stib +s2tic +sti2e +2stie. +s2tieg +s2tiel +2stien +3s2tif +2stig +2stik +s2til +3s4tim +s4tinf +s3tinn +st1ins +2stio +1s2ti2r +2stis +st1i4so +1stitu +2stiv +2stj +2stk +4stl +4stm +2stn +s2to +2sto. +s3tob +2sto3d +4stod. +1stof +s4toff +s4t3om +4ston +4stoo +2stopo +2stor. +2store +2storg +2stori +s3tort +2stose +sto3s2t +1stoß +4stote +4stou +2stow +2stoz +1stö +2stöch +2stöt +2stp +2stq +s2tr +2strad +2strag +1s4trah +4strai +4strak +2stral +4strans +3s4tras +5straß +4straum +4s5träg +4sträne +4s5tref +4streib +5st4reif +st3renn +2s4trig +1s4tri2k +2s5tris +st3roll +stro4ma +1stru +2strua +2strug +3struk +4st3run +2strup +2s4t3s4 +2st3t4 +st2u +1stub +4stuc +3s4tud +2stue +3stuf +3stuh +2stum2s +stum4sc +2stumt +stu2n +2stun. +3s4tund +s2t3uni +4stunn +2s3tuns +2stunt +stu3re +st3url +2sturn +2st3urt +2s3tus +1stü +2stüch +2stür. +2stüre +2stürg +2stürs +3stüt +2stv +2stw +3s2tyl +4st3z +1su +su1an +3su2b3 +su4ba2 +4subi +3su1c +su2cha +such4st +2s1u2f +2s1uh +su1is +su1it. +sul2a +sul2i +sult2 +su2mar +su2mau +3s2ume +su2mel +su6m5ents +s3umfe +3summ +sum1o2 +su2mor +s3umsa +s3umst +su2n +3sun. +sun6derh +su4ne +s1unf +2s1uni +4sunt +3s2up +sup3p +su2ra +2s1url +s1urt +s4u2s1 +su3sa +su3sh +su3si +sus3s +3suv +1sü +2sü4b +3süc +sü2d1 +süden2 +3sün +4s3v +2s1w +s3wa +s3we +sweh2 +4swie +4swil +1s4y +syl1 +sy4n3 +2s1z +4s3za +4s3zei +s2zena +3s4zene +4szent +s2zes +4s3zet +s2zis +sz2o +4s3zu +s3zü +4s3zw +2ß1a2 +2ß1b2 +2ß1c +2ß1d +1ße +2ß1ec +2ß1e2g +2ß1ei +ße2l1a +ßen3g +ße2ni +ße2no +ße2ro +ß2ers. +2ßerse +ßer3t +2ß1f +2ß3g2 +ßge2bl +2ß1h +1ßi +ßi2g1a2 +ßig4s +2ß1in +ß1j +2ß1k4 +2ß1l +ßler3 +2ß1m +2ß1n2 +ß1o2 +ßos2 +2ß1p2 +2ß3r2 +2ß1s2 +ßst2 +2ß1t +1ßu +2ß1um +2ß1ü +2ß1v +2ß1w +2ß1z +1ta +3ta. +4taa +5taan +4tab. +ta2b1an +2t1abb +3tabel +2taben +ta4bend +2tabf +2tabg +2tabh +2tabk +3table +2t3abn +ta2br +4tabs +2t3abt +ta2bü +2tabw +2tabz +2t1ac +3tacu +t1ada +tadi3 +2t1a2dr +ta3d2s +3taf. +3taf2e +4taff +t1afg +t1af4r +3t2ag +ta2ga2 +ta2g1ei +4t3a4gent +4ta3gl +t3ago +tag4st +tah2 +tah3le +tahl3sk +ta3i2k +tai2l +ta1ins +tai4r +ta1ir. +t1a2ka +ta2kro +tak6ta +3taktb +3t2aktu +2takz +3t2al. +ta2la +ta3lag +ta3lak +tal3d +3t4ale +ta4lens +tal2lö +3talo +ta2l1op +2talt +2tam +3tame +ta2mer +ta2mi +t1ampl +t1amt +3tan. +t1a2na +2tanb +4t2and +ta3ne +4tanf +2tang +3tani +t2ank +t3ankl +4tanl +2t1anme +4t1anna +t2ano +t1ans +3t2ans. +4t3ansi +4t3ansp +ta2nu +2tanwa +2tanwä +t2anz. +t1anza +tan6zerh +t1anzu +ta3or +ta2pe. +ta2pes +2tapf +ta2pl +2tarb +ta4rens +ta4r3ere +3t4a3ri +4tark +2t1arm +2tart +t1arti +tar2to +ta2ru +2t1arz +3tas +ta3sa +4t1asp +ta2ta2b +ta2tan +ta2tau +tat3ei +ta2tem +ta2t3er +ta2th +tat3he +t3atl +t4atm +ta2tom +4tatue +ta2t1um +2t1auf +4taufg +tau3f4li +4taufn +t1auk +3taum +t1ausb +3tausc +tau6schr +tau6schw +t2ause +4t3ausg +t1ausk +4tausl +4t3auss +4t1ausw +3tav +3tax +taxi1s +1tä +4täb +tä1c +4täd +3täe +3täg +4tägy +2täh +2t1ält +4täm +t1ämt +t1ängs +3tänz +t1äp +t2är. +tä2ru +tä2s +t2ät +4tätt +2täuß +2täx +1tà +4t3b2 +tbe3r2e +tblock5e +tblocken8 +4t1c +t3cha +t3che +tch2i +tch3l +t2chu +tch1w +t4ck +t3cl +t3cr +4t3d4 +tdun2 +1te +3te. +te2a2 +2teak +te3al +te3an +3teba +3t4ebb +4t1e2ben +t2ech +te3cha +3techn +2teck +teck2e +te2cki +te1em +te2en3 +te1erw +te2es +2teff +teg3re +2teh +3teha +3tehä +3t2ei. +t2eie +t3eifr +teik4 +3teil +4teilhe +2t1ein +tein3e4c +t3einge +t3einla +4teinn +t3eis. +t3eisb +5tel. +3tela +te2l3ab +te2l1ac +te2l1au +telb4 +3te3le +tel1eb +tele4be +te4l1ec +te4l1eh +te4lein +2telem +tel1en +te4lerd +te4leu +4t3elf. +3telg +te2l1in +te2lit +3telk +tell2e +5teln +te4lost +te2l1ö +3telp +5tels +tel3s2k +3telt4 +tel3ta +tel3th +3tem. +te2m1ei +te2min +2temme +te2m1o2r +3temper +2tempf +tem3s +te4m1u +3ten +t6en. +ten3a +tena2b +te4na2d +te4na4g +te4nas +te4nau +te2nä +t4enb +ten3da +4t3endf +t6endi +4t1endl +t6endo +4t3endp +ten3d4r +te2n1e2b +te2nef +te3n4ei. +ten3eid +ten3ens +4tenerg +te2net +ten3g +4t1eng. +ten4gla +t4enh +te2ni +te4n3in +t4enj +t4enm +ten3n +tens2e +4tensem +t4enta +t3entb +4tentd +t4ente +4tentn +tent3ri +4t3entw +4t3entz +ten6zerh +ten3zw +t3e2pi +3t4er. +tera2b +te1raf +ter3am +te3ran. +4terbs +4terbt +3terc +4t3erde. +te2re2b +te4r3eif +te2rel +ter3end +te4reng +te4rerk +terer4z +4terfol +t4erfr +4terfül +3ter3g2 +6tergrei +t6ergru +t4eri +te3ria +4terklä +2t1erlö +ter4mer +3termi +ter4n3ar +2ternc +t3erneu +t4ero +t3erö +ter4re. +t4ers. +t6erscha +ter4ser +terst4 +t4erst. +t4ersti +t4erstu +tert2 +teru2 +te4r1uf +ter4wäh +6terwerb +ter3za +2t3erzb +3tes +tesa2c +te2san +tesä2c +te2sel +te2spr +tes3s2 +t2est +tes3tan +test3ei +tes6ter6g +tes6terk +testes4 +te2su +3tet2 +t2et. +te2tat +4teth +4tetl +teu3ere +teu3eri +3teuf +3teum +te1un +3teur. +teu2r3a +te2vi +te1xa +2t3e2xe +2t1e2xi +4texp +3text +2t1exz +4t1f4 +tfi2l +4t1g2 +tger2 +t1h +4th. +2th4a +3t4ha. +t2hag +t3hai +t2hak +3thal. +4t3hau +2t3hä +th2e +1t2he. +3thea +2theb +t2hec +2t3hei +t4hein +t2hek +t2hem +1then +t4hene +t4heni +3theo +2therr +t2hes +3these +t2heu +1thi +t2hik +2t3hil +2t3him +2thk +4th3l +4th3m +2th3n +1t2ho +2t3hoc +t3hof +2t3hoh +t4hol. +t3hor +2t3hot +thou2 +4t3hö +2thp +1th2r2 +4thrin. +4thrins +2ths +2thub +4thun +2thü +2thv +t2hy +1ti +ti2ad +ti3a2m +3tib4 +ti1ce +tiden2 +ti4dend +ti2deo +3tief. +tieg4 +2tieh +ti1el +ti3e4n3 +3ti2er +tie4rec +ti1et +ti1eu +3tif. +ti1fr +4tift +3tig +ti4gerz +3tik +ti2kam +ti2kar +ti3k2er +ti2kin +ti2krä +ti2lar +ti2lau +ti2lei +ti2lel +3tilg +ti2lö +til3s +tilt4 +ti2lu +ti2ma2g +t2imi +tim2m1a +4t1imp +3t2in. +ti3na +t1inb +4t1ind +ti3n2e +t1inf +tin2g1a +ting3l +ting3s +t1in1it +2t1inj +tin2k1l +3t2ins. +4t1inse +2t1int +ti1nu +4t1inv +3tio +ti3or +3tip +ti3pl +ti4que. +ti1rh +3tis +ti4scha +tisch3w +ti2sei +ti2sp +ti1sta +3ti3t2e +2ti3tu +tium2 +3tiv +ti2van +tive3 +ti2vel +ti4v3erl +ti2v1o +ti2v3r +ti2za +2t1j +4t3k4 +4t3l +tl4e +tle2r3a +6t5li +tlung4 +4t3m2 +tmal2 +tmen6t3 +tmo4des +4t5n4 +tnes2 +tnes4s +1to +3to. +to4as +to5at +4tobj +tob2l +to1c +3tocht +to6ckent +3tod +tode2 +4to2d1er +to4d1u +toi4r +3tok +to3la +3tole +4tolz +tom1e2 +to2men +2tomg +3ton +to2nau +3too +to2pak +to2pat +3topo +2topt +3tor. +to1ra +to2rau +to4rän +4torc +t1ord +3tore +to2rel +to3ren +t1org +t3orga +3torin +tor3int +to2rö +3tors +t1ort. +to2ru +t2orw +to3sc +3tose +to4sk +tos2p +4toss +3tost4 +to1sta +4toß +3to3te +to2tho +3totr +tots2 +3t4ou +touil4 +to3un +3tow +2tö +3töch +4töf +4t1ök +tö4l +3tön +t1öst +4töß +3töt +4t3p2 +tpf4 +2t1q +1t2r4 +2tr. +5tra. +3trac +tra3cha +4tract +t3rad. +tra4dem +tra4far +3trag +6trahm +5t4rai +3trak +3tral +3t4ran. +2trand +3trank +t3rann +3trans +t3rase +t3rasi +4traß +5träc +3träg +3träne +4träs +4träß +4t5re. +tre4ale +4treb +tre2br +4trec +t3rech +t4reck +6t3red +5t4ree +3tref +4trefe +4trefo +4treg +t4rei. +3t4reib +4treic +2treif +t3reig +2t3reih +t3rein +t3reis +6treit +t3reiz +2trek +6t3rel +t4rem +t4ren. +3trend +4trendi +t3rent +2trepe +2trepo +t4repr +t4rer +t4res. +t4ret +tre2t3r +t4reu +3treuh +t3rev +2trez +5t4ré +2t3rh +3tri +4tric +2trid +5trieb +tri4er +5trigg +t3rind +4tring +tri3ni +4trinn +t4rip +4tript +tri2x +trizi1 +3tro. +3troe +3t4roi +tro2ke +4trom. +tro2mi +4troml +3tron +2t3roo +t4rop +3tropf +3troy +t3röc +2tröh +3trös +2t3röt +3trua +4truk +trum2 +trums1 +2trund +3t4runk +5t4rup +tru2th +t4rüb +trü1be +trü1bu +2t3rüc +trücker6 +t4rüg +try1 +2ts +4ts. +t4sa4b +t3s2ac +ts1ad +t2s1ah +ts1al +t4s1amt4 +t2san +t4s3ar +ts1as +t2sau +t2s1än +t3s2cha +t4schar +t3sch2e +t4schef +ts4chem +tsch4li +t4schro +ts4cor +t2s1e2b +t3seil +t4seind +ts1em +tse2n1 +t2s1eng +t2s1ent +t2s1er +t4s3esse +t2s1i2d +ts1ini +t2s1ir +ts3kr +t1slal +ts1o +tso2r +t3sou +t2sö +t3spal +ts1par +ts4pare +t2spä +ts2ped +t3spek +t2sph +t3s2pi +t2spo +t3s2pon +t3s2por +t4sprei +ts3s4 +t1st4 +t4stag +ts3tak +ts4tal +ts3täti +t2s3tep +t3s4tero +t2stip +t4stit +ts3toc +ts3tor +ts3trad +t4stran +ts3trau +t2s3trä +t4streu +t2stri +t4strop +t2s3trü +ts2tu +t2s1u +1tsub +t3sy +4t1t +tt1ab +tta2be +tt2ac +t2t1ad +tta6gess +tt1ak +tt2al +tt2ant +tt1art +tta1s +tt1ebe +tt1eif +tt1eis +t3tel +tte2la +tte4leb +tte4len +ttel1o +ttes1 +tte2sa +tte2sä +t4teti +tt2häu +t2t3ho +t3ti +t3to +tto1s +t3tö +t3tro +tt3ru +tt3rü +tt2sen +tt2sor +tts1p +tt2spe +tt2spr +tt2sti +ttt4 +t3tu +tt2un +t3tü +1tu +tu1alm +tu3an +2tub +3tuc +tu2chi +2tud +3tue +4tuf +tuf2e +tu3fen +t3u2fer +tuff3 +2tuh +2tuk +t3u2kr +tul2a +t2um. +3t2ume +2t3umf +2t3umg +2t3umk +2t3umr +tum2si +tum2so +tums5tr +2t3umt +2t3umz +3tun. +2t1una +2t1und +3tune +2t3unf +3tung +t3unga +tung4s5 +2tunif +2t1u2nio +2t3unt +t1up. +tu2r1a4g +tu2rä +tur1c +tu2re. +tu2rei +tu2r1er +tu2res +tu2r1e4t +turin1 +3turn +tu2ro +tu4ru +tu2sa +tu4schl +tu2so +tu3ta +2tü +4tüb +3tüch +tück2s +3tüf +3tüm +3tür. +tür1c +3türe +3türg +3tür3s +3tüten +4tütz +4t3v +4t3w +twa2 +twi4e +1ty1 +3typ +ty2pa +tys4 +4t1z +t2za4 +tz1ag +tz1al +tz1ar +tz1au +tz1ä +t3ze. +t2z1e2c +t2z1eie +t2z1eis +tze4n1 +tz2ene +tz3ents +tz1erl +tz2ers +t3ze2s +tzgel2 +tz1ind +tz1int +t2zor +tz2ö +tz2th +tz2tin +tz1wä +tz1wi +tz1wu +2ua +u1a2b +u1a2c +uad4r +u1al. +ua2lau +u1alb +u3alet +u1alf +u3a2lo +u1alr +u1als +u1alt +ua2lu +u1am +u1ans +u3ar. +uara2b +u1ars +ua3sa +ua2th +uat2i +u3au +u1ay +u1äm +u1äu +2u1b +u2be2c +u3b4i +ubi3os. +ub2l +ub3lic +u2b3lu +u2bop +ub1r +ub3rä +u2b3rit +ub2san +ub2s1o +ub2spa +u2büb +2uc +uc1c +u1ce +uch1a +u1cha. +uch1ä +u1che +u2ch1e4c +uch1ei +u3ches +u1chi +uch1il +uch1in +uch3l +uch3m +uch3n +u2ch3r +uch2so +uch4spr +uchst4 +uch4tor +uch2t3r +u1chu +uch3ü +uch1w +u1ci +u2ckem +u4ckent +u3ck2er +u2cki +u1cl +2u1d +u3d2a +uden3s2 +uder2e +udi3en +uditi4 +u2don +ud3ra +u3dru +2u1e +ue2ck +u2ed +ue2en +u2eg +u2ela +ue2le +ueli4 +ue2mi +uen1 +ue2nä +ue2ner +uenge4 +ue2ni +ue2no +uen2zu +u2ep +ue2r3a +ue2r1ä +u2ere +u3ereh +ue3reig +u3erer +ue4rerg +ue4rerk +u3erex +uer3g2 +u4erinn +u3erin4t +uer2ne +uer4ner +uern3s4t +ue2r3o +u3err +uer3sc +uer3t2 +u3erum +u3erunf +u3erunt +ue2ta +ue4tek +u3fah +uf1ak +uf3ar +u3fas +uf1au +u2f1äs +u2f1ä2ß +u2f1ei +u2f1em +u3fen. +u2fent +u2f1erh +u4ferle +uf2ern +2uff +uff4l +uf2fro +uffs4 +uf3l +u2fob +ufo2r +uf1ori +uf3r +uf3sä +uf4sin +uf4so +uf2spo +ufs3tem +uf2t1eb +uft3s2 +u2fum +2u1g +u4gabte +ug1af +ug1ak +u2g1ap +uga4s +ug1au +ug3d2 +u2g1ei +u2g1erf +u2g1erl +ugge4st +ug3hu +u2g1l +ug3lad +ug3lo +u3g2lö +u4glu +u2g3n +ugo3 +ug1or +u2gö +u4g3reis +ug3ro +ug3rüs +ug3se +ug4ser +ug3si +ug3spa +ug4spr +ug4spu +ug5stä +ug3str +ug3stü +u2gü +u1h +2uh. +uhe3s6 +uh1la +uh1lä +uh2li +uhme4 +uhr1a +uh2rer +uh3ri +uh4rin +uhrt4 +uh2ru +uh4rü +uh1w +2ui +ui2ch +u1ie +ui1em +u3ig +u4ige +u1in. +u3isch. +u3ischs +uisi4n +ui4s5t +u1j +uk2a +u3käu +u1ke +u1ki +u1k2l +ukle1i +uk4n +uk2ö +u1k4r +uk2ta +uk2t1in +uk2t3r +u1ku +uku2s +u1l +ul1ab +ul1am +ula2s +ul1äm +ulb4 +ul2dr +uld2se +u2l1el +ule4n +ul1erf +ul1erh +ul1erw +ule2sa +ule2t +ul1eta +u2lex +ul3f4 +ulg4 +uli2k +ul1ins +ul3ka +ul2kn +ull2a +ul2les +ull3s +ulm3ein +ulo2i +ul1or +ul2p1h +ul2sa +ul4sam +uls2th +uls3z +2ulta +ul3th +ul4tri +ult3s +u2lü +ul2vr +ulz2w +u2m3a2k +um1all +um1anz +u2m1art +u2m1aus +u2maut +1um3d2 +um2en +ument4s +umer2a +u2m1erg +u2m1erl +u2m1erw +1umf +1umg +um1ins +um1ir +1umk +1um3l +4umm +umm2a +umpf4li +um2p3le +1umr +3umsat +um4ser +um2sim +um2s1pe +um2su +um3t2 +um2un +u2m1ur +1umz +un1 +4un. +2una. +1unab +un3ac +un4al +u3n2am +u2n3an +2un2as +un3at +1unda +un4dab +1undd +un4dei +un4d3erf +und5erha +1undf +2undg +un2did +1undn +un2dor +un2d3r +4unds. +und3sp +und3st +un2d1um +1undv +1undz +u3ne +une2b +une2h +un2ei. +un3ein +unen2t +un4es4 +1unget +1ungew +ung5h +1unglü +un2g1r +ung3ra +ung3ri +ung4sa +un2id +un3ide +1u2nif +unik4 +un2im +uni2r +2unis +un3isl +u3n2it +3u2niv +2unk +un2k1a2 +un2kei +unks2 +unk4tit +unk2t3r +3unku +unna2 +un2n3ad +un3n2e +uno4r +un2os +1unr +uns2 +2uns. +un3se +1unsi +un3sk +un3sp +uns4t1r +1unt +un3ta +unte4ri +un3tr +unt3s +2untu +unvol2 +unvoll3 +1unw +2unz +2uo +u1o2b +u3of +u3or. +u1or3c +u3ors +uos2 +u1os. +uote2 +u1pa +u1pe2 +uper1 +up2fa +u2pf2e +u2pf1i +u3pi +up2pl +up2pr +u1pr +up4t3a2 +upt3erg +upt1o +up4tr +u1q +2ur. +u1ra +u2rab +u3raba +ura2be +u2r3a2m +u2r1ana +ur2anb +u2r1ang +ur2anh +u2r1an5s +u2rar +ur3a4ren +u2r3att +u2r1au +2u1rä +ur1än +ur3b2a +urch1 +urd2 +ur3di +2ure +ur1eff +u2rele +ure4n +u4r1ep +ur1erh +ur1erw +2urf +urf3t +ur2gri +urgros4 +urg3s4 +uri2c +ur1im +ur1ini +ur3ins +ur1int +u2rinv +urk2s +1urlau +4u1ro +u3rol +uro1s +u1rö +ur3p +ur3sac +ur2san +ur2sau +ur2ser +ur4sin +urst4r +ur4sw +ur3s2ze +urt2 +u3ru +urü2 +ur2za +ur2zä +ur2zi +ur2zo +ur2z1w +2us +u4saf +us4ann +u6schent +usch5wer +u2s1ec +u2s1ei +u3seid +u3sep +use1ra +u2serp +u2s1ese +usi3er. +usi5ers. +us3kl +u4sko +us3oc +u3soh +u2s1op +us1ou +us3part +u2s1pas +u2spat +us1pe +u3s2pek +us1pic +u5s4piz +u2spo +us2por +u2spu +us4sez +us2sof +ust3abe +u1stal +us3tau +us2th +ust2in +us3tr +u5stras +us6tris +u1stu +u2stun +u2stur +us2ur +u2sü +2u1ß +2u1t +ut1alt +ut3a2m +u2t1ap +u2t1ar +u2tär +u3te +ut1eg +ute4ge +ute2n1 +u2tent +uter4er +u4t3ersa +ut2es +ut2et +u4tev +u4t1ex +utfi4 +ut2he +u2thi +u2t3ho +u2thu +uto1 +uto4ber +uto3c +ut1opf +u2tops +ut4or +utos4 +u3tö +ut3rea +ut3rü +ut3s2a +ut2s1ä +ut4schl +ut4schm +ut4schö +ut2spa +ut3te +ut5t4l +utts2 +utu4re +utu5ru +u3tü +utz3eng +ut2zin +ut2zo +ut2z1w +2u1u2 +uufe2 +u1ü2 +2u1v4 +u2ve. +uve3rä +u1w +2u1x +ux2e +ux2o +ux3t +u1ya +2u1z +uz1we +uz3z4 +1üb +2übc +2übd +übe2 +übe3c +über3 +üb3l +üb3r +üb2s3t +2üc +ü1che +üch3l +üch2s1c +ücht4e +ü3cken +ück1er +ück3eri +ü4ckers +ück4spe +2üd +üd3a4 +ü3den. +üden4g +ü3d2ens +üd1o4 +üd3r +üd3s2 +üdsa1 +üd3t4 +üdwes2 +ü2f1a +ü2f1ei +üfer2 +ü2f1erg +üf2fl +ü2f1i +üf3l +üf2to +ü1g +üge6leis +ü2g3l +ü2gn +üg3s +üg4st +üh1a +ü1he +ü2h1ei +ü2h1eng +ü2h1erk +ü2h1erz +üh1i +ühla2 +ühl1ac +ühl2e +üh3mo +üh3ne +ühn2s +üh3r2e +ühr3ei. +üh1ro +ühr3ta +üh1s +ühs2p +üh3t +üh4th +ü1hu +üh1w +ü1k +ül1a +ül2c +ül4e +ül2la +ül2l1ei +ül2lo +ül2lö +ü1lu +ü2ment +2ün +ü2n1a +ün2da +ün2dr +ünd3s +ünen3 +ün2fa +ün2f1ei +ün2fli +ün2fr +ün2g3l +ünn2s +ün2s +ün3sc +ün3se +ün3sp +ün3str +ünt2 +ü1nu +ün2za +ü1pe +ü1pi +üp2pl +ür1a +ü2r1ei +ür2fl +ür2fr +ür4g3en4g +ü3r2o1 +ürr2 +ür2s +ür3sc +ür3se +ür3sp +ürt2h +üs2a +ü2schl +üse3h +üse3l +üse1s +üs2s1c +üss2e +üs2st +ü2st +üste3ne +ü1ß +2üt +ü2t1al +ü2t3r +üt2s1 +üt2tr +ü1v +ü1z +2v1ab +va1c +val2s +2vang +2varb +va1s +v4at +va2t3a4 +va2tei +va2t3h +vatik2 +va4t1in +vati8ons. +va2t3r +vat3s4 +va2t1u +2v1au +2v1b +2v1d +1ve2 +ve3ar +ve3b +ve3c +ve3d +ve3g +ve3h +ve4i +veit4 +veits3 +ve3la +ve4l1au +ve3le +ve3li +ve3lo +ve3ma +ve3mu +ve3nal +ven2c +ve3ne +venen4d +ve3ni +ve3nö +ve3o +ver1 +ver3a +ve3rad +ve3rand +ve3ras +ver3b2 +verd2 +vere2 +ve4rek +verf4 +verg4 +ve3ri +ve4rin +ver3k +ver3st +vert2 +ver5te +ver3u +ves1 +2ve3sc +2ve3s2e +ves3ti +ve3ta +vete1 +ve3tr +2veü +ve3v +ve3x2 +2v1f4 +2v1g +2v1h +vi3ar +vi4a3t +vi2c +vid3s2t +vie2h3a +vi2el +vi2er +vie4rec +vie2w1 +vig2 +2vii +vi2l1a +vi4leh +vi2l1in +2v1i2m +vima2 +vi4na +vin2s +2v1int +vi3sa +vise4 +vi3s2o +vi2sp +vis2u +2v1k +2v1l2 +2v1m +2v1n +2v1ob +vo3ga +vo2gu +3vol +voll1a +vollen4 +vol6l5end +vol2li +2v1op +vo2r1 +vor3a +vor3d +vor3e +vor3g +vo3ri +vormen4 +3voy +vö2c +2v1p +v2r +2v3ra +v3re +v4ree +2v3ro +2vs +vs2e +v1sta +v1steu +v3s2z +2v3t +vu2et +2vumf +2v1v +2v1w +2v1z +w2a +1waa +wab2bl +wa3che +wach6stu +wach4t4r +waffe2 +waffel3 +1wag +wa5ge +wa2g3n +wa3go +1wah +wahl5ent +wah4ler +wah2li +wai2b +1wal +2walb +wal4da +2walm +wal2ta +wal2to +walt4st +wa3na +wandels6 +wang4s +wa2p +1war2e +ware1i +war3ste +wart4e +1was +wa3sa +wa4scha +wa3se +wa3sh +wass4e +w2ä +1wäh +1wäl +2wäng +1wäs +wäs2c +wä3sche +2w1b2 +wbu2 +2w1c +2w1d +we2a +we2ba +4webeb +we2bl +web3s +we3cke. +we5cken. +we3ckes +we2e4 +weed3 +we2fl +1weg +we2g1a +we2g3l +we2g3r +weg3s4 +1weh +we2i +wei4bl +2weie +weik4 +weis4s3p +wei3str +wei4tr +wel6schl +wel6schr +wel2t1 +wel4t3a4 +wel6t5en6d +wel4tr +wen3a4 +we3ni +wen4k3ri +we2r3a +wer2bl +1werbu +werd2 +5werdens +1werdu +werer2 +wer2fl +wer4gel +we4r3io +1werk. +wer2ka +1werke +wer2kl +wer2ku +we2rö +wer2s +wer2ta +wer6t5erm +wer2to +1werts +1wese +we2s1p +we4st +west1a +west3ei +wes2th +west1o2 +west3r +wes4tu +1wet +wet2s +wett3s +2w1ey +2w1g +2w3h +wi3cka +1wid +wi2e +wie3l +wien2e +wie2st +wik2 +1wil +wim2ma +wim4m3u +win4d3e4c +win2dr +win2e +2wing +win8n7ersc +1wi4r +wi3s2e +wi2sp +1wiss +wi3th +1witzl +2w1k +2w1l +2w1m +2wn +wn3s +1wo1c +wo2cha +woche4 +1woh +woh2le +1wolf +wolf4s3 +wol4ler +wor3a +wo2r3i +wor2t3r +wo4r3u +wot2 +1wöc +wört2h +2w1p +w2r +w3ro +2w1s +w3s2k +ws2t +2w1t +wti2 +w2u +1wuc +wul2 +wul3se +wun2s +4wur. +wur2fa +wur2s +1wurst +wus2 +wus3te +1wu4t1 +1wüh +wül2 +wün3 +2w1w +x1a +1xa. +2xa2b +1x2ad +1xae +xa1fl +1x2ag +x3a2m +x2anz +1x2as +2x1b +2xc +x1ce +x1ch +x1cl +4x1d +1xe +x1e4g +2xek +xe2l +xe3lei +x1em +3x2em. +x2en +xen3s2 +x2er. +x2ere +xers2 +3xes +2x3eu +2x1f +2x1g +2x1h +xib4 +xi1c +xich2 +xide2 +xi2d1em +x1i2do +xie3l +xi3g +xil1 +xil2a +xi2lo +xi2lu +xin3s2 +x2is1 +xis2c +xi2se +xi2so2 +xis3s +xis4tä +xi2su +x1i2tu +x1j +2x1k2 +2x2l2 +x3lä +x3le +2x1m +2x1n +x1or +4x1p +xpor6ter +x1q +2x1r +2x3s2 +4x1t +x2t1a +xt2as +xt1ä +x2tän +xtblo4 +x2t1e2d +x2t1ei +x4tent +x2t1er2f +x2t3ev +xtfi4 +x2t1il2l +xtra3b4 +x2t3ran +xt3s2 +xt1u +x3tur +1xu +xu1a +x1u2n +xu2s +2xv +2x1w +2xy +3xy. +3xys +x1z +2y1ab +1yac +y1al. +y1a2m +yan2g +y1ank +y1ät +y1b +y1c2 +y2chi +y3chis +ych3n +y1d4 +y1e +y2ef +yen4n +y2ere +y2es. +yes2p +ye2th +y1f2 +y1g +ygi2 +ygie5 +yg2l +y1h +yhr2 +y1i4 +y1j +y1k2 +yke3n +yk3s2 +y1l +y2l3a2m +yl4ante +yl3c +y4le. +yli4n +yloni1 +yl3s2 +y2l1u +yma4t +ym3p4 +ympi1 +y2n1o +yno4d +ynt2 +y1nu +y1of +yom2 +yon4i +y1ont +y1ou +y1p +ypa2 +yp3an +ype2 +y2pf +y3ph +y2p1in +ypo3 +y4p3s +y1r +y3r2e +y3ri +yri2a +yri1e +y3r4o +yrr2 +ys2an +y3s2c +yse1 +y3s2h +y4s3l +ysme3 +ys2po +ys1pr +ys3t4 +y1s4ty +y2s1u2 +y3s2z +y1t2 +y2te. +y2tes +y3to1 +yu2r +yure3 +y1v +y1w +y1y +y1z2 +2z3a2b +zab3l +za1c +z1a2d +za3de +2z1af +za3gr +3zah +2z3a2k +zale3 +2z1all +2z1am +3zambiq +z1an +za2na +2z3anf +3zani +2z3anl +2zarb +2zarc +z1arm +z1arti +zar2tr +2z1arz +z1as +za1st4 +2z3at3 +3zaub +z1au2f +z3aug +3zaun +zä2 +2z1äc +3z2äh +2z1äm +z1ärg +z1ärm +4z3b4 +zbü1b +zbübe3 +2z3c +2z3d2 +zdan2 +zdä1 +2z1e2ben +2zecho +2z1eck +ze1e +2z1eff +zeik4 +zei3la +zeile4 +2z1ein +zei3s4 +zeist4 +zei2t1a +zeit5end +zei4t3er +zei2tr +ze2l1a2 +ze2len +ze2l1er +ze2l1in +zell2a +zel3sz +zel3t2h +zelu2 +2z1emp +5zen. +ze4n3ac +zen3n +ze2no +zens2e +zen4sem +3zent +zent3s +zen4zer +z2er. +ze2r3a +ze2re2b +2z1ergä +4z3ergeb +z3erhal +2zerhö +zerin4t +zerk2 +z2erl. +2zerlö +z2ern +zer4neb +zer4n3ei +ze2ro +2z1erq +zers2 +2z1ersa +4z3erste +zert1a4 +zer4t3ag +zert4an +zer6tere +zer4tin +zer6t5rau +4zerwei +2z1erz +3z2erza +ze2sä +ze3sc +zes1e +zes1i +ze3sku +ze2sp +zessen4 +zes6s5end +zes2sp +zes2st +ze2s3t +ze3sta +ze2tr +2zetts +2z1ex +2z1f4 +2z1g2 +zger2a +2z1h +z2hen +zhir3 +zi3alo +zi3ar +zid3r +zi1erh +ziers1 +zi1es. +zil2e +2z1imp +zin2e +zin4er +2z1inf +2z1inh +zin1it +zin2sa +zin4ser +4zinsuf +2z1inv +zi2o3 +zi3op +zirk2 +zirk6s +zi3s2z +zi1t2h +2z1j +2z3k4 +2z1l2 +2z1m2 +zme2e +2z3n4 +2z1ob +2z1of +zo2gl +2z1oh +3zol +zon4ter +zo2o +2zope +z1or +zo2ri +zor4ne +2z1osz +2z3ot +2zö2f +z1öl +2z3p4 +2z1q +2z3r2 +4z1s2 +z3sa +z3sh +z3sk +z3sz +2z1t +z2t1au +z4tehe +z3t2her +zt3ho +zt1ins +z3tö +zt3rec +zt3s2 +z3tü +zu1 +zu3a +zub4 +zu4ch +zu3cke +zud4 +zudi4 +zu2el +zu3f4 +zu2g1ar +zu4gent +zu3gl +zug1un +2z1uhr +zu3k +2z1um. +zumen2 +2zumf +2zumg +2zuml +2z1ums +zun2e +zung4 +2zunt +zup2fi +zu3r2a +z1urk +2z1url +2z1urs +2z1urt +zu3s4 +zu5t2 +zuz2 +2züb +zür1c +2z1v +zw2 +z1wac +4zwah +zwan2d1 +z2wang +z1war +2zwas +4zwäl +2zweg +z2weig +z1weis +2z1wel +2z1wen +2z1wer +z2werg +2z1wes +2zwet +4zwir +z2wit +2z1wo +z1wör +z1wur +2z1wü +4z1z +z3z4a +zzi1s4 +z3z2o +zz2ö diff --git a/test/unit/hyph-en-us.pat b/test/unit/hyph-en-us.pat new file mode 100644 index 00000000..7d54d034 --- /dev/null +++ b/test/unit/hyph-en-us.pat @@ -0,0 +1,4960 @@ +% version of 2005-05-30. +% Patterns of March 1, 1990. +% +% Copyright (C) 1990, 2004, 2005 Gerard D.C. Kuiken. +% Copying and distribution of this file, with or without modification, +% are permitted in any medium without royalty provided the copyright +% notice and this notice are preserved. +% +% Needs extended pattern memory. +% Hyphenation trie becomes 7283 with 377 ops. +% +% These patterns are based on the Hyphenation Exception Log +% published in TUGboat, Volume 10 (1989), No. 3, pp. 337-341, +% and a large number of incorrectly hyphenated words not yet published. +% If added to Liang's before the closing bracket } of \patterns, +% the patterns run errorfree as far as known at this moment. +% +% These patterns find all admissible hyphens of the words in +% the Exception Log. ushyph2.tex is a smaller set. +% +% Please send bugs or suggestions to tex-live (at) tug.org. +% +.ach4 +.ad4der +.af1t +.al3t +.am5at +.an5c +.ang4 +.ani5m +.ant4 +.an3te +.anti5s +.ar5s +.ar4tie +.ar4ty +.as3c +.as1p +.as1s +.aster5 +.atom5 +.au1d +.av4i +.awn4 +.ba4g +.ba5na +.bas4e +.ber4 +.be5ra +.be3sm +.be5sto +.bri2 +.but4ti +.cam4pe +.can5c +.capa5b +.car5ol +.ca4t +.ce4la +.ch4 +.chill5i +.ci2 +.cit5r +.co3e +.co4r +.cor5ner +.de4moi +.de3o +.de3ra +.de3ri +.des4c +.dictio5 +.do4t +.du4c +.dumb5 +.earth5 +.eas3i +.eb4 +.eer4 +.eg2 +.el5d +.el3em +.enam3 +.en3g +.en3s +.eq5ui5t +.er4ri +.es3 +.eu3 +.eye5 +.fes3 +.for5mer +.ga2 +.ge2 +.gen3t4 +.ge5og +.gi5a +.gi4b +.go4r +.hand5i +.han5k +.he2 +.hero5i +.hes3 +.het3 +.hi3b +.hi3er +.hon5ey +.hon3o +.hov5 +.id4l +.idol3 +.im3m +.im5pin +.in1 +.in3ci +.ine2 +.in2k +.in3s +.ir5r +.is4i +.ju3r +.la4cy +.la4m +.lat5er +.lath5 +.le2 +.leg5e +.len4 +.lep5 +.lev1 +.li4g +.lig5a +.li2n +.li3o +.li4t +.mag5a5 +.mal5o +.man5a +.mar5ti +.me2 +.mer3c +.me5ter +.mis1 +.mist5i +.mon3e +.mo3ro +.mu5ta +.muta5b +.ni4c +.od2 +.odd5 +.of5te +.or5ato +.or3c +.or1d +.or3t +.os3 +.os4tl +.oth3 +.out3 +.ped5al +.pe5te +.pe5tit +.pi4e +.pio5n +.pi2t +.pre3m +.ra4c +.ran4t +.ratio5na +.ree2 +.re5mit +.res2 +.re5stat +.ri4g +.rit5u +.ro4q +.ros5t +.row5d +.ru4d +.sci3e +.self5 +.sell5 +.se2n +.se5rie +.sh2 +.si2 +.sing4 +.st4 +.sta5bl +.sy2 +.ta4 +.te4 +.ten5an +.th2 +.ti2 +.til4 +.tim5o5 +.ting4 +.tin5k +.ton4a +.to4p +.top5i +.tou5s +.trib5ut +.un1a +.un3ce +.under5 +.un1e +.un5k +.un5o +.un3u +.up3 +.ure3 +.us5a +.ven4de +.ve5ra +.wil5i +.ye4 +4ab. +a5bal +a5ban +abe2 +ab5erd +abi5a +ab5it5ab +ab5lat +ab5o5liz +4abr +ab5rog +ab3ul +a4car +ac5ard +ac5aro +a5ceou +ac1er +a5chet +4a2ci +a3cie +ac1in +a3cio +ac5rob +act5if +ac3ul +ac4um +a2d +ad4din +ad5er. +2adi +a3dia +ad3ica +adi4er +a3dio +a3dit +a5diu +ad4le +ad3ow +ad5ran +ad4su +4adu +a3duc +ad5um +ae4r +aeri4e +a2f +aff4 +a4gab +aga4n +ag5ell +age4o +4ageu +ag1i +4ag4l +ag1n +a2go +3agog +ag3oni +a5guer +ag5ul +a4gy +a3ha +a3he +ah4l +a3ho +ai2 +a5ia +a3ic. +ai5ly +a4i4n +ain5in +ain5o +ait5en +a1j +ak1en +al5ab +al3ad +a4lar +4aldi +2ale +al3end +a4lenti +a5le5o +al1i +al4ia. +ali4e +al5lev +4allic +4alm +a5log. +a4ly. +4alys +5a5lyst +5alyt +3alyz +4ama +am5ab +am3ag +ama5ra +am5asc +a4matis +a4m5ato +am5era +am3ic +am5if +am5ily +am1in +ami4no +a2mo +a5mon +amor5i +amp5en +a2n +an3age +3analy +a3nar +an3arc +anar4i +a3nati +4and +ande4s +an3dis +an1dl +an4dow +a5nee +a3nen +an5est. +a3neu +2ang +ang5ie +an1gl +a4n1ic +a3nies +an3i3f +an4ime +a5nimi +a5nine +an3io +a3nip +an3ish +an3it +a3niu +an4kli +5anniz +ano4 +an5ot +anoth5 +an2sa +an4sco +an4sn +an2sp +ans3po +an4st +an4sur +antal4 +an4tie +4anto +an2tr +an4tw +an3ua +an3ul +a5nur +4ao +apar4 +ap5at +ap5ero +a3pher +4aphi +a4pilla +ap5illar +ap3in +ap3ita +a3pitu +a2pl +apoc5 +ap5ola +apor5i +apos3t +aps5es +a3pu +aque5 +2a2r +ar3act +a5rade +ar5adis +ar3al +a5ramete +aran4g +ara3p +ar4at +a5ratio +ar5ativ +a5rau +ar5av4 +araw4 +arbal4 +ar4chan +ar5dine +ar4dr +ar5eas +a3ree +ar3ent +a5ress +ar4fi +ar4fl +ar1i +ar5ial +ar3ian +a3riet +ar4im +ar5inat +ar3io +ar2iz +ar2mi +ar5o5d +a5roni +a3roo +ar2p +ar3q +arre4 +ar4sa +ar2sh +4as. +as4ab +as3ant +ashi4 +a5sia. +a3sib +a3sic +5a5si4t +ask3i +as4l +a4soc +as5ph +as4sh +as3ten +as1tr +asur5a +a2ta +at3abl +at5ac +at3alo +at5ap +ate5c +at5ech +at3ego +at3en. +at3era +ater5n +a5terna +at3est +at5ev +4ath +ath5em +a5then +at4ho +ath5om +4ati. +a5tia +at5i5b +at1ic +at3if +ation5ar +at3itu +a4tog +a2tom +at5omiz +a4top +a4tos +a1tr +at5rop +at4sk +at4tag +at5te +at4th +a2tu +at5ua +at5ue +at3ul +at3ura +a2ty +au4b +augh3 +au3gu +au4l2 +aun5d +au3r +au5sib +aut5en +au1th +a2va +av3ag +a5van +ave4no +av3era +av5ern +av5ery +av1i +avi4er +av3ig +av5oc +a1vor +3away +aw3i +aw4ly +aws4 +ax4ic +ax4id +ay5al +aye4 +ays4 +azi4er +azz5i +5ba. +bad5ger +ba4ge +bal1a +ban5dag +ban4e +ban3i +barbi5 +bari4a +bas4si +1bat +ba4z +2b1b +b2be +b3ber +bbi4na +4b1d +4be. +beak4 +beat3 +4be2d +be3da +be3de +be3di +be3gi +be5gu +1bel +be1li +be3lo +4be5m +be5nig +be5nu +4bes4 +be3sp +be5str +3bet +bet5iz +be5tr +be3tw +be3w +be5yo +2bf +4b3h +bi2b +bi4d +3bie +bi5en +bi4er +2b3if +1bil +bi3liz +bina5r4 +bin4d +bi5net +bi3ogr +bi5ou +bi2t +3bi3tio +bi3tr +3bit5ua +b5itz +b1j +bk4 +b2l2 +blath5 +b4le. +blen4 +5blesp +b3lis +b4lo +blun4t +4b1m +4b3n +bne5g +3bod +bod3i +bo4e +bol3ic +bom4bi +bon4a +bon5at +3boo +5bor. +4b1ora +bor5d +5bore +5bori +5bos4 +b5ota +both5 +bo4to +bound3 +4bp +4brit +broth3 +2b5s2 +bsor4 +2bt +bt4l +b4to +b3tr +buf4fer +bu4ga +bu3li +bumi4 +bu4n +bunt4i +bu3re +bus5ie +buss4e +5bust +4buta +3butio +b5uto +b1v +4b5w +5by. +bys4 +1ca +cab3in +ca1bl +cach4 +ca5den +4cag4 +2c5ah +ca3lat +cal4la +call5in +4calo +can5d +can4e +can4ic +can5is +can3iz +can4ty +cany4 +ca5per +car5om +cast5er +cas5tig +4casy +ca4th +4cativ +cav5al +c3c +ccha5 +cci4a +ccompa5 +ccon4 +ccou3t +2ce. +4ced. +4ceden +3cei +5cel. +3cell +1cen +3cenc +2cen4e +4ceni +3cent +3cep +ce5ram +4cesa +3cessi +ces5si5b +ces5t +cet4 +c5e4ta +cew4 +2ch +4ch. +4ch3ab +5chanic +ch5a5nis +che2 +cheap3 +4ched +che5lo +3chemi +ch5ene +ch3er. +ch3ers +4ch1in +5chine. +ch5iness +5chini +5chio +3chit +chi2z +3cho2 +ch4ti +1ci +3cia +ci2a5b +cia5r +ci5c +4cier +5cific. +4cii +ci4la +3cili +2cim +2cin +c4ina +3cinat +cin3em +c1ing +c5ing. +5cino +cion4 +4cipe +ci3ph +4cipic +4cista +4cisti +2c1it +cit3iz +5ciz +ck1 +ck3i +1c4l4 +4clar +c5laratio +5clare +cle4m +4clic +clim4 +cly4 +c5n +1co +co5ag +coe2 +2cog +co4gr +coi4 +co3inc +col5i +5colo +col3or +com5er +con4a +c4one +con3g +con5t +co3pa +cop3ic +co4pl +4corb +coro3n +cos4e +cov1 +cove4 +cow5a +coz5e +co5zi +c1q +cras5t +5crat. +5cratic +cre3at +5cred +4c3reta +cre4v +cri2 +cri5f +c4rin +cris4 +5criti +cro4pl +crop5o +cros4e +cru4d +4c3s2 +2c1t +cta4b +ct5ang +c5tant +c2te +c3ter +c4ticu +ctim3i +ctu4r +c4tw +cud5 +c4uf +c4ui +cu5ity +5culi +cul4tis +3cultu +cu2ma +c3ume +cu4mi +3cun +cu3pi +cu5py +cur5a4b +cu5ria +1cus +cuss4i +3c4ut +cu4tie +4c5utiv +4cutr +1cy +cze4 +1d2a +5da. +2d3a4b +dach4 +4daf +2dag +da2m2 +dan3g +dard5 +dark5 +4dary +3dat +4dativ +4dato +5dav4 +dav5e +5day +d1b +d5c +d1d4 +2de. +deaf5 +deb5it +de4bon +decan4 +de4cil +de5com +2d1ed +4dee. +de5if +deli4e +del5i5q +de5lo +d4em +5dem. +3demic +dem5ic. +de5mil +de4mons +demor5 +1den +de4nar +de3no +denti5f +de3nu +de1p +de3pa +depi4 +de2pu +d3eq +d4erh +5derm +dern5iz +der5s +des2 +d2es. +de1sc +de2s5o +des3ti +de3str +de4su +de1t +de2to +de1v +dev3il +4dey +4d1f +d4ga +d3ge4t +dg1i +d2gy +d1h2 +5di. +1d4i3a +dia5b +di4cam +d4ice +3dict +3did +5di3en +d1if +di3ge +di4lato +d1in +1dina +3dine. +5dini +di5niz +1dio +dio5g +di4pl +dir2 +di1re +dirt5i +dis1 +5disi +d4is3t +d2iti +1di1v +d1j +d5k2 +4d5la +3dle. +3dled +3dles. +4dless +2d3lo +4d5lu +2dly +d1m +4d1n4 +1do +3do. +do5de +5doe +2d5of +d4og +do4la +doli4 +do5lor +dom5iz +do3nat +doni4 +doo3d +dop4p +d4or +3dos +4d5out +do4v +3dox +d1p +1dr +drag5on +4drai +dre4 +drea5r +5dren +dri4b +dril4 +dro4p +4drow +5drupli +4dry +2d1s2 +ds4p +d4sw +d4sy +d2th +1du +d1u1a +du2c +d1uca +duc5er +4duct. +4ducts +du5el +du4g +d3ule +dum4be +du4n +4dup +du4pe +d1v +d1w +d2y +5dyn +dy4se +dys5p +e1a4b +e3act +ead1 +ead5ie +ea4ge +ea5ger +ea4l +eal5er +eal3ou +eam3er +e5and +ear3a +ear4c +ear5es +ear4ic +ear4il +ear5k +ear2t +eart3e +ea5sp +e3ass +east3 +ea2t +eat5en +eath3i +e5atif +e4a3tu +ea2v +eav3en +eav5i +eav5o +2e1b +e4bel. +e4bels +e4ben +e4bit +e3br +e4cad +ecan5c +ecca5 +e1ce +ec5essa +ec2i +e4cib +ec5ificat +ec5ifie +ec5ify +ec3im +eci4t +e5cite +e4clam +e4clus +e2col +e4comm +e4compe +e4conc +e2cor +ec3ora +eco5ro +e1cr +e4crem +ec4tan +ec4te +e1cu +e4cul +ec3ula +2e2da +4ed3d +e4d1er +ede4s +4edi +e3dia +ed3ib +ed3ica +ed3im +ed1it +edi5z +4edo +e4dol +edon2 +e4dri +e4dul +ed5ulo +ee2c +eed3i +ee2f +eel3i +ee4ly +ee2m +ee4na +ee4p1 +ee2s4 +eest4 +ee4ty +e5ex +e1f +e4f3ere +1eff +e4fic +5efici +efil4 +e3fine +ef5i5nite +3efit +efor5es +e4fuse. +4egal +eger4 +eg5ib +eg4ic +eg5ing +e5git5 +eg5n +e4go. +e4gos +eg1ul +e5gur +5egy +e1h4 +eher4 +ei2 +e5ic +ei5d +eig2 +ei5gl +e3imb +e3inf +e1ing +e5inst +eir4d +eit3e +ei3th +e5ity +e1j +e4jud +ej5udi +eki4n +ek4la +e1la +e4la. +e4lac +elan4d +el5ativ +e4law +elaxa4 +e3lea +el5ebra +5elec +e4led +el3ega +e5len +e4l1er +e1les +el2f +el2i +e3libe +e4l5ic. +el3ica +e3lier +el5igib +e5lim +e4l3ing +e3lio +e2lis +el5ish +e3liv3 +4ella +el4lab +ello4 +e5loc +el5og +el3op. +el2sh +el4ta +e5lud +el5ug +e4mac +e4mag +e5man +em5ana +em5b +e1me +e2mel +e4met +em3ica +emi4e +em5igra +em1in2 +em5ine +em3i3ni +e4mis +em5ish +e5miss +em3iz +5emniz +emo4g +emoni5o +em3pi +e4mul +em5ula +emu3n +e3my +en5amo +e4nant +ench4er +en3dic +e5nea +e5nee +en3em +en5ero +en5esi +en5est +en3etr +e3new +en5ics +e5nie +e5nil +e3nio +en3ish +en3it +e5niu +5eniz +4enn +4eno +eno4g +e4nos +en3ov +en4sw +ent5age +4enthes +en3ua +en5uf +e3ny. +4en3z +e5of +eo2g +e4oi4 +e3ol +eop3ar +e1or +eo3re +eo5rol +eos4 +e4ot +eo4to +e5out +e5ow +e2pa +e3pai +ep5anc +e5pel +e3pent +ep5etitio +ephe4 +e4pli +e1po +e4prec +ep5reca +e4pred +ep3reh +e3pro +e4prob +ep4sh +ep5ti5b +e4put +ep5uta +e1q +equi3l +e4q3ui3s +er1a +era4b +4erand +er3ar +4erati. +2erb +er4bl +er3ch +er4che +2ere. +e3real +ere5co +ere3in +er5el. +er3emo +er5ena +er5ence +4erene +er3ent +ere4q +er5ess +er3est +eret4 +er1h +er1i +e1ria4 +5erick +e3rien +eri4er +er3ine +e1rio +4erit +er4iu +eri4v +e4riva +er3m4 +er4nis +4ernit +5erniz +er3no +2ero +er5ob +e5roc +ero4r +er1ou +er1s +er3set +ert3er +4ertl +er3tw +4eru +eru4t +5erwau +e1s4a +e4sage. +e4sages +es2c +e2sca +es5can +e3scr +es5cu +e1s2e +e2sec +es5ecr +es5enc +e4sert. +e4serts +e4serva +4esh +e3sha +esh5en +e1si +e2sic +e2sid +es5iden +es5igna +e2s5im +es4i4n +esis4te +esi4u +e5skin +es4mi +e2sol +es3olu +e2son +es5ona +e1sp +es3per +es5pira +es4pre +2ess +es4si4b +estan4 +es3tig +es5tim +4es2to +e3ston +2estr +e5stro +estruc5 +e2sur +es5urr +es4w +eta4b +eten4d +e3teo +ethod3 +et1ic +e5tide +etin4 +eti4no +e5tir +e5titio +et5itiv +4etn +et5ona +e3tra +e3tre +et3ric +et5rif +et3rog +et5ros +et3ua +et5ym +et5z +4eu +e5un +e3up +eu3ro +eus4 +eute4 +euti5l +eu5tr +eva2p5 +e2vas +ev5ast +e5vea +ev3ell +evel3o +e5veng +even4i +ev1er +e5verb +e1vi +ev3id +evi4l +e4vin +evi4v +e5voc +e5vu +e1wa +e4wag +e5wee +e3wh +ewil5 +ew3ing +e3wit +1exp +5eyc +5eye. +eys4 +1fa +fa3bl +fab3r +fa4ce +4fag +fain4 +fall5e +4fa4ma +fam5is +5far +far5th +fa3ta +fa3the +4fato +fault5 +4f5b +4fd +4fe. +feas4 +feath3 +fe4b +4feca +5fect +2fed +fe3li +fe4mo +fen2d +fend5e +fer1 +5ferr +fev4 +4f1f +f4fes +f4fie +f5fin. +f2f5is +f4fly +f2fy +4fh +1fi +fi3a +2f3ic. +4f3ical +f3ican +4ficate +f3icen +fi3cer +fic4i +5ficia +5ficie +4fics +fi3cu +fi5del +fight5 +fil5i +fill5in +4fily +2fin +5fina +fin2d5 +fi2ne +f1in3g +fin4n +fis4ti +f4l2 +f5less +flin4 +flo3re +f2ly5 +4fm +4fn +1fo +5fon +fon4de +fon4t +fo2r +fo5rat +for5ay +fore5t +for4i +fort5a +fos5 +4f5p +fra4t +f5rea +fres5c +fri2 +fril4 +frol5 +2f3s +2ft +f4to +f2ty +3fu +fu5el +4fug +fu4min +fu5ne +fu3ri +fusi4 +fus4s +4futa +1fy +1ga +gaf4 +5gal. +3gali +ga3lo +2gam +ga5met +g5amo +gan5is +ga3niz +gani5za +4gano +gar5n4 +gass4 +gath3 +4gativ +4gaz +g3b +gd4 +2ge. +2ged +geez4 +gel4in +ge5lis +ge5liz +4gely +1gen +ge4nat +ge5niz +4geno +4geny +1geo +ge3om +g4ery +5gesi +geth5 +4geto +ge4ty +ge4v +4g1g2 +g2ge +g3ger +gglu5 +ggo4 +gh3in +gh5out +gh4to +5gi. +1gi4a +gia5r +g1ic +5gicia +g4ico +gien5 +5gies. +gil4 +g3imen +3g4in. +gin5ge +5g4ins +5gio +3gir +gir4l +g3isl +gi4u +5giv +3giz +gl2 +gla4 +glad5i +5glas +1gle +gli4b +g3lig +3glo +glo3r +g1m +g4my +gn4a +g4na. +gnet4t +g1ni +g2nin +g4nio +g1no +g4non +1go +3go. +gob5 +5goe +3g4o4g +go3is +gon2 +4g3o3na +gondo5 +go3ni +5goo +go5riz +gor5ou +5gos. +gov1 +g3p +1gr +4grada +g4rai +gran2 +5graph. +g5rapher +5graphic +4graphy +4gray +gre4n +4gress. +4grit +g4ro +gruf4 +gs2 +g5ste +gth3 +gu4a +3guard +2gue +5gui5t +3gun +3gus +4gu4t +g3w +1gy +2g5y3n +gy5ra +h3ab4l +hach4 +hae4m +hae4t +h5agu +ha3la +hala3m +ha4m +han4ci +han4cy +5hand. +han4g +hang5er +hang5o +h5a5niz +han4k +han4te +hap3l +hap5t +ha3ran +ha5ras +har2d +hard3e +har4le +harp5en +har5ter +has5s +haun4 +5haz +haz3a +h1b +1head +3hear +he4can +h5ecat +h4ed +he5do5 +he3l4i +hel4lis +hel4ly +h5elo +hem4p +he2n +hena4 +hen5at +heo5r +hep5 +h4era +hera3p +her4ba +here5a +h3ern +h5erou +h3ery +h1es +he2s5p +he4t +het4ed +heu4 +h1f +h1h +hi5an +hi4co +high5 +h4il2 +himer4 +h4ina +hion4e +hi4p +hir4l +hi3ro +hir4p +hir4r +his3el +his4s +hith5er +hi2v +4hk +4h1l4 +hlan4 +h2lo +hlo3ri +4h1m +hmet4 +2h1n +h5odiz +h5ods +ho4g +hoge4 +hol5ar +3hol4e +ho4ma +home3 +hon4a +ho5ny +3hood +hoon4 +hor5at +ho5ris +hort3e +ho5ru +hos4e +ho5sen +hos1p +1hous +house3 +hov5el +4h5p +4hr4 +hree5 +hro5niz +hro3po +4h1s2 +h4sh +h4tar +ht1en +ht5es +h4ty +hu4g +hu4min +hun5ke +hun4t +hus3t4 +hu4t +h1w +h4wart +hy3pe +hy3ph +hy2s +2i1a +i2al +iam4 +iam5ete +i2an +4ianc +ian3i +4ian4t +ia5pe +iass4 +i4ativ +ia4tric +i4atu +ibe4 +ib3era +ib5ert +ib5ia +ib3in +ib5it. +ib5ite +i1bl +ib3li +i5bo +i1br +i2b5ri +i5bun +4icam +5icap +4icar +i4car. +i4cara +icas5 +i4cay +iccu4 +4iceo +4ich +2ici +i5cid +ic5ina +i2cip +ic3ipa +i4cly +i2c5oc +4i1cr +5icra +i4cry +ic4te +ictu2 +ic4t3ua +ic3ula +ic4um +ic5uo +i3cur +2id +i4dai +id5anc +id5d +ide3al +ide4s +i2di +id5ian +idi4ar +i5die +id3io +idi5ou +id1it +id5iu +i3dle +i4dom +id3ow +i4dr +i2du +id5uo +2ie4 +ied4e +5ie5ga +ield3 +ien5a4 +ien4e +i5enn +i3enti +i1er. +i3esc +i1est +i3et +4if. +if5ero +iff5en +if4fr +4ific. +i3fie +i3fl +4ift +2ig +iga5b +ig3era +ight3i +4igi +i3gib +ig3il +ig3in +ig3it +i4g4l +i2go +ig3or +ig5ot +i5gre +igu5i +ig1ur +i3h +4i5i4 +i3j +4ik +i1la +il3a4b +i4lade +i2l5am +ila5ra +i3leg +il1er +ilev4 +il5f +il1i +il3ia +il2ib +il3io +il4ist +2ilit +il2iz +ill5ab +4iln +il3oq +il4ty +il5ur +il3v +i4mag +im3age +ima5ry +imenta5r +4imet +im1i +im5ida +imi5le +i5mini +4imit +im4ni +i3mon +i2mu +im3ula +2in. +i4n3au +4inav +incel4 +in3cer +4ind +in5dling +2ine +i3nee +iner4ar +i5ness +4inga +4inge +in5gen +4ingi +in5gling +4ingo +4ingu +2ini +i5ni. +i4nia +in3io +in1is +i5nite. +5initio +in3ity +4ink +4inl +2inn +2i1no +i4no4c +ino4s +i4not +2ins +in3se +insur5a +2int. +2in4th +in1u +i5nus +4iny +2io +4io. +ioge4 +io2gr +i1ol +io4m +ion3at +ion4ery +ion3i +io5ph +ior3i +i4os +io5th +i5oti +io4to +i4our +2ip +ipe4 +iphras4 +ip3i +ip4ic +ip4re4 +ip3ul +i3qua +iq5uef +iq3uid +iq3ui3t +4ir +i1ra +ira4b +i4rac +ird5e +ire4de +i4ref +i4rel4 +i4res +ir5gi +ir1i +iri5de +ir4is +iri3tu +5i5r2iz +ir4min +iro4g +5iron. +ir5ul +2is. +is5ag +is3ar +isas5 +2is1c +is3ch +4ise +is3er +3isf +is5han +is3hon +ish5op +is3ib +isi4d +i5sis +is5itiv +4is4k +islan4 +4isms +i2so +iso5mer +is1p +is2pi +is4py +4is1s +is4sal +issen4 +is4ses +is4ta. +is1te +is1ti +ist4ly +4istral +i2su +is5us +4ita. +ita4bi +i4tag +4ita5m +i3tan +i3tat +2ite +it3era +i5teri +it4es +2ith +i1ti +4itia +4i2tic +it3ica +5i5tick +it3ig +it5ill +i2tim +2itio +4itis +i4tism +i2t5o5m +4iton +i4tram +it5ry +4itt +it3uat +i5tud +it3ul +4itz. +i1u +2iv +iv3ell +iv3en. +i4v3er. +i4vers. +iv5il. +iv5io +iv1it +i5vore +iv3o3ro +i4v3ot +4i5w +ix4o +4iy +4izar +izi4 +5izont +5ja +jac4q +ja4p +1je +jer5s +4jestie +4jesty +jew3 +jo4p +5judg +3ka. +k3ab +k5ag +kais4 +kal4 +k1b +k2ed +1kee +ke4g +ke5li +k3en4d +k1er +kes4 +k3est. +ke4ty +k3f +kh4 +k1i +5ki. +5k2ic +k4ill +kilo5 +k4im +k4in. +kin4de +k5iness +kin4g +ki4p +kis4 +k5ish +kk4 +k1l +4kley +4kly +k1m +k5nes +1k2no +ko5r +kosh4 +k3ou +kro5n +4k1s2 +k4sc +ks4l +k4sy +k5t +k1w +lab3ic +l4abo +laci4 +l4ade +la3dy +lag4n +lam3o +3land +lan4dl +lan5et +lan4te +lar4g +lar3i +las4e +la5tan +4lateli +4lativ +4lav +la4v4a +2l1b +lbin4 +4l1c2 +lce4 +l3ci +2ld +l2de +ld4ere +ld4eri +ldi4 +ld5is +l3dr +l4dri +le2a +le4bi +left5 +5leg. +5legg +le4mat +lem5atic +4len. +3lenc +5lene. +1lent +le3ph +le4pr +lera5b +ler4e +3lerg +3l4eri +l4ero +les2 +le5sco +5lesq +3less +5less. +l3eva +lev4er. +lev4era +lev4ers +3ley +4leye +2lf +l5fr +4l1g4 +l5ga +lgar3 +l4ges +lgo3 +2l3h +li4ag +li2am +liar5iz +li4as +li4ato +li5bi +5licio +li4cor +4lics +4lict. +l4icu +l3icy +l3ida +lid5er +3lidi +lif3er +l4iff +li4fl +5ligate +3ligh +li4gra +3lik +4l4i4l +lim4bl +lim3i +li4mo +l4im4p +l4ina +1l4ine +lin3ea +lin3i +link5er +li5og +4l4iq +lis4p +l1it +l2it. +5litica +l5i5tics +liv3er +l1iz +4lj +lka3 +l3kal +lka4t +l1l +l4law +l2le +l5lea +l3lec +l3leg +l3lel +l3le4n +l3le4t +ll2i +l2lin4 +l5lina +ll4o +lloqui5 +ll5out +l5low +2lm +l5met +lm3ing +l4mod +lmon4 +2l1n2 +3lo. +lob5al +lo4ci +4lof +3logic +l5ogo +3logu +lom3er +5long +lon4i +l3o3niz +lood5 +5lope. +lop3i +l3opm +lora4 +lo4rato +lo5rie +lor5ou +5los. +los5et +5losophiz +5losophy +los4t +lo4ta +loun5d +2lout +4lov +2lp +lpa5b +l3pha +l5phi +lp5ing +l3pit +l4pl +l5pr +4l1r +2l1s2 +l4sc +l2se +l4sie +4lt +lt5ag +ltane5 +l1te +lten4 +ltera4 +lth3i +l5ties. +ltis4 +l1tr +ltu2 +ltur3a +lu5a +lu3br +luch4 +lu3ci +lu3en +luf4 +lu5id +lu4ma +5lumi +l5umn. +5lumnia +lu3o +luo3r +4lup +luss4 +lus3te +1lut +l5ven +l5vet4 +2l1w +1ly +4lya +4lyb +ly5me +ly3no +2lys4 +l5yse +1ma +2mab +ma2ca +ma5chine +ma4cl +mag5in +5magn +2mah +maid5 +4mald +ma3lig +ma5lin +mal4li +mal4ty +5mania +man5is +man3iz +4map +ma5rine. +ma5riz +mar4ly +mar3v +ma5sce +mas4e +mas1t +5mate +math3 +ma3tis +4matiza +4m1b +mba4t5 +m5bil +m4b3ing +mbi4v +4m5c +4me. +2med +4med. +5media +me3die +m5e5dy +me2g +mel5on +mel4t +me2m +mem1o3 +1men +men4a +men5ac +men4de +4mene +men4i +mens4 +mensu5 +3ment +men4te +me5on +m5ersa +2mes +3mesti +me4ta +met3al +me1te +me5thi +m4etr +5metric +me5trie +me3try +me4v +4m1f +2mh +5mi. +mi3a +mid4a +mid4g +mig4 +3milia +m5i5lie +m4ill +min4a +3mind +m5inee +m4ingl +min5gli +m5ingly +min4t +m4inu +miot4 +m2is +mis4er. +mis5l +mis4ti +m5istry +4mith +m2iz +4mk +4m1l +m1m +mma5ry +4m1n +mn4a +m4nin +mn4o +1mo +4mocr +5mocratiz +mo2d1 +mo4go +mois2 +moi5se +4mok +mo5lest +mo3me +mon5et +mon5ge +moni3a +mon4ism +mon4ist +mo3niz +monol4 +mo3ny. +mo2r +4mora. +mos2 +mo5sey +mo3sp +moth3 +m5ouf +3mous +mo2v +4m1p +mpara5 +mpa5rab +mpar5i +m3pet +mphas4 +m2pi +mpi4a +mp5ies +m4p1in +m5pir +mp5is +mpo3ri +mpos5ite +m4pous +mpov5 +mp4tr +m2py +4m3r +4m1s2 +m4sh +m5si +4mt +1mu +mula5r4 +5mult +multi3 +3mum +mun2 +4mup +mu4u +4mw +1na +2n1a2b +n4abu +4nac. +na4ca +n5act +nag5er. +nak4 +na4li +na5lia +4nalt +na5mit +n2an +nanci4 +nan4it +nank4 +nar3c +4nare +nar3i +nar4l +n5arm +n4as +nas4c +nas5ti +n2at +na3tal +nato5miz +n2au +nau3se +3naut +nav4e +4n1b4 +ncar5 +n4ces. +n3cha +n5cheo +n5chil +n3chis +nc1in +nc4it +ncour5a +n1cr +n1cu +n4dai +n5dan +n1de +nd5est. +ndi4b +n5d2if +n1dit +n3diz +n5duc +ndu4r +nd2we +2ne. +n3ear +ne2b +neb3u +ne2c +5neck +2ned +ne4gat +neg5ativ +5nege +ne4la +nel5iz +ne5mi +ne4mo +1nen +4nene +3neo +ne4po +ne2q +n1er +nera5b +n4erar +n2ere +n4er5i +ner4r +1nes +2nes. +4nesp +2nest +4nesw +3netic +ne4v +n5eve +ne4w +n3f +n4gab +n3gel +nge4n4e +n5gere +n3geri +ng5ha +n3gib +ng1in +n5git +n4gla +ngov4 +ng5sh +n1gu +n4gum +n2gy +4n1h4 +nha4 +nhab3 +nhe4 +3n4ia +ni3an +ni4ap +ni3ba +ni4bl +ni4d +ni5di +ni4er +ni2fi +ni5ficat +n5igr +nik4 +n1im +ni3miz +n1in +5nine. +nin4g +ni4o +5nis. +nis4ta +n2it +n4ith +3nitio +n3itor +ni3tr +n1j +4nk2 +n5kero +n3ket +nk3in +n1kl +4n1l +n5m +nme4 +nmet4 +4n1n2 +nne4 +nni3al +nni4v +nob4l +no3ble +n5ocl +4n3o2d +3noe +4nog +noge4 +nois5i +no5l4i +5nologis +3nomic +n5o5miz +no4mo +no3my +no4n +non4ag +non5i +n5oniz +4nop +5nop5o5li +nor5ab +no4rary +4nosc +nos4e +nos5t +no5ta +1nou +3noun +nov3el3 +nowl3 +n1p4 +npi4 +npre4c +n1q +n1r +nru4 +2n1s2 +ns5ab +nsati4 +ns4c +n2se +n4s3es +nsid1 +nsig4 +n2sl +ns3m +n4soc +ns4pe +n5spi +nsta5bl +n1t +nta4b +nter3s +nt2i +n5tib +nti4er +nti2f +n3tine +n4t3ing +nti4p +ntrol5li +nt4s +ntu3me +nu1a +nu4d +nu5en +nuf4fe +n3uin +3nu3it +n4um +nu1me +n5umi +3nu4n +n3uo +nu3tr +n1v2 +n1w4 +nym4 +nyp4 +4nz +n3za +4oa +oad3 +o5a5les +oard3 +oas4e +oast5e +oat5i +ob3a3b +o5bar +obe4l +o1bi +o2bin +ob5ing +o3br +ob3ul +o1ce +och4 +o3chet +ocif3 +o4cil +o4clam +o4cod +oc3rac +oc5ratiz +ocre3 +5ocrit +octor5a +oc3ula +o5cure +od5ded +od3ic +odi3o +o2do4 +odor3 +od5uct. +od5ucts +o4el +o5eng +o3er +oe4ta +o3ev +o2fi +of5ite +ofit4t +o2g5a5r +og5ativ +o4gato +o1ge +o5gene +o5geo +o4ger +o3gie +1o1gis +og3it +o4gl +o5g2ly +3ogniz +o4gro +ogu5i +1ogy +2ogyn +o1h2 +ohab5 +oi2 +oic3es +oi3der +oiff4 +oig4 +oi5let +o3ing +oint5er +o5ism +oi5son +oist5en +oi3ter +o5j +2ok +o3ken +ok5ie +o1la +o4lan +olass4 +ol2d +old1e +ol3er +o3lesc +o3let +ol4fi +ol2i +o3lia +o3lice +ol5id. +o3li4f +o5lil +ol3ing +o5lio +o5lis. +ol3ish +o5lite +o5litio +o5liv +olli4e +ol5ogiz +olo4r +ol5pl +ol2t +ol3ub +ol3ume +ol3un +o5lus +ol2v +o2ly +om5ah +oma5l +om5atiz +om2be +om4bl +o2me +om3ena +om5erse +o4met +om5etry +o3mia +om3ic. +om3ica +o5mid +om1in +o5mini +5ommend +omo4ge +o4mon +om3pi +ompro5 +o2n +on1a +on4ac +o3nan +on1c +3oncil +2ond +on5do +o3nen +on5est +on4gu +on1ic +o3nio +on1is +o5niu +on3key +on4odi +on3omy +on3s +onspi4 +onspir5a +onsu4 +onten4 +on3t4i +ontif5 +on5um +onva5 +oo2 +ood5e +ood5i +oo4k +oop3i +o3ord +oost5 +o2pa +ope5d +op1er +3opera +4operag +2oph +o5phan +o5pher +op3ing +o3pit +o5pon +o4posi +o1pr +op1u +opy5 +o1q +o1ra +o5ra. +o4r3ag +or5aliz +or5ange +ore5a +o5real +or3ei +ore5sh +or5est. +orew4 +or4gu +4o5ria +or3ica +o5ril +or1in +o1rio +or3ity +o3riu +or2mi +orn2e +o5rof +or3oug +or5pe +3orrh +or4se +ors5en +orst4 +or3thi +or3thy +or4ty +o5rum +o1ry +os3al +os2c +os4ce +o3scop +4oscopi +o5scr +os4i4e +os5itiv +os3ito +os3ity +osi4u +os4l +o2so +os4pa +os4po +os2ta +o5stati +os5til +os5tit +o4tan +otele4g +ot3er. +ot5ers +o4tes +4oth +oth5esi +oth3i4 +ot3ic. +ot5ica +o3tice +o3tif +o3tis +oto5s +ou2 +ou3bl +ouch5i +ou5et +ou4l +ounc5er +oun2d +ou5v +ov4en +over4ne +over3s +ov4ert +o3vis +oviti4 +o5v4ol +ow3der +ow3el +ow5est +ow1i +own5i +o4wo +oy1a +1pa +pa4ca +pa4ce +pac4t +p4ad +5pagan +p3agat +p4ai +pain4 +p4al +pan4a +pan3el +pan4ty +pa3ny +pa1p +pa4pu +para5bl +par5age +par5di +3pare +par5el +p4a4ri +par4is +pa2te +pa5ter +5pathic +pa5thy +pa4tric +pav4 +3pay +4p1b +pd4 +4pe. +3pe4a +pear4l +pe2c +2p2ed +3pede +3pedi +pedia4 +ped4ic +p4ee +pee4d +pek4 +pe4la +peli4e +pe4nan +p4enc +pen4th +pe5on +p4era. +pera5bl +p4erag +p4eri +peri5st +per4mal +perme5 +p4ern +per3o +per3ti +pe5ru +per1v +pe2t +pe5ten +pe5tiz +4pf +4pg +4ph. +phar5i +phe3no +ph4er +ph4es. +ph1ic +5phie +ph5ing +5phisti +3phiz +ph2l +3phob +3phone +5phoni +pho4r +4phs +ph3t +5phu +1phy +pi3a +pian4 +pi4cie +pi4cy +p4id +p5ida +pi3de +5pidi +3piec +pi3en +pi4grap +pi3lo +pi2n +p4in. +pind4 +p4ino +3pi1o +pion4 +p3ith +pi5tha +pi2tu +2p3k2 +1p2l2 +3plan +plas5t +pli3a +pli5er +4plig +pli4n +ploi4 +plu4m +plum4b +4p1m +2p3n +po4c +5pod. +po5em +po3et5 +5po4g +poin2 +5point +poly5t +po4ni +po4p +1p4or +po4ry +1pos +pos1s +p4ot +po4ta +5poun +4p1p +ppa5ra +p2pe +p4ped +p5pel +p3pen +p3per +p3pet +ppo5site +pr2 +pray4e +5preci +pre5co +pre3em +pref5ac +pre4la +pre3r +p3rese +3press +pre5ten +pre3v +5pri4e +prin4t3 +pri4s +pris3o +p3roca +prof5it +pro3l +pros3e +pro1t +2p1s2 +p2se +ps4h +p4sib +2p1t +pt5a4b +p2te +p2th +pti3m +ptu4r +p4tw +pub3 +pue4 +puf4 +pul3c +pu4m +pu2n +pur4r +5pus +pu2t +5pute +put3er +pu3tr +put4ted +put4tin +p3w +qu2 +qua5v +2que. +3quer +3quet +2rab +ra3bi +rach4e +r5acl +raf5fi +raf4t +r2ai +ra4lo +ram3et +r2ami +rane5o +ran4ge +r4ani +ra5no +rap3er +3raphy +rar5c +rare4 +rar5ef +4raril +r2as +ration4 +rau4t +ra5vai +rav3el +ra5zie +r1b +r4bab +r4bag +rbi2 +rbi4f +r2bin +r5bine +rb5ing. +rb4o +r1c +r2ce +rcen4 +r3cha +rch4er +r4ci4b +rc4it +rcum3 +r4dal +rd2i +rdi4a +rdi4er +rdin4 +rd3ing +2re. +re1al +re3an +re5arr +5reav +re4aw +r5ebrat +rec5oll +rec5ompe +re4cre +2r2ed +re1de +re3dis +red5it +re4fac +re2fe +re5fer. +re3fi +re4fy +reg3is +re5it +re1li +re5lu +r4en4ta +ren4te +re1o +re5pin +re4posi +re1pu +r1er4 +r4eri +rero4 +re5ru +r4es. +re4spi +ress5ib +res2t +re5stal +re3str +re4ter +re4ti4z +re3tri +reu2 +re5uti +rev2 +re4val +rev3el +r5ev5er. +re5vers +re5vert +re5vil +rev5olu +re4wh +r1f +rfu4 +r4fy +rg2 +rg3er +r3get +r3gic +rgi4n +rg3ing +r5gis +r5git +r1gl +rgo4n +r3gu +rh4 +4rh. +4rhal +ri3a +ria4b +ri4ag +r4ib +rib3a +ric5as +r4ice +4rici +5ricid +ri4cie +r4ico +rid5er +ri3enc +ri3ent +ri1er +ri5et +rig5an +5rigi +ril3iz +5riman +rim5i +3rimo +rim4pe +r2ina +5rina. +rin4d +rin4e +rin4g +ri1o +5riph +riph5e +ri2pl +rip5lic +r4iq +r2is +r4is. +ris4c +r3ish +ris4p +ri3ta3b +r5ited. +rit5er. +rit5ers +rit3ic +ri2tu +rit5ur +riv5el +riv3et +riv3i +r3j +r3ket +rk4le +rk4lin +r1l +rle4 +r2led +r4lig +r4lis +rl5ish +r3lo4 +r1m +rma5c +r2me +r3men +rm5ers +rm3ing +r4ming. +r4mio +r3mit +r4my +r4nar +r3nel +r4ner +r5net +r3ney +r5nic +r1nis4 +r3nit +r3niv +rno4 +r4nou +r3nu +rob3l +r2oc +ro3cr +ro4e +ro1fe +ro5fil +rok2 +ro5ker +5role. +rom5ete +rom4i +rom4p +ron4al +ron4e +ro5n4is +ron4ta +1room +5root +ro3pel +rop3ic +ror3i +ro5ro +ros5per +ros4s +ro4the +ro4ty +ro4va +rov5el +rox5 +r1p +r4pea +r5pent +rp5er. +r3pet +rp4h4 +rp3ing +r3po +r1r4 +rre4c +rre4f +r4reo +rre4st +rri4o +rri4v +rron4 +rros4 +rrys4 +4rs2 +r1sa +rsa5ti +rs4c +r2se +r3sec +rse4cr +rs5er. +rs3es +rse5v2 +r1sh +r5sha +r1si +r4si4b +rson3 +r1sp +r5sw +rtach4 +r4tag +r3teb +rten4d +rte5o +r1ti +rt5ib +rti4d +r4tier +r3tig +rtil3i +rtil4l +r4tily +r4tist +r4tiv +r3tri +rtroph4 +rt4sh +ru3a +ru3e4l +ru3en +ru4gl +ru3in +rum3pl +ru2n +runk5 +run4ty +r5usc +ruti5n +rv4e +rvel4i +r3ven +rv5er. +r5vest +r3vey +r3vic +rvi4v +r3vo +r1w +ry4c +5rynge +ry3t +sa2 +2s1ab +5sack +sac3ri +s3act +5sai +salar4 +sal4m +sa5lo +sal4t +3sanc +san4de +s1ap +sa5ta +5sa3tio +sat3u +sau4 +sa5vor +5saw +4s5b +scan4t5 +sca4p +scav5 +s4ced +4scei +s4ces +sch2 +s4cho +3s4cie +5scin4d +scle5 +s4cli +scof4 +4scopy +scour5a +s1cu +4s5d +4se. +se4a +seas4 +sea5w +se2c3o +3sect +4s4ed +se4d4e +s5edl +se2g +seg3r +5sei +se1le +5self +5selv +4seme +se4mol +sen5at +4senc +sen4d +s5ened +sen5g +s5enin +4sentd +4sentl +sep3a3 +4s1er. +s4erl +ser4o +4servo +s1e4s +se5sh +ses5t +5se5um +5sev +sev3en +sew4i +5sex +4s3f +2s3g +s2h +2sh. +sh1er +5shev +sh1in +sh3io +3ship +shiv5 +sho4 +sh5old +shon3 +shor4 +short5 +4shw +si1b +s5icc +3side. +5sides +5sidi +si5diz +4signa +sil4e +4sily +2s1in +s2ina +5sine. +s3ing +1sio +5sion +sion5a +si2r +sir5a +1sis +3sitio +5siu +1siv +5siz +sk2 +4ske +s3ket +sk5ine +sk5ing +s1l2 +s3lat +s2le +slith5 +2s1m +s3ma +small3 +sman3 +smel4 +s5men +5smith +smol5d4 +s1n4 +1so +so4ce +soft3 +so4lab +sol3d2 +so3lic +5solv +3som +3s4on. +sona4 +son4g +s4op +5sophic +s5ophiz +s5ophy +sor5c +sor5d +4sov +so5vi +2spa +5spai +spa4n +spen4d +2s5peo +2sper +s2phe +3spher +spho5 +spil4 +sp5ing +4spio +s4ply +s4pon +spor4 +4spot +squal4l +s1r +2ss +s1sa +ssas3 +s2s5c +s3sel +s5seng +s4ses. +s5set +s1si +s4sie +ssi4er +ss5ily +s4sl +ss4li +s4sn +sspend4 +ss2t +ssur5a +ss5w +2st. +s2tag +s2tal +stam4i +5stand +s4ta4p +5stat. +s4ted +stern5i +s5tero +ste2w +stew5a +s3the +st2i +s4ti. +s5tia +s1tic +5stick +s4tie +s3tif +st3ing +5stir +s1tle +5stock +stom3a +5stone +s4top +3store +st4r +s4trad +5stratu +s4tray +s4trid +4stry +4st3w +s2ty +1su +su1al +su4b3 +su2g3 +su5is +suit3 +s4ul +su2m +sum3i +su2n +su2r +4sv +sw2 +4swo +s4y +4syc +3syl +syn5o +sy5rin +1ta +3ta. +2tab +ta5bles +5taboliz +4taci +ta5do +4taf4 +tai5lo +ta2l +ta5la +tal5en +tal3i +4talk +tal4lis +ta5log +ta5mo +tan4de +tanta3 +ta5per +ta5pl +tar4a +4tarc +4tare +ta3riz +tas4e +ta5sy +4tatic +ta4tur +taun4 +tav4 +2taw +tax4is +2t1b +4tc +t4ch +tch5et +4t1d +4te. +tead4i +4teat +tece4 +5tect +2t1ed +te5di +1tee +teg4 +te5ger +te5gi +3tel. +teli4 +5tels +te2ma2 +tem3at +3tenan +3tenc +3tend +4tenes +1tent +ten4tag +1teo +te4p +te5pe +ter3c +5ter3d +1teri +ter5ies +ter3is +teri5za +5ternit +ter5v +4tes. +4tess +t3ess. +teth5e +3teu +3tex +4tey +2t1f +4t1g +2th. +than4 +th2e +4thea +th3eas +the5at +the3is +3thet +th5ic. +th5ica +4thil +5think +4thl +th5ode +5thodic +4thoo +thor5it +tho5riz +2ths +1tia +ti4ab +ti4ato +2ti2b +4tick +t4ico +t4ic1u +5tidi +3tien +tif2 +ti5fy +2tig +5tigu +till5in +1tim +4timp +tim5ul +2t1in +t2ina +3tine. +3tini +1tio +ti5oc +tion5ee +5tiq +ti3sa +3tise +tis4m +ti5so +tis4p +5tistica +ti3tl +ti4u +1tiv +tiv4a +1tiz +ti3za +ti3zen +2tl +t5la +tlan4 +3tle. +3tled +3tles. +t5let. +t5lo +4t1m +tme4 +2t1n2 +1to +to3b +to5crat +4todo +2tof +to2gr +to5ic +to2ma +tom4b +to3my +ton4ali +to3nat +4tono +4tony +to2ra +to3rie +tor5iz +tos2 +5tour +4tout +to3war +4t1p +1tra +tra3b +tra5ch +traci4 +trac4it +trac4te +tras4 +tra5ven +trav5es5 +tre5f +tre4m +trem5i +5tria +tri5ces +5tricia +4trics +2trim +tri4v +tro5mi +tron5i +4trony +tro5phe +tro3sp +tro3v +tru5i +trus4 +4t1s2 +t4sc +tsh4 +t4sw +4t3t2 +t4tes +t5to +ttu4 +1tu +tu1a +tu3ar +tu4bi +tud2 +4tue +4tuf4 +5tu3i +3tum +tu4nis +2t3up. +3ture +5turi +tur3is +tur5o +tu5ry +3tus +4tv +tw4 +4t1wa +twis4 +4two +1ty +4tya +2tyl +type3 +ty5ph +4tz +tz4e +4uab +uac4 +ua5na +uan4i +uar5ant +uar2d +uar3i +uar3t +u1at +uav4 +ub4e +u4bel +u3ber +u4bero +u1b4i +u4b5ing +u3ble. +u3ca +uci4b +uc4it +ucle3 +u3cr +u3cu +u4cy +ud5d +ud3er +ud5est +udev4 +u1dic +ud3ied +ud3ies +ud5is +u5dit +u4don +ud4si +u4du +u4ene +uens4 +uen4te +uer4il +3ufa +u3fl +ugh3en +ug5in +2ui2 +uil5iz +ui4n +u1ing +uir4m +uita4 +uiv3 +uiv4er. +u5j +4uk +u1la +ula5b +u5lati +ulch4 +5ulche +ul3der +ul4e +u1len +ul4gi +ul2i +u5lia +ul3ing +ul5ish +ul4lar +ul4li4b +ul4lis +4ul3m +u1l4o +4uls +uls5es +ul1ti +ultra3 +4ultu +u3lu +ul5ul +ul5v +um5ab +um4bi +um4bly +u1mi +u4m3ing +umor5o +um2p +unat4 +u2ne +un4er +u1ni +un4im +u2nin +un5ish +uni3v +un3s4 +un4sw +unt3ab +un4ter. +un4tes +unu4 +un5y +un5z +u4ors +u5os +u1ou +u1pe +uper5s +u5pia +up3ing +u3pl +up3p +upport5 +upt5ib +uptu4 +u1ra +4ura. +u4rag +u4ras +ur4be +urc4 +ur1d +ure5at +ur4fer +ur4fr +u3rif +uri4fic +ur1in +u3rio +u1rit +ur3iz +ur2l +url5ing. +ur4no +uros4 +ur4pe +ur4pi +urs5er +ur5tes +ur3the +urti4 +ur4tie +u3ru +2us +u5sad +u5san +us4ap +usc2 +us3ci +use5a +u5sia +u3sic +us4lin +us1p +us5sl +us5tere +us1tr +u2su +usur4 +uta4b +u3tat +4ute. +4utel +4uten +uten4i +4u1t2i +uti5liz +u3tine +ut3ing +ution5a +u4tis +5u5tiz +u4t1l +ut5of +uto5g +uto5matic +u5ton +u4tou +uts4 +u3u +uu4m +u1v2 +uxu3 +uz4e +1va +5va. +2v1a4b +vac5il +vac3u +vag4 +va4ge +va5lie +val5o +val1u +va5mo +va5niz +va5pi +var5ied +3vat +4ve. +4ved +veg3 +v3el. +vel3li +ve4lo +v4ely +ven3om +v5enue +v4erd +5vere. +v4erel +v3eren +ver5enc +v4eres +ver3ie +vermi4n +3verse +ver3th +v4e2s +4ves. +ves4te +ve4te +vet3er +ve4ty +vi5ali +5vian +5vide. +5vided +4v3iden +5vides +5vidi +v3if +vi5gn +vik4 +2vil +5vilit +v3i3liz +v1in +4vi4na +v2inc +vin5d +4ving +vio3l +v3io4r +vi1ou +vi4p +vi5ro +vis3it +vi3so +vi3su +4viti +vit3r +4vity +3viv +5vo. +voi4 +3vok +vo4la +v5ole +5volt +3volv +vom5i +vor5ab +vori4 +vo4ry +vo4ta +4votee +4vv4 +v4y +w5abl +2wac +wa5ger +wag5o +wait5 +w5al. +wam4 +war4t +was4t +wa1te +wa5ver +w1b +wea5rie +weath3 +wed4n +weet3 +wee5v +wel4l +w1er +west3 +w3ev +whi4 +wi2 +wil2 +will5in +win4de +win4g +wir4 +3wise +with3 +wiz5 +w4k +wl4es +wl3in +w4no +1wo2 +wom1 +wo5ven +w5p +wra4 +wri4 +writa4 +w3sh +ws4l +ws4pe +w5s4t +4wt +wy4 +x1a +xac5e +x4ago +xam3 +x4ap +xas5 +x3c2 +x1e +xe4cuto +x2ed +xer4i +xe5ro +x1h +xhi2 +xhil5 +xhu4 +x3i +xi5a +xi5c +xi5di +x4ime +xi5miz +x3o +x4ob +x3p +xpan4d +xpecto5 +xpe3d +x1t2 +x3ti +x1u +xu3a +xx4 +y5ac +3yar4 +y5at +y1b +y1c +y2ce +yc5er +y3ch +ych4e +ycom4 +ycot4 +y1d +y5ee +y1er +y4erf +yes4 +ye4t +y5gi +4y3h +y1i +y3la +ylla5bl +y3lo +y5lu +ymbol5 +yme4 +ympa3 +yn3chr +yn5d +yn5g +yn5ic +5ynx +y1o4 +yo5d +y4o5g +yom4 +yo5net +y4ons +y4os +y4ped +yper5 +yp3i +y3po +y4poc +yp2ta +y5pu +yra5m +yr5ia +y3ro +yr4r +ys4c +y3s2e +ys3ica +ys3io +3ysis +y4so +yss4 +ys1t +ys3ta +ysur4 +y3thin +yt3ic +y1w +za1 +z5a2b +zar2 +4zb +2ze +ze4n +ze4p +z1er +ze3ro +zet4 +2z1i +z4il +z4is +5zl +4zm +1zo +zo4m +zo5ol +zte4 +4z1z2 +z4zy +.con5gr +.de5riva +.dri5v4 +.eth1y6l1 +.eu4ler +.ev2 +.ever5si5b +.ga4s1om1 +.ge4ome +.ge5ot1 +.he3mo1 +.he3p6a +.he3roe +.in5u2t +.kil2n3i +.ko6r1te1 +.le6ices +.me4ga1l +.met4ala +.mim5i2c1 +.mi1s4ers +.ne6o3f +.noe1th +.non1e2m +.poly1s +.post1am +.pre1am +.rav5en1o +.semi5 +.sem4ic +.semid6 +.semip4 +.semir4 +.sem6is4 +.semiv4 +.sph6in1 +.spin1o +.ta5pes1tr +.te3legr +.to6pog +.to2q +.un3at5t +.un5err5 +.vi2c3ar +.we2b1l +.re1e4c +a5bolic +a2cabl +af6fish +am1en3ta5b +anal6ys +ano5a2c +ans5gr +ans3v +anti1d +an3ti1n2 +anti1re +a4pe5able +ar3che5t +ar2range +as5ymptot +ath3er1o1s +at6tes. +augh4tl +au5li5f +av3iou +back2er. +ba6r1onie +ba1thy +bbi4t +be2vie +bi5d2if +bil2lab +bio5m +bi1orb +bio1rh +b1i3tive +blan2d1 +blin2d1 +blon2d2 +bor1no5 +bo2t1u1l +brus4q +bus6i2er +bus6i2es +buss4ing +but2ed. +but4ted +cad5e1m +cat1a1s2 +4chs. +chs3hu +chie5vo +cig3a3r +cin2q +cle4ar +co6ph1o3n +cous2ti +cri3tie +croc1o1d +cro5e2co +c2tro3me6c +1cu2r1ance +2d3alone +data1b +dd5a5b +d2d5ib +de4als. +de5clar1 +de2c5lina +de3fin3iti +de2mos +des3ic +de2tic +dic1aid +dif5fra +3di1methy +di2ren +di2rer +2d1lead +2d1li2e +3do5word +dren1a5l +drif2t1a +d1ri3pleg5 +drom3e5d +d3tab +du2al. +du1op1o1l +ea4n3ies +e3chas +edg1l +ed1uling +eli2t1is +e1loa +en1dix +eo3grap +1e6p3i3neph1 +e2r3i4an. +e3spac6i +eth1y6l1ene +5eu2clid1 +feb1rua +fermi1o +3fich +fit5ted. +fla1g6el +flow2er. +3fluor +gen2cy. +ge3o1d +ght1we +g1lead +get2ic. +4g1lish +5glo5bin +1g2nac +gnet1ism +gno5mo +g2n1or. +g2noresp +2g1o4n3i1za +graph5er. +griev1 +g1utan +hair1s +ha2p3ar5r +hatch1 +hex2a3 +hite3sid +h3i5pel1a4 +hnau3z +ho6r1ic. +h2t1eou +hypo1tha +id4ios +ifac1et +ign4it +ignit1er +i4jk +im3ped3a +infra1s2 +i5nitely. +irre6v3oc +i1tesima +ith5i2l +itin5er5ar +janu3a +japan1e2s +je1re1m +1ke6ling +1ki5netic +1kovian +k3sha +la4c3i5e +lai6n3ess +lar5ce1n +l3chai +l3chil6d1 +lead6er. +lea4s1a +1lec3ta6b +le3g6en2dre +1le1noid +lith1o5g +ll1fl +l2l3ish +l5mo3nell +lo1bot1o1 +lo2ges. +load4ed. +load6er. +l3tea +lth5i2ly +lue1p +1lunk3er +1lum5bia. +3lyg1a1mi +ly5styr +ma1la1p +m2an. +man3u1sc +mar1gin1 +medi2c +med3i3cin +medio6c1 +me3gran3 +m2en. +3mi3da5b +3milita +mil2l1ag +mil5li5li +mi6n3is. +mi1n2ut1er +mi1n2ut1est +m3ma1b +5maph1ro1 +5moc1ra1t +mo5e2las +mol1e5c +mon4ey1l +mono3ch +mo4no1en +moro6n5is +mono1s6 +moth4et2 +m1ou3sin +m5shack2 +mu2dro +mul2ti5u +n3ar4chs. +n3ch2es1t +ne3back +2ne1ski +n1dieck +nd3thr +nfi6n3ites +4n5i4an. +nge5nes +ng1ho +ng1spr +nk3rup +n5less +5noc3er1os +nom1a6l +nom5e1no +n1o1mist +non1eq +non1i4so +5nop1oly. +no1vemb +ns5ceiv +ns4moo +ntre1p +obli2g1 +o3chas +odel3li +odit1ic +oerst2 +oke1st +o3les3ter +oli3gop1o1 +o1lo3n4om +o3mecha6 +onom1ic +o3norma +o3no2t1o3n +o3nou +op1ism. +or4tho3ni4t +orth1ri +or5tively +o4s3pher +o5test1er +o5tes3tor +oth3e1o1s +ou3ba3do +o6v3i4an. +oxi6d1ic +pal6mat +parag6ra4 +par4a1le +param4 +para3me +pee2v1 +phi2l3ant +phi5lat1e3l +pi2c1a3d +pli2c1ab +pli5nar +poin3ca +1pole. +poly1e +po3lyph1ono +1prema3c +pre1neu +pres2pli +pro2cess +proc3i3ty. +pro2g1e +3pseu2d +pseu3d6o3d2 +pseu3d6o3f2 +pto3mat4 +p5trol3 +pu5bes5c +quain2t1e +qu6a3si3 +quasir6 +quasis6 +quin5tes5s +qui3v4ar +r1abolic +3rab1o1loi +ra3chu +r3a3dig +radi1o6g +r2amen +3ra4m5e1triz +ra3mou +ra5n2has +ra1or +r3bin1ge +re2c3i1pr +rec5t6ang +re4t1ribu +r3ial. +riv1o1l +6rk. +rk1ho +r1krau +6rks. +r5le5qu +ro1bot1 +ro5e2las +ro5epide1 +ro3mesh +ro1tron +r3pau5li +rse1rad1i +r1thou +r1treu +r1veil +rz1sc +sales3c +sales5w +5sa3par5il +sca6p1er +sca2t1ol +s4chitz +schro1ding1 +1sci2utt +scrap4er. +scy4th1 +sem1a1ph +se3mes1t +se1mi6t5ic +sep3temb +shoe1st +sid2ed. +side5st +side5sw +si5resid +sky1sc +3slova1kia +3s2og1a1my +so2lute +3s2pace +1s2pacin +spe3cio +spher1o +spi2c1il +spokes5w +sports3c +sports3w +s3qui3to +s2s1a3chu1 +ss3hat +s2s3i4an. +s5sign5a3b +1s2tamp +s2t1ant5shi +star3tli +sta1ti +st5b +1stor1ab +strat1a1g +strib5ut +st5scr +stu1pi4d1 +styl1is +su2per1e6 +1sync +1syth3i2 +swimm6 +5tab1o1lism +ta3gon. +talk1a5 +t1a1min +t6ap6ath +5tar2rh +tch1c +tch3i1er +t1cr +teach4er. +tele2g +tele1r6o +3ter1gei +ter2ic. +t3ess2es +tha4l1am +tho3don +th1o5gen1i +tho1k2er +thy4l1an +thy3sc +2t3i4an. +ti2n3o1m +t1li2er +tolo2gy +tot3ic +trai3tor1 +tra1vers +travers3a3b +treach1e +tr4ial. +3tro1le1um +trof4ic. +tro3fit +tro1p2is +3trop1o5les +3trop1o5lis +t1ro1pol3it +tsch3ie +ttrib1ut1 +turn3ar +t1wh +ty2p5al +ua3drati +uad1ratu +u5do3ny +uea1m +u2r1al. +uri4al. +us2er. +v1ativ +v1oir5du1 +va6guer +vaude3v +1verely. +v1er1eig +ves1tite +vi1vip3a3r +voice1p +waste3w6a2 +wave1g4 +w3c +week1n +wide5sp +wo4k1en +wrap3aro +writ6er. +x1q +xquis3 +y5che3d +ym5e5try +y1stro +yes5ter1y +z3ian. +z3o1phr +z2z3w diff --git a/test/unit/identity.cc b/test/unit/identity.cc new file mode 100644 index 00000000..a1a136eb --- /dev/null +++ b/test/unit/identity.cc @@ -0,0 +1,55 @@ +/* + * This small program tests how IdentifiableObject works with multiple + * inheritance ("diamond" inheritance, more precisely, since all + * classes have there root in IdentifiableObject.) + * + * Current status: With virtual superclasses, you get a class + * hierarchie "root -> A -> B -> C", so that the first part of this + * example works actually (C is a subclass of A and of B), but the + * second fails (it should print "false", but it is erroneously + * assumed that B is a subclass of A.) + */ + +#include "../lout/identity.hh" + +using namespace lout::identity; + +class A: virtual public IdentifiableObject +{ +public: + static int CLASS_ID; + inline A () { registerName ("A", &CLASS_ID); } +}; + +class B: virtual public IdentifiableObject +{ +public: + static int CLASS_ID; + inline B () { registerName ("B", &CLASS_ID); } +}; + +class C: public A, public B +{ +public: + static int CLASS_ID; + inline C () { registerName ("C", &CLASS_ID); } +}; + +int A::CLASS_ID = -1, B::CLASS_ID = -1, C::CLASS_ID = -1; + +int main (int argc, char *argv[]) +{ + printf ("A: %d, B: %d, C: %d\n", A::CLASS_ID, B::CLASS_ID, C::CLASS_ID); + + C x; + assert (x.instanceOf (A::CLASS_ID)); + assert (x.instanceOf (B::CLASS_ID)); + assert (x.instanceOf (C::CLASS_ID)); + printf ("x: %d\n", x.getClassId ()); + + B y; + printf ("y: %d; instance of A: %s\n", + y.getClassId (), y.instanceOf (B::CLASS_ID) ? "true" : "false"); + + return 0; +} diff --git a/test/unit/liang.cc b/test/unit/liang.cc new file mode 100644 index 00000000..ee3f8e9e --- /dev/null +++ b/test/unit/liang.cc @@ -0,0 +1,79 @@ +#include + +#include "../dw/fltkcore.hh" +#include "../dw/hyphenator.hh" + +void hyphenateWord (dw::core::Platform *p, const char *lang, const char *word) +{ + dw::Hyphenator *h = dw::Hyphenator::getHyphenator (lang); + + int numBreaks; + int *breakPos = h->hyphenateWord (p, word, &numBreaks); + for (int i = 0; i < numBreaks + 1; i++) { + if (i != 0) + printf (" \xc2\xad "); + int start = (i == 0 ? 0 : breakPos[i - 1]); + int end = (i == numBreaks ? strlen (word) : breakPos[i]); + for (int j = start; j < end; j++) + putchar (word[j]); + } + putchar ('\n'); + if (breakPos) + free (breakPos); +} + +int main (int argc, char *argv[]) +{ + dw::fltk::FltkPlatform p; + + if (argc > 1) { + // Usage: liang [-l LANG] WORD ... + + const char *lang = "de"; + char opt; + + while ((opt = getopt(argc, argv, "l:")) != -1) { + switch (opt) { + case 'l': + lang = optarg; + break; + } + } + + for (int i = optind; i < argc; i++) + hyphenateWord (&p, lang, argv[i]); + + } else { + hyphenateWord (&p, "de", "..."); + hyphenateWord (&p, "de", "Jahrhundertroman"); + hyphenateWord (&p, "de", "JAHRHUNDERTROMAN"); + hyphenateWord (&p, "de", "„Jahrhundertroman“"); + hyphenateWord (&p, "de", "währenddessen"); + hyphenateWord (&p, "de", "„währenddessen“"); + hyphenateWord (&p, "de", "Ückendorf"); + hyphenateWord (&p, "de", "über"); + hyphenateWord (&p, "de", "aber"); + hyphenateWord (&p, "de", "Ackermann"); + hyphenateWord (&p, "de", "„Ackermann“"); + hyphenateWord (&p, "de", "entscheidet."); + hyphenateWord (&p, "de", "Grundstücksverkehrsgenehmigungszuständigkeits" + "übertragungsverordnung"); + hyphenateWord (&p, "de", "„Grundstücksverkehrsgenehmigungszuständigkeits" + "übertragungsverordnung“"); + hyphenateWord (&p, "de", "Grundstücksverkehrsgenehmigungszuständigkeit"); + hyphenateWord (&p, "de", + "„Grundstücksverkehrsgenehmigungszuständigkeit“"); + hyphenateWord (&p, "de", + "(6R,7R)-7-[2-(2-Amino-4-thiazolyl)-glyoxylamido]-3-" + "(2,5-dihydro-6-hydroxy-2-methyl-5-oxo-1,2,4-triazin-3-yl-" + "thiomethyl)-8-oxo-5-thia-1-azabicyclo[4.2.0]oct-2-en-2-" + "carbonsäure-7²-(Z)-(O-methyloxim)"); + hyphenateWord (&p, "de", "Abtei-Stadt"); + hyphenateWord (&p, "de", "Nordrhein-Westfalen"); + hyphenateWord (&p, "de", "kurz\xc2\xa0und\xc2\xa0knapp"); + hyphenateWord (&p, "de", "weiß"); + hyphenateWord (&p, "de", "www.dillo.org"); + } + + return 0; +} diff --git a/test/unit/notsosimplevector.cc b/test/unit/notsosimplevector.cc new file mode 100644 index 00000000..d41288fb --- /dev/null +++ b/test/unit/notsosimplevector.cc @@ -0,0 +1,63 @@ +#include "../lout/misc.hh" + +static void print (lout::misc::NotSoSimpleVector *v) +{ + for (int i = 0; i < v->size(); i++) { + // Uncomment for debugging, after making the respective members public. + //if (v->startExtra != -1 && i == v->startExtra + v->numExtra) + // printf (" ]"); + if (i > 0) + printf (", "); + //if (i == v->startExtra) + // printf ("[ "); + + printf ("%d", v->get(i)); + } + + printf (" (%d elements)\n", v->size ()); +} + +int main (int argc, char *argv[]) +{ + lout::misc::NotSoSimpleVector v(1); + + for (int i = 1; i <= 10; i++) { + v.increase (); + v.set(v.size () - 1, i); + } + + print (&v); + + v.insert (2, 4); + for (int i = 0; i < 5; i++) + v.set (2 + i, 31 + i); + + print (&v); + + v.insert (8, 4); + for (int i = 0; i < 5; i++) + v.set (8 + i, 51 + i); + + print (&v); + + v.insert (10, 4); + for (int i = 0; i < 5; i++) + v.set (10 + i, 531 + i); + + print (&v); + + v.insert (1, 4); + for (int i = 0; i < 5; i++) + v.set (1 + i, 21 + i); + + print (&v); + + int n = v.size (); + v.insert (n, 5); + for (int i = 0; i < 5; i++) + v.set (n + i, 101 + i); + + print (&v); + + return 0; +} diff --git a/test/unit/shapes.cc b/test/unit/shapes.cc new file mode 100644 index 00000000..30aa7d81 --- /dev/null +++ b/test/unit/shapes.cc @@ -0,0 +1,40 @@ +/* + * Dillo Widget + * + * Copyright 2005-2007 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + + +#include "../dw/core.hh" + +using namespace dw::core; +using namespace lout::misc; + +int main() +{ + Polygon poly; + poly.addPoint (50, 10); + poly.addPoint (90, 90); + poly.addPoint (10, 90); + + printf("first test\n"); + assert (poly.isPointWithin (50, 50)); + printf("second test\n"); + assert (!poly.isPointWithin (10, 10)); + printf("third test\n"); + assert (!poly.isPointWithin (90, 50)); +} diff --git a/test/unit/trie.cc b/test/unit/trie.cc new file mode 100644 index 00000000..41b56c70 --- /dev/null +++ b/test/unit/trie.cc @@ -0,0 +1,14 @@ +#include "../dw/hyphenator.hh" + +int main (int argc, char *argv[]) +{ + if (argc < 2) { + fprintf(stderr, "Usage: trie \n"); + exit (1); + } + + /* Use pack = 1024 to create a really small trie - can take a while. + */ + dw::Hyphenator hyphenator (argv[1], NULL, 1024); + hyphenator.saveTrie (stdout); +} diff --git a/test/unit/unicode_test.cc b/test/unit/unicode_test.cc new file mode 100644 index 00000000..7c079305 --- /dev/null +++ b/test/unit/unicode_test.cc @@ -0,0 +1,39 @@ +#include +#include +#include +#include "../lout/unicode.hh" + +using namespace lout::unicode; + +int main (int argc, char *argv[]) +{ + // 0-terminated string + const char *t1 = "abcäöüабв−‐"; + + // not 0-terminated; copy from 0-terminated + int t2len = strlen (t1); + char t2[t2len]; + for (int i = 0; i < t2len; i++) + t2[i] = t1[i]; + + puts ("===== misc::unicode, 0-terminated ====="); + for (const char *s = t1; s; s = nextUtf8Char (s)) + printf ("%3d -> U+%04x ('%s')\n", (int)(s - t1), decodeUtf8(s), s); + + puts ("===== Fltk, 0-terminated ====="); + for (const char *s = t1; *s; s = fl_utf8fwd (s + 1, t1, t1 + strlen (t1))) + printf ("%3d -> U+%04x ('%s')\n", (int)(s - t1), decodeUtf8(s), s); + + puts ("===== misc::unicode, not 0-terminated ====="); + for (const char *s = t2; s; s = nextUtf8Char (s, t2len - (s - t2))) + printf ("%3d -> U+%04x\n", (int)(s - t2), + decodeUtf8(s, t2len - (s - t2))); + + puts ("===== Fltk, not 0-terminated ====="); + for (const char *s = t2; *s; + s - t2 < t2len && (s = fl_utf8fwd (s + 1, t2, t2 + t2len))) + printf ("%3d -> U+%04x\n", (int)(s - t2), + decodeUtf8(s, t2len - (s - t2))); + + return 0; +} diff --git a/test/white-space.html b/test/white-space.html deleted file mode 100644 index abd61c41..00000000 --- a/test/white-space.html +++ /dev/null @@ -1,24 +0,0 @@ -

nowrap

-
-hallo dillo hallo dillo hallo dillo hallo dillo -hallo dillo hallo dillo hallo dillo hallo dillo -
- -

pre

- -
-hallo dillo hallo dillo hallo dillo hallo dillo -hallo dillo hallo dillo hallo dillo hallo dillo -
- -

pre-wrap

-
-hallo dillo hallo dillo hallo dillo hallo dillo -hallo dillo hallo dillo hallo dillo hallo dillo -
- -

pre-line

-
-hallo dillo hallo dillo hallo dillo hallo dillo -hallo dillo hallo dillo hallo dillo hallo dillo -
-- cgit v1.2.3