From f481edd84c96c6aafc1fcb5a2c412516bd93500b Mon Sep 17 00:00:00 2001 From: Arne Keller Date: Tue, 22 Feb 2022 22:53:28 +0100 Subject: [PATCH] =?UTF-8?q?Qw=C3=B6rtle=20lebt!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- filter.sh | 4 + index.css | 46 ++ index.html | 13 + index.js | 175 +++++ top10000de_utf8_len5_filtered.txt | 1007 +++++++++++++++++++++++++++++ 5 files changed, 1245 insertions(+) create mode 100755 filter.sh create mode 100644 index.css create mode 100644 index.html create mode 100644 index.js create mode 100644 top10000de_utf8_len5_filtered.txt diff --git a/filter.sh b/filter.sh new file mode 100755 index 0000000..f6fe896 --- /dev/null +++ b/filter.sh @@ -0,0 +1,4 @@ +#!/bin/sh +iconv -f ISO-8859-1 -t UTF-8 top10000de.txt > top10000de_utf8.txt +awk '{ if (length($0) == 5) print }' top10000de_utf8.txt > top10000de_utf8_len5.txt +cat top10000de_utf8_len5.txt | rg --invert-match "'|ß" > top10000de_utf8_len5_filtered.txt diff --git a/index.css b/index.css new file mode 100644 index 0000000..fac9192 --- /dev/null +++ b/index.css @@ -0,0 +1,46 @@ +body { + background-color: #1f2937; + color: #fff; +} + +.centering { + display: flex; + flex-direction: column; + align-items: center; +} + +#main { + display: grid; + grid-template-columns: repeat(2, max-content); + grid-template-rows: repeat(2, max-content); + gap: 2em; +} + +.row { + margin-top: 0; + margin-bottom: 0; +} + +.invalid { + color: red; +} + +.correct { + background-color: lime; +} + +.wrong-position { + background-color: yellow; + color: #000; +} + +.cell { + padding: 0.5em; + display: inline-block; + width: 1em; + height: 1em; + font-family: monospace; + font-size: xx-large; + border: 1px solid #bbb; + vertical-align: top; +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..f30e5bf --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + +
+

Qwörtle

+
+ +
+
+ + \ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..cf4695b --- /dev/null +++ b/index.js @@ -0,0 +1,175 @@ +let words = "nicht einer einem einen haben durch wurde hatte gegen schon seine unter eines diese keine immer sagte jetzt waren Jahre neuen damit ihrer heute ihren seien werde Stadt sowie steht dabei wegen etwas viele alles kommt denen dafür Diese würde Leben ihrem ihnen deren sogar Frage erste liegt davon geben hätte sieht sehen macht allen könne aller wenig lange gehen sechs Woche alten müsse Dabei jeder statt Platz Damit neben Thema zeigt Seite Namen Hilfe Markt Leute sagen Nicht knapp daran Grund Rolle Meter Tagen zuvor genau April stark ganze trotz Spiel führt meint ihres beide Musik Mitte Unter Daten Kunst jeden recht Seine Jetzt Schon Durch Titel Stück setzt Staat daher wolle Nacht Krieg Opfer nimmt Firma hohen leben Paris Recht sonst stand blieb junge Sache zwölf genug Weise Vater Preis jedem zudem Blick Druck Viele solle neuer Augen kamen meine Kampf weder Heute Kreis guten darin meist neues Angst Macht Folge Osten Hause abend Trotz Boden Einen bevor Peter jedes China warum Abend Liebe Neben fällt wären Sicht Bühne offen stets läuft Japan Roman indem Börse Reihe darum einst Ihnen Monat Liste Autor Alter Autos nennt Täter unser Zudem Menge gerne hören Statt Union Kraft trägt zieht Polen Wegen Natur stieg Glück fehlt Warum Suche Basis wobei wirkt Armee hielt sucht legen Licht Gäste Dafür Gegen nötig Senat Werke Runde sitzt kennt tritt Pläne Dinge reden Werte Beide Sinne droht Punkt Tisch höher zählt Wagen Tiere Start Reise König Teile schön Jeder Aktie Krise Insel dahin Juden Sport hängt hinzu Keine jener Szene Klaus lesen legte Ärzte Stand siehe beste Süden weist Motto folgt Einer hofft dürfe Grüne unten indes Worte getan somit Hotel tätig Alles Halle Fälle stehe Essen bauen komme Sonne Brief Trend Feuer Leser Dauer Maria näher bekam Filme fragt aktiv Hände denkt lösen Falle Ziele ernst Ideen Ebene Lager alter links Summe Frank fährt Wende herum Heinz Strom zumal Linie dient falls Herrn gaben allzu liege davor wirft teuer Klage Immer Franz rasch freie Falls Beruf Texte fühlt starb Serie allem hilft Fahrt guter gutes einig plant Horst Traum Geben Josef roten Junge Bernd halte mache Tokio Sorge Messe sorgt Neuen Ernst Rande Phase Asien halbe Geist Kurse Zweck bitte kurze hoher Kasse Räume Abbau liest Brand stolz Laufe jenen klare endet holen Farbe Georg Pause Waren Daher lagen Fonds Kunde gelte Blatt Erste lasse Ihren Pfund Neues Seele Regie übrig warnt desto klein Toten zogen Darin Lande Bäume gerät Ihrer Davon Figur Liter Mauer Marke zahlt Regen vorne solch Meine Unser Arten Lehre Tempo Klima Alten Papst Stoff denke Stein voran minus mögen Image Reich Ärger Länge Teams ruhig grüne David Hinzu sahen Ganze Türen Maler breit lehnt Forum Beine Küche Griff innen reine Zuvor Damen harte Konto Fotos Akten Küste teilt Hafen teils Regel brach Gerät Ohren Würde Bezug Stock Haben ergab Wesen Stern volle echte Mainz Umbau Chaos Büros teure hoffe Sätze räumt Stars Sturm klagt Ihrem finde Rente kämen Datum Armut Lange Umzug lässt Masse Abzug Radio freut Karte Genau engen Fritz Nazis Minus Front lebte wuchs Franc Index rufen holte hohem Vogel wider dicht Bevor Hanau Armen jenem Sechs Tiefe Stufe Laden wahre Bitte Schau Stich These dreht feste Rhein singt Moral Erich Gramm essen liebt Motiv nutzt öfter fügte Jedes drauf enger Bauer Stolz redet Haare Sturz total Zeile Deren löste linke Taten Waffe jenes kehrt Reden krank Faust Fazit Etwas Quote quasi Sonst Motor Sogar Löhne weite Köpfe Bayer Eines Karin Tages Weber führe Films wohin wohnt nehme Photo exakt Anton Helga Bruch Erika Zeuge zeige lohnt Islam still Weder Lesen leise Klubs griff Orten Frist Miete neuem Villa Engel Neuer Daran Humor Römer UdSSR Stahl tiefe Fülle älter Kinos heran Kürze hörte Bombe rückt Athen Petra Beleg Läden Kreuz enden Sitze Vogts Jungs Drama kenne Tests Beute Bauch Brust lobte Berge übers Prinz Vögel Busse Video Hunde Beste Wände heuer Linke Votum Milch reich Coach Welle Glanz wirbt Söhne Toren Krebs Wüste liebe Pferd Kälte Zelle prüft Logik Stasi womit Lyrik enorm Knapp hohes Feier Väter derer Songs Alpen Feind fühle z. B. armen kauft Lücke Chefs Wenig gutem lernt wisse stört Group Jäger lacht sinkt Geste Wille Trost Kohle baute fremd wagen Siehe Stuhl Wärme Mafia Decke Bruno Krone Wiese Block dicke fängt Fisch Hitze lägen Erlös Seoul Rasen Ferne merkt Panik Rache Willi Legen schuf Kirch fehle Party Erwin Meyer spürt setze extra wählt Datei Areal töten Unmut Einem Staub Elend Kanal Zwang Zaire Hölle altes ginge Kairo Typen James bunte Duell Fuchs Paket Major Ämter Labor Noten Basel Darum biete Kette Profi Bibel Möbel Freie Leere Weile Virus Huber Mario Löwen Bogen Handy Kabel Onkel Braun bösen Adolf laden Jeden Zumal Nebel wovon Kohls World Paare Maske Erben Klein Foyer Focus Rubel Kripo Buche Boris Chile Gutes Kreml Edith Laune wehrt Hätte nahen Blues Amtes Stirn lockt Härte Siege Simon Werks Eisen Allen drohe heben Doris Bande Heike kalte Witwe Ehren Gerda Harry manch blaue Shell Zähne leere Hörer Enkel Hauch trage Jesus vorab Klang Güter Lokal frühe Texas geübt Arena glatt Todes Netze Tonne Donau Luxus toten Clubs Stamm Flüge reist Beton Segen Somit Album Media Sagen trieb Guten wofür Kader Anbau Kugel Rabin birgt Bauen Match Sat 1 Ecken zügig Sehen Zwölf spart Jubel Ihres Laien Probe Sekte Prosa zielt lehrt ahnen fähig Bands Jeans Gebot Reste Bände Marie Meist Ernte woher reale Viren Kommt Spree Hosen Frust wilde Räder rollt Jutta Ulmer traut Hügel welch Intel Anzug Metro Treue Tenor Henry gelbe Irene Fahne Bewag Pilot Lebed taten bezog feine Beate Elite Anruf Kopie Peres nützt Zügen Nagel Story Kurve Übung Treff Höhen Dreck Kenia Tiger ruhen Jakob Tante Route Ethik Rauch Adler boten Morde Zunge wiegt Felix Smith Buben sanft Gehen Oskar de la Alarm Wobei jeher deine Teils Krupp laufe Sound Fulda raten graue sauer Roten Korea Trick Indiz Miami Zitat klang Baden Gunst Allee eigen Sucht erhob Leder bezug füllt Hürde Infos Gehör Diana Böden blind parat Rover Sauna Pence Magen Gnade Orden Thron Julia frage Uhren ewige Apple Ampel Kabul Parks Weite Minen berät Hütte nebst" + .split(" "); +words = words.map(x => x.toUpperCase()); +const valid = "abcdefghijklmnopqrstuvwxyzäöü".toUpperCase(); + +function xmur3(str) { + for(var i = 0, h = 1779033703 ^ str.length; i < str.length; i++) { + h = Math.imul(h ^ str.charCodeAt(i), 3432918353); + h = h << 13 | h >>> 19; + } return function() { + h = Math.imul(h ^ (h >>> 16), 2246822507); + h = Math.imul(h ^ (h >>> 13), 3266489909); + return (h ^= h >>> 16) >>> 0; + } +} + +function mulberry32(a) { + return function() { + var t = a += 0x6D2B79F5; + t = Math.imul(t ^ t >>> 15, t | 1); + t ^= t + Math.imul(t ^ t >>> 7, t | 61); + return ((t ^ t >>> 14) >>> 0) / 4294967296; + } +} + +const daysSinceEpoch = Math.floor(new Date()/8.64e7) + 1; +const rng = mulberry32(daysSinceEpoch); +const chosenWords = []; +for (let i = 0; i < 4; i++) { + while (true) { + const idx = Math.floor((rng() * words.length) % words.length); + const chosen = words[idx]; + if (chosenWords.indexOf(chosen) !== -1) { + continue; + } + chosenWords.push(chosen); + break; + } +} + +const WORD_LENGTH = 5; +const MAX_GUESSES = 9; +const guessed = []; +let input = ""; +const data = []; +const done = [false, false, false, false]; + +function processKey(e) { + if (e.key === "Enter" && guessed.length < MAX_GUESSES) { + if (input.length < 5) { + console.error("input not long enough"); + return; + } + if (words.indexOf(input) === -1) { + console.error("word not in list"); + return; + } + for (let pos = 0; pos < 4; pos++) { + if (done[pos]) { + continue; + } + let used = []; + let hints = []; + let word = chosenWords[pos]; + for (let i = 0; i < WORD_LENGTH; i++) { + // check whether character i of input is correct + if (word[i] === input[i]) { + hints[i] = "correct"; + used[i] = true; + } + } + for (let i = 0; i < WORD_LENGTH; i++) { + // check whether character i of input is positioned incorrectly + if (hints[i]) { + continue; + } + for (let j = 0; j < WORD_LENGTH; j++) { + if (used[j]) { + continue; + } + if (input[i] === word[j]) { + hints[i] = "position"; + used[j] = true; + break; + } + } + } + for (let i = 0; i < WORD_LENGTH; i++) { + const el = data[pos * MAX_GUESSES + guessed.length][i]; + if (hints[i] === "correct") { + el.className = "correct cell"; + } else if (hints[i] === "position") { + el.className = "wrong-position cell"; + } + } + if (input === word) { + done[pos] = true; + } + } + guessed.push(input); + input = ""; + return; + } else if (e.key === "Backspace" && input.length > 0) { + for (let pos = 0; pos < 4; pos++) { + data[pos * MAX_GUESSES + guessed.length][input.length - 1].innerText = ""; + } + input = input.substring(0, input.length - 1); + } else { + if (e.key.length > 1) { + return; + } + const key = e.key.toUpperCase(); + if (valid.indexOf(key) === -1) { + console.error("invalid key"); + return; + } + if (input.length == 5) { + console.error("input full"); + return; + } + for (let pos = 0; pos < 4; pos++) { + if (done[pos]) { + continue; + } + data[pos * MAX_GUESSES + guessed.length][input.length].innerText = key; + } + input += key; + } + const validGuess = input.length < 5 || words.indexOf(input) !== -1; + for (let pos = 0; pos < 4; pos++) { + if (done[pos]) { + continue; + } + if (!validGuess) { + data[pos * MAX_GUESSES + guessed.length][0].parentElement.className = "row invalid"; + } else { + data[pos * MAX_GUESSES + guessed.length][0].parentElement.className = "row"; + } + } +} +document.addEventListener("keydown", processKey); + + +function createGameGrid(container) { + for (let pos = 0; pos < 4; pos++) { + container.appendChild(createWordle()); + } +} +function createWordle() { + const x = document.createElement("div"); + x.className = "wordle"; + + for (let i = 0; i < MAX_GUESSES; i++) { + x.appendChild(createRow(data)); + } + + return x; +} +function createRow() { + const x = document.createElement("div"); + x.className = "row"; + + const cells = []; + for (let i = 0; i < 5; i++) { + const cell = document.createElement("span"); + x.appendChild(cell); + cell.className = "cell"; + cells.push(cell); + } + data.push(cells); + + return x; +} +const main = document.getElementById("main"); +createGameGrid(main); diff --git a/top10000de_utf8_len5_filtered.txt b/top10000de_utf8_len5_filtered.txt new file mode 100644 index 0000000..c342327 --- /dev/null +++ b/top10000de_utf8_len5_filtered.txt @@ -0,0 +1,1007 @@ +nicht +einer +einem +einen +haben +durch +wurde +hatte +gegen +schon +seine +unter +eines +diese +keine +immer +sagte +jetzt +waren +Jahre +neuen +damit +ihrer +heute +ihren +seien +werde +Stadt +sowie +steht +dabei +wegen +etwas +viele +alles +kommt +denen +dafür +Diese +würde +Leben +ihrem +ihnen +deren +sogar +Frage +erste +liegt +davon +geben +hätte +sieht +sehen +macht +allen +könne +aller +wenig +lange +gehen +sechs +Woche +alten +müsse +Dabei +jeder +statt +Platz +Damit +neben +Thema +zeigt +Seite +Namen +Hilfe +Markt +Leute +sagen +Nicht +knapp +daran +Grund +Rolle +Meter +Tagen +zuvor +genau +April +stark +ganze +trotz +Spiel +führt +meint +ihres +beide +Musik +Mitte +Unter +Daten +Kunst +jeden +recht +Seine +Jetzt +Schon +Durch +Titel +Stück +setzt +Staat +daher +wolle +Nacht +Krieg +Opfer +nimmt +Firma +hohen +leben +Paris +Recht +sonst +stand +blieb +junge +Sache +zwölf +genug +Weise +Vater +Preis +jedem +zudem +Blick +Druck +Viele +solle +neuer +Augen +kamen +meine +Kampf +weder +Heute +Kreis +guten +darin +meist +neues +Angst +Macht +Folge +Osten +Hause +abend +Trotz +Boden +Einen +bevor +Peter +jedes +China +warum +Abend +Liebe +Neben +fällt +wären +Sicht +Bühne +offen +stets +läuft +Japan +Roman +indem +Börse +Reihe +darum +einst +Ihnen +Monat +Liste +Autor +Alter +Autos +nennt +Täter +unser +Zudem +Menge +gerne +hören +Statt +Union +Kraft +trägt +zieht +Polen +Wegen +Natur +stieg +Glück +fehlt +Warum +Suche +Basis +wobei +wirkt +Armee +hielt +sucht +legen +Licht +Gäste +Dafür +Gegen +nötig +Senat +Werke +Runde +sitzt +kennt +tritt +Pläne +Dinge +reden +Werte +Beide +Sinne +droht +Punkt +Tisch +höher +zählt +Wagen +Tiere +Start +Reise +König +Teile +schön +Jeder +Aktie +Krise +Insel +dahin +Juden +Sport +hängt +hinzu +Keine +jener +Szene +Klaus +lesen +legte +Ärzte +Stand +siehe +beste +Süden +weist +Motto +folgt +Einer +hofft +dürfe +Grüne +unten +indes +Worte +getan +somit +Hotel +tätig +Alles +Halle +Fälle +stehe +Essen +bauen +komme +Sonne +Brief +Trend +Feuer +Leser +Dauer +Maria +näher +bekam +Filme +fragt +aktiv +Hände +denkt +lösen +Falle +Ziele +ernst +Ideen +Ebene +Lager +alter +links +Summe +Frank +fährt +Wende +herum +Heinz +Strom +zumal +Linie +dient +falls +Herrn +gaben +allzu +liege +davor +wirft +teuer +Klage +Immer +Franz +rasch +freie +Falls +Beruf +Texte +fühlt +starb +Serie +allem +hilft +Fahrt +guter +gutes +einig +plant +Horst +Traum +Geben +Josef +roten +Junge +Bernd +halte +mache +Tokio +Sorge +Messe +sorgt +Neuen +Ernst +Rande +Phase +Asien +halbe +Geist +Kurse +Zweck +bitte +kurze +hoher +Kasse +Räume +Abbau +liest +Brand +stolz +Laufe +jenen +klare +endet +holen +Farbe +Georg +Pause +Waren +Daher +lagen +Fonds +Kunde +gelte +Blatt +Erste +lasse +Ihren +Pfund +Neues +Seele +Regie +übrig +warnt +desto +klein +Toten +zogen +Darin +Lande +Bäume +gerät +Ihrer +Davon +Figur +Liter +Mauer +Marke +zahlt +Regen +vorne +solch +Meine +Unser +Arten +Lehre +Tempo +Klima +Alten +Papst +Stoff +denke +Stein +voran +minus +mögen +Image +Reich +Ärger +Länge +Teams +ruhig +grüne +David +Hinzu +sahen +Ganze +Türen +Maler +breit +lehnt +Forum +Beine +Küche +Griff +innen +reine +Zuvor +Damen +harte +Konto +Fotos +Akten +Küste +teilt +Hafen +teils +Regel +brach +Gerät +Ohren +Würde +Bezug +Stock +Haben +ergab +Wesen +Stern +volle +echte +Mainz +Umbau +Chaos +Büros +teure +hoffe +Sätze +räumt +Stars +Sturm +klagt +Ihrem +finde +Rente +kämen +Datum +Armut +Lange +Umzug +lässt +Masse +Abzug +Radio +freut +Karte +Genau +engen +Fritz +Nazis +Minus +Front +lebte +wuchs +Franc +Index +rufen +holte +hohem +Vogel +wider +dicht +Bevor +Hanau +Armen +jenem +Sechs +Tiefe +Stufe +Laden +wahre +Bitte +Schau +Stich +These +dreht +feste +Rhein +singt +Moral +Erich +Gramm +essen +liebt +Motiv +nutzt +öfter +fügte +Jedes +drauf +enger +Bauer +Stolz +redet +Haare +Sturz +total +Zeile +Deren +löste +linke +Taten +Waffe +jenes +kehrt +Reden +krank +Faust +Fazit +Etwas +Quote +quasi +Sonst +Motor +Sogar +Löhne +weite +Köpfe +Bayer +Eines +Karin +Tages +Weber +führe +Films +wohin +wohnt +nehme +Photo +exakt +Anton +Helga +Bruch +Erika +Zeuge +zeige +lohnt +Islam +still +Weder +Lesen +leise +Klubs +griff +Orten +Frist +Miete +neuem +Villa +Engel +Neuer +Daran +Humor +Römer +UdSSR +Stahl +tiefe +Fülle +älter +Kinos +heran +Kürze +hörte +Bombe +rückt +Athen +Petra +Beleg +Läden +Kreuz +enden +Sitze +Vogts +Jungs +Drama +kenne +Tests +Beute +Bauch +Brust +lobte +Berge +übers +Prinz +Vögel +Busse +Video +Hunde +Beste +Wände +heuer +Linke +Votum +Milch +reich +Coach +Welle +Glanz +wirbt +Söhne +Toren +Krebs +Wüste +liebe +Pferd +Kälte +Zelle +prüft +Logik +Stasi +womit +Lyrik +enorm +Knapp +hohes +Feier +Väter +derer +Songs +Alpen +Feind +fühle +z. B. +armen +kauft +Lücke +Chefs +Wenig +gutem +lernt +wisse +stört +Group +Jäger +lacht +sinkt +Geste +Wille +Trost +Kohle +baute +fremd +wagen +Siehe +Stuhl +Wärme +Mafia +Decke +Bruno +Krone +Wiese +Block +dicke +fängt +Fisch +Hitze +lägen +Erlös +Seoul +Rasen +Ferne +merkt +Panik +Rache +Willi +Legen +schuf +Kirch +fehle +Party +Erwin +Meyer +spürt +setze +extra +wählt +Datei +Areal +töten +Unmut +Einem +Staub +Elend +Kanal +Zwang +Zaire +Hölle +altes +ginge +Kairo +Typen +James +bunte +Duell +Fuchs +Paket +Major +Ämter +Labor +Noten +Basel +Darum +biete +Kette +Profi +Bibel +Möbel +Freie +Leere +Weile +Virus +Huber +Mario +Löwen +Bogen +Handy +Kabel +Onkel +Braun +bösen +Adolf +laden +Jeden +Zumal +Nebel +wovon +Kohls +World +Paare +Maske +Erben +Klein +Foyer +Focus +Rubel +Kripo +Buche +Boris +Chile +Gutes +Kreml +Edith +Laune +wehrt +Hätte +nahen +Blues +Amtes +Stirn +lockt +Härte +Siege +Simon +Werks +Eisen +Allen +drohe +heben +Doris +Bande +Heike +kalte +Witwe +Ehren +Gerda +Harry +manch +blaue +Shell +Zähne +leere +Hörer +Enkel +Hauch +trage +Jesus +vorab +Klang +Güter +Lokal +frühe +Texas +geübt +Arena +glatt +Todes +Netze +Tonne +Donau +Luxus +toten +Clubs +Stamm +Flüge +reist +Beton +Segen +Somit +Album +Media +Sagen +trieb +Guten +wofür +Kader +Anbau +Kugel +Rabin +birgt +Bauen +Match +Sat 1 +Ecken +zügig +Sehen +Zwölf +spart +Jubel +Ihres +Laien +Probe +Sekte +Prosa +zielt +lehrt +ahnen +fähig +Bands +Jeans +Gebot +Reste +Bände +Marie +Meist +Ernte +woher +reale +Viren +Kommt +Spree +Hosen +Frust +wilde +Räder +rollt +Jutta +Ulmer +traut +Hügel +welch +Intel +Anzug +Metro +Treue +Tenor +Henry +gelbe +Irene +Fahne +Bewag +Pilot +Lebed +taten +bezog +feine +Beate +Elite +Anruf +Kopie +Peres +nützt +Zügen +Nagel +Story +Kurve +Übung +Treff +Höhen +Dreck +Kenia +Tiger +ruhen +Jakob +Tante +Route +Ethik +Rauch +Adler +boten +Morde +Zunge +wiegt +Felix +Smith +Buben +sanft +Gehen +Oskar +de la +Alarm +Wobei +jeher +deine +Teils +Krupp +laufe +Sound +Fulda +raten +graue +sauer +Roten +Korea +Trick +Indiz +Miami +Zitat +klang +Baden +Gunst +Allee +eigen +Sucht +erhob +Leder +bezug +füllt +Hürde +Infos +Gehör +Diana +Böden +blind +parat +Rover +Sauna +Pence +Magen +Gnade +Orden +Thron +Julia +frage +Uhren +ewige +Apple +Ampel +Kabul +Parks +Weite +Minen +berät +Hütte +nebst