diff --git a/.firebaserc_example b/.firebaserc_example
new file mode 100644
index 000000000..5a98f50cf
--- /dev/null
+++ b/.firebaserc_example
@@ -0,0 +1,5 @@
+{
+ "projects": {
+ "default": "your-firebase-project-id"
+ }
+}
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 8541cb6fb..9ce02dbc7 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -15,7 +15,7 @@
1. [Install the Firebase CLI](https://firebase.google.com/docs/cli)
1. Run `firebase login` on your terminal to log in to the same google account as you just used to create the project.
1. Git clone this project.
-1. Rename `.firebaserc_example` to `.firebaserc` and change the project name of default to the firebase project id you just created.
+1. Duplicate `.firebaserc_example`, rename the new file to `.firebaserc` and change the project name of default to the firebase project id you just created.
- If `.firebaserc_example` does not exist after cloning, create your own with:
@@ -48,7 +48,6 @@
- Start in test mode
- Select default location and enable
-
## Building and Running
1. Run `npm install` in the project root directory to install dependencies.
diff --git a/src/js/commandline-lists.js b/src/js/commandline-lists.js
index 195d3fae3..a4353cbdd 100644
--- a/src/js/commandline-lists.js
+++ b/src/js/commandline-lists.js
@@ -22,14 +22,14 @@ function canBailOut() {
return (
(Config.mode === "custom" &&
CustomText.isWordRandom &&
- CustomText.word >= 5000) ||
+ (CustomText.word >= 5000 || CustomText.word == 0)) ||
(Config.mode === "custom" &&
!CustomText.isWordRandom &&
!CustomText.isTimeRandom &&
CustomText.text.length >= 5000) ||
(Config.mode === "custom" &&
CustomText.isTimeRandom &&
- CustomText.time >= 3600) ||
+ (CustomText.time >= 3600 || CustomText.time == 0)) ||
(Config.mode === "words" && Config.words >= 5000) ||
Config.words === 0 ||
(Config.mode === "time" && (Config.time >= 3600 || Config.time === 0)) ||
@@ -54,7 +54,8 @@ if (Object.keys(layouts).length > 0) {
id: "changeLayout" + Misc.capitalizeFirstLetter(layout),
display: layout.replace(/_/g, " "),
exec: () => {
- UpdateConfig.setSavedLayout(layout);
+ // UpdateConfig.setSavedLayout(layout);
+ UpdateConfig.setLayout(layout);
TestLogic.restart();
},
});
@@ -647,6 +648,33 @@ let commandsKeymapStyle = {
],
};
+let commandsKeymapLegendStyle = {
+ title: "Change keymap legend style...",
+ list: [
+ {
+ id: "setKeymapLegendStyleLowercase",
+ display: "lowercase",
+ exec: () => {
+ UpdateConfig.setKeymapLegendStyle("lowercase");
+ },
+ },
+ {
+ id: "setKeymapLegendStyleUppercase",
+ display: "uppercase",
+ exec: () => {
+ UpdateConfig.setKeymapLegendStyle("uppercase");
+ },
+ },
+ {
+ id: "setKeymapLegendStyleBlank",
+ display: "blank",
+ exec: () => {
+ UpdateConfig.setKeymapLegendStyle("blank");
+ },
+ },
+ ],
+};
+
let commandsHighlightMode = {
title: "Change highlight mode...",
list: [
@@ -1678,6 +1706,16 @@ export let defaultCommands = {
Commandline.show();
},
},
+ {
+ id: "changeKeymapLegendStyle",
+ display: "Change keymap legend style...",
+ alias: "keyboard",
+ subgroup: true,
+ exec: () => {
+ current.push(commandsKeymapLegendStyle);
+ Commandline.show();
+ },
+ },
{
id: "changeKeymapLayout",
display: "Change keymap layout...",
diff --git a/src/js/config.js b/src/js/config.js
index 975edf36b..aaf991c38 100644
--- a/src/js/config.js
+++ b/src/js/config.js
@@ -86,6 +86,7 @@ let defaultConfig = {
showAllLines: false,
keymapMode: "off",
keymapStyle: "staggered",
+ keymapLegendStyle: "lowercase",
keymapLayout: "qwerty",
fontFamily: "Roboto_Mono",
smoothLineScroll: false,
@@ -477,10 +478,12 @@ export function setPaceCaret(val, nosave) {
if (val == undefined) {
val = "off";
}
- // if (val == "pb" && firebase.auth().currentUser === null) {
- // Notifications.add("PB pace caret is unavailable without an account", 0);
- // return;
- // }
+ if (document.readyState === "complete") {
+ if (val == "pb" && firebase.auth().currentUser === null) {
+ Notifications.add("PB pace caret is unavailable without an account", 0);
+ return;
+ }
+ }
// if (config.mode === "zen" && val != "off") {
// Notifications.add(`Can't use pace caret with zen mode.`, 0);
// val = "off";
@@ -1264,22 +1267,41 @@ export function setKeymapMode(mode, nosave) {
if (!nosave) saveToCookie();
}
+export function setKeymapLegendStyle(style, nosave) {
+ // Remove existing styles
+ const keymapLegendStyles = ["lowercase", "uppercase", "blank"];
+ keymapLegendStyles.forEach((name) => {
+ $(".keymapLegendStyle").removeClass(name);
+ });
+
+ style = style || "lowercase";
+
+ // Mutate the keymap in the DOM, if it exists.
+ // 1. Remove everything
+ $(".keymap-key > .letter").css("display", "");
+ $(".keymap-key > .letter").css("text-transform", "");
+
+ // 2. Append special styles onto the DOM elements
+ if (style === "uppercase") {
+ $(".keymap-key > .letter").css("text-transform", "capitalize");
+ }
+ if (style === "blank") {
+ $(".keymap-key > .letter").css("display", "none");
+ }
+
+ // Update and save to cookie for persistence
+ $(".keymapLegendStyle").addClass(style);
+ config.keymapLegendStyle = style;
+ if (!nosave) saveToCookie();
+}
+
export function setKeymapStyle(style, nosave) {
$(".keymap").removeClass("matrix");
$(".keymap").removeClass("split");
$(".keymap").removeClass("split_matrix");
+ style = style || "staggered";
- if (style == null || style == undefined) {
- style = "staggered";
- }
-
- if (style === "matrix") {
- $(".keymap").addClass("matrix");
- } else if (style === "split") {
- $(".keymap").addClass("split");
- } else if (style === "split_matrix") {
- $(".keymap").addClass("split_matrix");
- }
+ $(".keymap").addClass(style);
config.keymapStyle = style;
if (!nosave) saveToCookie();
}
@@ -1305,13 +1327,13 @@ export function setLayout(layout, nosave) {
if (!nosave) saveToCookie();
}
-export function setSavedLayout(layout, nosave) {
- if (layout == null || layout == undefined) {
- layout = "qwerty";
- }
- config.savedLayout = layout;
- setLayout(layout, nosave);
-}
+// export function setSavedLayout(layout, nosave) {
+// if (layout == null || layout == undefined) {
+// layout = "qwerty";
+// }
+// config.savedLayout = layout;
+// setLayout(layout, nosave);
+// }
export function setFontSize(fontSize, nosave) {
if (fontSize == null || fontSize == undefined) {
@@ -1414,7 +1436,8 @@ export function apply(configObj) {
setWordCount(configObj.words, true);
setLanguage(configObj.language, true);
setCapsLockBackspace(configObj.capsLockBackspace, true);
- setSavedLayout(configObj.savedLayout, true);
+ // setSavedLayout(configObj.savedLayout, true);
+ setLayout(configObj.layout, true);
setFontSize(configObj.fontSize, true);
setFreedomMode(configObj.freedomMode, true);
setCaretStyle(configObj.caretStyle, true);
@@ -1431,6 +1454,7 @@ export function apply(configObj) {
setTimerOpacity(configObj.timerOpacity, true);
setKeymapMode(configObj.keymapMode, true);
setKeymapStyle(configObj.keymapStyle, true);
+ setKeymapLegendStyle(configObj.keymapLegendStyle, true);
setKeymapLayout(configObj.keymapLayout, true);
setFontFamily(configObj.fontFamily, true);
setSmoothCaret(configObj.smoothCaret, true);
diff --git a/src/js/popups/custom-background-filter.js b/src/js/popups/custom-background-filter.js
index e67a63f44..3f3ddf0a4 100644
--- a/src/js/popups/custom-background-filter.js
+++ b/src/js/popups/custom-background-filter.js
@@ -52,6 +52,30 @@ function syncSliders() {
);
}
+function updateNumbers() {
+ $(".section.customBackgroundFilter .blur .value").html(
+ parseFloat(filters.blur.value).toFixed(1)
+ );
+ $(".section.customBackgroundFilter .brightness .value").html(
+ parseFloat(filters.brightness.value).toFixed(1)
+ );
+ $(".section.customBackgroundFilter .saturate .value").html(
+ parseFloat(filters.saturate.value).toFixed(1)
+ );
+ $(".section.customBackgroundFilter .opacity .value").html(
+ parseFloat(filters.opacity.value).toFixed(1)
+ );
+}
+
+export function loadConfig(config) {
+ filters.blur.value = config[0];
+ filters.brightness.value = config[1];
+ filters.saturate.value = config[2];
+ filters.opacity.value = config[3];
+ updateNumbers();
+ syncSliders();
+}
+
$(".section.customBackgroundFilter .blur input").on("input", (e) => {
filters["blur"].value = $(
".section.customBackgroundFilter .blur input"
@@ -92,27 +116,3 @@ $(".section.customBackgroundFilter .save.button").click((e) => {
UpdateConfig.setCustomBackgroundFilter(arr, false);
Notifications.add("Custom background filters saved", 1);
});
-
-export function loadConfig(config) {
- filters.blur.value = config[0];
- filters.brightness.value = config[1];
- filters.saturate.value = config[2];
- filters.opacity.value = config[3];
- updateNumbers();
- syncSliders();
-}
-
-function updateNumbers() {
- $(".section.customBackgroundFilter .blur .value").html(
- parseFloat(filters.blur.value).toFixed(1)
- );
- $(".section.customBackgroundFilter .brightness .value").html(
- parseFloat(filters.brightness.value).toFixed(1)
- );
- $(".section.customBackgroundFilter .saturate .value").html(
- parseFloat(filters.saturate.value).toFixed(1)
- );
- $(".section.customBackgroundFilter .opacity .value").html(
- parseFloat(filters.opacity.value).toFixed(1)
- );
-}
diff --git a/src/js/settings.js b/src/js/settings.js
index 405b46c10..a5daf775e 100644
--- a/src/js/settings.js
+++ b/src/js/settings.js
@@ -51,9 +51,11 @@ async function initGroups() {
if (Config.keymapMode === "off") {
$(".pageSettings .section.keymapStyle").addClass("hidden");
$(".pageSettings .section.keymapLayout").addClass("hidden");
+ $(".pageSettings .section.keymapLegendStyle").addClass("hidden");
} else {
$(".pageSettings .section.keymapStyle").removeClass("hidden");
$(".pageSettings .section.keymapLayout").removeClass("hidden");
+ $(".pageSettings .section.keymapLegendStyle").removeClass("hidden");
}
}
);
@@ -65,6 +67,10 @@ async function initGroups() {
"keymapLayout",
UpdateConfig.setKeymapLayout
);
+ groups.keymapLegendStyle = new SettingsGroup(
+ "keymapLegendStyle",
+ UpdateConfig.setKeymapLegendStyle
+ );
groups.showKeyTips = new SettingsGroup(
"showKeyTips",
UpdateConfig.setKeyTips,
@@ -213,7 +219,7 @@ async function initGroups() {
"capsLockBackspace",
UpdateConfig.setCapsLockBackspace
);
- groups.layout = new SettingsGroup("layout", UpdateConfig.setSavedLayout);
+ groups.layout = new SettingsGroup("layout", UpdateConfig.layout);
groups.language = new SettingsGroup("language", UpdateConfig.setLanguage);
groups.fontSize = new SettingsGroup("fontSize", UpdateConfig.setFontSize);
groups.pageWidth = new SettingsGroup("pageWidth", UpdateConfig.setPageWidth);
@@ -578,7 +584,9 @@ $(
".pageSettings .section.discordIntegration .buttons .generateCodeButton"
).click((e) => {
Loader.show();
- CloudFunctions.generatePairingCode({ uid: firebase.auth().currentUser.uid })
+ CloudFunctions.generatePairingCode({
+ uid: firebase.auth().currentUser.uid,
+ })
.then((ret) => {
Loader.hide();
if (ret.data.status === 1 || ret.data.status === 2) {
@@ -715,7 +723,9 @@ $(".pageSettings .sectionGroupTitle").click((e) => {
{
duration: 250,
step: function (now) {
- $(this).css({ transform: "rotate(" + now + "deg)" });
+ $(this).css({
+ transform: "rotate(" + now + "deg)",
+ });
},
}
);
@@ -729,7 +739,9 @@ $(".pageSettings .sectionGroupTitle").click((e) => {
{
duration: 250,
step: function (now) {
- $(this).css({ transform: "rotate(" + now + "deg)" });
+ $(this).css({
+ transform: "rotate(" + now + "deg)",
+ });
},
}
);
diff --git a/src/js/settings/settings-group.js b/src/js/settings/settings-group.js
index 50226bc50..0c733c45f 100644
--- a/src/js/settings/settings-group.js
+++ b/src/js/settings/settings-group.js
@@ -9,11 +9,7 @@ export default class SettingsGroup {
) {
this.configName = configName;
this.configValue = Config[configName];
- if (this.configValue === true || this.configValue === false) {
- this.onOff = true;
- } else {
- this.onOff = false;
- }
+ this.onOff = typeof this.configValue === "boolean";
this.toggleFunction = toggleFunction;
this.setCallback = setCallback;
this.updateCallback = updateCallback;
@@ -36,8 +32,8 @@ export default class SettingsGroup {
this.updateButton();
if (this.setCallback !== null) this.setCallback();
} else {
- let value = target.attr(configName);
- let params = target.attr("params");
+ const value = target.attr(configName);
+ const params = target.attr("params");
this.setValue(value, params);
}
}
@@ -60,14 +56,9 @@ export default class SettingsGroup {
"active"
);
if (this.onOff) {
- let onoffstring;
- if (this.configValue) {
- onoffstring = "on";
- } else {
- onoffstring = "off";
- }
+ const onOffString = this.configValue ? "on" : "off";
$(
- `.pageSettings .section.${this.configName} .buttons .button.${onoffstring}`
+ `.pageSettings .section.${this.configName} .buttons .button.${onOffString}`
).addClass("active");
} else {
$(
diff --git a/src/js/settings/theme-picker.js b/src/js/settings/theme-picker.js
index ce442ce17..61669124a 100644
--- a/src/js/settings/theme-picker.js
+++ b/src/js/settings/theme-picker.js
@@ -217,7 +217,7 @@ $(".pageSettings .saveCustomThemeButton").click((e) => {
);
UpdateConfig.setCustomThemeColors(save);
ThemeController.set("custom");
- Notifications.add("Custom theme colors saved", 0);
+ Notifications.add("Custom theme colors saved", 1);
});
$(".pageSettings #loadCustomColorsFromPreset").click((e) => {
diff --git a/src/js/test/funbox.js b/src/js/test/funbox.js
index 9d97494f0..7bca01486 100644
--- a/src/js/test/funbox.js
+++ b/src/js/test/funbox.js
@@ -12,6 +12,24 @@ export let modeSaved = null;
let memoryTimer = null;
let memoryInterval = null;
+let settingsMemory = {};
+
+function rememberSetting(settingName, value, setFunction) {
+ settingsMemory[settingName] ??= {
+ value,
+ setFunction,
+ };
+}
+
+function loadMemory() {
+ Notifications.add("Reverting funbox settings", 0);
+ Object.keys(settingsMemory).forEach((setting) => {
+ setting = settingsMemory[setting];
+ setting.setFunction(setting.value, true);
+ });
+ settingsMemory = {};
+}
+
function showMemoryTimer() {
$("#typingTest #memoryTimer").stop(true, true).animate(
{
@@ -112,6 +130,11 @@ export async function activate(funbox, mode) {
}
if (funbox === "simon_says") {
+ rememberSetting(
+ "keymapMode",
+ Config.keymapMode,
+ UpdateConfig.setKeymapMode
+ );
UpdateConfig.setKeymapMode("next");
Settings.groups.keymapMode.updateButton();
TestLogic.restart();
@@ -122,45 +145,82 @@ export async function activate(funbox, mode) {
funbox === "read_ahead_easy" ||
funbox === "read_ahead_hard"
) {
+ rememberSetting(
+ "highlightMode",
+ Config.highlightMode,
+ UpdateConfig.setHighlightMode
+ );
UpdateConfig.setHighlightMode("letter", true);
TestLogic.restart();
}
} else if (mode === "script") {
if (funbox === "tts") {
$("#funBoxTheme").attr("href", `funbox/simon_says.css`);
+ rememberSetting(
+ "keymapMode",
+ Config.keymapMode,
+ UpdateConfig.setKeymapMode
+ );
UpdateConfig.setKeymapMode("off");
Settings.groups.keymapMode.updateButton();
TestLogic.restart();
} else if (funbox === "layoutfluid") {
+ rememberSetting(
+ "keymapMode",
+ Config.keymapMode,
+ UpdateConfig.setKeymapMode
+ );
UpdateConfig.setKeymapMode("next");
Settings.groups.keymapMode.updateButton();
- UpdateConfig.setSavedLayout(Config.layout);
+ // UpdateConfig.setSavedLayout(Config.layout);
+ rememberSetting("layout", Config.layout, UpdateConfig.setLayout);
UpdateConfig.setLayout("qwerty");
Settings.groups.layout.updateButton();
+ rememberSetting(
+ "keymapLayout",
+ Config.keymapLayout,
+ UpdateConfig.setKeymapLayout
+ );
UpdateConfig.setKeymapLayout("qwerty");
Settings.groups.keymapLayout.updateButton();
TestLogic.restart();
} else if (funbox === "memory") {
+ rememberSetting("mode", Config.mode, UpdateConfig.setMode);
UpdateConfig.setMode("words");
+ rememberSetting(
+ "showAllLines",
+ Config.showAllLines,
+ UpdateConfig.setShowAllLines
+ );
UpdateConfig.setShowAllLines(true, true);
TestLogic.restart(false, true);
if (Config.keymapMode === "next") {
+ rememberSetting(
+ "keymapMode",
+ Config.keymapMode,
+ UpdateConfig.setKeymapMode
+ );
UpdateConfig.setKeymapMode("react");
}
} else if (funbox === "nospace") {
$("#words").addClass("nospace");
+ rememberSetting(
+ "highlightMode",
+ Config.highlightMode,
+ UpdateConfig.setHighlightMode
+ );
UpdateConfig.setHighlightMode("letter", true);
TestLogic.restart(false, true);
}
active = funbox;
}
- if (funbox !== "layoutfluid" || mode !== "script") {
- if (Config.layout !== Config.savedLayout) {
- UpdateConfig.setLayout(Config.savedLayout);
- Settings.groups.layout.updateButton();
- }
- }
+ // if (funbox !== "layoutfluid" || mode !== "script") {
+ // if (Config.layout !== Config.savedLayout) {
+ // UpdateConfig.setLayout(Config.savedLayout);
+ // Settings.groups.layout.updateButton();
+ // }
+ // }
TestUI.updateModesNotice();
return true;
}
@@ -172,6 +232,7 @@ export function setFunbox(funbox, mode) {
);
return false;
}
+ if (funbox === "none") loadMemory();
funboxSaved = funbox;
modeSaved = mode;
active = funbox;
diff --git a/src/sass/style.scss b/src/sass/style.scss
index cb650b3ae..d96e7113d 100644
--- a/src/sass/style.scss
+++ b/src/sass/style.scss
@@ -1652,7 +1652,7 @@ a:hover {
justify-self: right;
display: grid;
// grid-auto-flow: row;
- grid-template-rows: 1fr 1fr 1fr;
+ grid-template-rows: 0.7rem 0.7rem 0.7rem;
grid-gap: 0.2rem;
// width: min-content;
// width: -moz-min-content;
@@ -3041,6 +3041,7 @@ key {
&.languageGroups,
&.layout,
&.keymapLayout,
+ &.keymapLegendStyle,
&.fontFamily,
&.funbox,
&.keymapStyle,
@@ -3553,6 +3554,7 @@ key {
.pageSettings .section.language .buttons,
.pageSettings .section.layout .buttons,
.pageSettings .section.keymapLayout .buttons,
+ .pageSettings .section.keymapLegendStyle .buttons,
.pageSettings .section.fontFamily .buttons,
.pageSettings .section.funbox .buttons,
.pageSettings .section.keymapStyle .buttons {
@@ -3663,6 +3665,7 @@ key {
.pageSettings .section.language .buttons,
.pageSettings .section.layout .buttons,
.pageSettings .section.keymapLayout .buttons,
+ .pageSettings .section.keymapLegendStyle .buttons,
.pageSettings .section.fontFamily .buttons,
.pageSettings .section.funbox .buttons,
.pageSettings .section.keymapStyle .buttons {
diff --git a/static/index.html b/static/index.html
index 5b0511414..8e5a35bee 100644
--- a/static/index.html
+++ b/static/index.html
@@ -1660,6 +1660,20 @@
keymap layout
diff --git a/static/languages/_groups.json b/static/languages/_groups.json
index 31b727ad4..d44469e36 100644
--- a/static/languages/_groups.json
+++ b/static/languages/_groups.json
@@ -31,6 +31,10 @@
"name": "portuguese",
"languages": ["portuguese"]
},
+ {
+ "name": "lithuanian",
+ "languages": ["lithuanian", "lithuanian_1k"]
+ },
{
"name": "indonesian",
"languages": ["indonesian", "indonesian_1k"]
@@ -65,7 +69,7 @@
},
{
"name": "slovak",
- "languages": ["slovak"]
+ "languages": ["slovak", "slovak_1k"]
},
{
"name": "slovenian",
diff --git a/static/languages/_list.json b/static/languages/_list.json
index 83d7b9810..558ee08a3 100644
--- a/static/languages/_list.json
+++ b/static/languages/_list.json
@@ -37,6 +37,7 @@
,"czech_1k"
,"czech_10k"
,"slovak"
+ ,"slovak_1k"
,"slovenian"
,"croatian"
,"dutch"
@@ -69,6 +70,8 @@
,"maori_1k"
,"lojban_gismu"
,"lojban_cmavo"
+ ,"lithuanian"
+ ,"lithuanian_1k"
,"toki_pona"
,"twitch_emotes"
,"pig_latin"
diff --git a/static/languages/lithuanian.json b/static/languages/lithuanian.json
new file mode 100644
index 000000000..9219ef7d3
--- /dev/null
+++ b/static/languages/lithuanian.json
@@ -0,0 +1,210 @@
+{
+ "name": "lithuanian",
+ "leftToRight": true,
+ "words": [
+ "ir",
+ "jis",
+ "būti",
+ "tas",
+ "į",
+ "kad",
+ "aš",
+ "kuris",
+ "su",
+ "šis",
+ "galėti",
+ "o",
+ "iš",
+ "kaip",
+ "darbas",
+ "ar",
+ "kitas",
+ "turėti",
+ "visas",
+ "žmogus",
+ "Lietuva",
+ "kad",
+ "vienas",
+ "tik",
+ "savo",
+ "nuo",
+ "toks",
+ "bet",
+ "ne",
+ "apie",
+ "jau",
+ "labai",
+ "metai",
+ "dar",
+ "daug",
+ "tu",
+ "už",
+ "bei",
+ "arba",
+ "laikas",
+ "kai",
+ "taip",
+ "pats",
+ "reikėti",
+ "per",
+ "po",
+ "nebūti",
+ "čia",
+ "dėl",
+ "prie",
+ "tačiau",
+ "didelis",
+ "sistema",
+ "gamyba",
+ "įmonė",
+ "pirmas",
+ "nes",
+ "vieta",
+ "žemė",
+ "norėti",
+ "naujas",
+ "dabar",
+ "jei",
+ "koks",
+ "žinoti",
+ "pagal",
+ "įstatymas",
+ "vaikas",
+ "todėl",
+ "net",
+ "iki",
+ "gyvenimas",
+ "narys",
+ "du",
+ "pirmininkas",
+ "svarbus",
+ "ant",
+ "grupė",
+ "kiekvienas",
+ "dalis",
+ "atlikti",
+ "seimas",
+ "diena",
+ "tai",
+ "sakyti",
+ "valstybė",
+ "duomuo",
+ "gerai",
+ "prieš",
+ "kur",
+ "negalėti",
+ "dažnai",
+ "jeigu",
+ "pasaulis",
+ "niekas",
+ "sudaryti",
+ "šalis",
+ "klausimas",
+ "geras",
+ "nei",
+ "nustatyti",
+ "be",
+ "metas",
+ "savęs",
+ "viskas",
+ "pradėti",
+ "procesas",
+ "tada",
+ "kartas",
+ "kiek",
+ "priimti",
+ "gauti",
+ "veikla",
+ "ūkis",
+ "vanduo",
+ "įvairus",
+ "dirbti",
+ "gal",
+ "Vilnius",
+ "pagrindinis",
+ "pateikti",
+ "pavyzdys",
+ "imti",
+ "skirti",
+ "informacija",
+ "lietuvis",
+ "ligonis",
+ "tarp",
+ "ranka",
+ "tapti",
+ "dievas",
+ "bendras",
+ "vyriausybė",
+ "priemonė",
+ "kalbėti",
+ "miestas",
+ "žodis",
+ "projektas",
+ "respublika",
+ "kalba",
+ "daryti",
+ "kultūra",
+ "sąlyga",
+ "padėti",
+ "mažas",
+ "pasakyti",
+ "antras",
+ "aukštas",
+ "visai",
+ "naudoti",
+ "Europa",
+ "gyventi",
+ "nors",
+ "mano",
+ "atrodyti",
+ "vėl",
+ "matyti",
+ "jog",
+ "medžiaga",
+ "gerbti",
+ "būdas",
+ "senas",
+ "Kaunas",
+ "manyti",
+ "valdymas",
+ "ten",
+ "tyrimas",
+ "neturėti",
+ "mokslas",
+ "sprendimas",
+ "šiltas",
+ "keli",
+ "darbuotojas",
+ "operacija",
+ "priklausyti",
+ "knyga",
+ "vadinti",
+ "laikyti",
+ "ypač",
+ "suprasti",
+ "problema",
+ "tikslas",
+ "asmuo",
+ "forma",
+ "galva",
+ "sunkus",
+ "atvejis",
+ "metodas",
+ "skyrius",
+ "daugelis",
+ "eiti",
+ "leisti",
+ "moteris",
+ "straipsnis",
+ "padaryti",
+ "likti",
+ "toli",
+ "akis",
+ "tikrai",
+ "vyras",
+ "istorija",
+ "liga",
+ "organizacija",
+ "trys"
+ ]
+}
diff --git a/static/languages/lithuanian_1k.json b/static/languages/lithuanian_1k.json
new file mode 100644
index 000000000..500a96347
--- /dev/null
+++ b/static/languages/lithuanian_1k.json
@@ -0,0 +1,497 @@
+{
+ "name": "lithuanian_1k",
+ "leftToRight": true,
+ "words": [
+ "ir",
+ "jis",
+ "būti",
+ "tas",
+ "į",
+ "kad",
+ "aš",
+ "kuris",
+ "su",
+ "šis",
+ "galėti",
+ "o",
+ "iš",
+ "kaip",
+ "darbas",
+ "ar",
+ "kitas",
+ "turėti",
+ "visas",
+ "žmogus",
+ "Lietuva",
+ "kad",
+ "vienas",
+ "tik",
+ "savo",
+ "nuo",
+ "toks",
+ "bet",
+ "ne",
+ "apie",
+ "jau",
+ "labai",
+ "metai",
+ "dar",
+ "daug",
+ "tu",
+ "už",
+ "bei",
+ "arba",
+ "laikas",
+ "kai",
+ "taip",
+ "pats",
+ "reikėti",
+ "per",
+ "po",
+ "nebūti",
+ "čia",
+ "dėl",
+ "prie",
+ "tačiau",
+ "didelis",
+ "sistema",
+ "gamyba",
+ "įmonė",
+ "pirmas",
+ "nes",
+ "vieta",
+ "žemė",
+ "norėti",
+ "naujas",
+ "dabar",
+ "jei",
+ "koks",
+ "žinoti",
+ "pagal",
+ "įstatymas",
+ "vaikas",
+ "todėl",
+ "net",
+ "iki",
+ "gyvenimas",
+ "narys",
+ "du",
+ "pirmininkas",
+ "svarbus",
+ "ant",
+ "grupė",
+ "kiekvienas",
+ "dalis",
+ "atlikti",
+ "seimas",
+ "diena",
+ "tai",
+ "sakyti",
+ "valstybė",
+ "duomuo",
+ "gerai",
+ "prieš",
+ "kur",
+ "negalėti",
+ "dažnai",
+ "jeigu",
+ "pasaulis",
+ "niekas",
+ "sudaryti",
+ "šalis",
+ "klausimas",
+ "geras",
+ "nei",
+ "nustatyti",
+ "be",
+ "metas",
+ "savęs",
+ "viskas",
+ "pradėti",
+ "procesas",
+ "tada",
+ "kartas",
+ "kiek",
+ "priimti",
+ "gauti",
+ "veikla",
+ "ūkis",
+ "vanduo",
+ "įvairus",
+ "dirbti",
+ "gal",
+ "Vilnius",
+ "pagrindinis",
+ "pateikti",
+ "pavyzdys",
+ "imti",
+ "skirti",
+ "informacija",
+ "lietuvis",
+ "ligonis",
+ "tarp",
+ "ranka",
+ "tapti",
+ "dievas",
+ "bendras",
+ "vyriausybė",
+ "priemonė",
+ "kalbėti",
+ "miestas",
+ "žodis",
+ "projektas",
+ "respublika",
+ "kalba",
+ "daryti",
+ "kultūra",
+ "sąlyga",
+ "padėti",
+ "mažas",
+ "pasakyti",
+ "antras",
+ "aukštas",
+ "visai",
+ "naudoti",
+ "Europa",
+ "gyventi",
+ "nors",
+ "mano",
+ "atrodyti",
+ "vėl",
+ "matyti",
+ "jog",
+ "medžiaga",
+ "gerbti",
+ "būdas",
+ "senas",
+ "Kaunas",
+ "manyti",
+ "valdymas",
+ "ten",
+ "tyrimas",
+ "neturėti",
+ "mokslas",
+ "sprendimas",
+ "šiltas",
+ "keli",
+ "darbuotojas",
+ "operacija",
+ "priklausyti",
+ "knyga",
+ "vadinti",
+ "laikyti",
+ "ypač",
+ "suprasti",
+ "problema",
+ "tikslas",
+ "asmuo",
+ "forma",
+ "galva",
+ "sunkus",
+ "atvejis",
+ "metodas",
+ "skyrius",
+ "daugelis",
+ "eiti",
+ "leisti",
+ "moteris",
+ "straipsnis",
+ "padaryti",
+ "likti",
+ "toli",
+ "akis",
+ "tikrai",
+ "vyras",
+ "istorija",
+ "liga",
+ "organizacija",
+ "trys",
+ "tam",
+ "tikras",
+ "dalykas",
+ "vėlai",
+ "pusė",
+ "mėnuo",
+ "kartu",
+ "struktūra",
+ "centras",
+ "veikti",
+ "gaminys",
+ "teisė",
+ "juk",
+ "numatyti",
+ "taiki",
+ "vadovas",
+ "lygis",
+ "joks",
+ "turtas",
+ "galimybė",
+ "objektas",
+ "rinka",
+ "beveik",
+ "siekti",
+ "rezultatas",
+ "visiškai",
+ "tauta",
+ "technologija",
+ "pagrindas",
+ "ministerija",
+ "sritis",
+ "šlaitas",
+ "greitai",
+ "šeima",
+ "dokumentas",
+ "mažai",
+ "tvarka",
+ "siūlyti",
+ "atsirasti",
+ "tiek",
+ "ryšys",
+ "mokykla",
+ "teikti",
+ "socialinis",
+ "atskiras",
+ "kokybė",
+ "komitetas",
+ "pradžia",
+ "santykis",
+ "norma",
+ "rašyti",
+ "programa",
+ "mokestis",
+ "ekonominis",
+ "skaičius",
+ "vykti",
+ "mintis",
+ "vis",
+ "jėga",
+ "reikalas",
+ "vardas",
+ "bankas",
+ "širdis",
+ "lyg",
+ "poreikis",
+ "kontrolė",
+ "kartais",
+ "techninis",
+ "kelias",
+ "pasiekti",
+ "rasti",
+ "vakarai",
+ "sukurti",
+ "fondas",
+ "kraštas",
+ "organizavimas",
+ "nurodyti",
+ "pritarti",
+ "abu",
+ "reikalingas",
+ "palikti",
+ "priežastis",
+ "amžius",
+ "prašom",
+ "kūnas",
+ "paprastai",
+ "funkcija",
+ "uoliena",
+ "paskutinis",
+ "įrengimas",
+ "namai",
+ "principas",
+ "kolega",
+ "balsas",
+ "baigti",
+ "grįžti",
+ "kurti",
+ "užsienis",
+ "ateiti",
+ "šiandien",
+ "latvis",
+ "gamta",
+ "rajonas",
+ "pinigas",
+ "ponas",
+ "baltas",
+ "kodėl",
+ "teikti",
+ "nuomonė",
+ "panašus",
+ "tikras",
+ "ilgas",
+ "atitikti",
+ "prašyti",
+ "taikyti",
+ "didis",
+ "dėmesys",
+ "praeiti",
+ "elementas",
+ "vaidmuo",
+ "pas",
+ "teigti",
+ "aiškus",
+ "pro",
+ "linija",
+ "registras",
+ "tiesa",
+ "duoti",
+ "ministras",
+ "štai",
+ "reikalavimas",
+ "koja",
+ "negu",
+ "spręsti",
+ "pasirodyti",
+ "tėvas",
+ "bažnyčia",
+ "situacija",
+ "vokietis",
+ "darbininkas",
+ "tikti",
+ "anksti",
+ "laukti",
+ "kaimas",
+ "prekė",
+ "informacinis",
+ "produkcija",
+ "nutarimas",
+ "tarnyba",
+ "valstybinis",
+ "jūra",
+ "minėti",
+ "tarsi",
+ "laisvė",
+ "pakeisti",
+ "planas",
+ "veiksmas",
+ "dalyvauti",
+ "gyventojas",
+ "visuomenė",
+ "pardavimas",
+ "durys",
+ "pataisa",
+ "nežinoti",
+ "paskui",
+ "veidas",
+ "kol",
+ "savas",
+ "prasmė",
+ "sutikti",
+ "pabaiga",
+ "ieškoti",
+ "bendrovė",
+ "prasmė",
+ "sutikti",
+ "pabaiga",
+ "ieškoti",
+ "bendrovė",
+ "organizuoti",
+ "detalė",
+ "kadangi",
+ "siena",
+ "valanda",
+ "žiūrėti",
+ "susyti",
+ "rytai",
+ "įvertinti",
+ "pramonė",
+ "suteikti",
+ "vos",
+ "mokėti",
+ "vartotojas",
+ "kilti",
+ "rodyti",
+ "tavo",
+ "konkretus",
+ "vykdyti",
+ "parengti",
+ "karas",
+ "teritorija",
+ "na",
+ "rytas",
+ "specialus",
+ "tipas",
+ "šaltinis",
+ "jausmas",
+ "autorius",
+ "jaunas",
+ "medicina",
+ "firma",
+ "ilgai",
+ "gana",
+ "pastaras",
+ "pavadinimas",
+ "įrankis",
+ "lėšos",
+ "atsakyti",
+ "ačiū",
+ "remontas",
+ "privalėti",
+ "savaitė",
+ "išeiti",
+ "kaina",
+ "tad",
+ "dydis",
+ "keletas",
+ "papildyti",
+ "universitetas",
+ "gydytojas",
+ "parodyti",
+ "prasidėti",
+ "prezidentas",
+ "miškas",
+ "analizė",
+ "estas",
+ "punktas",
+ "visada",
+ "galas",
+ "kitoks",
+ "mirtis",
+ "ligoninė",
+ "tėvai",
+ "daiktas",
+ "nereikėti",
+ "laisvas",
+ "stengtis",
+ "išskirti",
+ "sąjunga",
+ "trečias",
+ "kada",
+ "kažkas",
+ "kelti",
+ "oras",
+ "meilė",
+ "politinis",
+ "požiūris",
+ "bazė",
+ "savivaldybė",
+ "teismas",
+ "vakaras",
+ "balsuoti",
+ "reikšti",
+ "šiaurė",
+ "būdingas",
+ "sveikata",
+ "taryba",
+ "veiksnys",
+ "šviesa",
+ "gaminti",
+ "patvirtinti",
+ "išlaidos",
+ "vadovauti",
+ "įstaiga",
+ "įtaka",
+ "užduotis",
+ "vadintis",
+ "valdžia",
+ "asmenybė",
+ "medis",
+ "institucija",
+ "kraujas",
+ "uždavinys",
+ "vertinti",
+ "apskaičiuoti",
+ "vidus",
+ "mokslinis",
+ "statyba"
+ ]
+}
diff --git a/static/languages/slovak_1k.json b/static/languages/slovak_1k.json
new file mode 100644
index 000000000..22dbf7ed1
--- /dev/null
+++ b/static/languages/slovak_1k.json
@@ -0,0 +1,1007 @@
+{
+ "name": "slovak_1k",
+ "leftToRight": true,
+ "words": [
+ "to",
+ "sa",
+ "je",
+ "si",
+ "a",
+ "som",
+ "na",
+ "že",
+ "čo",
+ "nie",
+ "v",
+ "ako",
+ "tak",
+ "ale",
+ "by",
+ "s",
+ "tu",
+ "mi",
+ "do",
+ "ja",
+ "o",
+ "sme",
+ "áno",
+ "ste",
+ "ma",
+ "z",
+ "už",
+ "len",
+ "ty",
+ "ho",
+ "ti",
+ "aby",
+ "dobre",
+ "keď",
+ "za",
+ "ťa",
+ "ak",
+ "tam",
+ "sú",
+ "pre",
+ "bol",
+ "hej",
+ "toto",
+ "teraz",
+ "niečo",
+ "prečo",
+ "no",
+ "mám",
+ "aj",
+ "ich",
+ "byť",
+ "ten",
+ "bude",
+ "všetko",
+ "vás",
+ "kde",
+ "ju",
+ "nič",
+ "ešte",
+ "vám",
+ "kto",
+ "tom",
+ "po",
+ "máš",
+ "k",
+ "môj",
+ "toho",
+ "bolo",
+ "prosím",
+ "alebo",
+ "vieš",
+ "myslím",
+ "má",
+ "takže",
+ "mňa",
+ "veľmi",
+ "bola",
+ "poriadku",
+ "nikdy",
+ "tým",
+ "jeho",
+ "viem",
+ "nás",
+ "ani",
+ "jej",
+ "mal",
+ "od",
+ "chcem",
+ "potom",
+ "ďakujem",
+ "so",
+ "možno",
+ "mu",
+ "neviem",
+ "povedal",
+ "oh",
+ "vy",
+ "teba",
+ "chceš",
+ "ísť",
+ "on",
+ "pane",
+ "ahoj",
+ "stále",
+ "viac",
+ "tie",
+ "pán",
+ "naozaj",
+ "nám",
+ "pretože",
+ "sem",
+ "máme",
+ "dnes",
+ "poďme",
+ "povedať",
+ "moja",
+ "poď",
+ "boli",
+ "musím",
+ "pozri",
+ "pred",
+ "môžem",
+ "vo",
+ "ok",
+ "budem",
+ "iba",
+ "všetci",
+ "myslíš",
+ "keby",
+ "niekto",
+ "tiež",
+ "ktorý",
+ "mali",
+ "nemôžem",
+ "moje",
+ "my",
+ "práve",
+ "bože",
+ "tú",
+ "asi",
+ "rád",
+ "či",
+ "čas",
+ "vždy",
+ "deň",
+ "tvoj",
+ "máte",
+ "mať",
+ "dobrý",
+ "tomu",
+ "veľa",
+ "jeden",
+ "ktoré",
+ "tá",
+ "trochu",
+ "ľudia",
+ "stalo",
+ "pri",
+ "jasné",
+ "otec",
+ "chcel",
+ "kurva",
+ "tento",
+ "zo",
+ "musíme",
+ "mohol",
+ "budeš",
+ "bez",
+ "mala",
+ "ide",
+ "mnou",
+ "až",
+ "dobré",
+ "môžeš",
+ "život",
+ "robiť",
+ "veci",
+ "mne",
+ "tebou",
+ "teda",
+ "presne",
+ "robíš",
+ "dosť",
+ "daj",
+ "môže",
+ "však",
+ "choď",
+ "nech",
+ "viete",
+ "musíš",
+ "ľudí",
+ "domov",
+ "nikto",
+ "všetky",
+ "prepáčte",
+ "ona",
+ "prepáč",
+ "preto",
+ "späť",
+ "povedz",
+ "deje",
+ "budeme",
+ "raz",
+ "každý",
+ "hneď",
+ "im",
+ "kým",
+ "urobiť",
+ "tvoja",
+ "lebo",
+ "vážne",
+ "rokov",
+ "nechcem",
+ "kedy",
+ "svoje",
+ "vďaka",
+ "vedieť",
+ "počkaj",
+ "noc",
+ "vec",
+ "také",
+ "kvôli",
+ "nejaké",
+ "takto",
+ "nemám",
+ "idem",
+ "svoju",
+ "kam",
+ "pravdu",
+ "videl",
+ "myslel",
+ "chce",
+ "povedala",
+ "než",
+ "pár",
+ "žiadne",
+ "vôbec",
+ "preč",
+ "samozrejme",
+ "ním",
+ "mohli",
+ "tvoje",
+ "miesto",
+ "problém",
+ "mama",
+ "vlastne",
+ "potrebujem",
+ "peniaze",
+ "lepšie",
+ "tebe",
+ "chcete",
+ "niekedy",
+ "rýchlo",
+ "musí",
+ "spolu",
+ "ideme",
+ "sám",
+ "u",
+ "vidieť",
+ "celý",
+ "tej",
+ "úplne",
+ "deti",
+ "prišiel",
+ "určite",
+ "taký",
+ "von",
+ "pod",
+ "večer",
+ "tých",
+ "vyzerá",
+ "dlho",
+ "pani",
+ "ráno",
+ "fajn",
+ "koľko",
+ "veď",
+ "seba",
+ "dva",
+ "aký",
+ "môžeme",
+ "nich",
+ "aké",
+ "všetkých",
+ "tri",
+ "príliš",
+ "dievča",
+ "rada",
+ "urobil",
+ "majú",
+ "pravda",
+ "hovoriť",
+ "meno",
+ "dostať",
+ "ktorá",
+ "budú",
+ "váš",
+ "cez",
+ "čom",
+ "môjho",
+ "pozor",
+ "zajtra",
+ "tieto",
+ "pomôcť",
+ "prestaň",
+ "mojej",
+ "nejaký",
+ "muž",
+ "nebude",
+ "riti",
+ "super",
+ "dole",
+ "tejto",
+ "niekoho",
+ "neho",
+ "žena",
+ "ano",
+ "svoj",
+ "dieťa",
+ "hore",
+ "môžete",
+ "správne",
+ "co",
+ "fakt",
+ "vaše",
+ "vidím",
+ "radšej",
+ "znamená",
+ "auto",
+ "dať",
+ "istý",
+ "jedno",
+ "oni",
+ "medzi",
+ "ďalej",
+ "pozrite",
+ "ku",
+ "hovorí",
+ "predtým",
+ "budete",
+ "moju",
+ "poviem",
+ "chvíľu",
+ "nechaj",
+ "nebol",
+ "zlatko",
+ "mami",
+ "páči",
+ "náš",
+ "chcela",
+ "proste",
+ "i",
+ "túto",
+ "ľúto",
+ "mohla",
+ "naše",
+ "nemôžeš",
+ "dostal",
+ "podľa",
+ "jedna",
+ "vie",
+ "táto",
+ "myslíte",
+ "jednu",
+ "pohode",
+ "neskôr",
+ "robí",
+ "aspoň",
+ "nej",
+ "dve",
+ "dal",
+ "nájsť",
+ "tomto",
+ "skoro",
+ "prácu",
+ "človek",
+ "vaša",
+ "vedel",
+ "nuž",
+ "ktorí",
+ "hovorím",
+ "haló",
+ "pomoc",
+ "nami",
+ "prvý",
+ "pekla",
+ "milujem",
+ "odtiaľto",
+ "nad",
+ "ideš",
+ "počúvaj",
+ "hovoril",
+ "vidíš",
+ "skôr",
+ "dúfam",
+ "čože",
+ "doma",
+ "ktorú",
+ "proti",
+ "okej",
+ "zlé",
+ "skutočne",
+ "veľký",
+ "vami",
+ "dvere",
+ "predsa",
+ "počul",
+ "koho",
+ "nemá",
+ "iné",
+ "pekne",
+ "minút",
+ "musíte",
+ "ňou",
+ "och",
+ "nemal",
+ "číslo",
+ "dobrá",
+ "uvidíme",
+ "hovoríš",
+ "svojho",
+ "malý",
+ "doktor",
+ "slečna",
+ "kámo",
+ "taká",
+ "buď",
+ "chlapci",
+ "okolo",
+ "nemáš",
+ "dom",
+ "znova",
+ "mŕtvy",
+ "ze",
+ "koniec",
+ "sakra",
+ "dám",
+ "zabiť",
+ "pokiaľ",
+ "moc",
+ "noci",
+ "sebe",
+ "dobrú",
+ "poďte",
+ "dnu",
+ "svete",
+ "svet",
+ "jedného",
+ "nemôže",
+ "dvaja",
+ "tvoju",
+ "volá",
+ "tí",
+ "the",
+ "dajte",
+ "myslela",
+ "života",
+ "ruky",
+ "páni",
+ "nebudem",
+ "príde",
+ "videla",
+ "celkom",
+ "sama",
+ "prišli",
+ "drž",
+ "matka",
+ "vonku",
+ "nebolo",
+ "zabil",
+ "našiel",
+ "cítim",
+ "chlapec",
+ "skvelé",
+ "vrátiť",
+ "zdá",
+ "boh",
+ "práca",
+ "sebou",
+ "problémy",
+ "syn",
+ "celé",
+ "otca",
+ "pekné",
+ "nápad",
+ "spraviť",
+ "priateľ",
+ "zase",
+ "chlap",
+ "roky",
+ "najlepšie",
+ "času",
+ "ach",
+ "svojej",
+ "rok",
+ "musel",
+ "zbraň",
+ "oci",
+ "niekde",
+ "potrebujeme",
+ "odísť",
+ "musieť",
+ "krát",
+ "vtedy",
+ "kapitán",
+ "žiadny",
+ "žiť",
+ "tohto",
+ "kúpiť",
+ "ňu",
+ "dokonca",
+ "inak",
+ "práce",
+ "poznám",
+ "ó",
+ "pozrieť",
+ "čím",
+ "zlato",
+ "hlavu",
+ "človeče",
+ "nemyslím",
+ "ceste",
+ "stane",
+ "nebola",
+ "robím",
+ "nemáme",
+ "robíte",
+ "počkajte",
+ "uh",
+ "nový",
+ "eur",
+ "celú",
+ "dá",
+ "ticho",
+ "nechať",
+ "brat",
+ "veľké",
+ "zatiaľ",
+ "ňom",
+ "chlape",
+ "znovu",
+ "ženy",
+ "cestu",
+ "pripravený",
+ "týždeň",
+ "počkať",
+ "hrať",
+ "oči",
+ "chlapče",
+ "tvojej",
+ "prísť",
+ "nechceš",
+ "povedali",
+ "choďte",
+ "iste",
+ "čokoľvek",
+ "ďalší",
+ "prišla",
+ "možné",
+ "toľko",
+ "chcú",
+ "pôjdem",
+ "zle",
+ "včera",
+ "našli",
+ "konečne",
+ "aká",
+ "slovo",
+ "malé",
+ "pocit",
+ "priamo",
+ "ťažké",
+ "nimi",
+ "pekná",
+ "ženu",
+ "okrem",
+ "nové",
+ "ocko",
+ "naša",
+ "hodín",
+ "starý",
+ "iný",
+ "chceli",
+ "videli",
+ "spravil",
+ "mojich",
+ "mojom",
+ "nejakú",
+ "týchto",
+ "odkiaľ",
+ "nevieš",
+ "neskoro",
+ "ta",
+ "výborne",
+ "prípade",
+ "nechajte",
+ "telo",
+ "nepovedal",
+ "svojich",
+ "srdce",
+ "päť",
+ "nemôžeme",
+ "istá",
+ "dní",
+ "živote",
+ "nevidel",
+ "robil",
+ "jednoducho",
+ "smrť",
+ "majster",
+ "volám",
+ "dôvod",
+ "potrebuje",
+ "vyzeráš",
+ "domu",
+ "dr",
+ "povedzte",
+ "isté",
+ "dni",
+ "neboj",
+ "môžu",
+ "dôležité",
+ "muža",
+ "jediný",
+ "príbeh",
+ "tvojho",
+ "treba",
+ "znie",
+ "aha",
+ "mieste",
+ "porozprávať",
+ "akoby",
+ "ruku",
+ "dvoch",
+ "vašu",
+ "ďaleko",
+ "nechcel",
+ "rozumiem",
+ "ono",
+ "vecí",
+ "všetkým",
+ "mimo",
+ "počas",
+ "loď",
+ "hubu",
+ "najlepší",
+ "vypadni",
+ "dostali",
+ "školy",
+ "šancu",
+ "urobím",
+ "rodina",
+ "priatelia",
+ "šťastie",
+ "zdravím",
+ "mesto",
+ "žiadna",
+ "myslí",
+ "pravdepodobne",
+ "pekný",
+ "týmto",
+ "nikoho",
+ "poznáš",
+ "našej",
+ "mohlo",
+ "zem",
+ "malo",
+ "láska",
+ "smrti",
+ "titulky",
+ "krv",
+ "vieme",
+ "potrebuješ",
+ "zlý",
+ "strach",
+ "nemohol",
+ "mesta",
+ "najprv",
+ "hodiny",
+ "vedela",
+ "urobila",
+ "plán",
+ "spať",
+ "stačí",
+ "jedlo",
+ "dome",
+ "sestra",
+ "veriť",
+ "začal",
+ "moji",
+ "našich",
+ "chyba",
+ "sveta",
+ "vziať",
+ "dievčatá",
+ "nevedel",
+ "zemi",
+ "zavolať",
+ "nemali",
+ "spôsob",
+ "štyri",
+ "dňa",
+ "opäť",
+ "zostať",
+ "nevie",
+ "úžasné",
+ "ukáž",
+ "telefón",
+ "všade",
+ "auta",
+ "pôjdeme",
+ "žiaden",
+ "ktorej",
+ "ďalšie",
+ "nerob",
+ "hmm",
+ "počuť",
+ "chlapík",
+ "vráť",
+ "pracovať",
+ "film",
+ "syna",
+ "čau",
+ "zober",
+ "madam",
+ "čoskoro",
+ "dámy",
+ "cesty",
+ "pamätáš",
+ "miláčik",
+ "roku",
+ "nechal",
+ "strane",
+ "tou",
+ "snáď",
+ "naspäť",
+ "jasne",
+ "bež",
+ "byt",
+ "ktorého",
+ "potrebovať",
+ "zavolám",
+ "urob",
+ "ha",
+ "t",
+ "urobili",
+ "ktorých",
+ "prachy",
+ "malá",
+ "pána",
+ "vašej",
+ "vidíte",
+ "povieš",
+ "priateľov",
+ "you",
+ "robia",
+ "akú",
+ "šťastný",
+ "chápem",
+ "poriadne",
+ "rokmi",
+ "ne",
+ "veľká",
+ "nechce",
+ "zomrel",
+ "okamžite",
+ "tvár",
+ "zbohom",
+ "jediná",
+ "rozprávať",
+ "našu",
+ "nemáte",
+ "mrzí",
+ "išiel",
+ "muži",
+ "začať",
+ "nemala",
+ "nemusíš",
+ "ked",
+ "obaja",
+ "dala",
+ "oveľa",
+ "časť",
+ "nakoniec",
+ "radi",
+ "mysli",
+ "kamoš",
+ "chceme",
+ "rodinu",
+ "škole",
+ "niekoľko",
+ "nemôžete",
+ "uveriť",
+ "počúvajte",
+ "nehovor",
+ "zastaviť",
+ "pol",
+ "vrátim",
+ "párty",
+ "rovnako",
+ "snažím",
+ "práci",
+ "zmysel",
+ "baby",
+ "otvor",
+ "odtiaľ",
+ "tými",
+ "dali",
+ "cesta",
+ "boha",
+ "pohyb",
+ "zavolaj",
+ "myslieť",
+ "odo",
+ "meste",
+ "slová",
+ "nohy",
+ "stať",
+ "blázon",
+ "odišiel",
+ "skutočnosti",
+ "peňazí",
+ "vravel",
+ "chcieť",
+ "hovoria",
+ "napríklad",
+ "vezmi",
+ "počula",
+ "zobrať",
+ "hlavy",
+ "ah",
+ "nášho",
+ "žije",
+ "vezmem",
+ "každého",
+ "strašne",
+ "polícia",
+ "zbrane",
+ "verím",
+ "nebudeš",
+ "sľubujem",
+ "blízko",
+ "prípad",
+ "hodinu",
+ "mužov",
+ "čoho",
+ "volal",
+ "sen",
+ "nejde",
+ "prichádza",
+ "stratil",
+ "začína",
+ "správy",
+ "menej",
+ "takmer",
+ "maj",
+ "trocha",
+ "dostala",
+ "posledný",
+ "čakať",
+ "zostaň",
+ "čaká",
+ "musia",
+ "mesiac",
+ "okay",
+ "trošku",
+ "prvé",
+ "dostanem",
+ "vášho",
+ "druhý",
+ "predstaviť",
+ "počuj",
+ "nejako",
+ "vnútri",
+ "náhodou",
+ "musela",
+ "pomôž",
+ "šesť",
+ "vrátil",
+ "chvíľku",
+ "zabudol",
+ "neboli",
+ "hovno",
+ "čase",
+ "hovorila",
+ "dávno",
+ "chlapi",
+ "človeka",
+ "šťastia",
+ "nikomu",
+ "pes",
+ "každú",
+ "tvojom",
+ "mojou",
+ "stará",
+ "hovor",
+ "ver",
+ "jednej",
+ "pokoj",
+ "prídem",
+ "rovno",
+ "rodičia",
+ "dolu",
+ "počuješ",
+ "nejaká",
+ "šaty",
+ "ježiši",
+ "skvelý",
+ "dcéra",
+ "stojí",
+ "večeru",
+ "miesta",
+ "naposledy",
+ "mnoho",
+ "drahá",
+ "hm",
+ "nevadí",
+ "urobíme",
+ "spoločnosť",
+ "dáš",
+ "bojovať",
+ "tvojich",
+ "vlasy",
+ "sex",
+ "chodiť",
+ "hovoríte",
+ "iného",
+ "stáť",
+ "hra",
+ "rozumieš",
+ "com",
+ "pomaly",
+ "dostane",
+ "cítiš",
+ "zabijem",
+ "často",
+ "vitajte",
+ "stretnúť",
+ "prisahám",
+ "prvá",
+ "aute",
+ "možnosť",
+ "srandu",
+ "desať",
+ "jediné",
+ "našla",
+ "žiadnu",
+ "obchod",
+ "otázka",
+ "posledné",
+ "hlavne",
+ "čerta",
+ "celá",
+ "strýko",
+ "vedeli",
+ "idú",
+ "rodiny",
+ "svojom",
+ "ukázať",
+ "najskôr",
+ "ľuďom",
+ "kávu",
+ "pozrime",
+ "milé",
+ "kľud",
+ "idiot",
+ "skús",
+ "moment",
+ "odkedy",
+ "navždy",
+ "záleží",
+ "pôjdeš",
+ "zomrieť",
+ "prestaňte",
+ "nerozumiem",
+ "hlas",
+ "vodu",
+ "jesť",
+ "poznáte",
+ "odpoveď",
+ "takú",
+ "právo",
+ "vzal",
+ "počuli",
+ "krásne",
+ "mladý",
+ "existuje",
+ "druhej",
+ "povie",
+ "dávaj",
+ "svetlo",
+ "poslal",
+ "zmeniť",
+ "mesiacov",
+ "zabudni",
+ "wow",
+ "ťažko",
+ "šiel",
+ "týždne",
+ "mimochodom",
+ "sadni"
+ ]
+}
\ No newline at end of file