This commit is contained in:
Miodec 2021-06-08 16:25:18 +01:00
commit 836456ab28
26 changed files with 236064 additions and 82 deletions

View file

@ -2611,7 +2611,6 @@
"version": "6.11.2",
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz",
"integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==",
"hasInstallScript": true,
"optional": true,
"dependencies": {
"@protobufjs/aspromise": "^1.1.2",

View file

@ -165,6 +165,7 @@ const refactoredSrc = [
"./src/js/test/test-timer.js",
"./src/js/test/test-config.js",
"./src/js/test/layout-emulator.js",
"./src/js/test/poetry.js",
"./src/js/replay.js",
];

61
src/js/test/poetry.js Normal file
View file

@ -0,0 +1,61 @@
const bannedChars = ["—", "_", " "];
const maxWords = 100;
const apiURL = "https://poetrydb.org/random";
export class Poem {
constructor(title, author, words) {
this.title = title;
this.author = author;
this.words = words;
this.cleanUpText();
}
cleanUpText() {
var count = 0;
var scrubbedWords = [];
for (var i = 0; i < this.words.length; i++) {
let scrubbed = "";
for (var j = 0; j < this.words[i].length; j++) {
if (!bannedChars.includes(this.words[i][j]))
scrubbed += this.words[i][j];
}
if (scrubbed == "") continue;
scrubbedWords.push(scrubbed);
count++;
if (count == maxWords) break;
}
this.words = scrubbedWords;
}
}
export async function getPoem() {
return new Promise((res, rej) => {
console.log("Getting poem");
var poemReq = new XMLHttpRequest();
poemReq.onload = () => {
if (poemReq.readyState == 4) {
if (poemReq.status == 200) {
let poemObj = JSON.parse(poemReq.responseText)[0];
let words = [];
poemObj.lines.forEach((line) => {
line.split(" ").forEach((word) => {
words.push(word);
});
});
let poem = new Poem(poemObj.title, poemObj.author, words);
res(poem);
} else {
rej(poemReq.status);
}
}
};
poemReq.open("GET", apiURL);
poemReq.send();
});
}

View file

@ -29,13 +29,16 @@ import * as CloudFunctions from "./cloud-functions";
import * as TestLeaderboards from "./test-leaderboards";
import * as Replay from "./replay.js";
import * as MonkeyPower from "./monkey-power";
import * as Poetry from "./poetry.js";
let glarsesMode = false;
export function toggleGlarses(){
export function toggleGlarses() {
glarsesMode = true;
console.log('Glarses Mode On - test result will be hidden. You can check the stats in the console (here)');
console.log('To disable Glarses Mode refresh the page.');
console.log(
"Glarses Mode On - test result will be hidden. You can check the stats in the console (here)"
);
console.log("To disable Glarses Mode refresh the page.");
}
export let notSignedInLastResult = null;
@ -450,75 +453,83 @@ export async function init() {
if (Config.mode == "custom") {
wordset = CustomText.text;
}
for (let i = 0; i < wordsBound; i++) {
let randomWord = wordset[Math.floor(Math.random() * wordset.length)];
const previousWord = words.get(i - 1);
const previousWord2 = words.get(i - 2);
if (
Config.mode == "custom" &&
(CustomText.isWordRandom || CustomText.isTimeRandom)
) {
randomWord = wordset[Math.floor(Math.random() * wordset.length)];
} else if (Config.mode == "custom" && !CustomText.isWordRandom) {
randomWord = CustomText.text[i];
} else {
while (
randomWord == previousWord ||
randomWord == previousWord2 ||
(!Config.punctuation && randomWord == "I") ||
randomWord.indexOf(" ") > -1
if (Config.funbox == "poetry") {
let poem = await Poetry.getPoem();
poem.words.forEach((word) => {
words.push(word);
});
} else {
for (let i = 0; i < wordsBound; i++) {
let randomWord = wordset[Math.floor(Math.random() * wordset.length)];
const previousWord = words.get(i - 1);
const previousWord2 = words.get(i - 2);
if (
Config.mode == "custom" &&
(CustomText.isWordRandom || CustomText.isTimeRandom)
) {
randomWord = wordset[Math.floor(Math.random() * wordset.length)];
}
}
if (Config.funbox === "rAnDoMcAsE") {
let randomcaseword = "";
for (let i = 0; i < randomWord.length; i++) {
if (i % 2 != 0) {
randomcaseword += randomWord[i].toUpperCase();
} else {
randomcaseword += randomWord[i];
} else if (Config.mode == "custom" && !CustomText.isWordRandom) {
randomWord = CustomText.text[i];
} else {
while (
randomWord == previousWord ||
randomWord == previousWord2 ||
(!Config.punctuation && randomWord == "I") ||
randomWord.indexOf(" ") > -1
) {
randomWord = wordset[Math.floor(Math.random() * wordset.length)];
}
}
randomWord = randomcaseword;
} else if (Config.funbox === "gibberish") {
randomWord = Misc.getGibberish();
} else if (Config.funbox === "58008") {
// UpdateConfig.setPunctuation(false, true);
UpdateConfig.setNumbers(false, true);
randomWord = Misc.getNumbers(7);
} else if (Config.funbox === "specials") {
UpdateConfig.setPunctuation(false, true);
UpdateConfig.setNumbers(false, true);
randomWord = Misc.getSpecials();
} else if (Config.funbox === "ascii") {
UpdateConfig.setPunctuation(false, true);
UpdateConfig.setNumbers(false, true);
randomWord = Misc.getASCII();
}
if (Config.punctuation) {
randomWord = punctuateWord(previousWord, randomWord, i, wordsBound);
}
if (Config.numbers) {
if (
Math.random() < 0.1 &&
i !== 0 &&
Misc.getLastChar(previousWord) !== "."
) {
randomWord = Misc.getNumbers(4);
if (i == wordsBound - 1) {
randomWord += ".";
if (Config.funbox === "rAnDoMcAsE") {
let randomcaseword = "";
for (let i = 0; i < randomWord.length; i++) {
if (i % 2 != 0) {
randomcaseword += randomWord[i].toUpperCase();
} else {
randomcaseword += randomWord[i];
}
}
randomWord = randomcaseword;
} else if (Config.funbox === "gibberish") {
randomWord = Misc.getGibberish();
} else if (Config.funbox === "58008") {
// UpdateConfig.setPunctuation(false, true);
UpdateConfig.setNumbers(false, true);
randomWord = Misc.getNumbers(7);
} else if (Config.funbox === "specials") {
UpdateConfig.setPunctuation(false, true);
UpdateConfig.setNumbers(false, true);
randomWord = Misc.getSpecials();
} else if (Config.funbox === "ascii") {
UpdateConfig.setPunctuation(false, true);
UpdateConfig.setNumbers(false, true);
randomWord = Misc.getASCII();
}
if (Config.punctuation) {
randomWord = punctuateWord(previousWord, randomWord, i, wordsBound);
}
if (Config.numbers) {
if (
Math.random() < 0.1 &&
i !== 0 &&
Misc.getLastChar(previousWord) !== "."
) {
randomWord = Misc.getNumbers(4);
if (i == wordsBound - 1) {
randomWord += ".";
}
}
}
}
if (/\t/g.test(randomWord)) {
setHasTab(true);
}
if (/\t/g.test(randomWord)) {
setHasTab(true);
}
words.push(randomWord);
words.push(randomWord);
}
}
} else if (Config.mode == "quote") {
// setLanguage(Config.language.replace(/_\d*k$/g, ""), true);
@ -1852,7 +1863,7 @@ export function finish(difficultyFailed = false) {
ChartController.result.update({ duration: 0 });
ChartController.result.resize();
if(glarsesMode){
if (glarsesMode) {
$("#middle #result .glarsesmessage").remove();
$("#middle #result").prepend(`
@ -1870,21 +1881,28 @@ export function finish(difficultyFailed = false) {
$("#middle #result #resultReplay").remove();
$("#middle #result .loginTip").remove();
console.log(`Test Completed: ${stats.wpm} wpm ${stats.acc}% acc ${stats.wpmRaw} raw ${consistency}% consistency`);
console.log(
`Test Completed: ${stats.wpm} wpm ${stats.acc}% acc ${stats.wpmRaw} raw ${consistency}% consistency`
);
}
UI.swapElements($("#typingTest"), $("#result"), 250, () => {
TestUI.setResultCalculating(false);
$("#words").empty();
ChartController.result.resize();
if (Config.alwaysShowWordsHistory) {
TestUI.toggleResultWords();
UI.swapElements(
$("#typingTest"),
$("#result"),
250,
() => {
TestUI.setResultCalculating(false);
$("#words").empty();
ChartController.result.resize();
if (Config.alwaysShowWordsHistory) {
TestUI.toggleResultWords();
}
$("#testModesNotice").addClass("hidden");
},
() => {
Keymap.hide();
}
$("#testModesNotice").addClass("hidden");
}, () => {
Keymap.hide();
});
);
}
export function fail() {

View file

@ -98,6 +98,11 @@
"name": "nospace",
"type": "script",
"info": "Whoneedsspacesanyway?"
},
{
"name": "poetry",
"type": "script",
"info": "Practice typing some beautiful prose."
}
]

View file

@ -19,7 +19,7 @@
},
{
"name": "arabic",
"languages": ["arabic"]
"languages": ["arabic", "arabic_10k"]
},
{
"name": "malagasy",
@ -175,6 +175,34 @@
"name": "bulgarian",
"languages": ["bulgarian"]
},
{
"name": "esperanto",
"languages": [
"esperanto",
"esperanto_1k",
"esperanto_10k",
"esperanto_25k",
"esperanto_36k",
"esperanto_x_sistemo",
"esperanto_x_sistemo_1k",
"esperanto_x_sistemo_10k",
"esperanto_x_sistemo_25k",
"esperanto_x_sistemo_36k",
"esperanto_h_sistemo",
"esperanto_h_sistemo_1k",
"esperanto_h_sistemo_10k",
"esperanto_h_sistemo_25k",
"esperanto_h_sistemo_36k"
]
},
{
"name": "bangla",
"languages": ["bangla", "bangla_letters", "bangla_10k"]
},
{
"name": "urdu",
"languages": ["urdu"]
},
{
"name": "code",
"languages": [
@ -202,9 +230,5 @@
"pig_latin",
"twitch_emotes"
]
},
{
"name": "urdu",
"languages": ["urdu"]
}
]

View file

@ -12,6 +12,7 @@
,"french_2k"
,"french_10k"
,"arabic"
,"arabic_10k"
,"malagasy"
,"malagasy_1k"
,"malay"
@ -83,7 +84,25 @@
,"lithuanian_1k"
,"lithuanian_3k"
,"bulgarian"
,"bangla"
,"bangla_letters"
,"bangla_10k"
,"toki_pona"
,"esperanto"
,"esperanto_1k"
,"esperanto_10k"
,"esperanto_25k"
,"esperanto_36k"
,"esperanto_x_sistemo"
,"esperanto_x_sistemo_1k"
,"esperanto_x_sistemo_10k"
,"esperanto_x_sistemo_25k"
,"esperanto_x_sistemo_36k"
,"esperanto_h_sistemo"
,"esperanto_h_sistemo_1k"
,"esperanto_h_sistemo_10k"
,"esperanto_h_sistemo_25k"
,"esperanto_h_sistemo_36k"
,"urdu"
,"twitch_emotes"
,"pig_latin"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,207 @@
{
"name": "bangla",
"leftToRight": true,
"ligatures": true,
"words": [
"।",
"আমি",
"না",
"তুমি",
"আমার",
"কি",
"এটা",
"আর",
"তোমার",
"আছে",
"সে",
"এই",
"আমরা",
"করে",
"হবে",
"জন্য",
"আমাদের",
"করতে",
"একটা",
"আমাকে",
"ঠিক",
"আপনি",
"তো",
"যে",
"তার",
"থেকে",
"কিছু",
"সাথে",
"কিন্তু",
"এখানে",
"তোমাকে",
"এখন",
"কোন",
"কথা",
"মনে",
"কী",
"যদি",
"এবং",
"হয়",
"আপনার",
"নিয়ে",
"ছিল",
"তাকে",
"তারা",
"নেই",
"হয়ে",
"তাহলে",
"অনেক",
"কেন",
"করা",
"হ্যাঁ",
"করো",
"তাই",
"সব",
"এক",
"এর",
"হচ্ছে",
"যাও",
"কাজ",
"হয়েছে",
"ও",
"কে",
"কাছে",
"শুধু",
"একটি",
"স্যার",
"দাও",
"তাদের",
"ভালো",
"যা",
"একজন",
"ভাল",
"জানি",
"যেতে",
"দিয়ে",
"খুব",
"কোথায়",
"করবে",
"যাবে",
"চাই",
"পারে",
"শেষ",
"করার",
"ধন্যবাদ",
"যখন",
"বলতে",
"কেউ",
"করি",
"সময়",
"তুই",
"গেছে",
"বাবা",
"ওকে",
"মত",
"সেটা",
"হতে",
"চলে",
"ওহ",
"নয়",
"হ্যা",
"একটু",
"পারি",
"দেখতে",
"সবাই",
"আগে",
"দেখা",
"করছি",
"তিনি",
"বের",
"বলে",
"ঐ",
"কর",
"আবার",
"দিতে",
"নাম",
"যায়",
"ওর",
"পারবে",
"নাকি",
"কিভাবে",
"মধ্যে",
"তোমরা",
"ফিরে",
"আচ্ছা",
"সাহায্য",
"আপনাকে",
"মানুষ",
"তা",
"মা",
"করেছে",
"দিকে",
"দরকার",
"সেই",
"আসলে",
"শুরু",
"ওটা",
"দুঃখিত",
"দিন",
"চলো",
"মানে",
"কিন্ত",
"তোর",
"তোমাদের",
"করছে",
"বলছি",
"বিশ্বাস",
"বন্ধ",
"করেছি",
"এমন",
"অবশ্যই",
"নিজের",
"কারণ",
"বড়",
"করবো",
"বেশি",
"বছর",
"উপর",
"যাচ্ছে",
"আসো",
"চেষ্টা",
"তারপর",
"হল",
"হয়",
"হেই",
"এসব",
"দেখো",
"কিছুই",
"কোনো",
"এটাই",
"আছি",
"টাকা",
"যাচ্ছি",
"জানো",
"বুঝতে",
"আজ",
"ছিলো",
"বলো",
"মতো",
"ধরে",
"কখনো",
"খারাপ",
"কেমন",
"প্লিজ",
"মারা",
"পছন্দ",
"সেখানে",
"চাও",
"নাও",
"সমস্যা",
"দেখে",
"নি",
"পর",
"থাকে",
"এখনো",
"সুন্দর",
"তখন",
"ভুল",
"ভাই",
"ওখানে",
"পর্যন্ত"
]
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,105 @@
{
"name": "bangla_letters",
"leftToRight": true,
"ligatures": true,
"words": [
"অ",
"আ",
"ই",
"ঈ",
"উ",
"ঊ",
"ঋ",
"এ",
"ঐ",
"ও",
"ঔ",
"ক",
"খ",
"গ",
"ঘ",
"ঙ",
"চ",
"ছ",
"জ",
"ঝ",
"ঞ",
"ট",
"ঠ",
"ড",
"ঢ",
"ণ",
"ত",
"থ",
"দ",
"ধ",
"ন",
"প",
"ফ",
"ব",
"ভ",
"ম",
"য",
"র",
"ল",
"শ",
"ষ",
"স",
"হ",
"ড়",
"ঢ়",
"য়",
"ৎ",
"ক",
"খ",
"গ",
"ঘ",
"ঙ",
"চ",
"ছ",
"জ",
"ঝ",
"ঞ",
"ট",
"ঠ",
"ড",
"ঢ",
"ঙ",
"ত",
"থ",
"দ",
"ধ",
"ন",
"প",
"ফ",
"ব",
"ভ",
"ম",
"য",
"র",
"ল",
"শ",
"ষ",
"স",
"হ",
"ড়",
"ঢ়",
"য়",
"ৎ",
"ব্য",
"ব্র",
"বর্ষ",
"।",
"৳",
"",
"১",
"২",
"৩",
"",
"৫",
"৬",
"",
"৮",
"৯"
]
}

View file

@ -0,0 +1,206 @@
{
"name": "esperanto",
"leftToRight": true,
"words": [
"la",
"mi",
"vi",
"ne",
"estas",
"kaj",
"ĉu",
"de",
"al",
"ni",
"en",
"li",
"ke",
"por",
"ĉi",
"tio",
"sed",
"ili",
"kiel",
"vin",
"tie",
"pri",
"min",
"jes",
"kio",
"mia",
"kun",
"estis",
"kion",
"ĝi",
"povas",
"kiu",
"via",
"tiu",
"ĝin",
"ŝi",
"bone",
"tion",
"se",
"volas",
"havas",
"do",
"pli",
"nur",
"oni",
"nun",
"scias",
"kial",
"devas",
"lin",
"el",
"kiam",
"unu",
"kie",
"ja",
"jam",
"jen",
"tiel",
"nu",
"da",
"sur",
"ankaŭ",
"pro",
"tre",
"per",
"ĉiuj",
"je",
"diris",
"aŭ",
"estos",
"ilin",
"ho",
"vian",
"tiun",
"iru",
"ĉar",
"nin",
"nia",
"plu",
"ĉio",
"dum",
"mian",
"sinjoro",
"ankoraŭ",
"dankon",
"vere",
"esti",
"eĉ",
"ĝis",
"neniam",
"venu",
"eble",
"diras",
"dio",
"ion",
"du",
"antaŭ",
"ĉe",
"ĉiam",
"tiuj",
"ol",
"post",
"iu",
"fari",
"tien",
"bezonas",
"plej",
"tiom",
"homoj",
"kia",
"ĉion",
"bona",
"certe",
"bonan",
"rigardu",
"faras",
"tuj",
"patro",
"faris",
"bonvolu",
"diru",
"sen",
"paĉjo",
"kiuj",
"pardonu",
"panjo",
"poste",
"lia",
"saluton",
"mem",
"vidis",
"tempo",
"vivo",
"tute",
"neniu",
"kiom",
"tro",
"ŝin",
"ek",
"pensas",
"kiun",
"laŭ",
"vidas",
"okazas",
"nenion",
"okazis",
"viaj",
"estu",
"multe",
"atendu",
"petas",
"hodiaŭ",
"faru",
"iom",
"diri",
"lasu",
"granda",
"komprenas",
"alia",
"homo",
"tiam",
"miaj",
"for",
"tamen",
"venis",
"mondo",
"ĉiu",
"estus",
"ha",
"io",
"kien",
"nenio",
"vidi",
"jaroj",
"rapide",
"iras",
"iri",
"ci",
"ŝatas",
"havis",
"denove",
"patrino",
"povus",
"tri",
"niaj",
"ajn",
"tagon",
"eblas",
"volis",
"parolas",
"donu",
"sia",
"aliaj",
"kredas",
"kontraŭ",
"ĝuste",
"aŭskultu",
"rajtas",
"unua",
"tia"
]
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,206 @@
{
"name": "esperanto_h_sistemo",
"leftToRight": true,
"words": [
"la",
"mi",
"vi",
"ne",
"estas",
"kaj",
"chu",
"de",
"al",
"ni",
"en",
"li",
"ke",
"por",
"chi",
"tio",
"sed",
"ili",
"kiel",
"vin",
"tie",
"pri",
"min",
"jes",
"kio",
"mia",
"kun",
"estis",
"kion",
"ghi",
"povas",
"kiu",
"via",
"tiu",
"ghin",
"shi",
"bone",
"tion",
"se",
"volas",
"havas",
"do",
"pli",
"nur",
"oni",
"nun",
"scias",
"kial",
"devas",
"lin",
"el",
"kiam",
"unu",
"kie",
"ja",
"jam",
"jen",
"tiel",
"nu",
"da",
"sur",
"ankau",
"pro",
"tre",
"per",
"chiuj",
"je",
"diris",
"au",
"estos",
"ilin",
"ho",
"vian",
"tiun",
"iru",
"char",
"nin",
"nia",
"plu",
"chio",
"dum",
"mian",
"sinjoro",
"ankorau",
"dankon",
"vere",
"esti",
"ech",
"ghis",
"neniam",
"venu",
"eble",
"diras",
"dio",
"ion",
"du",
"antau",
"che",
"chiam",
"tiuj",
"ol",
"post",
"iu",
"fari",
"tien",
"bezonas",
"plej",
"tiom",
"homoj",
"kia",
"chion",
"bona",
"certe",
"bonan",
"rigardu",
"faras",
"tuj",
"patro",
"faris",
"bonvolu",
"diru",
"sen",
"pachjo",
"kiuj",
"pardonu",
"panjo",
"poste",
"lia",
"saluton",
"mem",
"vidis",
"tempo",
"vivo",
"tute",
"neniu",
"kiom",
"tro",
"shin",
"ek",
"pensas",
"kiun",
"lau",
"vidas",
"okazas",
"nenion",
"okazis",
"viaj",
"estu",
"multe",
"atendu",
"petas",
"hodiau",
"faru",
"iom",
"diri",
"lasu",
"granda",
"komprenas",
"alia",
"homo",
"tiam",
"miaj",
"for",
"tamen",
"venis",
"mondo",
"chiu",
"estus",
"ha",
"io",
"kien",
"nenio",
"vidi",
"jaroj",
"rapide",
"iras",
"iri",
"ci",
"shatas",
"havis",
"denove",
"patrino",
"povus",
"tri",
"niaj",
"ajn",
"tagon",
"eblas",
"volis",
"parolas",
"donu",
"sia",
"aliaj",
"kredas",
"kontrau",
"ghuste",
"auskultu",
"rajtas",
"unua",
"tia"
]
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,206 @@
{
"name": "esperanto_x_sistemo",
"leftToRight": true,
"words": [
"la",
"mi",
"vi",
"ne",
"estas",
"kaj",
"cxu",
"de",
"al",
"ni",
"en",
"li",
"ke",
"por",
"cxi",
"tio",
"sed",
"ili",
"kiel",
"vin",
"tie",
"pri",
"min",
"jes",
"kio",
"mia",
"kun",
"estis",
"kion",
"gxi",
"povas",
"kiu",
"via",
"tiu",
"gxin",
"sxi",
"bone",
"tion",
"se",
"volas",
"havas",
"do",
"pli",
"nur",
"oni",
"nun",
"scias",
"kial",
"devas",
"lin",
"el",
"kiam",
"unu",
"kie",
"ja",
"jam",
"jen",
"tiel",
"nu",
"da",
"sur",
"ankaux",
"pro",
"tre",
"per",
"cxiuj",
"je",
"diris",
"aux",
"estos",
"ilin",
"ho",
"vian",
"tiun",
"iru",
"cxar",
"nin",
"nia",
"plu",
"cxio",
"dum",
"mian",
"sinjoro",
"ankoraux",
"dankon",
"vere",
"esti",
"ecx",
"gxis",
"neniam",
"venu",
"eble",
"diras",
"dio",
"ion",
"du",
"antaux",
"cxe",
"cxiam",
"tiuj",
"ol",
"post",
"iu",
"fari",
"tien",
"bezonas",
"plej",
"tiom",
"homoj",
"kia",
"cxion",
"bona",
"certe",
"bonan",
"rigardu",
"faras",
"tuj",
"patro",
"faris",
"bonvolu",
"diru",
"sen",
"pacxjo",
"kiuj",
"pardonu",
"panjo",
"poste",
"lia",
"saluton",
"mem",
"vidis",
"tempo",
"vivo",
"tute",
"neniu",
"kiom",
"tro",
"sxin",
"ek",
"pensas",
"kiun",
"laux",
"vidas",
"okazas",
"nenion",
"okazis",
"viaj",
"estu",
"multe",
"atendu",
"petas",
"hodiaux",
"faru",
"iom",
"diri",
"lasu",
"granda",
"komprenas",
"alia",
"homo",
"tiam",
"miaj",
"for",
"tamen",
"venis",
"mondo",
"cxiu",
"estus",
"ha",
"io",
"kien",
"nenio",
"vidi",
"jaroj",
"rapide",
"iras",
"iri",
"ci",
"sxatas",
"havis",
"denove",
"patrino",
"povus",
"tri",
"niaj",
"ajn",
"tagon",
"eblas",
"volis",
"parolas",
"donu",
"sia",
"aliaj",
"kredas",
"kontraux",
"gxuste",
"auxskultu",
"rajtas",
"unua",
"tia"
]
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff