diff --git a/.gitignore b/.gitignore
index 0ecbf0e3bc..8a6aff0c47 100644
--- a/.gitignore
+++ b/.gitignore
@@ -90,7 +90,6 @@ ylwrap
*.mk
# Visual Studio garbage
-.vscode/
*.opensdf
UpgradeLog*.XML
_UpgradeReport_Files
diff --git a/nel/include/nel/gui/group_container.h b/nel/include/nel/gui/group_container.h
index 5157c22b1c..cac95121a1 100644
--- a/nel/include/nel/gui/group_container.h
+++ b/nel/include/nel/gui/group_container.h
@@ -238,8 +238,10 @@ namespace NLGUI
std::string getTitle () const;
void setTitle (const std::string &title);
std::string getTitleOpened () const;
+ CViewText* getTitleOpenedViewText() { return _TitleOpened; };
void setTitleOpened (const std::string &title);
std::string getTitleClosed () const;
+ CViewText* getTitleClosedViewText() { return _TitleClosed; };
void setTitleClosed (const std::string &title);
std::string getTitleColorAsString() const;
void setTitleColorAsString(const std::string &col);
diff --git a/nel/include/nel/gui/group_editbox.h b/nel/include/nel/gui/group_editbox.h
index 1f4f316fc9..0ebf704f25 100644
--- a/nel/include/nel/gui/group_editbox.h
+++ b/nel/include/nel/gui/group_editbox.h
@@ -194,6 +194,7 @@ namespace NLGUI
REFLECT_LUA_METHOD("setFocusOnText", luaSetFocusOnText);
REFLECT_LUA_METHOD("cancelFocusOnText", luaCancelFocusOnText);
REFLECT_STRING("input_string", getInputString, setInputString);
+ REFLECT_STRING("prompt", getPrompt, setPrompt);
#ifdef RYZOM_LUA_UCSTRING
REFLECT_UCSTRING("uc_input_string", getInputStringAsUtf16, setInputStringAsUtf16); // Compatibility
#endif
diff --git a/nel/src/3d/u_instance.cpp b/nel/src/3d/u_instance.cpp
index cb2a273edb..a8ba37e9f0 100644
--- a/nel/src/3d/u_instance.cpp
+++ b/nel/src/3d/u_instance.cpp
@@ -42,7 +42,8 @@ namespace NL3D
void UInstance::getShapeAABBox(NLMISC::CAABBox &bbox) const
{
CTransformShape *object = getObjectPtr();
- object->getAABBox(bbox);
+ if (object)
+ object->getAABBox(bbox);
}
// ***************************************************************************
@@ -108,7 +109,7 @@ void UInstance::selectTextureSet(uint id)
void UInstance::enableAsyncTextureMode(bool enable)
{
CTransformShape *object = getObjectPtr();
- if(object->isMeshBaseInstance())
+ if(object && object->isMeshBaseInstance())
{
CMeshBaseInstance *mbi = static_cast(object);
mbi->enableAsyncTextureMode(enable) ;
@@ -118,7 +119,7 @@ void UInstance::enableAsyncTextureMode(bool enable)
bool UInstance::getAsyncTextureMode() const
{
CTransformShape *object = getObjectPtr();
- if(object->isMeshBaseInstance())
+ if(object && object->isMeshBaseInstance())
{
CMeshBaseInstance *mbi = static_cast(object);
return mbi->getAsyncTextureMode() ;
@@ -130,7 +131,7 @@ bool UInstance::getAsyncTextureMode() const
void UInstance::startAsyncTextureLoading()
{
CTransformShape *object = getObjectPtr();
- if(object->isMeshBaseInstance())
+ if(object && object->isMeshBaseInstance())
{
CMeshBaseInstance *mbi = static_cast(object);
mbi->startAsyncTextureLoading(getPos());
@@ -140,7 +141,7 @@ void UInstance::startAsyncTextureLoading()
bool UInstance::isAsyncTextureReady()
{
CTransformShape *object = getObjectPtr();
- if(object->isMeshBaseInstance())
+ if(object && object->isMeshBaseInstance())
{
CMeshBaseInstance *mbi = static_cast(object);
return mbi->isAsyncTextureReady();
@@ -152,7 +153,7 @@ bool UInstance::isAsyncTextureReady()
void UInstance::setAsyncTextureDistance(float dist)
{
CTransformShape *object = getObjectPtr();
- if(object->isMeshBaseInstance())
+ if(object && object->isMeshBaseInstance())
{
CMeshBaseInstance *mbi = static_cast(object);
mbi->setAsyncTextureDistance(dist);
@@ -162,7 +163,7 @@ void UInstance::setAsyncTextureDistance(float dist)
float UInstance::getAsyncTextureDistance() const
{
CTransformShape *object = getObjectPtr();
- if(object->isMeshBaseInstance())
+ if(object && object->isMeshBaseInstance())
{
CMeshBaseInstance *mbi = static_cast(object);
return mbi->getAsyncTextureDistance();
@@ -174,7 +175,7 @@ float UInstance::getAsyncTextureDistance() const
void UInstance::setAsyncTextureDirty(bool flag)
{
CTransformShape *object = getObjectPtr();
- if(object->isMeshBaseInstance())
+ if(object && object->isMeshBaseInstance())
{
CMeshBaseInstance *mbi = static_cast(object);
mbi->setAsyncTextureDirty(flag);
@@ -184,7 +185,7 @@ void UInstance::setAsyncTextureDirty(bool flag)
bool UInstance::isAsyncTextureDirty() const
{
CTransformShape *object = getObjectPtr();
- if(object->isMeshBaseInstance())
+ if(object && object->isMeshBaseInstance())
{
CMeshBaseInstance *mbi = static_cast(object);
return mbi->isAsyncTextureDirty();
diff --git a/nel/src/gui/group_container.cpp b/nel/src/gui/group_container.cpp
index 916e95b13c..1bf11266f3 100644
--- a/nel/src/gui/group_container.cpp
+++ b/nel/src/gui/group_container.cpp
@@ -3970,11 +3970,11 @@ namespace NLGUI
setTitleClosed(title);
}
- // ***************************************************************************
- std::string CGroupContainer::getTitleOpened () const
- {
- return _TitleTextOpened;
- }
+ // ***************************************************************************
+ std::string CGroupContainer::getTitleOpened() const
+ {
+ return _TitleTextOpened;
+ }
// ***************************************************************************
void CGroupContainer::setTitleOpened (const std::string &title)
diff --git a/nel/src/gui/group_editbox.cpp b/nel/src/gui/group_editbox.cpp
index 711d9b8db6..cc2f4e7ac2 100644
--- a/nel/src/gui/group_editbox.cpp
+++ b/nel/src/gui/group_editbox.cpp
@@ -1308,13 +1308,13 @@ namespace NLGUI
{
makeTopWindow();
// for french, deutsch and russian, be aware of unicode
- std::string command = CUtfStringView(_InputString.substr(1)).toUtf8();
- ICommand::expand(command);
+ //std::string command = CUtfStringView(_InputString.substr(1)).toUtf8();
+ //ICommand::expand(command);
// then back to u32string
- _InputString = CUtfStringView('/' + command).toUtf32();
- _InputString = _InputString;
- _CursorPos = (sint32)_InputString.length();
- _CursorAtPreviousLineEnd = false;
+ //_InputString = CUtfStringView('/' + command).toUtf32();
+ //_InputString = _InputString;
+ //_CursorPos = (sint32)_InputString.length();
+ //_CursorAtPreviousLineEnd = false;
triggerOnChangeAH();
return true;
}
diff --git a/nel/src/gui/group_html.cpp b/nel/src/gui/group_html.cpp
index 9478c5bc16..77b8a46d2b 100644
--- a/nel/src/gui/group_html.cpp
+++ b/nel/src/gui/group_html.cpp
@@ -3521,8 +3521,14 @@ namespace NLGUI
else if (form.Entries[i].ComboBox)
{
CDBGroupComboBox *cb = form.Entries[i].ComboBox;
- entryData = form.Entries[i].SelectValues[cb->getSelection()];
- addEntry = true;
+ if (cb)
+ {
+ if (form.Entries[i].SelectValues.size() > 0)
+ {
+ entryData = form.Entries[i].SelectValues[cb->getSelection()];
+ addEntry = true;
+ }
+ }
}
else if (form.Entries[i].SelectBox)
{
diff --git a/nel/src/gui/lua_manager.cpp b/nel/src/gui/lua_manager.cpp
index 9bdb002a6e..4b2018957d 100644
--- a/nel/src/gui/lua_manager.cpp
+++ b/nel/src/gui/lua_manager.cpp
@@ -75,19 +75,15 @@ namespace NLGUI
}
catch( const ELuaError &e )
{
- std::string ryzom_version = RYZOM_VERSION;
- if (!FINAL_VERSION || ryzom_version.find("Omega") == std::string::npos) // Omega version are the one used on live servers
+ nlwarning("--- LUA ERROR ---");
+ nlwarning(e.luaWhat().c_str());
+ std::vector res;
+ NLMISC::explode(luaScript, std::string("\n"), res);
+ for(uint k = 0; k < res.size(); ++k)
{
- nlwarning("--- LUA ERROR ---");
- nlwarning(e.luaWhat().c_str());
- std::vector res;
- NLMISC::explode(luaScript, std::string("\n"), res);
- for(uint k = 0; k < res.size(); ++k)
- {
- nlwarning("%.05u %s", k, res[k].c_str());
- }
- nlwarning("--- ********* ---");
+ nlwarning("%.05u %s", k, res[k].c_str());
}
+ nlwarning("--- ********* ---");
return false;
}
diff --git a/nel/src/misc/path.cpp b/nel/src/misc/path.cpp
index ce787b1960..f2f97567dd 100644
--- a/nel/src/misc/path.cpp
+++ b/nel/src/misc/path.cpp
@@ -1107,9 +1107,6 @@ void CFileContainer::addSearchPath (const string &path, bool recurse, bool alter
progressCallBack->pushCropedValues ((float)f/(float)filesToProcess.size(), (float)(f+1)/(float)filesToProcess.size());
}
- string filename = CFile::getFilename (filesToProcess[f]);
- string filepath = CFile::getPath (filesToProcess[f]);
-// insertFileInMap (filename, filepath, false, CFile::getExtension(filename));
addSearchFile (filesToProcess[f], false, "", progressCallBack);
// Progress bar
@@ -1168,6 +1165,12 @@ void CFileContainer::addSearchFile (const string &file, bool remap, const string
return;
}
+ string filename = CFile::getFilename (newFile);
+ string filepath = CFile::getPath (newFile);
+ map::iterator itss = _RemappedFiles.find(filename);
+ if (itss != _RemappedFiles.end())
+ newFile = filepath+"/"+itss->second;
+
std::string fileExtension = CFile::getExtension(newFile);
// check if it s a big file
@@ -1195,7 +1198,7 @@ void CFileContainer::addSearchFile (const string &file, bool remap, const string
}
string filenamewoext = CFile::getFilenameWithoutExtension (newFile);
- string filename, ext;
+ string ext;
if (virtual_ext.empty())
{
diff --git a/ryzom/client/client_default.cfg b/ryzom/client/client_default.cfg
index 9d813e8df2..28664aa822 100644
--- a/ryzom/client/client_default.cfg
+++ b/ryzom/client/client_default.cfg
@@ -308,6 +308,9 @@ HDEntityTexture = 1;
HDTextureInstalled = 1;
WaitVBL = 0; // 0 or 1 to wait Vertical Sync.
+EnableEventsBnp = 1;
+EnableOccsBnp = 0;
+
//////////////////
// GAME OPTIONS //
//////////////////
diff --git a/ryzom/client/data/gamedev/html/help/interf_action_book_de.html b/ryzom/client/data/gamedev/html/help/interf_action_book_de.html
index 9790edee04..91a9d4b95b 100644
--- a/ryzom/client/data/gamedev/html/help/interf_action_book_de.html
+++ b/ryzom/client/data/gamedev/html/help/interf_action_book_de.html
@@ -8,9 +8,9 @@
@@ -36,8 +36,8 @@ Aktionen
Du musst eine Fähigkeit auswählen um Dir die Aktionen, die zu dieser Fähigkeit gehören, anzeigen zu lassen.
Die noch nicht erlernten Aktionen sind ausgegraut.
Die Aktionen, die Du noch nicht lernen kannst, da bestimmte Vorraussetzungen noch nicht erfüllt sind (z.B.: Du hast den benötigten Fähigkeitslevel noch nicht erreicht) werden rot angezeigt.
-Die Aktionen sind in zwei Gruppen aufgeteilt:
-Aktionen , and
+Die Aktionen sind in zwei Gruppen aufgeteilt:
+Aktionen , and
Aktions-Verbesserungen .
Du kannst Aktionen von hier aus per Drag'n'Drop in die Aktionsleiste ziehen, bei Aktions-Verbesserungen geht dies nicht, da sie keine eigenständige Aktion verkörpern und somit nicht ausgeführt werden können.
diff --git a/ryzom/client/data/gamedev/html/help/interf_action_book_en.html b/ryzom/client/data/gamedev/html/help/interf_action_book_en.html
index b53599e749..37c298890a 100644
--- a/ryzom/client/data/gamedev/html/help/interf_action_book_en.html
+++ b/ryzom/client/data/gamedev/html/help/interf_action_book_en.html
@@ -8,9 +8,9 @@
@@ -22,22 +22,22 @@ Skill Tree allows you to see the state of your skills.
It displays the current level of the skill and its max level (eg: Craft: 1/20).
- The bar indicates the progression in the current skill level.
+ The bar indicates the progression in the current skill level.
The color of the skill indicates either:
- transparent: skill not trained
- orange: skill currently trained
- green: skill completed
When you complete a skill, a new part of the tree is opened, which you can see by clicking on "+".
- The whole skill tree is not displayed. Only completed skills, currently trained skills,
+ The whole skill tree is not displayed. Only completed skills, currently trained skills,
and the untrained skills that relies directly on a trained skill are displayed.
Actions
The Actions part shows the actions you can learn or the actions you have learnt at each skill level.
You have to select a skill to see the actions related to this skill.
The actions you have not learned are grayed out.
The actions you cannot learn because you do not meet the requirements (e.g. you don't have the required skill level) displayed are in red.
- The actions are separated in two groups:
-Actions , and
+ The actions are separated in two groups:
+Actions , and
Upgrades .
You can drag and drop an Action to your action bar, but you cannot drag an Action Upgrade because they are either characteristic upgrades, or action upgrades
which are not castable directly.
diff --git a/ryzom/client/data/gamedev/html/help/interf_action_book_fr.html b/ryzom/client/data/gamedev/html/help/interf_action_book_fr.html
index 3956342a27..82ca7c4b2f 100644
--- a/ryzom/client/data/gamedev/html/help/interf_action_book_fr.html
+++ b/ryzom/client/data/gamedev/html/help/interf_action_book_fr.html
@@ -8,9 +8,9 @@
@@ -30,15 +30,15 @@ Arbre de Compétences
- vert : compétence terminée
Lorsque vous terminez une compétence, vous avez accès à de nouvelles compétences. Vous pouvez explorer l'arbre de compétences en cliquant sur "+".
-L'arbre de compétences n'est pas affiché dans son ensemble. Il n'y a que les compétences terminées ou en cours d'entraînement d'affichées.
+L'arbre de compétences n'est pas affiché dans son ensemble. Il n'y a que les compétences terminées ou en cours d'entraînement d'affichées.
Les compétences non entraînées en rapport direct avec une compétence entraînée sont également affichées.
Actions
La partie Actions indique les actions que vous pouvez apprendre ou avez appris à chaque niveau de compétence.
Vous devez sélectionner une compétence pour connaître les actions liées à cette compétence.
Les actions que vous ne connaissez pas sont grisées.
Les actions que vous n'avez pas apprises car les prérequis ne sont pas remplis (ex. : vous n'avez pas atteint le niveau de compétence requis) sont en rouge.
-Les actions se distinguent en deux groupes :
-Actions , et
+Les actions se distinguent en deux groupes :
+Actions , et
Actions Suprêmes .
Vous pouvez glisser-déposer une Action dans votre barre actions mais vous ne pouvez pas glisser une Action Suprême car il peut s'agir d'une mise à jour de caractéristiques ou d'actions
qui ne sont pas utilisables en tant que sorts.
diff --git a/ryzom/client/data/gamedev/interfaces_v3/actions.xml b/ryzom/client/data/gamedev/interfaces_v3/actions.xml
index 0a00cb0f64..194434a839 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/actions.xml
+++ b/ryzom/client/data/gamedev/interfaces_v3/actions.xml
@@ -417,6 +417,7 @@
+
diff --git a/ryzom/client/data/gamedev/interfaces_v3/appzone.lua b/ryzom/client/data/gamedev/interfaces_v3/appzone.lua
index af9f584cd8..b04472d307 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/appzone.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/appzone.lua
@@ -190,3 +190,6 @@ function AppZone:handle(cmd)
self:launchApp(cmd)
end
end
+
+-- VERSION --
+RYZOM_APPZONE_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/ark.lua b/ryzom/client/data/gamedev/interfaces_v3/ark.lua
index e4f62fbcae..61b2418a26 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/ark.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/ark.lua
@@ -25,6 +25,35 @@ function print_r(arr, indentLevel)
return str
end
+function tablelength(T)
+ if T == nil then
+ return 0
+ end
+ local count = 0
+ for _ in pairs(T) do count = count + 1 end
+ return count
+end
+
+function table_compare(t1, t2)
+ local ty1 = type(t1)
+ local ty2 = type(t2)
+ if ty1 ~= ty2 then return false end
+ -- non-table types can be directly compared
+ if ty1 ~= 'table' and ty2 ~= 'table' then return t1 == t2 end
+ -- as well as tables which have the metamethod __eq
+ local mt = getmetatable(t1)
+ if not ignore_mt and mt and mt.__eq then return t1 == t2 end
+
+ for k1, v1 in pairs(t1) do
+ local v2 = t2[k1]
+ if v2 == nil or v1 ~= v2 then return false end
+ end
+ for k2,v2 in pairs(t2) do
+ local v1 = t1[k2]
+ if v1 == nil or v2 ~= v1 then return false end
+ end
+ return true
+end
function openPageInWebIg(url)
getUI("ui:interface:webig:content:html"):browse(url)
@@ -42,7 +71,8 @@ function broadcast(text, t)
end
function fixUrl(url)
- return url:gsub("{amp}", "&")
+ s, n = string.gsub(url, "{amp}", "&")
+ return s
end
function openArkScript(id, winid, extra)
@@ -68,6 +98,68 @@ function getArkScript(id, selected)
return url
end
+
+--------------------------------------------------------------------------------
+--- ARK DYNE ---
+--------------------------------------------------------------------------------
+
+if DynE == nil then
+ DynE = {}
+ DynE.lastWinUpdate = 0
+ DynE.otherMapPoints = {}
+end
+
+function DynE:OpenStoryline(season, episode)
+ ArkMissionCatalog:OpenCat("storyline", "https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script=8840&season="..season.."&episode="..tostring(episode+1))
+ getUI("ui:interface:encyclopedia").opened = true
+ getUI("ui:interface:encyclopedia").active = true
+end
+
+function DynE:SetMap(name, x, y, desc)
+ local link = getUI(DynEWindowId):find(name)
+ if link ~= nil then
+ link = link:find(":b")
+ link.onover = "lua"
+ link.params_over = "DynE:OpenMap("..x..","..y..")"
+ end
+end
+
+function DynE:OpenMap(x, y)
+ local html = [[ ]]..tostring(i18n.get("uiMovingTargetWarning"))
+ runAH(nil, "enter_modal", "group=ui:interface:webig_html_modal")
+ local whm = getUI("ui:interface:webig_html_modal")
+ whm.child_resize_h=false
+ whm_html = getUI("ui:interface:webig_html_modal:html")
+ if whm_html ~= nil then
+ whm.w = 410
+ whm.h = 150
+ whm_html:renderHtml(html)
+ end
+end
+
+function DynE:RunMission(script, posX, posY)
+ local html = getUI("ui:interface:web_transactions"):find("html")
+ html:browse("https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script="..script.."&command=reset_all&PosX="..posX.."&PosY="..posY.."&FlagName=Go+to".."&MissionText=Go")
+end
+
+function DynE:OpenHelp(img)
+ local html = getUI("ui:interface:web_transactions"):find("html")
+ html:browse("https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script=9600&command=reset_all&img="..img)
+end
+
+function DynE:UpdateMapWindow()
+ if (nltime.getLocalTime() - DynE.lastWinUpdate) > 60000 then
+ local win_html = getUI("ui:interface:app2453:browser:content:html")
+ local map_html = getUI("ui:interface:map:content:map_content:lm_events:html")
+ map_html:browse("home")
+ if win_html ~= nil then
+ win_html:renderHtml(map_html.html)
+ end
+
+ DynE.lastWinUpdate = nltime.getLocalTime()
+ end
+end
+
--------------------------------------------------------------------------------
--- ARK MISSION CATALOG ---
--------------------------------------------------------------------------------
@@ -78,6 +170,16 @@ if ArkMissionCatalog == nil then
}
end
+function openRyward(folder, event)
+ folder = "f"..tostring(folder)
+ event = tostring(event)
+ if not (rykea_selected_path_B == folder and rykea_selected_path_C == event and getUI("ui:interface:encyclopedia").active == true) then
+ ArkMissionCatalog:OpenCat("rykea","https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script=10741&command=reset_all")
+ end
+ getUI(ArkMissionCatalog.window_id..":content:htmlB"):browse("https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script=10741&command=reset_all&pathB="..folder.."&pathC="..event)
+ getUI(ArkMissionCatalog.window_id).active = true
+end
+
function ArkMissionCatalog:OpenWindow(urlA, urlB, dont_active)
local winframe = getUI(ArkMissionCatalog.window_id)
winframe.opened=true
@@ -101,7 +203,7 @@ function ArkMissionCatalog:OpenCat(cat, url)
local htmlA = getUI(ArkMissionCatalog.window_id..":content:htmlA")
local htmlB = getUI(ArkMissionCatalog.window_id..":content:htmlB")
local htmlC = getUI(ArkMissionCatalog.window_id..":content:htmlC")
- if cat == "title" or cat == "academic" or cat == "rykea" or cat == "workshops" or cat == "etools" then
+ if cat ~= "storyline" and cat ~= "daily" and cat ~= "achv" and cat ~= "puzzle" then
ArkMissionCatalog.posxB = 180
ArkMissionCatalog.widthB = 240
ArkMissionCatalog.widthC = 530
@@ -201,6 +303,151 @@ function ArkMissionCatalog:showLegacyEncyclopedia(state)
end
end
+
+function ArkMissionCatalog:setup()
+ debug("Define Mission Catalag url")
+ if ArkMissionCatalog ~= nil then
+ ArkMissionCatalog.posxB = 0
+ end
+
+ local urlA = "https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script=8746&command=reset_all&no_html_header=1&ig=1"
+ getUI("ui:interface:encyclopedia:content:htmlA"):browse(urlA)
+
+ ArkMissionCatalog:startResize()
+ local continent = getContinentSheet()
+ if continent == "newbieland.continent" then
+ ArkMissionCatalog:OpenCat("academic","https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script=10700&command=reset_all&no_html_header=1")
+ else
+ ArkMissionCatalog:OpenCat("storyline","https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script=8840&command=reset_all&no_html_header=1&show_latest=1")
+ end
+
+ debug("Open ency")
+ getUI("ui:interface:encyclopedia").opened = true;
+end
+
+function translateText(id, script, event, dst_lang)
+ framewin = getUI("ui:interface:ark_translate_lesson", false)
+ if framewin == nil then
+ createRootGroupInstance("webig_browser", "ark_translate_lesson", {h=480, w=980})
+ framewin = getUI("ui:interface:ark_translate_lesson", false)
+ end
+
+ framewin.opened = true
+ framewin.active = true
+ framewin.x = math.floor((getUI("ui:interface").w - framewin.w) / 2)
+ framewin.y = math.floor((getUI("ui:interface").h + framewin.h) / 2)
+ setTopWindow(framewin)
+ if dst_lang then
+ dst_lang = "&dst_lang="..dst_lang
+ end
+ framewin:find("html"):browse("https://app.ryzom.com/app_arcc/index.php?action=mTrads_Edit&event="..tostring(event).."&trad_name="..tostring(id).."&reload="..script..dst_lang)
+end
+
+
+function setupArkUrls()
+ debug("Setup Lm Events")
+ local ui = getUI("ui:interface:map:content:map_content:lm_events:html")
+ ui.home = "https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script=8297&command=reset_all&no_html_header=1&continent="..tostring(game.currentMapContinent)
+ ui:browse("home")
+
+ debug("Setup Lm Icons")
+ ui = getUI("ui:interface:map:content:map_content:lm_dynicons:html")
+ ui.home = "https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script=11158&command=reset_all&no_html_header=1"
+ ui:browse("home")
+ game.updateRpItemsUrl = "https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script=11488&command=reset_all"
+end
+
+
+--------------------------------------------------------------------------------
+--- ARK EDITOR ---
+--------------------------------------------------------------------------------
+
+function ArkSwitchAdvEdition(prefix)
+ if ArkSwitchAdvEditionSwitch then
+ ArkSwitchAdvEditionSwitch = false
+ getUICaller():showDiv("advEditionDiv"..prefix, false)
+ else
+ ArkSwitchAdvEditionSwitch = true
+ getUICaller():showDiv("advEditionDiv"..prefix, true)
+ end
+end
+
+function ArkShowStageDiv(name, state)
+ getUICaller():showDiv(name, state)
+end
+
+function ArkSelectRyform(curwin, id, mod)
+ local curwin = getUICaller().id
+ local e = ArkGetStageEdit(curwin):find(id..":eb")
+ e.input_string = mod
+ ArkGetStageEdit(curwin):find("send:b"):runLeftClickAction()
+end
+
+function ArkSendForm(name)
+ ArkGetStageEdit(__CURRENT_WINDOW__):find(name.."__command:eb").input_string = "reset"
+ ArkGetStageEdit(__CURRENT_WINDOW__):find("send:b"):runLeftClickAction()
+end
+
+function ArkGetStageEdit(curwin)
+ local sid = string.split(curwin, ":")
+ local eid = sid[#sid]
+ table.remove(sid, #sid)
+ local id = sid[1]
+ for i = 2, #sid do
+ id = id .. ":" .. sid[i]
+ end
+ return getUI(id):find(eid)
+end
+
+function ArkFindUI(name)
+ local i = 0
+ local ui = getUICaller()
+ while true do
+ if ui then
+ local found = ui:find(name)
+ if found ~= nil then
+ return found
+ else
+ ui = ui.parent
+ end
+ i = i +1
+ if i >= 100 then
+ return nil
+ end
+ else
+ return nil
+ end
+ end
+end
+
+function ArkOnSelectChanged(name)
+ local text = ArkRyformV5[name][getUICaller().selection+1]
+ ArkFindUI(name..":eb").input_string = text
+end
+
+function ArkV5GetSelectEntity(prefix, input)
+ name = getTargetName()
+ if name == "" then
+ name = getTargetTitle()
+ end
+ if name ~= "" and name ~= nil then
+ webig:openUrlInBg("https://app.ryzom.com/app_arcc/scripts/get_bot.php?action=ark_editor&ui="..encodeURLParam(getUICaller().id).."&prefix="..tostring(prefix).."&input="..tostring(input).."&bot="..encodeURLParam(base64.encode(name)))
+ end
+end
+
+function fixUrl(url)
+ s, n = string.gsub(url, "{amp}", "&")
+ return s
+end
+
+function openUrlInBg(url)
+ getUI("ui:interface:web_transactions"):find("html"):browse(fixUrl(url))
+end
+
+
+-- S2E1 STUFF --
+
+
if S2E1 == nil then
S2E1 = {}
end
@@ -620,4 +867,5 @@ function S2E1:newQuake(timer)
end
-
+-- VERSION --
+RYZOM_ARK_VERSION = 366
diff --git a/ryzom/client/data/gamedev/interfaces_v3/ark_lessons.lua b/ryzom/client/data/gamedev/interfaces_v3/ark_lessons.lua
index eaf6db232a..a222e416f0 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/ark_lessons.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/ark_lessons.lua
@@ -1,3 +1,7 @@
+if game == nil then
+ game= {}
+end
+
if ArkLessons == nil then
ArkLessons = {}
@@ -24,8 +28,111 @@ function ArkLessons:Callback(event, id, args)
end
end
+game.ArkLessonUsedWindowUrl = "https://app.ryzom.com/app_arcc/index.php?action=mLesson_Run&script="
+
webig.urls_to_check = {}
+
+function ArkOpenLesson(id, require_rpitem)
+ debug(require_rpitem)
+ if id ~= 0 and id ~= nil then
+ local win = getUI("ui:interface:web_transaction_lessons")
+ if win then
+ win:find("html"):browse(game.ArkLessonUsedWindowUrl..id)
+ else
+ getUI("ui:interface:web_transactions"):find("html"):browse(game.ArkLessonUsedWindowUrl..id)
+ end
+ end
+end
+
+function ArkRevealLesson(id, i, total)
+ if i == game.ArkLessonRevealStep[id] then
+ game.ArkLessonRevealStep[id] = game.ArkLessonRevealStep[id] + 1
+ game:ArkLessonCallback("step", id, i)
+ game:ArkRevealLessonInfos(id, i, total)
+ if i == total then
+ game:ArkAcceptLesson()
+ end
+ end
+end
+
+function game:ArkRevealLessonInfos(id, i, total)
+ local ui = getUI("ui:interface:ArkLessonWin"..tostring(id))
+ if ui ~= nil then
+ local html = ui:find("html")
+ html:showDiv("enabled_"..tostring(i), false)
+ html:showDiv("disabled_"..tostring(i), false)
+ html:showDiv("current_"..tostring(i), true)
+ if i > 1 then
+ if i ~= total+1 then
+ html:showDiv("current_"..tostring(i-1), false)
+ html:showDiv("enabled_"..tostring(i-1), true)
+ end
+ end
+ if game.ArkLessonRevealCaps and game.ArkLessonRevealCaps[id] then
+ if total > i then
+ setCap(game.ArkLessonRevealCaps[id], "p", math.floor((100*i)/total), tostring(i).." / "..tostring(total))
+ else
+ setCap(game.ArkLessonRevealCaps[id], "p", 100, "")
+ end
+ end
+ end
+end
+
+
+function ArkLessonUpdateHtml(win, scriptid, title, progression, started, finished, requirement, reward)
+ win = getUI(win)
+ win = win:find("div_lesson_"..scriptid..":html")
+ local top = ""
+ if requirement ~= [[]] then
+ requirement = [[]]..ArkLessons.NeedRequirement..[[ ]]
+ else
+ requirement = ""
+ top = [[ ]]
+ end
+
+ local progressionHtml = " "
+ local height = "50"
+ if progression then
+ if requirement ~= "" then
+ height = "12"
+ else
+ height = "25"
+ end
+ pogressionHtml = ""..progression.." "
+ end
+
+ local color = "AAA"
+ if started then
+ if finished then
+ color = "FFFFFF"
+ else
+ color = "FFDD4AFF"
+ end
+ end
+
+ win:renderHtml([[
+
+
+
+
+
+
+ ]]..top..[[
+
+ ]]..title..[[
+
+ ]]..requirement..pogressionHtml..[[
+
+
+
+ ]]..reward..[[
+
+
+
+ ]])
+end
+
function ArkLessons:Show(id, w, h, content, scriptid)
local ui = getUI("ui:interface:"..id)
-- deleteUI(framewin)
@@ -119,10 +226,6 @@ function ArkLessons:ArkRevealLessonInfos(scriptid, i, total)
end
end
-function ArkOpenLesson(id)
- WebQueue:push("https://app.ryzom.com/app_arcc/index.php?action=mLesson_Run&script="..tostring(id))
-end
-
function openArkLessonScript(i, script_id, url)
if i == ArkLessons.RevealStep[script_id] then
getUI("ui:interface:ArkLessonWin"..tostring(script_id)).active = false
@@ -316,3 +419,6 @@ function webig:openWin(ui_name)
end
end
+
+-- VERSION --
+RYZOM_ARK_LESSONS_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/ark_shop.lua b/ryzom/client/data/gamedev/interfaces_v3/ark_shop.lua
new file mode 100644
index 0000000000..b4500860e7
--- /dev/null
+++ b/ryzom/client/data/gamedev/interfaces_v3/ark_shop.lua
@@ -0,0 +1,553 @@
+if arkNpcShop == nil then
+ arkNpcShop = {}
+end
+
+function arkNpcShop:selectSheetItem(item, i, sheet)
+ for name, value in pairs(arkNpcShop.lockedSlots[item]) do
+ if value == item.."_"..i then
+ arkNpcShop.lockedSlots[item][name] = nil
+ end
+ end
+
+ local items = arkNpcShop.all_valid_items[item][i][sheet]
+ arkNpcShop.player_money_per_items[item][i] = items[3]
+ webig:addSheet("UI:TEMP:ARK:ITEM:"..tostring(item).."_"..tostring(i), items[1], items[2], getDbProp("UI:TEMP:ARK:ITEM:"..tostring(item).."_"..tostring(i)..":QUANTITY"), nil, items[4])
+ setDbProp("UI:TEMP:ARK:ITEM:"..tostring(item).."_"..tostring(i)..":SERIAL", items[5])
+ arkNpcShop.lockedSlots[item][items[5]] = item.."_"..i
+ updateSelectedItems()
+ runAH(nil, "leave_modal", "group=ui:interface:webig_html_modal")
+end
+
+
+function arkNpcShop:showBuy()
+ getUI("ui:interface:ark_shop_buy_item"):find("ok").active=true
+end
+
+function arkNpcShop:openSection(url)
+ framewin = getUI(arkNpcShop.window):find("buy"):renderHtml(arkNpcShop.PleaseWait)
+ getUI("ui:interface:web_transactions"):find("html"):browse(url)
+end
+
+function arkNpcShop:updateWindow(px, py)
+ local stop = false
+ if px ~= 0 and py ~= 0 then
+ local x, y, z = getPlayerPos()
+ if (px-x)*(px-x)+(py-y)*(py-y) > 25 then
+ stop = true
+ end
+
+ if arkNpcShop.target ~= getTargetSlot() then
+ stop = true
+ end
+ end
+
+ if stop then
+ local w = getUI(arkNpcShop.window)
+ w.active = false
+ setOnDraw(w, "")
+ getUI("ui:interface:ark_shop_buy_item").active = false
+ arkNpcShop.player_can_buy = false
+ broadcast(arkNpcShop.TooFar)
+ end
+
+ local diff = math.floor((nltime.getLocalTime() - arkNpcShop.lastMultipleItemsUpdate ) / 10)
+ if diff >= 120 then
+ arkNpcShop.lastMultipleItemsUpdate = nltime.getLocalTime()
+ if arkNpcShop.player_money_per_items ~= nil then
+ for item, price in pairs(arkNpcShop.player_money_per_items) do
+ if arkNpcShop.lastMultipleItemsIndex[item] == nil then
+ arkNpcShop.lastMultipleItemsIndex[item] = {}
+ end
+ for i = 1,5 do
+ local w = getUI(arkNpcShop.window):find("ark_npc_shop_item_"..item.."_price"..tostring(i))
+ if w ~= nil and arkNpcShop.all_items[item] ~= nil and arkNpcShop.all_items[item][i] ~= nil then
+ if price[i] < 1 then
+ if arkNpcShop.lastMultipleItemsIndex[item][i] == nil then
+ arkNpcShop.lastMultipleItemsIndex[item][i] = 0
+ end
+
+ arkNpcShop.lastMultipleItemsIndex[item][i] = arkNpcShop.lastMultipleItemsIndex[item][i] + 1
+ if arkNpcShop.lastMultipleItemsIndex[item][i] > tablelength(arkNpcShop.all_items[item][i]) then
+ arkNpcShop.lastMultipleItemsIndex[item][i] = 1
+ end
+
+ local multiple = arkNpcShop.lastMultipleItemsIndex[item][i]
+ if multiple ~= nil then
+ local sheet = arkNpcShop.all_items[item][i][multiple]
+ if sheet ~= "" then
+ setDbProp("UI:TEMP:ARK:ITEM:"..item.."_"..tostring(i)..":SHEET", getSheetId(sheet..".sitem"))
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+end
+
+function arkNpcShop:checkitems(db, items, quality, quality_max, id, must_be_equiped, item_i)
+ if arkNpcShop.lockedSlots[id] == nil then
+ arkNpcShop.lockedSlots[id] = {}
+ end
+ total = 0
+ if arkNpcShop.all_valid_items[id] == nil then
+ arkNpcShop.all_valid_items[id] = {}
+ end
+
+ arkNpcShop.all_valid_items[id][item_i] = {}
+
+ local selected_item = 9999
+ local last_selected = nil
+
+ for i = 0, 499, 1 do
+ local sheet = getDbProp("SERVER:INVENTORY:BAG:"..tostring(i)..":SHEET")
+ if sheet ~= 0 then
+
+ local name = string.lower(getSheetName(sheet))
+ for item_id, item in pairs(items) do
+ if item == name or item..".sitem" == name then
+ local qual = getDbProp("SERVER:INVENTORY:BAG:"..tostring(i)..":QUALITY")
+ local quant = getDbProp("SERVER:INVENTORY:BAG:"..tostring(i)..":QUANTITY")
+ local color = getDbProp("SERVER:INVENTORY:BAG:"..tostring(i)..":USER_COLOR")
+ local locked = getDbProp("SERVER:INVENTORY:BAG:"..tostring(i)..":RESALE_FLAG") == 3
+
+ if qual >= quality and qual <= quality_max and locked == false then
+ valid = true
+
+ if must_be_equiped ~= 0 then
+ valid = false
+ for j = 0, 19, 1 do
+ local slot = getDbProp("SERVER:INVENTORY:EQUIP:"..tostring(j)..":INDEX_IN_BAG")
+ if slot == i then
+ valid = true
+ end
+ end
+ end
+
+ if valid then
+ local use_quant = getDbProp("UI:TEMP:ARK:ITEM:"..tostring(id).."_"..tostring(item_i)..":QUANTITY")
+
+ if quant >= use_quant then
+ table.insert(arkNpcShop.all_valid_items[id][item_i], {sheet, qual, quant, color, i})
+ local valid_item_i = #arkNpcShop.all_valid_items[id][item_i]
+ local db_id = "UI:TEMP:ARK:POPUP_ITEM_"..tostring(id).."_"..tostring(item_i).."_"..tostring(valid_item_i)
+ webig:deleteItem(db_id)
+ webig:copyItems("SERVER:INVENTORY:BAG:"..tostring(i), db_id)
+ setDbProp(db_id..":QUANTITY", use_quant)
+
+ if qual < selected_item then
+ total = quant
+ selected_item = qual
+ if last_selected ~= nil then
+ arkNpcShop.lockedSlots[id][last_selected] = nil
+ end
+ last_selected = i
+ arkNpcShop.lockedSlots[id][i] = tostring(id).."_"..tostring(item_i)
+ webig:copyItems("SERVER:INVENTORY:BAG:"..tostring(i), db)
+ setDbProp(db..":SERIAL", i)
+ setDbProp(db..":QUANTITY", use_quant)
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+ end
+
+ return total
+end
+
+function arkNpcShop:checkslot(db, slotid)
+ total = 0
+ local index = getDbProp("SERVER:INVENTORY:EQUIP:"..tostring(slotid)..":INDEX_IN_BAG")-1
+ if index ~= -1 then
+ local sheet = getDbProp("SERVER:INVENTORY:BAG:"..tostring(index)..":SHEET")
+ local qual = getDbProp("SERVER:INVENTORY:BAG:"..tostring(index)..":QUALITY")
+ setDbProp(db..":SHEET", sheet)
+ setDbProp(db..":QUALITY", qual)
+ return 1
+ end
+ return 0
+end
+
+
+function arkNpcShop:OpenSheetInfosWindow(id)
+ local w = getUI(arkNpcShop.window)
+ local x = w:find("buy")
+ if x == nil then
+ x = w
+ end
+ x = x:find("ark_npc_shop_item_"..tostring(id))
+ runAH(x:find("sheet"), "open_help_auto", "")
+
+end
+
+function arkNpcShop:HideHelpWindow(id)
+ -- Check what help window are active
+ local help_active={}
+ for i = 0,7 do
+ help_active[i] = getUI("ui:interface:sheet_help"..i).active
+ end
+
+ arkNpcShop:OpenSheetInfosWindow(id)
+
+ -- Apply previous stats of help window
+ for i = 0,7 do
+ getUI("ui:interface:sheet_help"..i).active = help_active[i]
+ end
+end
+
+function arkNpcShop:CheckMoney()
+ local win = getUI("ui:interface:ark_shop_buy_item")
+ local value = tonumber(win:find("edit"):find("eb").input_string)
+ if value == nil or value == 0 then
+ value = 1
+ end
+
+ if arkNpcShop.price == -1 then
+ arkNpcShop.max_quantity = 1
+ end
+
+ if arkNpcShop.max_quantity ~= 0 and value > arkNpcShop.max_quantity then
+ win:find("edit"):find("eb").input_string = arkNpcShop.max_quantity
+ value = arkNpcShop.max_quantity
+ end
+
+
+ local total = 9999999999
+ if arkNpcShop.price == -1 then
+ total = getDbProp("UI:TEMP:ARK_MONEY_TOTAL")
+ else
+ total = math.floor(arkNpcShop.price*value)
+ end
+
+ if total > arkNpcShop.player_money then
+ win:find("ok").hardtext="uiNotEnoughMoney"
+ arkNpcShop.player_can_buy = false
+ else
+ win:find("ok").hardtext = arkNpcShop.ActionName
+ arkNpcShop.player_can_buy = true
+ end
+ setDbProp("UI:TEMP:ARK_MONEY_TOTAL", total)
+end
+
+function arkNpcShop:Close()
+ if arkNpcShop.window == "ui:interface:ark_npc_shop" then
+ local framewin = getUI(arkNpcShop.window)
+ if framewin ~= nil then
+ framewin.active=false
+ end
+ else
+ local framewin = getUI(arkNpcShop.window)
+ framewin:renderHtml("please wait...")
+ end
+
+ framewin = getUI("ui:interface:ark_shop_buy_item")
+ if framewin ~= nil then
+ framewin.active=false
+ end
+
+end
+
+function arkNpcShop:CloseShopBuyItem()
+ framewin = getUI("ui:interface:ark_shop_buy_item")
+ if framewin ~= nil then
+ framewin.active=false
+ end
+end
+
+function arkNpcShop:timer(id, len)
+ local diff = math.floor((nltime.getLocalTime() - savedTime) / 50)
+ getUI("ui:interface:current_action").active=true
+ setDbProp("UI:PHRASE:ACT_BAR_LEN", math.floor(diff * (100/len)))
+ if diff >= len then
+ getUI("ui:interface:current_action").active=false
+ setOnDraw(getUI("ui:interface:current_action"), "")
+ local quantity = getUI("ui:interface:ark_shop_buy_item"):find("edit"):find("eb").input_string
+ if id ~= nil then
+ getUI("ui:interface:web_transactions"):find("html"):browse(arkNpcShop.ValidateUrl..quantity.."&item_id="..tostring(id).."&item_selection="..arkNpcShop.selectedItems[id])
+ end
+ end
+end
+
+function arkNpcShop:StartProgress(id, text, len)
+ local message = ucstring()
+ message:fromUtf8(text)
+ displaySystemInfo(message, "BC")
+ savedTime = nltime.getLocalTime()
+ getUI("ui:interface:current_action").active=true
+ if len > 200 then
+ len = 200
+ end
+ setOnDraw(getUI("ui:interface:current_action"), "arkNpcShop:timer("..tostring(id)..", "..tostring(len)..")")
+end
+
+function arkNpcShop:Buy(id)
+ local item = arkNpcShop.items[id]
+ local win = getUI("ui:interface:ark_shop_buy_item")
+ local quantity = win:find("edit"):find("eb").input_string
+ if arkNpcShop.player_can_buy then
+ local message = ucstring()
+ message:fromUtf8("@{F5FF}"..getUI("ui:interface:target").title..": @{FF0F}I\'m checking to see if you\'re trying to rip him off... ")
+ -- displaySystemInfo(message, "BC")
+
+ if arkNpcShop.AtysPoint then
+ if item[8] == 0 then
+ arkNpcShop:StartProgress(id, arkNpcShop.AtysPointsBuyMessage, item[1])
+ else
+ if arkNpcShop.AtysProgressBuyLen > 0 then
+ arkNpcShop:StartProgress("nil", arkNpcShop.AtysProgressBuyMessage, arkNpcShop.AtysProgressBuyLen)
+ end
+ getUI("ui:interface:web_transactions"):find("html"):browse(arkNpcShop.ValidateUrl..quantity.."&item_id="..id.."&item_selection="..arkNpcShop.selectedItems[id])
+ end
+ else
+ if arkNpcShop.AtysProgressBuyLen > 0 then
+ arkNpcShop:StartProgress("nil", arkNpcShop.AtysProgressBuyMessage, arkNpcShop.AtysProgressBuyLen)
+ end
+ getUI("ui:interface:web_transactions"):find("html"):browse(arkNpcShop.ValidateUrl..quantity.."&item_id="..id.."&item_selection="..arkNpcShop.selectedItems[id])
+ end
+ end
+ arkNpcShop:Close()
+ if arkNpcShop.window ~= "ui:interface:ark_npc_shop" then
+ getUI("ui:interface:encyclopedia").active=false
+ end
+end
+
+function arkNpcShop:generateMp(mps)
+ local final = {}
+ local generateMps = {}
+ for _, mp in pairs(mps) do
+ if game.RawCreaturesMats ~= nil and string.sub(mp, 1, 1) == "!" then
+ local params = {}
+ for str in string.gmatch(string.sub(mp, 2), "([^!]+)") do
+ table.insert(params, str)
+ end
+ local sheets = params[1]
+ local qual = params[2]
+ local eco = params[3]
+
+ if qual == "" or qual == nil then
+ qual = "cdef"
+ end
+
+ if eco == "" or eco == nil then
+ eco = "dfljp"
+ end
+
+ for sheet in string.gmatch(sheets, "([^|]+)") do
+ if string.sub(sheet, 1, 1) == "#" then
+ local all_sheets = game.RawCreaturesMats[string.sub(sheet, 2)]
+ if sheets ~= nil then
+ for i_sheet, f_sheet in pairs(all_sheets) do
+ if generateMps[i_sheet] == nil then
+ generateMps[i_sheet] = {}
+ end
+ table.insert(generateMps[i_sheet], f_sheet)
+ end
+ end
+ else
+ table.insert(final, sheet..c_eco..c_qual.."01")
+ end
+ end
+
+ for i = 1, #qual do
+ local c_qual = string.sub(qual, i, i)
+ for j = 1, #eco do
+ local c_eco = string.sub(eco, j, j)
+ for _, sheets in pairs(generateMps) do
+ for _, f_sheet in pairs(sheets) do
+ table.insert(final, f_sheet..c_eco..c_qual.."01")
+ end
+ end
+ end
+ end
+ else
+ table.insert(final, mp)
+ end
+ end
+
+ return final
+end
+
+
+function arkNpcShop:getHtmlIcon(id, item)
+ if string.sub(item[2], 1, 1) == "#" then
+ addDbProp("UI:TEMP:ARK:SELECTITEM:RESALE_FLAG", 0)
+
+ if string.sub(item[3], 1, 1) == "!" then
+ webig:addSheet("UI:TEMP:ARK:SELECTITEM", getSheetId(item[7]), item[4], tonumber(string.sub(item[3], 2)))
+ else
+ webig:addSheet("UI:TEMP:ARK:SELECTITEM", getSheetId(item[7]), item[4], 1)
+ end
+ addDbProp("UI:TEMP:ARK:SELECTITEM:USER_COLOR", item[9])
+ return [[
]]
+ else
+ return [[
]]
+ end
+end
+
+function arkNpcShop:OpenItemWindow(id, buy)
+ local item = arkNpcShop.items[id]
+ if arkNpcShop.all_items[id] ~= nil and arkNpcShop.all_items[id].need_real_item ~= nil then
+ if string.sub(item[3], 1, 1) == "!" then
+ arkNpcShop.max_quantity = 1
+ else
+ arkNpcShop.max_quantity = item[3]
+ for _, price in ipairs(arkNpcShop.player_money_per_items[id]) do
+ if price < arkNpcShop.max_quantity then
+ arkNpcShop.max_quantity = price
+ end
+ end
+ end
+ else
+ if string.sub(item[3], 1, 1) == "!" then
+ arkNpcShop.max_quantity = 1
+ else
+ arkNpcShop.max_quantity = item[3]
+ end
+ end
+
+ arkNpcShop:HideHelpWindow(id)
+
+ local non_buy_window_w = 400
+
+ if string.sub(item[2], 1, 1) == "#" then
+ local item_type = getSheetFamily(item[7])
+ local display_preview = item_type == "SHIELD" or item_type == "ARMOR" or item_type == "MELEE_WEAPON" or item_type == "RANGE_WEAPON"
+ if ui_item_preview then
+ ui_item_preview.active = display_preview
+ end
+
+ if display_preview then
+ non_buy_window_w = 495
+ else
+ -- Items who are not named items must display help window when no buy
+ if buy == nil and item[2] == "#sheet" then
+ arkNpcShop:OpenSheetInfosWindow(id)
+ return
+ end
+ end
+ end
+
+ if buy == true then
+ arkNpcShop.price = item[1]
+ setDbProp("UI:TEMP:ARK_MONEY_PRICE", arkNpcShop.price)
+ setDbProp("UI:TEMP:ARK_MONEY_TOTAL", arkNpcShop.price)
+ if arkNpcShop.price > arkNpcShop.player_money then
+ arkNpcShop.player_can_buy = false
+ else
+ arkNpcShop.player_can_buy = true
+ end
+ end
+
+ framewin = getUI("ui:interface:ark_shop_buy_item")
+ if framewin == nil then
+ createRootGroupInstance("webig_bot_chat_buy_item", "ark_shop_buy_item", {id="content", infosclick="arkNpcShop:OpenSheetInfosWindow("..id..")", onclick="arkNpcShop:Buy("..id..")"})
+ framewin = getUI("ui:interface:ark_shop_buy_item")
+ framewin.x = math.ceil(((getUI("ui:interface").w - framewin.w))/2)
+ framewin.y = math.ceil(((getUI("ui:interface").h + framewin.h))/2)
+ end
+
+ local ui_item_show_desc = getUI("ui:interface:ark_shop_buy_item:content:header_opened:desc")
+ if ui_item_show_desc then
+ ui_item_show_desc.active = item[2] == "#sheet"
+ end
+
+ runAH(nil, "proc", "ark_shop_animate_preview_body")
+
+ if buy == true then
+ local eb = framewin:find("edit"):find("eb")
+ eb.input_string = arkNpcShop.max_quantity
+ eb:setFocusOnText()
+ eb:setSelectionAll()
+ framewin:find("item_total_price"):find("icone").texture = arkNpcShop.MoneyIcon
+ framewin:find("item_price"):find("icone").texture = arkNpcShop.MoneyIcon
+ framewin:find("item_total_price"):find("tt").tooltip = arkNpcShop.Money
+ framewin:find("item_price"):find("tt").tooltip = arkNpcShop.Money
+ arkNpcShop.window_params = {-70, 305, 408}
+ else
+ arkNpcShop.window_params = {-20, 380, non_buy_window_w}
+ end
+
+ framewin:find("top").active = buy == true -- active onlye if buy
+ framewin:find("scroll_text").y=arkNpcShop.window_params[1]
+ framewin:find("scroll_text").h=arkNpcShop.window_params[2]
+ framewin.w=arkNpcShop.window_params[3]
+ framewin.uc_title = getUCtf8(item[6])
+
+ if buy == true then
+ local html = ""
+ html = arkNpcShop:getHtmlIcon(id, item)
+ framewin:find("buy_sell_slot"):renderHtml(html)
+ if string.sub(item[5], 1 , 8) == "https://" then
+ framewin:find("ok").active=false
+ framewin:find("infos"):renderHtml(arkNpcShop.PleaseWait)
+ framewin:find("infos"):browse(item[5].."&rnd="..tostring(nltime.getLocalTime()))
+ else
+ framewin:find("ok").active=true
+ framewin:find("infos"):renderHtml("")
+ end
+ arkNpcShop:CheckMoney()
+ -- framewin:setModalParentList(arkNpcShop.window)
+ else
+ html = arkNpcShop:getHtmlIcon(id, item)
+ framewin:find("infos"):renderHtml([[
+
+
+ ]]..html..[[
+ ]]..item[5]..[[
+
+
+ ]])
+ end
+
+ framewin:find("desc").params_l = "arkNpcShop:OpenSheetInfosWindow("..id..")"
+ framewin:find("ok").params_l = "arkNpcShop:Buy("..id..")"
+ framewin.opened=true
+ framewin.active=true
+end
+
+function arkNpcShop:selectSheet(item, id)
+ html = ""
+ items = arkNpcShop.all_valid_items[item][id]
+ for i=1,#items do
+ if arkNpcShop.lockedSlots[item][items[i][5]] == nil then
+ local params = "arkNpcShop:selectSheetItem("..tostring(item)..","..tostring(id)..","..tostring(i)..")"
+ html = html..[[
]]
+ end
+ end
+
+ runAH(nil, "enter_modal", "group=ui:interface:webig_html_modal")
+ local whm = getUI("ui:interface:webig_html_modal")
+ whm.child_resize_h = false
+ whm.w = 240
+ if h == nil then
+ h = 120
+ end
+ whm.h = h
+ whm_html = getUI("ui:interface:webig_html_modal:html")
+ whm_html:renderHtml(html)
+end
+
+function arkNpcShop:updateTexts(id, ctrl, text1, text2, text3)
+ local shop_item = getUI(arkNpcShop.window):find("ark_npc_shop_item_"..id)
+ if shop_item then
+ if ctrl then
+ shop_item:find("ctrl").tooltip = getUCtf8(ctrl)
+ else
+ shop_item:find("ctrl").tooltip = ""
+ end
+ shop_item:find("text1").uc_hardtext_format = text1
+ shop_item:find("text2").uc_hardtext_format = getUCtf8(text2)
+ if text3 then
+ shop_item:find("text3").uc_hardtext_format = getUCtf8(text3)
+ else
+ shop_item:find("text3").uc_hardtext_format = ""
+ end
+ end
+end
+
+-- VERSION --
+RYZOM_ARK_SHOP_VERSION = 366
diff --git a/ryzom/client/data/gamedev/interfaces_v3/base64.lua b/ryzom/client/data/gamedev/interfaces_v3/base64.lua
index 203d0aa52d..c5fa529d46 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/base64.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/base64.lua
@@ -199,4 +199,3 @@ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
------------------------------------------------------------------------------
--]]
-
diff --git a/ryzom/client/data/gamedev/interfaces_v3/bg_downloader.lua b/ryzom/client/data/gamedev/interfaces_v3/bg_downloader.lua
index 161012d9e5..8a0789da9f 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/bg_downloader.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/bg_downloader.lua
@@ -178,4 +178,6 @@ function bgdownloader:inGamePatchUncompleteWarning()
pg:blink(2)
messageBoxWithHelp(i18n.get("uiBGD_InGamePatchIncomplete"), "ui:interface", tonumber(getDefine("case_normal")))
displaySystemInfo(i18n.get("uiBGD_InGamePatchIncompleteBC"), "BC")
-end
\ No newline at end of file
+end
+-- VERSION --
+RYZOM_BG_DOWNLOADER_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/bot_chat_v4.lua b/ryzom/client/data/gamedev/interfaces_v3/bot_chat_v4.lua
index f0b3ec9130..1398b33e8c 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/bot_chat_v4.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/bot_chat_v4.lua
@@ -62,3 +62,6 @@ function game:bcMissionsUpdate()
ui = getUI('ui:interface:bot_chat_accept_mission')
ui.title = title;
end
+
+-- VERSION --
+RYZOM_BOT_CHAT_V4_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/check_lua_versions.lua b/ryzom/client/data/gamedev/interfaces_v3/check_lua_versions.lua
new file mode 100644
index 0000000000..9599e0a50b
--- /dev/null
+++ b/ryzom/client/data/gamedev/interfaces_v3/check_lua_versions.lua
@@ -0,0 +1,40 @@
+local ryzom_have_all_good_version = true
+if RYZOM_APPZONE_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_APPZONE_VERSION, 324, "appzone") end
+if RYZOM_ARK_VERSION ~= 366 then broadcastBadLuaVersions(RYZOM_ARK_VERSION, 366, "ark") end
+if RYZOM_ARK_LESSONS_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_ARK_LESSONS_VERSION, 324, "ark_lessons") end
+if RYZOM_ARK_SHOP_VERSION ~= 366 then broadcastBadLuaVersions(RYZOM_ARK_SHOP_VERSION, 366, "ark_shop") end
+if RYZOM_BG_DOWNLOADER_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_BG_DOWNLOADER_VERSION, 324, "bg_downloader") end
+if RYZOM_BOT_CHAT_V4_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_BOT_CHAT_V4_VERSION, 324, "bot_chat_v4") end
+if RYZOM_COMPASS_VERSION ~= 335 then broadcastBadLuaVersions(RYZOM_COMPASS_VERSION, 335, "compass") end
+if RYZOM_GAME_CONFIG_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_GAME_CONFIG_VERSION, 324, "game_config") end
+if RYZOM_GAME_R2_LOADING_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_GAME_R2_LOADING_VERSION, 324, "game_r2_loading") end
+if RYZOM_GUILD_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_GUILD_VERSION, 324, "guild") end
+if RYZOM_HELP_VERSION ~= 335 then broadcastBadLuaVersions(RYZOM_HELP_VERSION, 335, "help") end
+if RYZOM_INFO_PLAYER_VERSION ~= 335 then broadcastBadLuaVersions(RYZOM_INFO_PLAYER_VERSION, 335, "info_player") end
+if RYZOM_INTERACTION_VERSION ~= 366 then broadcastBadLuaVersions(RYZOM_INTERACTION_VERSION, 366, "interaction") end
+if RYZOM_INVENTORY_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_INVENTORY_VERSION, 324, "inventory") end
+if RYZOM_JSON_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_JSON_VERSION, 324, "json") end
+if RYZOM_MAP_VERSION ~= 366 then broadcastBadLuaVersions(RYZOM_MAP_VERSION, 366, "map") end
+if RYZOM_MISC_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_MISC_VERSION, 324, "misc") end
+if RYZOM_NAMES_FYROS_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_NAMES_FYROS_VERSION, 324, "names_fyros") end
+if RYZOM_NAMES_MATIS_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_NAMES_MATIS_VERSION, 324, "names_matis") end
+if RYZOM_NAMES_TRYKER_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_NAMES_TRYKER_VERSION, 324, "names_tryker") end
+if RYZOM_NAMES_ZORAI_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_NAMES_ZORAI_VERSION, 324, "names_zorai") end
+if RYZOM_OUT_V2_APPEAR_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_OUT_V2_APPEAR_VERSION, 324, "out_v2_appear") end
+if RYZOM_OUT_V2_SELECT_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_OUT_V2_SELECT_VERSION, 324, "out_v2_select") end
+if RYZOM_OUTPOST_VERSION ~= 335 then broadcastBadLuaVersions(RYZOM_OUTPOST_VERSION, 335, "outpost") end
+if RYZOM_PLAYER_VERSION ~= 366 then broadcastBadLuaVersions(RYZOM_PLAYER_VERSION, 366, "player") end
+if RYZOM_PLAYER_TRADE_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_PLAYER_TRADE_VERSION, 324, "player_trade") end
+if RYZOM_RAW_CREATURE_MATS_VERSION ~= 366 then broadcastBadLuaVersions(RYZOM_RAW_CREATURE_MATS_VERSION, 366, "raw_creature_mats") end
+if RYZOM_RING_ACCESS_POINT_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_RING_ACCESS_POINT_VERSION, 324, "ring_access_point") end
+if RYZOM_RING_ACCESS_POINT_FILTER_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_RING_ACCESS_POINT_FILTER_VERSION, 324, "ring_access_point_filter") end
+if RYZOM_RING_WINDOW_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_RING_WINDOW_VERSION, 324, "ring_window") end
+if RYZOM_RYZHOME_TOOLBAR_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_RYZHOME_TOOLBAR_VERSION, 324, "ryzhome_toolbar") end
+if RYZOM_SCENEEDIT_VERSION ~= 328 then broadcastBadLuaVersions(RYZOM_SCENEEDIT_VERSION, 328, "sceneedit") end
+if RYZOM_SEARCH_COMMAND_VERSION ~= 366 then broadcastBadLuaVersions(RYZOM_SEARCH_COMMAND_VERSION, 366, "search_command") end
+if RYZOM_TASKBAR_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_TASKBAR_VERSION, 324, "taskbar") end
+if RYZOM_TP_INTERFACE_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_TP_INTERFACE_VERSION, 324, "tp_interface") end
+if RYZOM_WEB_QUEUE_VERSION ~= 335 then broadcastBadLuaVersions(RYZOM_WEB_QUEUE_VERSION, 335, "web_queue") end
+if RYZOM_WEBBROWSER_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_WEBBROWSER_VERSION, 324, "webbrowser") end
+if RYZOM_WEBIG_VERSION ~= 324 then broadcastBadLuaVersions(RYZOM_WEBIG_VERSION, 324, "webig") end
+if RYZOM_WORLD_VERSION ~= 366 then broadcastBadLuaVersions(RYZOM_WORLD_VERSION, 366, "world") end
diff --git a/ryzom/client/data/gamedev/interfaces_v3/compass.lua b/ryzom/client/data/gamedev/interfaces_v3/compass.lua
index 414c9c137f..93ca89fd96 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/compass.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/compass.lua
@@ -4,6 +4,25 @@ if (game==nil) then
game= {};
end
+if DynE == nil then
+ DynE = {}
+ DynE.lastWinUpdate = 0
+end
+
+if DynE.otherMapPoint == nil then
+ DynE.otherMapPoints = {}
+end
+
+function DynE:AddOtherMapPoints()
+ if DynE.otherMapPoints ~= nil then
+ for k, v in pairs(DynE.otherMapPoints) do
+ for _, point in pairs(v) do
+ addLandMark(point[1], point[2], point[3], point[4],"","","","","","")
+ end
+ end
+ end
+end
+
function game:areInSilan()
polygons = {{8128,-10208}, {11368,-10208}, {11392,-12392}, {8096,-12368}}
@@ -48,3 +67,6 @@ function game:displayCalendar()
end
setOnDraw(getUI("ui:interface:compass"), "game:updateCompass()")
+
+-- VERSION --
+RYZOM_COMPASS_VERSION = 335
diff --git a/ryzom/client/data/gamedev/interfaces_v3/compass.xml b/ryzom/client/data/gamedev/interfaces_v3/compass.xml
index 131d1e1afb..0b3c538279 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/compass.xml
+++ b/ryzom/client/data/gamedev/interfaces_v3/compass.xml
@@ -783,7 +783,7 @@
w="24"
h="24"
x="4"
- y="-30">
+ y="-20">
+ value_from_code="getMaxGuildChestSlot()" />
+
+
+
+
+
+
+
+
+ y_decal="-1" />
+
+
-
+
+ y="-4" />
+ y="0" />
+
+
-
+
-
+
-
-
@@ -89,7 +87,9 @@
-
+
+
+
diff --git a/ryzom/client/data/gamedev/interfaces_v3/game_r2_loading.lua b/ryzom/client/data/gamedev/interfaces_v3/game_r2_loading.lua
index 33a3810d31..d698e2c4ea 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/game_r2_loading.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/game_r2_loading.lua
@@ -636,3 +636,6 @@ function GameR2Loading:buildNewbielandScenarioTree()
tree:forceRebuild()
end
+
+-- VERSION --
+RYZOM_GAME_R2_LOADING_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/guild.lua b/ryzom/client/data/gamedev/interfaces_v3/guild.lua
index 4c3bc0646c..e37e5f1862 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/guild.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/guild.lua
@@ -96,3 +96,6 @@ function game:guildDeactive()
setDbProp('UI:VARIABLES:ISACTIVE:GUILD', 0);
end
+
+-- VERSION --
+RYZOM_GUILD_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/guild.xml b/ryzom/client/data/gamedev/interfaces_v3/guild.xml
index df80a7f4cd..fa18c420ed 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/guild.xml
+++ b/ryzom/client/data/gamedev/interfaces_v3/guild.xml
@@ -867,9 +867,10 @@
posref="TL TL"
group_onclick_r="active_menu"
group_params_r="menu=ui:interface:base_menu_with_color">
-
@@ -883,6 +884,7 @@
h="-8"
inv_branch="%guild_inv_dbentry"
inv_branch_nb="%max_guild_invslot"
+ start_item="0"
inv_type="INV_GUILD" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ryzom/client/data/gamedev/interfaces_v3/info_player.lua b/ryzom/client/data/gamedev/interfaces_v3/info_player.lua
index 38ceec1972..f1c9272935 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/info_player.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/info_player.lua
@@ -16,7 +16,7 @@ game.PrevSessionMission = - 1
game.InGameDbInitialized = false
game.WebMissionLastDesc = {}
-game.ArkLessonUsedWindowUrl = "https://app.ryzom.com/app_arcc/index.php?action=mLesson_Run&script="
+
------------------------------------------------------------------------------------------------------------
-- CAP
------------------------------------------------------------------------------------------------------------
@@ -368,12 +368,20 @@ end
function game:onDbChangeAppPage()
if getDbProp("UI:VARIABLES:CURRENT_SERVER_TICK") > self.NpcWebPage.Timeout then
local npcName = getTargetName()
-
local message = ucstring()
-
- local text = game:getOpenAppPageMessage()
- message:fromUtf8(text)
- displaySystemInfo(message, "AMB")
+ local text = ""
+ if game.appNpcMessages[npcName] ~= nil then
+ text = game.appNpcMessages[npcName]
+ else
+ text = game:getOpenAppPageMessage()
+ end
+ if text == "" then
+ text = "w_magic_sep2.tga|"
+ else
+ text = findReplaceAll(text, "%s", npcName)
+ end
+ message:fromUtf8(game:parseLangText(text))
+ displaySystemInfo(message, "ZON")
removeOnDbChange(getUI("ui:interface:npc_web_browser"),"@UI:VARIABLES:CURRENT_SERVER_TICK")
end
end
@@ -1579,103 +1587,6 @@ function game:setNextUrl(url)
game.CapNextUrl = url
end
-function ArkOpenLesson(id)
- if id ~= 0 and id ~= nil then
- local win = getUI("ui:interface:web_transaction_lessons")
- if win then
- win:find("html"):browse(game.ArkLessonUsedWindowUrl..id)
- else
- getUI("ui:interface:web_transactions"):find("html"):browse(game.ArkLessonUsedWindowUrl..id)
- end
- end
-end
-
-function ArkRevealLesson(id, i, total)
- if i == game.ArkLessonRevealStep[id] then
- game.ArkLessonRevealStep[id] = game.ArkLessonRevealStep[id] + 1
- game:ArkLessonCallback("step", id, i)
- game:ArkRevealLessonInfos(id, i, total)
- if i == total then
- game:ArkAcceptLesson()
- end
- end
-end
-
-function game:ArkRevealLessonInfos(id, i, total)
- local ui = getUI("ui:interface:ArkLessonWin"..tostring(id))
- if ui ~= nil then
- local html = ui:find("html")
- html:showDiv("enabled_"..tostring(i), false)
- html:showDiv("disabled_"..tostring(i), false)
- html:showDiv("current_"..tostring(i), true)
- if i > 1 then
- if i ~= total+1 then
- html:showDiv("current_"..tostring(i-1), false)
- html:showDiv("enabled_"..tostring(i-1), true)
- end
- end
- if game.ArkLessonRevealCaps and game.ArkLessonRevealCaps[id] then
- if total > i then
- setCap(game.ArkLessonRevealCaps[id], "p", math.floor((100*i)/total), tostring(i).." / "..tostring(total))
- else
- setCap(game.ArkLessonRevealCaps[id], "p", 100, "")
- end
- end
- end
-end
-
-
-function ArkLessonUpdateHtml(win, scriptid, title, progression, started, finished, requirement, reward)
- win = getUI(win)
- win = win:find("div_lesson_"..scriptid..":html")
- if requirement ~= [[]] then
- requirement = game.ArkLessonNeedRequirement
- else
- requirement = ""
- end
-
- local progressionHtml = " "
- local height = "50"
- if progression then
- height = "12"
- pogressionHtml = ""..progression.." "
- end
-
- local color = "AAA"
- if started then
- if finished then
- color = "FFFFFF"
- else
- color = "FFDD4AFF"
- end
- end
-
- win:renderHtml([[
-
-
-
-
-
-
-
- ]]..title..[[
-
-
- ]]..requirement..[[
-
- ]]..pogressionHtml..[[
-
-
-
- ]]..reward..[[
-
-
-
- ]])
-end
-
-
-
function setCap(id, element, a, b)
if element == nil then
game.CapId = id
@@ -1714,7 +1625,7 @@ end
function game:openMissionsCatalog()
- -- Setup this function in webig
+ getUI("ui:interface:web_transactions"):find("html"):browse("https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script=8747&command=reset_all")
end
@@ -1876,6 +1787,12 @@ function game:onInGameDbInitialized()
--getUI("ui:interface:db_loading").active=false
game.InGameDbInitialized = true
debug("IG DB initialized")
+ -- Add waiters to guild chests
+ for i=0, 19 do
+ addOnDbChange(getUI("ui:interface:inv_guild"), "@SERVER:GUILD:CHEST:"..tostring(i)..":NAME", "updateChestList()")
+ end
+ addOnDbChange(getUI("ui:interface:inv_guild"), "@SERVER:GUILD:CHEST:0:BULK_MAX", "updateChestList(true)")
+
-- if the journal is opened, force an update for the fixed entry text
-- (says if we're in start island, paying account ...) need DB flags like
-- IS_NEWBIE & IS_TRIAL to be received
@@ -2267,6 +2184,7 @@ function game:setInfoPlayerCharacterRace()
end
function game:arkTitlesAddClassics()
+ local current_title = getUI("ui:interface:player:header_opened:player_title").uc_hardtext
runAH(nil, "title_init_combobox", "")
local cb = getUI("ui:interface:info_player_skills:content:webinfos:title:player_title")
local ui = getUI("ui:interface:encyclopedia:content:htmlC")
@@ -2278,7 +2196,12 @@ function game:arkTitlesAddClassics()
end
table.sort(titles)
for i,title in ipairs(titles) do
- html = html .. [[
]]
end
@@ -2286,3 +2209,7 @@ function game:arkTitlesAddClassics()
ui:renderHtml(html)
end
+
+
+-- VERSION --
+RYZOM_INFO_PLAYER_VERSION = 335
diff --git a/ryzom/client/data/gamedev/interfaces_v3/info_player.xml b/ryzom/client/data/gamedev/interfaces_v3/info_player.xml
index 0b5af31f3e..b5036babf0 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/info_player.xml
+++ b/ryzom/client/data/gamedev/interfaces_v3/info_player.xml
@@ -847,13 +847,13 @@
-
+
-
-
-
+
+
+
diff --git a/ryzom/client/data/gamedev/interfaces_v3/interaction.lua b/ryzom/client/data/gamedev/interfaces_v3/interaction.lua
index 663d352a1b..053798d997 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/interaction.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/interaction.lua
@@ -262,13 +262,11 @@ game.wantedRpTargets = {}
game.wantedRpPositions = {}
function game:addRequireRpItemsPosition(x, y, id)
- local sx = tostring(math.floor(x/10))
- local sy = tostring(math.floor(y/10))
- game.wantedRpPositions[sx..":"..sy] = id
+ table.insert(game.wantedRpPositions, {x, y, id})
end
function game:addRequireRpItems(left, target, mode, id)
- game.wantedRpTargets[left..":"..target..":"..mode] = id
+ game.wantedRpTargets[left..":"..target..":"..mode..":"..id] = id
end
game.usedRpLeftItem = "_"
@@ -286,6 +284,11 @@ function game:updateRpItems()
right = "_"
end
+ local right_no_variant = right
+ for str in string.gmatch(right, "([a-zA-Z_.]*)[|0-9]*") do
+ right_no_variant = str
+ end
+
if game.updateRpItemsUrl then
if game.usedRpLeftItem ~= left or game.usedRpRightItem ~= right then
game.usedRpLeftItem = left
@@ -294,22 +297,38 @@ function game:updateRpItems()
end
local target = tostring(getTargetSheet())
-
local mode = ""
if target ~= "" then
mode = tostring(getTargetMode())
end
+ -- game:checkRpItemsPosition()
local html = getUI("ui:interface:rpitems_actions"):find("html")
for k, v in pairs(game.wantedRpTargets) do
local a = html:find("action"..v)
if a then
- if string.find(left..":"..target..":"..mode, k) or string.find(left..":"..target..":*", k) then
- a:find("but").frozen = false
+ if string.find(left..":"..target..":"..mode..":"..tostring(v), k) ~= nil
+ or string.find(left..":::"..tostring(v), k) ~= nil
+ or string.find(left..":"..target.."::"..tostring(v), k) ~= nil
+ or string.find(left..":"..target..":*:"..tostring(v), k) ~= nil
+ or string.find(right..":"..target..":"..mode..":"..tostring(v), k) ~= nil
+ or string.find(right..":::"..tostring(v), k) ~= nil
+ or string.find(right..":"..target.."::"..tostring(v), k) ~= nil
+ or string.find(right..":"..target..":*:"..tostring(v), k) ~= nil
+ or string.find(right_no_variant..":"..target..":"..mode..":"..tostring(v), k) ~= nil
+ or string.find(right_no_variant..":::"..tostring(v), k) ~= nil
+ or string.find(right_no_variant..":"..target.."::"..tostring(v), k) ~= nil
+ or string.find(right_no_variant..":"..target..":*:"..tostring(v), k) ~= nil
+ then
+ a:find("img").texture = "grey_0.tga"
+ a:find("but").onclick_l = "lua"
+ a:find("but").alpha = 255
a:find("text").alpha = 255
else
- a:find("but").frozen = true
- a:find("text").alpha = 155
+ a:find("img").texture = "r2ed_toolbar_lock_small.tga"
+ a:find("but").onclick_l = ""
+ a:find("but").alpha = 150
+ a:find("text").alpha = 100
end
end
end
@@ -318,18 +337,23 @@ end
function game:checkRpItemsPosition()
local x,y,z = getPlayerPos()
- local sx = tostring(math.floor(x/10))
- local sy = tostring(math.floor(y/10))
local html = getUI("ui:interface:rpitems_actions"):find("html")
- for k, v in pairs(game.wantedRpPositions) do
- local a = html:find("action"..v)
+ for _, v in pairs(game.wantedRpPositions) do
+ vx = v[1]
+ vy = v[2]
+ id = v[3]
+ local a = html:find("action"..id)
if a then
- if string.find(sx..":"..sy, k) then
- a:find("but").frozen = false
+ if (vx-x)*(vx-x) + (vy-y)*(vy-y) <= 50 then
+ a:find("but").onclick_l = "lua"
+ a:find("img").texture = "grey_0.tga"
+ a:find("but").alpha = 255
a:find("text").alpha = 255
else
- a:find("but").frozen = true
- a:find("text").alpha = 155
+ a:find("but").onclick_l = ""
+ a:find("img").texture = "r2ed_toolbar_lock_small.tga"
+ a:find("but").alpha = 150
+ a:find("text").alpha = 100
end
end
end
@@ -353,12 +377,15 @@ function game:updateTargetConsiderUI()
local wgPvPTag = targetWindow:find("pvp_tags")
local wgHeader = targetWindow:find("header_opened")
local wgLock = targetWindow:find("lock")
+ local wginfos = targetWindow:find("target_tinfos")
wgTargetSlotForce.active = true
wgTargetSlotForce.texture = "consider_bg.tga"
wgImpossible.active = true
wgTargetSlotForce.h = 16
+ wginfos.active = false
+
-- no selection ?
if twGetTargetLevel() == -1 then
wgLock.active = false
@@ -387,7 +414,8 @@ function game:updateTargetConsiderUI()
-- if the selection is a player, then both the local & targeted player must be in PVP mode for the level to be displayed
if (twIsTargetPlayer()) then
- -- don't display anything ...
+ -- don't display anything except infos ...
+ wginfos.active = true
wgLock.active = false
wgTargetSlotForce.active = false
wgTargetLevel.active = false
@@ -961,330 +989,5 @@ function game:TalkWithNpc(bullying)
end
end
-
------------------------------------
---- ARK NPC SHOP
-
-function tablelength(T)
- if T == nil then
- return 0
- end
- local count = 0
- for _ in pairs(T) do count = count + 1 end
- return count
-end
-
-function arkNpcShop:showBuy()
- getUI("ui:interface:ark_shop_buy_item"):find("ok").active=true
-end
-
-function arkNpcShop:openSection(url)
- framewin = getUI("ui:interface:ark_npc_shop"):find("buy"):renderHtml(arkNpcShop.PleaseWait)
- getUI("ui:interface:web_transactions"):find("html"):browse(url)
-end
-
-function arkNpcShop:updateWindow(px, py)
- local x, y, z = getPlayerPos()
- local stop = false
- if (px-x)*(px-x)+(py-y)*(py-y) > 25 then
- local w = getUI("ui:interface:ark_npc_shop")
- w.active = false
- setOnDraw(w, "")
- getUI("ui:interface:ark_shop_buy_item").active = false
- arkNpcShop.player_can_buy = false
- broadcast(arkNpcShop.TooFar)
- end
-
- local diff = math.floor((nltime.getLocalTime() - arkNpcShop.lastMultipleItemsUpdate ) / 10)
- if diff >= 100 then
- arkNpcShop.lastMultipleItemsUpdate = nltime.getLocalTime()
- if arkNpcShop.player_money_per_items ~= nil then
- for item, price in pairs(arkNpcShop.player_money_per_items) do
- if arkNpcShop.lastMultipleItemsIndex[item] == nil then
- arkNpcShop.lastMultipleItemsIndex[item] = {}
- end
- for i = 1,5 do
- local w = getUI("ui:interface:ark_npc_shop"):find("ark_npc_shop_item_"..item.."_price"..tostring(i))
- if w ~= nil and arkNpcShop.all_items[item] ~= nil and arkNpcShop.all_items[item][i] ~= nil then
- if price[i] ~= nil and price[i] < 1 then
- if arkNpcShop.lastMultipleItemsIndex[item][i] == nil then
- arkNpcShop.lastMultipleItemsIndex[item][i] = 0
- end
-
- arkNpcShop.lastMultipleItemsIndex[item][i] = arkNpcShop.lastMultipleItemsIndex[item][i] + 1
- if arkNpcShop.lastMultipleItemsIndex[item][i] > tablelength(arkNpcShop.all_items[item][i]) then
- arkNpcShop.lastMultipleItemsIndex[item][i] = 1
- end
-
- local sheet = arkNpcShop.all_items[item][i][arkNpcShop.lastMultipleItemsIndex[item][i]]
- if sheet ~= ".sitem" then
- setDbProp("UI:TEMP:ARK:ITEM:"..item.."_"..tostring(i)..":SHEET", getSheetId(sheet))
- end
- end
- end
- end
- end
- end
- end
-end
-
-function arkNpcShop:checkitems(db, items, quality, id)
- total = 0
- for i = 0, 499, 1 do
- local sheet = getDbProp("SERVER:INVENTORY:BAG:"..tostring(i)..":SHEET")
- if sheet ~= 0 then
- local name = string.lower(getSheetName(sheet))
- for _, item in pairs(items) do
- if name == item then
- local qual = getDbProp("SERVER:INVENTORY:BAG:"..tostring(i)..":QUALITY")
- local quant = getDbProp("SERVER:INVENTORY:BAG:"..tostring(i)..":QUANTITY")
-
- if qual >= quality then
- total = total + quant
- setDbProp(db..":SHEET", sheet)
- setDbProp(db..":QUALITY", qual)
- end
- end
- end
- end
- end
- return total
-end
-
-function arkNpcShop:getHtmlIcon(id, item)
- if string.sub(item[2], 1, 1) == "#" then
- addDbProp("UI:TEMP:ARK:SELECTITEM:RESALE_FLAG", 0)
-
- if string.sub(item[3], 1, 1) == "!" then
- webig:addSheet("UI:TEMP:ARK:SELECTITEM", getSheetId(item[7]), item[4], tonumber(string.sub(item[3], 2)))
- else
- webig:addSheet("UI:TEMP:ARK:SELECTITEM", getSheetId(item[7]), item[4], 1)
- end
- addDbProp("UI:TEMP:ARK:SELECTITEM:USER_COLOR", item[9])
- return [[
]]
- else
- return [[
]]
- end
-end
-
-
-function arkNpcShop:OpenSheetInfosWindow(id)
- local w = getUI("ui:interface:ark_npc_shop")
- local x = w:find("buy"):find("ark_npc_shop_item_"..tostring(id))
- runAH(x:find("sheet"), "open_help_auto", "")
-
-end
-
-function arkNpcShop:HideHelpWindow(id)
- -- Check what help window are active
- local help_active={}
- for i = 0,7 do
- help_active[i] = getUI("ui:interface:sheet_help"..i).active
- end
-
- arkNpcShop:OpenSheetInfosWindow(id)
-
- -- Apply previous stats of help window
- for i = 0,7 do
- getUI("ui:interface:sheet_help"..i).active = help_active[i]
- end
-end
-
-function arkNpcShop:OpenItemWindow(id, buy)
- local item = arkNpcShop.items[id]
- if arkNpcShop.all_items[id] ~= nil and arkNpcShop.all_items[id].need_real_item ~= nil then
- arkNpcShop.max_quantity = 1
- else
- if string.sub(item[3], 1, 1) == "!" then
- arkNpcShop.max_quantity = 1
- else
- arkNpcShop.max_quantity = item[3]
- end
- end
-
- arkNpcShop:HideHelpWindow(id)
-
- local non_buy_window_w = 400
-
- local ui_item_preview = getUI("ui:interface:ark_shop_buy_item:content:header_opened:item_preview")
- if ui_item_preview then
- ui_item_preview.active = false
- end
-
- local ui_item_show_desc = getUI("ui:interface:ark_shop_buy_item:content:header_opened:desc")
- if ui_item_show_desc then
- ui_item_show_desc.active = item[2] == "#sheet"
- end
-
- if string.sub(item[2], 1, 1) == "#" then
- local item_type = getSheetFamily(item[7])
- local display_preview = item_type == "SHIELD" or item_type == "ARMOR" or item_type == "MELEE_WEAPON" or item_type == "RANGE_WEAPON"
- if ui_item_preview then
- ui_item_preview.active = display_preview
- end
-
- if display_preview then
- non_buy_window_w = 495
- else
- -- Items who are not named items must display help window when no buy
- if buy == nil and item[2] == "#sheet" then
- arkNpcShop:OpenSheetInfosWindow(id)
- return
- end
- end
- end
-
- if buy == true then
- arkNpcShop.price = item[1]
- setDbProp("UI:TEMP:ARK_MONEY_PRICE", arkNpcShop.price)
- setDbProp("UI:TEMP:ARK_MONEY_TOTAL", arkNpcShop.price)
-
- if arkNpcShop.price > arkNpcShop.player_money then
- arkNpcShop.player_can_buy = false
- else
- arkNpcShop.player_can_buy = true
- end
- end
-
- local framewin = getUI("ui:interface:ark_shop_buy_item")
- if framewin == nil then
- createRootGroupInstance("webig_bot_chat_buy_item", "ark_shop_buy_item", {id="content", infosclick="arkNpcShop:OpenSheetInfosWindow("..id..")", onclick="arkNpcShop:Buy("..id..")"})
- framewin = getUI("ui:interface:ark_shop_buy_item")
- framewin.x = math.ceil(((getUI("ui:interface").w - framewin.w))/2)
- framewin.y = math.ceil(((getUI("ui:interface").h + framewin.h))/2)
- end
-
- runAH(nil, "proc", "ark_shop_animate_preview_body")
-
- if buy == true then
- local eb = framewin:find("edit"):find("eb")
- eb.input_string = 1
- eb:setFocusOnText()
- eb:setSelectionAll()
- framewin:find("item_total_price"):find("icone").texture = arkNpcShop.MoneyIcon
- framewin:find("item_price"):find("icone").texture = arkNpcShop.MoneyIcon
- framewin:find("item_total_price"):find("tt").tooltip = arkNpcShop.Money
- framewin:find("item_price"):find("tt").tooltip = arkNpcShop.Money
- arkNpcShop.window_params = {-70, 305, 408}
- else
- arkNpcShop.window_params = {-20, 380, non_buy_window_w}
- end
-
- framewin:find("top").active = buy == true -- active onlye if buy
- framewin:find("scroll_text").y=arkNpcShop.window_params[1]
- framewin:find("scroll_text").h=arkNpcShop.window_params[2]
- framewin.w=arkNpcShop.window_params[3]
- framewin.uc_title = getUCtf8(item[6])
-
- if buy == true then
- local html = ""
- html = arkNpcShop:getHtmlIcon(id, item)
- framewin:find("buy_sell_slot"):renderHtml(html)
- if string.sub(item[5], 1 , 8) == "https://" then
- framewin:find("ok").active=false
- framewin:find("infos"):renderHtml(arkNpcShop.PleaseWait)
- framewin:find("infos"):browse(item[5])
- else
- framewin:find("ok").active=true
- framewin:find("infos"):renderHtml("")
- end
- arkNpcShop:CheckMoney()
- -- framewin:setModalParentList("ui:interface:ark_npc_shop")
- else
- html = arkNpcShop:getHtmlIcon(id, item)
- framewin:find("infos"):renderHtml([[
-
-
- ]]..html..[[
- ]]..item[5]..[[
-
-
- ]])
- end
-
- framewin:find("desc").params_l = "arkNpcShop:OpenSheetInfosWindow("..id..")"
- framewin:find("ok").params_l = "arkNpcShop:Buy("..id..")"
- framewin.opened=true
- framewin.active=true
-end
-
-
-function arkNpcShop:CheckMoney()
- local win = getUI("ui:interface:ark_shop_buy_item")
- local value = tonumber(win:find("edit"):find("eb").input_string)
- if value == nil or value == 0 then
- value = 1
- end
- if arkNpcShop.max_quantity ~= 0 and value > arkNpcShop.max_quantity then
- win:find("edit"):find("eb").input_string = arkNpcShop.max_quantity
- value = arkNpcShop.max_quantity
- end
-
- local total = arkNpcShop.price*value
-
- if total > arkNpcShop.player_money then
- win:find("ok").hardtext="uiNotEnoughMoney"
- arkNpcShop.player_can_buy = false
- else
- win:find("ok").hardtext = arkNpcShop.ActionName
- arkNpcShop.player_can_buy = true
- end
- setDbProp("UI:TEMP:ARK_MONEY_TOTAL", total)
-end
-
-function arkNpcShop:Close()
- local framewin = getUI("ui:interface:ark_npc_shop")
- if framewin ~= nil then
- framewin.active=false
- end
-
- framewin = getUI("ui:interface:ark_shop_buy_item")
- if framewin ~= nil then
- framewin.active=false
- end
-
-end
-
-function arkNpcShop:timer(id, len)
- local diff = math.floor((nltime.getLocalTime() - savedTime) / 50)
- getUI("ui:interface:current_action").active=true
- setDbProp("UI:PHRASE:ACT_BAR_LEN", (100/len)*diff)
- if diff >= len then
- getUI("ui:interface:current_action").active=false
- setOnDraw(getUI("ui:interface:current_action"), "")
- local quantity = getUI("ui:interface:ark_shop_buy_item"):find("edit"):find("eb").input_string
- getUI("ui:interface:web_transactions"):find("html"):browse(arkNpcShop.ValidateUrl..quantity.."&item_id="..id.."&item_selection="..arkNpcShop.selectedItems[id])
- end
-end
-
-
-function arkNpcShop:Buy(id)
- local item = arkNpcShop.items[id]
- local win = getUI("ui:interface:ark_shop_buy_item")
- local quantity = win:find("edit"):find("eb").input_string
- if arkNpcShop.player_can_buy then
- local message = ucstring()
- message:fromUtf8("@{F5FF}"..getUI("ui:interface:target").title..": @{FF0F}I\'m checking to see if you\'re trying to rip him off... ")
- -- displaySystemInfo(message, "BC")
-
- if arkNpcShop.AtysPoint then
- if item[8] == 0 then
- local message = ucstring()
- message:fromUtf8(arkNpcShop.AtysPointsBuyMessage)
- displaySystemInfo(message, "BC")
- savedTime = nltime.getLocalTime()
- getUI("ui:interface:current_action").active=true
- local len = item[1]
- if len > 200 then
- len = 200
- end
- setOnDraw(getUI("ui:interface:current_action"), "arkNpcShop:timer("..id..", "..tostring(len)..")")
- else
- getUI("ui:interface:web_transactions"):find("html"):browse(arkNpcShop.ValidateUrl..quantity.."&item_id="..id.."&item_selection="..arkNpcShop.selectedItems[id])
- end
- else
- getUI("ui:interface:web_transactions"):find("html"):browse(arkNpcShop.ValidateUrl..quantity.."&item_id="..id.."&item_selection="..arkNpcShop.selectedItems[id])
- end
- end
- arkNpcShop:Close()
-end
+-- VERSION --
+RYZOM_INTERACTION_VERSION = 366
diff --git a/ryzom/client/data/gamedev/interfaces_v3/interaction.xml b/ryzom/client/data/gamedev/interfaces_v3/interaction.xml
index 53af8d1117..4bff5378e6 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/interaction.xml
+++ b/ryzom/client/data/gamedev/interfaces_v3/interaction.xml
@@ -16,7 +16,7 @@
-
@@ -304,6 +304,22 @@
w="0"
h="0"
tooltip_parent="win" />
+
-
-
+
+
@@ -3328,22 +3344,22 @@
-
+
-
-
-
+
+
+
-
+
-
-
+
+
diff --git a/ryzom/client/data/gamedev/interfaces_v3/inventory.lua b/ryzom/client/data/gamedev/interfaces_v3/inventory.lua
index eb2892b0a6..48976282ac 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/inventory.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/inventory.lua
@@ -6,72 +6,137 @@ if (game==nil) then
end
function game:initEquipPreview()
- setChar3dDBfromServerDB('UI:TEMP:PREVIEWCHAR3D')
+ setChar3dDBfromServerDB("UI:TEMP:PREVIEWCHAR3D")
- local scene = getUI("ui:interface:inventory:content:equip:midsection:content:visu3d:char3d")
- local headz = scene:getElement("character#0").headz
- local pz = scene:getElement("character#0").posz
- local height = headz - pz
- local camera = scene:getElement("camera#0")
- camera.tgtz = pz + height*0.55
- camera.posz = camera.tgtz + 0.5
- camera.posy = 26 - 1.6*(height)
- scene.distlimitmin = 25 - camera.posy
- scene.distlimitmax = 27 - camera.posy
+ local scene = getUI("ui:interface:inventory:content:equip:midsection:content:visu3d:char3d")
+ local headz = scene:getElement("character#0").headz
+ local pz = scene:getElement("character#0").posz
+ local height = headz - pz
+ local camera = scene:getElement("camera#0")
+ camera.tgtz = pz + height*0.55
+ camera.posz = camera.tgtz + 0.5
+ camera.posy = 26 - 1.6*(height)
+ scene.distlimitmin = 25 - camera.posy
+ scene.distlimitmax = 27 - camera.posy
- scene = getUI("ui:interface:inv_equip:content:equip:midsection:content:visu3d:char3d")
- headz = scene:getElement("character#0").headz
- pz = scene:getElement("character#0").posz
- height = headz - pz
- camera = scene:getElement("camera#0")
- camera.tgtz = pz + height*0.55
- camera.posz = camera.tgtz + 0.5
- camera.posy = 26 - 1.6*(height)
- scene.distlimitmin = 25 - camera.posy
- scene.distlimitmax = 27 - camera.posy
+ scene = getUI("ui:interface:inv_equip:content:equip:midsection:content:visu3d:char3d")
+ headz = scene:getElement("character#0").headz
+ pz = scene:getElement("character#0").posz
+ height = headz - pz
+ camera = scene:getElement("camera#0")
+ camera.tgtz = pz + height*0.55
+ camera.posz = camera.tgtz + 0.5
+ camera.posy = 26 - 1.6*(height)
+ scene.distlimitmin = 25 - camera.posy
+ scene.distlimitmax = 27 - camera.posy
end
function game:updateEquipOnResize(base, force)
- local path = "ui:interface:"..base
- local win = getUI(path)
- local equipPath = path..":content:equip"
- local equip = getUI(equipPath)
- if equip ~= nil and (equip.active ~= false or force) then
- local w = win.w
- local h = win.h
- local hotbar = getUI(equipPath..":hotbar_c")
- local hotbarTitle = getUI(equipPath..":hotbarTitle")
- local midsection = getUI(equipPath..":midsection")
- local jewelry = getUI(equipPath..":jewelry")
- local armors = getUI(equipPath..":armors")
- local handl = getUI(equipPath..":handl")
- local handr = getUI(equipPath..":handr")
- if h < 345 then
- hotbar.active = false
- hotbarTitle.active = false
- else
- hotbar.active = true
- hotbarTitle.active = true
- end
- if w < 450 then
- midsection.active = false
- jewelry.x = -10
- armors.x = 10
- jewelry.y = 0
- armors.y = 0
- else
- midsection.active = true
- jewelry.x = -20
- armors.x = 20
- jewelry.y = -5
- armors.y = -5
- end
- if w > 390 and h > 344 then
- handr.active = true
- handl.active = true
- else
- handr.active = false
- handl.active = false
- end
- end
-end
\ No newline at end of file
+ local path = "ui:interface:"..base
+ local win = getUI(path)
+ local equipPath = path..":content:equip"
+ local equip = getUI(equipPath)
+ if equip ~= nil and (equip.active ~= false or force) then
+ local w = win.w
+ local h = win.h
+ local hotbar = getUI(equipPath..":hotbar_c")
+ local hotbarTitle = getUI(equipPath..":hotbarTitle")
+ local midsection = getUI(equipPath..":midsection")
+ local jewelry = getUI(equipPath..":jewelry")
+ local armors = getUI(equipPath..":armors")
+ local handl = getUI(equipPath..":handl")
+ local handr = getUI(equipPath..":handr")
+ if h < 345 then
+ hotbar.active = false
+ hotbarTitle.active = false
+ else
+ hotbar.active = true
+ hotbarTitle.active = true
+ end
+ if w < 450 then
+ midsection.active = false
+ jewelry.x = -10
+ armors.x = 10
+ jewelry.y = 0
+ armors.y = 0
+ else
+ midsection.active = true
+ jewelry.x = -20
+ armors.x = 20
+ jewelry.y = -5
+ armors.y = -5
+ end
+ if w > 390 and h > 344 then
+ handr.active = true
+ handl.active = true
+ else
+ handr.active = false
+ handl.active = false
+ end
+ end
+end
+
+function updateChest()
+ local index = getUICaller().selection
+ local chest = "A"
+ local inv = ""
+ if string.sub(getUICaller().id, 1, 23) == "ui:interface:inv_guild2" or string.sub(getUICaller().id, 1, 37) == "ui:interface:inventory:content:guild2" then
+ chest = "B"
+ inv = "2"
+ end
+ runCommand("a", "setGuildInventoryChest", chest, index)
+ doUpdateChest(index, chest, inv)
+ if string.sub(getUICaller().id, 1, 22) == "ui:interface:inv_guild" then
+ ui = getUI("ui:interface:inventory:content:guild"..inv..":ibw:chest")
+ else
+ ui = getUI("ui:interface:inv_guild"..inv..":header_opened:ibw:chest")
+ end
+ ui.selection = index
+end
+
+function doUpdateChest(index, chest, inv)
+ setDbProp("UI:SAVE:GUILD_INVENTORY_CHEST_"..chest, index)
+ local ui = ""
+ ui = getUI("ui:interface:inv_guild"..inv..":content:iil:bag_icons")
+ runAH(ui, "list_sheet_change_start_item", "index="..tostring(index*getDefine("max_guild_invslot")))
+ ui = getUI("ui:interface:inv_guild"..inv..":content:iil:bag_list")
+ runAH(ui, "list_sheet_text_change_start_item", "index="..tostring(index*getDefine("max_guild_invslot")))
+ ui = getUI("ui:interface:inventory:content:guild"..inv..":iil:bag_icons")
+ runAH(ui, "list_sheet_change_start_item", "index="..tostring(index*getDefine("max_guild_invslot")))
+ ui = getUI("ui:interface:inventory:content:guild"..inv..":iil:bag_list")
+ runAH(ui, "list_sheet_text_change_start_item", "index="..tostring(index*getDefine("max_guild_invslot")))
+end
+
+function updateChestList(init)
+ removeOnDbChange(getUI("ui:interface:inv_guild"),"@UI:VARIABLES:CURRENT_SERVER_TICK")
+ local uis = {"ui:interface:inv_guild:header_opened:ibw", "ui:interface:inv_guild2:header_opened:ibw", "ui:interface:inventory:content:guild:ibw", "ui:interface:inventory:content:guild2:ibw" }
+ local ui = ""
+ for iid, id in pairs(uis) do
+ ui = getUI(id..":chest")
+ ui:resetTexts()
+ local all_str_available = true
+ for i=0, 19 do
+ local name_id = getDbProp("SERVER:GUILD:CHEST:"..tostring(i)..":NAME")
+ if name_id > 0 then
+ if not isSrvStringAvailable(name_id) then
+ all_str_available = false
+ else
+ ui:addText(ucstring(getSrvString(name_id):toUtf8().." "))
+ end
+ end
+ end
+ if not all_str_available then
+ addOnDbChange(getUI("ui:interface:inv_guild"), "@UI:VARIABLES:CURRENT_SERVER_TICK", "updateChestList()")
+ elseif init == true then
+ debug("RANGE ===== "..tostring(getUI(id..":bulk_weight:encombrement").range))
+ ui.selection = (iid - 1) % 2;
+ local max_guild_invslot = tostring(getDefine("max_guild_invslot"))
+ getUI(id..":bulk_weight:encombrement").value = runExpr("getItemsBulk('"..getDefine("guild_inv_dbentry").."',mul("..max_guild_invslot..","..tostring(ui.selection).."),"..max_guild_invslot..")")
+ getUI(id..":bulk_weight:encombrement").range = runExpr("getChestMaxBulk('"..getDefine("guild_chests_dbentry").."',"..tostring(ui.selection)..")")
+ removeOnDbChange(getUI("ui:interface:inv_guild"), "@SERVER:GUILD:CHEST:0:BULK_MAX")
+ end
+ end
+end
+
+-- VERSION --
+RYZOM_INVENTORY_VERSION = 324
diff --git a/ryzom/client/data/gamedev/interfaces_v3/inventory.xml b/ryzom/client/data/gamedev/interfaces_v3/inventory.xml
index 9789045b86..2e94860314 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/inventory.xml
+++ b/ryzom/client/data/gamedev/interfaces_v3/inventory.xml
@@ -185,7 +185,7 @@
line_maxw="70"
over_extend_view_text="true"
posref="TL TL"
- shadow_x="0"
+ shadow_x="0"
shadow_y="0"
fontsize="10" />
-
+
-
+
@@ -290,7 +290,7 @@
-
+
@@ -704,7 +704,7 @@
-
+
@@ -761,7 +761,7 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
diff --git a/ryzom/client/data/gamedev/interfaces_v3/keys_r2ed.xml b/ryzom/client/data/gamedev/interfaces_v3/keys_r2ed.xml
index 65c7603cd2..b7ecb65519 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/keys_r2ed.xml
+++ b/ryzom/client/data/gamedev/interfaces_v3/keys_r2ed.xml
@@ -37,6 +37,7 @@
+
diff --git a/ryzom/client/data/gamedev/interfaces_v3/macros.xml b/ryzom/client/data/gamedev/interfaces_v3/macros.xml
index d14e6e8886..297a94980d 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/macros.xml
+++ b/ryzom/client/data/gamedev/interfaces_v3/macros.xml
@@ -238,6 +238,7 @@
+
diff --git a/ryzom/client/data/gamedev/interfaces_v3/map.lua b/ryzom/client/data/gamedev/interfaces_v3/map.lua
index 5e18772209..94de2404d9 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/map.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/map.lua
@@ -51,7 +51,9 @@ function game:addMapArkPoint(section, x, y, name, title, texture, url, h)
end
function game:delMapArkPoint(section, name)
- game.mapArkPoints[section][name] = nil
+ if game.mapArkPoints[section] ~= nil then
+ game.mapArkPoints[section][name] = nil
+ end
end
function game:delMapArkSection(section)
@@ -196,12 +198,11 @@ function game:openFullMap()
end
end
-function game:addSpawnShapesByZone(zone, continent, name, displayIcon, setup, finish, openShape)
+function game:addSpawnShapesByZone(zone, continent, name, displayIcon, setup, finish, openShape, text, icon)
local id1 = -1
local id2 = -1
- if game.spawnShapesByZone[continent] == nil
- then
+ if game.spawnShapesByZone[continent] == nil then
game.spawnShapesByZone[continent] = {}
end
@@ -210,30 +211,42 @@ function game:addSpawnShapesByZone(zone, continent, name, displayIcon, setup, fi
id2 = game.spawnShapesByZone[continent][name][10]
end
- table.insert(setup, id1)
+ table.insert(setup, id1) -- 3
table.insert(setup, id2)
table.insert(setup, finish)
table.insert(setup, openShape)
game.spawnShapesByZone[continent][name] = setup
game.spawnShapesByZone[continent][name][8] = Json.decode(setup[8])
+ if not text then
+ text = i18n.get("uiWisdomChest"):toUtf8()
+ end
+
+ if not icon then
+ icon = "ico_box"
+ end
+
if displayIcon == 1 then
- game:addMapArkPoint(zone, setup[2], setup[3], setup[1], i18n.get("uiWisdomChest"):toUtf8(), "ico_box.tga")
+ game:addMapArkPoint(zone, setup[2], setup[3], name, text, icon..".tga")
+ else
+ game:delMapArkPoint(zone, name)
end
end
function game:doSpawnShapesByZone(continent)
if game.spawnShapesByZone[continent] then
for name, shape in pairs(game.spawnShapesByZone[continent]) do
- if shape[9] then
+
+ if shape[9] ~= nil and shape[9] > 0 then
deleteShape(shape[9])
end
- if shape[10] then
+
+ if shape[10] ~= nil and shape[9] > 0 then
deleteShape(shape[10])
end
local setup = shape[8]
- game.spawnShapesByZone[continent][name][9] = SceneEditor:doSpawnShape(shape[1]..".shape", setup, shape[2], shape[3], shape[4], shape[5], shape[6], shape[7], "user", 1, true, setup["action"], setup["url"], false, false, setup["textures"], "", false)
+ game.spawnShapesByZone[continent][name][9] = SceneEditor:doSpawnShape(shape[1]..".shape", setup, shape[2], shape[3], shape[4], shape[5], shape[6], shape[7], "user", 1, false, setup["action"], setup["url"], false, false, setup["textures"], "", false)
if shape[11] == 0 then
game.spawnShapesByZone[continent][name][10] = SceneEditor:doSpawnShape("ge_mission_evenement.ps", setup, shape[2], shape[3], shape[4]+0.35, shape[5], shape[6], shape[7], "user", 1, false, setup["action"], setup["url"], false, false, setup["textures"], "", false)
else
@@ -245,6 +258,8 @@ end
game.mapRegionSections["Silan"] = {}
game.mapRegionSections["Silan"]["newbieland_city.tga"] = true
+game.mapRegionSections["Zorai"] = {}
+game.mapRegionSections["Zorai"]["zorai_map.tga"] = true
game:addMapArkPoint("Vip/Silan", 10276, -11791, "vip_silan_tryker", "", "dynicon_vip.tga", "https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script=9894&vip=nb_tryker_leader&title=fct_chief_explorer&gender=1", 150)
game:addMapArkPoint("Vip/Silan", 10341, -11822, "vip_silan_matis", "", "dynicon_vip.tga", "https://app.ryzom.com/app_arcc/index.php?action=mScript_Run&script=9894&vip=nb_matis_leader&title=fct_matis_master_artisan&gender=1", 150)
@@ -257,3 +272,6 @@ game:addMapArkPoint("Vip", 4154, -3305, "vip_allegory", "", "allegory_16.tga", "
-- register map overrride
-- game:setAltMap("fyros_map.tga", "fyros_map_sp.tga")
+
+-- VERSION --
+RYZOM_MAP_VERSION = 366
diff --git a/ryzom/client/data/gamedev/interfaces_v3/misc.lua b/ryzom/client/data/gamedev/interfaces_v3/misc.lua
index 6127a3a0ac..6effaa6866 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/misc.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/misc.lua
@@ -134,3 +134,6 @@ function misc:initInvObserver(
end
return setmetatable(misc, self.invObserver)
end
+
+-- VERSION --
+RYZOM_MISC_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua b/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua
index d208e62de4..da40220d2c 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/names_fyros.lua
@@ -293,3 +293,6 @@ fyrosLastNames = {"Abyan", "Abybus", "Abycaon", "Abycus", "Abydix", "Abydon", "A
, "Aeton", "Aexius", "Apoan", "Apobus", "Apocaon", "Apocus", "Apodix", "Apodon", "Apodos", "Apoion", "Apokos", "Apola", "Apolaus", "Apolion"
, "Apollo", "Apolus", "Apomus", "Apon", "Aponix", "Apops", "Aporius", "Aporon", "Aporos", "Aporus", "Aposeus", "Aposse", "Apotheus", "Apothus", "Apotis", "Apoton", "Apoxius", "Boean", "Boebus", "Boecaon", "Boecus", "Boedix", "Boedon", "Boedos", "Boeion", "Boekos", "Boela", "Boelaus", "Boelion", "Boello", "Boelus", "Boemus", "Boen", "Boenix", "Boeps", "Boerius", "Boeron", "Boeros", "Boerus", "Boeseus", "Boesse", "Boetheus", "Boethus", "Boetis", "Boeton", "Boexius", "Cean", "Cebus", "Cecaon", "Cecus", "Cedix", "Cedon", "Cedos", "Ceion", "Cekos", "Cela", "Celaus", "Celion", "Cello", "Celus", "Cemus", "Cen", "Cenix", "Ceps", "Cerius", "Ceron", "Ceros", "Cerus", "Ceseus", "Cesse", "Cetheus", "Cethus", "Cetis", "Ceton", "Cexius", "Dean", "Debus", "Decaon", "Decus", "Dedix", "Dedon", "Dedos", "Deion", "Dekos", "Dela", "Delaus", "Delion", "Dello", "Delus", "Demus", "Den", "Denix", "Deps", "Derius", "Deron", "Deros", "Derus", "Deseus", "Desse", "Detheus"
, "Dethus", "Detis", "Deton", "Deuan", "Deubus", "Deucaon", "Deucus", "Deudix", "Deudon", "Deudos", "Deuion", "Deukos", "Deula", "Deulaus", "Deulion", "Deullo", "Deulus", "Deumus", "Deun", "Deunix", "Deups", "Deurius", "Deuron", "Deuros", "Deurus", "Deuseus", "Deusse", "Deutheus", "Deuthus", "Deutis", "Deuton", "Deuxius", "Dexius", "Dioan", "Diobus", "Diocaon", "Diocus", "Diodix", "Diodon", "Diodos", "Dioion", "Diokos", "Diola", "Diolaus", "Diolion", "Diollo", "Diolus", "Diomus", "Dion", "Dionix", "Diops", "Diorius", "Dioron", "Dioros", "Diorus", "Dioseus", "Diosse", "Diotheus", "Diothus", "Diotis", "Dioton", "Dioxius", "Dyan", "Dybus", "Dycaon", "Dycus", "Dydix", "Dydon", "Dydos", "Dyion", "Dykos", "Dyla", "Dylaus", "Dylion", "Dyllo", "Dylus", "Dymus", "Dyn", "Dynix", "Dyps", "Dyrius", "Dyron", "Dyros", "Dyrus", "Dyseus", "Dysse", "Dytheus", "Dythus", "Dytis", "Dyton", "Dyxius", "Euan", "Eubus", "Eucaon", "Eucus", "Eudix", "Eudon", "Eudos", "Euion", "Eukos", "Eula", "Eulaus", "Eulion", "Eullo", "Eulus", "Eumus", "Eun", "Eunix", "Eups", "Eurius", "Euron", "Euros", "Eurus", "Euseus", "Eusse", "Eutheus", "Euthus", "Eutis", "Euton", "Euxius", "Gaan", "Gabus", "Gacaon", "Gacus", "Gadix", "Gadon", "Gados", "Gaion", "Gakos", "Gala", "Galaus", "Galion", "Gallo", "Galus", "Gamus", "Gan", "Ganix", "Gaps", "Garius", "Garon", "Garos", "Garus", "Gaseus", "Gasse", "Gatheus", "Gathus", "Gatis", "Gaton", "Gaxius", "Ibian", "Ibibus", "Ibicaon", "Ibicus", "Ibidix", "Ibidon", "Ibidos", "Ibiion", "Ibikos", "Ibila", "Ibilaus", "Ibilion", "Ibillo", "Ibilus", "Ibimus", "Ibin", "Ibinix", "Ibips", "Ibirius", "Ibiron", "Ibiros", "Ibirus", "Ibiseus", "Ibisse", "Ibitheus", "Ibithus", "Ibitis", "Ibiton", "Ibixius", "Icaan", "Icabus", "Icacaon", "Icacus", "Icadix", "Icadon", "Icados", "Icaion", "Icakos", "Icala", "Icalaus", "Icalion", "Icallo", "Icalus", "Icamus", "Ican", "Icanix", "Icaps", "Icarius", "Icaron", "Icaros", "Icarus", "Icaseus", "Icasse", "Icatheus", "Icathus", "Icatis", "Icaton", "Icaxius", "Ioan", "Iobus", "Iocaon", "Iocus", "Iodix", "Iodon", "Iodos", "Ioion", "Iokos", "Iola", "Iolaus", "Iolion", "Iollo", "Iolus", "Iomus", "Ion", "Ionix", "Iops", "Iorius", "Ioron", "Ioros", "Iorus", "Ioseus", "Iosse", "Iotheus", "Iothus", "Iotis", "Ioton", "Ioxius", "Krian", "Kribus", "Kricaon", "Kricus", "Kridix", "Kridon", "Kridos", "Kriion", "Krikos", "Krila", "Krilaus", "Krilion", "Krillo", "Krilus", "Krimus", "Krin", "Krinix", "Krips", "Kririus", "Kriron", "Kriros", "Krirus", "Kriseus", "Krisse", "Kritheus", "Krithus", "Kritis", "Kriton", "Krixius", "Kyan", "Kybus", "Kycaon", "Kycus", "Kydix", "Kydon", "Kydos", "Kyion", "Kykos", "Kyla", "Kylaus", "Kylion", "Kyllo", "Kylus", "Kymus", "Kyn", "Kynix", "Kyps", "Kyrius", "Kyron", "Kyros", "Kyrus", "Kyseus", "Kysse", "Kytheus", "Kythus", "Kytis", "Kyton", "Kyxius", "Lyan", "Lybus", "Lycaon", "Lycus", "Lydix", "Lydon", "Lydos", "Lyion", "Lykos", "Lyla", "Lylaus", "Lylion", "Lyllo", "Lylus", "Lymus", "Lyn", "Lynix", "Lyps", "Lyrius", "Lyron", "Lyros", "Lyrus", "Lyseus", "Lysse", "Lytheus", "Lythus", "Lytis", "Lyton", "Lyxius", "Mean", "Mebus", "Mecaon", "Mecus", "Medix", "Medon", "Medos", "Meion", "Mekos", "Mela", "Melaus", "Melion", "Mello", "Melus", "Memus", "Men", "Menix", "Meps", "Merius", "Meron", "Meros", "Merus", "Meseus", "Messe", "Metheus", "Methus", "Metis", "Meton", "Mexius", "Mian", "Mibus", "Micaon", "Micus", "Midix", "Midon", "Midos", "Miion", "Mikos", "Mila", "Milaus", "Milion", "Millo", "Milus", "Mimus", "Min", "Minix", "Mips", "Mirius", "Miron", "Miros", "Mirus", "Miseus", "Misse", "Mitheus", "Mithus", "Mitis", "Miton", "Mixius", "Pean", "Pebus", "Pecaon", "Pecus", "Pedix", "Pedon", "Pedos", "Peion", "Pekos", "Pela", "Pelaus", "Pelion", "Pello", "Pelus", "Pemus", "Pen", "Penix", "Peps", "Perius", "Peron", "Peros", "Perus", "Peseus", "Pesse", "Petheus", "Pethus", "Petis", "Peton", "Pexius", "Pian", "Pibus", "Picaon", "Picus", "Pidix", "Pidon", "Pidos", "Piion", "Pikos", "Pila", "Pilaus", "Pilion", "Pillo", "Pilus", "Pimus", "Pin", "Pinix", "Pips", "Pirius", "Piron", "Piros", "Pirus", "Piseus", "Pisse", "Pitheus", "Pithus", "Pitis", "Piton", "Pixius", "Plean", "Plebus", "Plecaon", "Plecus", "Pledix", "Pledon", "Pledos", "Pleion", "Plekos", "Plela", "Plelaus", "Plelion", "Plello", "Plelus", "Plemus", "Plen", "Plenix", "Pleps", "Plerius", "Pleron", "Pleros", "Plerus", "Pleseus", "Plesse", "Pletheus", "Plethus", "Pletis", "Pleton", "Plexius", "Pyan", "Pybus", "Pycaon", "Pycus", "Pydix", "Pydon", "Pydos", "Pyion", "Pykos", "Pyla", "Pylaus", "Pylion", "Pyllo", "Pylus", "Pymus", "Pyn", "Pynix", "Pyps", "Pyrius", "Pyron", "Pyros", "Pyrus", "Pyseus", "Pysse", "Pytheus", "Pythus", "Pytis", "Pyton", "Pyxius", "Thean", "Thebus", "Thecaon", "Thecus", "Thedix", "Thedon", "Thedos", "Theion", "Thekos", "Thela", "Thelaus", "Thelion", "Thello", "Thelus", "Themus", "Then", "Thenix", "Theps", "Therius", "Theron", "Theros", "Therus", "Theseus", "Thesse", "Thetheus", "Thethus", "Thetis", "Theton", "Thexius", "Tian", "Tibus", "Ticaon", "Ticus", "Tidix", "Tidon", "Tidos", "Tiion", "Tikos", "Tila", "Tilaus", "Tilion", "Tillo", "Tilus", "Timus", "Tin", "Tinix", "Tips", "Tirius", "Tiron", "Tiros", "Tirus", "Tiseus", "Tisse", "Titheus", "Tithus", "Titis", "Titon", "Tixius", "Ulyan", "Ulybus", "Ulycaon", "Ulycus", "Ulydix", "Ulydon", "Ulydos", "Ulyion", "Ulykos", "Ulyla", "Ulylaus", "Ulylion", "Ulyllo", "Ulylus", "Ulymus", "Ulyn", "Ulynix", "Ulyps", "Ulyrius", "Ulyron", "Ulyros", "Ulyrus", "Ulyseus", "Ulysse", "Ulytheus", "Ulythus", "Ulytis", "Ulyton", "Ulyxius", "Xaan", "Xabus", "Xacaon", "Xacus", "Xadix", "Xadon", "Xados", "Xaion", "Xakos", "Xala", "Xalaus", "Xalion", "Xallo", "Xalus", "Xamus", "Xan", "Xanix", "Xaps", "Xarius", "Xaron", "Xaros", "Xarus", "Xaseus", "Xasse", "Xatheus", "Xathus", "Xatis", "Xaton", "Xaxius", "Xyan", "Xybus", "Xycaon", "Xycus", "Xydix", "Xydon", "Xydos", "Xyion", "Xykos", "Xyla", "Xylaus", "Xylion", "Xyllo", "Xylus", "Xymus", "Xyn", "Xynix", "Xyps", "Xyrius", "Xyron", "Xyros", "Xyrus", "Xyseus", "Xysse", "Xytheus", "Xythus", "Xytis", "Xyton", "Xyxius", "Zean", "Zebus", "Zecaon", "Zecus", "Zedix", "Zedon", "Zedos", "Zeion", "Zekos", "Zela", "Zelaus", "Zelion", "Zello", "Zelus", "Zemus", "Zen", "Zenix", "Zeps", "Zerius", "Zeron", "Zeros", "Zerus", "Zeseus", "Zesse", "Zetheus", "Zethus", "Zetis", "Zeton", "Zexius"}
+
+-- VERSION --
+RYZOM_NAMES_FYROS_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua b/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua
index 28d9584f7e..0be4791390 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/names_matis.lua
@@ -1,3 +1,6 @@
matisLastNames = {"Anibi", "Anicco", "Anichini", "Anichio", "Anidera", "Anidi", "Anido", "Anigno", "Anildo", "Anilli", "Anillo", "Anilo", "Anindi", "Anini", "Aninia", "Aninio", "Anino", "Aninti", "Anipi", "Anirello", "Aniri", "Anirini", "Anirinia", "Anisi", "Anisti", "Anivaldo", "Anizzo", "Antobi", "Antocco", "Antochini", "Antochio", "Antodera", "Antodi", "Antodo", "Antogno", "Antoldo", "Antolli", "Antollo", "Antolo", "Antondi", "Antoni", "Antonia", "Antonio", "Antono", "Antonti", "Antopi", "Antorello", "Antori", "Antorini", "Antorinia", "Antosi", "Antosti", "Antovaldo", "Antozzo", "Bebi", "Becco", "Bechini", "Bechio", "Bedera", "Bedi", "Bedo", "Begno", "Beldo", "Belli", "Bello", "Belo", "Bendi", "Beni", "Benia", "Benio", "Beno", "Benti", "Bepi", "Berello", "Beri", "Berini", "Berinia", "Besi", "Besti", "Bevaldo", "Bezzo", "Chiabi", "Chiacco", "Chiachini", "Chiachio", "Chiadera", "Chiadi", "Chiado", "Chiagno", "Chialdo", "Chialli", "Chiallo", "Chialo", "Chiandi", "Chiani", "Chiania", "Chianio", "Chiano", "Chianti", "Chiapi", "Chiarello", "Chiari", "Chiarini", "Chiarinia", "Chiasi", "Chiasti", "Chiavaldo", "Chiazzo", "Cibi", "Cicco", "Cichini", "Cichio", "Cidera", "Cidi", "Cido", "Cigno", "Cildo", "Cilli", "Cillo", "Cilo", "Cindi", "Cini", "Cinia", "Cinio", "Cino", "Cinti", "Ciobi", "Ciocco", "Ciochini", "Ciochio", "Ciodera", "Ciodi", "Ciodo", "Ciogno", "Cioldo", "Ciolli", "Ciollo", "Ciolo", "Ciondi", "Cioni", "Cionia", "Cionio", "Ciono", "Cionti", "Ciopi", "Ciorello", "Ciori", "Ciorini", "Ciorinia", "Ciosi", "Ciosti", "Ciovaldo", "Ciozzo", "Cipi", "Cirello", "Ciri", "Cirini", "Cirinia", "Cisi", "Cisti", "Civaldo", "Cizzo", "Cuibi", "Cuicco", "Cuichini", "Cuichio", "Cuidera", "Cuidi", "Cuido", "Cuigno", "Cuildo", "Cuilli", "Cuillo", "Cuilo", "Cuindi", "Cuini", "Cuinia", "Cuinio", "Cuino", "Cuinti", "Cuipi", "Cuirello", "Cuiri", "Cuirini", "Cuirinia", "Cuisi", "Cuisti", "Cuivaldo", "Cuizzo", "Frebi", "Frecco", "Frechini", "Frechio", "Fredera", "Fredi", "Fredo", "Fregno", "Freldo", "Frelli", "Frello", "Frelo", "Frendi", "Freni", "Frenia", "Frenio", "Freno", "Frenti", "Frepi", "Frerello", "Freri", "Frerini", "Frerinia", "Fresi", "Fresti", "Frevaldo", "Frezzo", "Gibi", "Gicco", "Gichini", "Gichio", "Gidera", "Gidi", "Gido", "Gigno", "Gildo", "Gilli", "Gillo", "Gilo", "Gindi", "Gini", "Ginia", "Ginio", "Gino", "Ginti", "Gipi", "Girello", "Giri", "Girini", "Girinia", "Gisi", "Gisti", "Givaldo", "Gizzo", "Libi", "Licco", "Lichini", "Lichio", "Lidera", "Lidi", "Lido", "Ligno", "Lildo", "Lilli", "Lillo", "Lilo", "Lindi", "Lini", "Linia", "Linio", "Lino", "Linti", "Lipi", "Lirello", "Liri", "Lirini", "Lirinia", "Lisi", "Listi", "Livaldo", "Lizzo", "Miabi", "Miacco", "Miachini", "Miachio", "Miadera", "Miadi", "Miado", "Miagno", "Mialdo", "Mialli", "Miallo", "Mialo", "Miandi", "Miani", "Miania", "Mianio", "Miano", "Mianti", "Miapi", "Miarello", "Miari", "Miarini", "Miarinia", "Miasi", "Miasti", "Miavaldo", "Miazzo", "Nibi", "Nicco", "Nichini", "Nichio", "Nidera", "Nidi", "Nido", "Nigno", "Nildo", "Nilli", "Nillo", "Nilo", "Nindi", "Nini", "Ninia", "Ninio", "Nino", "Ninti", "Nipi", "Nirello", "Niri", "Nirini", "Nirinia", "Nisi", "Nisti", "Nivaldo", "Nizzo", "Pebi", "Pecco", "Pechini", "Pechio", "Pedera", "Pedi", "Pedo", "Pegno", "Peldo", "Pelli", "Pello", "Pelo", "Pendi", "Peni", "Penia", "Penio", "Peno", "Penti", "Pepi", "Perello", "Peri", "Perini", "Perinia", "Pesi", "Pesti", "Pevaldo", "Pezzo", "Pibi", "Picco", "Pichini", "Pichio", "Pidera", "Pidi", "Pido", "Pigno", "Pildo", "Pilli", "Pillo", "Pilo", "Pindi", "Pini", "Pinia", "Pinio", "Pino", "Pinti", "Pipi", "Pirello", "Piri", "Pirini", "Pirinia", "Pisi", "Pisti", "Pivaldo", "Pizzo", "Robi", "Rocco", "Rochini", "Rochio", "Rodera", "Rodi", "Rodo", "Rogno", "Roldo", "Rolli", "Rollo", "Rolo", "Rondi", "Roni", "Ronia", "Ronio", "Rono", "Ronti", "Ropi", "Rorello", "Rori", "Rorini", "Rorinia", "Rosi", "Rosibi", "Rosicco", "Rosichini", "Rosichio", "Rosidera", "Rosidi", "Rosido", "Rosigno", "Rosildo", "Rosilli", "Rosillo", "Rosilo", "Rosindi", "Rosini", "Rosinia", "Rosinio", "Rosino", "Rosinti", "Rosipi", "Rosirello", "Rosiri", "Rosirini", "Rosirinia", "Rosisi", "Rosisti", "Rosivaldo", "Rosizzo", "Rosti", "Rovaldo", "Rozzo", "Sibi", "Sicco", "Sichini", "Sichio", "Sidera", "Sidi", "Sido", "Signo", "Sildo", "Silli", "Sillo", "Silo", "Sindi", "Sini", "Sinia", "Sinio", "Sino", "Sinti", "Sipi", "Sirello", "Siri", "Sirini", "Sirinia", "Sisi", "Sisti", "Sivaldo", "Sizzo", "Stabi", "Stacco", "Stachini", "Stachio", "Stadera", "Stadi", "Stado", "Stagno", "Staldo", "Stalli", "Stallo", "Stalo", "Standi", "Stani", "Stania", "Stanio", "Stano", "Stanti", "Stapi", "Starello", "Stari", "Starini", "Starinia", "Stasi", "Stasti", "Stavaldo", "Stazzo", "Tinabi", "Tinacco", "Tinachini", "Tinachio", "Tinadera", "Tinadi", "Tinado", "Tinagno", "Tinaldo", "Tinalli", "Tinallo", "Tinalo", "Tinandi", "Tinani", "Tinania", "Tinanio", "Tinano", "Tinanti", "Tinapi", "Tinarello", "Tinari", "Tinarini", "Tinarinia", "Tinasi", "Tinasti", "Tinavaldo", "Tinazzo", "Tribi", "Tricco", "Trichini", "Trichio", "Tridera", "Tridi", "Trido", "Trigno", "Trildo", "Trilli", "Trillo", "Trilo", "Trindi", "Trini", "Trinia", "Trinio", "Trino", "Trinti", "Tripi", "Trirello", "Triri", "Tririni", "Tririnia", "Trisi", "Tristi", "Trivaldo", "Trizzo", "Vabi", "Vacco", "Vachini", "Vachio", "Vadera", "Vadi", "Vado", "Vagno", "Valdo", "Valli", "Vallo", "Valo", "Vandi", "Vani", "Vania", "Vanio", "Vano", "Vanti", "Vapi", "Varello", "Vari", "Varini", "Varinia", "Vasi", "Vasti", "Vavaldo", "Vazzo", "Vibi", "Vicco", "Vichini", "Vichio", "Videra", "Vidi", "Vido", "Vigno", "Vildo", "Villi", "Villo", "Vilo", "Vindi", "Vini", "Vinia", "Vinio", "Vino", "Vinti", "Vipi", "Virello", "Viri", "Virini", "Virinia", "Visi", "Visti", "Vivaldo", "Vizzo", "Zabi", "Zacco", "Zachini", "Zachio", "Zadera", "Zadi", "Zado", "Zagno", "Zaldo", "Zalli", "Zallo", "Zalo", "Zandi", "Zani", "Zania", "Zanio", "Zano", "Zanti", "Zapi", "Zarello", "Zari", "Zarini", "Zarinia", "Zasi", "Zasti", "Zavaldo", "Zazzo"}
matisFemaleFirstNames = {"Anibi", "Anichi", "Anichini", "Anidi", "Anilli", "Anini", "Aninni", "Anirni", "Anisti", "Antobi", "Antochi", "Antochini", "Antodi", "Antolli", "Antoni", "Antonni", "Antorni", "Antosti", "Bebi", "Bechi", "Bechini", "Bedi", "Belli", "Beni", "Benni", "Berni", "Besti", "Chiabi", "Chiachi", "Chiachini", "Chiadi", "Chialli", "Chiani", "Chianni", "Chiarni", "Chiasti", "Cibi", "Cichi", "Cichini", "Cidi", "Cilli", "Cini", "Cinni", "Ciobi", "Ciochi", "Ciochini", "Ciodi", "Ciolli", "Cioni", "Cionni", "Ciorni", "Ciosti", "Cirni", "Cisti", "Cuibi", "Cuichi", "Cuichini", "Cuidi", "Cuilli", "Cuini", "Cuinni", "Cuirni", "Cuisti", "Frebi", "Frechi", "Frechini", "Fredi", "Frelli", "Freni", "Frenni", "Frerni", "Fresti", "Gibi", "Gichi", "Gichini", "Gidi", "Gilli", "Gini", "Ginni", "Girni", "Gisti", "Libi", "Lichi", "Lichini", "Lidi", "Lilli", "Lini", "Linni", "Lirni", "Listi", "Miabi", "Miachi", "Miachini", "Miadi", "Mialli", "Miani", "Mianni", "Miarni", "Miasti", "Nibi", "Nichi", "Nichini", "Nidi", "Nilli", "Nini", "Ninni", "Nirni", "Nisti", "Pebi", "Pechi", "Pechini", "Pedi", "Pelli", "Peni", "Penni", "Perni", "Pesti", "Pibi", "Pichi", "Pichini", "Pidi", "Pilli", "Pini", "Pinni", "Pirni", "Pisti", "Robi", "Rochi", "Rochini", "Rodi", "Rolli", "Roni", "Ronni", "Rorni", "Rosibi", "Rosichi", "Rosichini", "Rosidi", "Rosilli", "Rosini", "Rosinni", "Rosirni", "Rosisti", "Rosti", "Sibi", "Sichi", "Sichini", "Sidi", "Silli", "Sini", "Sinni", "Sirni", "Sisti", "Stabi", "Stachi", "Stachini", "Stadi", "Stalli", "Stani", "Stanni", "Starni", "Stasti", "Tinabi", "Tinachi", "Tinachini", "Tinadi", "Tinalli", "Tinani", "Tinanni", "Tinarni", "Tinasti", "Tribi", "Trichi", "Trichini", "Tridi", "Trilli", "Trini", "Trinni", "Trirni", "Tristi", "Vabi", "Vachi", "Vachini", "Vadi", "Valli", "Vani", "Vanni", "Varni", "Vasti", "Vibi", "Vichi", "Vichini", "Vidi", "Villi", "Vini", "Vinni", "Virni", "Visti", "Zabi", "Zachi", "Zachini", "Zadi", "Zalli", "Zani", "Zanni", "Zarni", "Zasti", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"}
matisMaleFirstNames = {"Anibre", "Aniccio", "Anicco", "Anichio", "Anicho", "Aniero", "Anigio", "Anigno", "Anillo", "Anilo", "Anine", "Aninio", "Anino", "Anirgio", "Aniro", "Anisse", "Anivaldo", "Anizzo", "Antobre", "Antoccio", "Antocco", "Antochio", "Antocho", "Antoero", "Antogio", "Antogno", "Antollo", "Antolo", "Antone", "Antonio", "Antono", "Antorgio", "Antoro", "Antosse", "Antovaldo", "Antozzo", "Bebre", "Beccio", "Becco", "Bechio", "Becho", "Beero", "Begio", "Begno", "Bello", "Belo", "Bene", "Benio", "Beno", "Bergio", "Bero", "Besse", "Bevaldo", "Bezzo", "Chiabre", "Chiaccio", "Chiacco", "Chiachio", "Chiacho", "Chiaero", "Chiagio", "Chiagno", "Chiallo", "Chialo", "Chiane", "Chianio", "Chiano", "Chiargio", "Chiaro", "Chiasse", "Chiavaldo", "Chiazzo", "Cibre", "Ciccio", "Cicco", "Cichio", "Cicho", "Ciero", "Cigio", "Cigno", "Cillo", "Cilo", "Cine", "Cinio", "Cino", "Ciobre", "Cioccio", "Ciocco", "Ciochio", "Ciocho", "Cioero", "Ciogio", "Ciogno", "Ciollo", "Ciolo", "Cione", "Cionio", "Ciono", "Ciorgio", "Cioro", "Ciosse", "Ciovaldo", "Ciozzo", "Cirgio", "Ciro", "Cisse", "Civaldo", "Cizzo", "Cuibre", "Cuiccio", "Cuicco", "Cuichio", "Cuiero", "Cuigio", "Cuigno", "Cuillo", "Cuilo", "Cuine", "Cuinio", "Cuino", "Cuirgio", "Cuiro", "Cuisse", "Cuivaldo", "Cuizzo", "Frebre", "Freccio", "Frecco", "Frechio", "Frecho", "Freero", "Fregio", "Fregno", "Frello", "Frelo", "Frene", "Frenio", "Freno", "Frergio", "Frero", "Fresse", "Frevaldo", "Frezzo", "Gibre", "Giccio", "Gicco", "Gichio", "Gicho", "Giero", "Gigio", "Gigno", "Gillo", "Gilo", "Gine", "Ginio", "Gino", "Girgio", "Giro", "Gisse", "Givaldo", "Gizzo", "Libre", "Liccio", "Licco", "Lichio", "Licho", "Liero", "Ligio", "Ligno", "Lillo", "Lilo", "Line", "Linio", "Lino", "Lirgio", "Liro", "Lisse", "Livaldo", "Lizzo", "Miabre", "Miaccio", "Miacco", "Miachio", "Miacho", "Miaero", "Miagio", "Miagno", "Miallo", "Mialo", "Miane", "Mianio", "Miano", "Miargio", "Miaro", "Miasse", "Miavaldo", "Miazzo", "Nibre", "Niccio", "Nicco", "Nichio", "Nicho", "Niero", "Nigio", "Nigno", "Nillo", "Nilo", "Nine", "Ninio", "Nino", "Nirgio", "Niro", "Nisse", "Nivaldo", "Nizzo", "Pebre", "Peccio", "Pecco", "Pechio", "Pecho", "Peero", "Pegio", "Pegno", "Pello", "Pelo", "Pene", "Penio", "Peno", "Pergio", "Pero", "Pesse", "Pevaldo", "Pezzo", "Pibre", "Piccio", "Picco", "Pichio", "Picho", "Piero", "Pigio", "Pigno", "Pillo", "Pilo", "Pine", "Pinio", "Pino", "Pirgio", "Piro", "Pisse", "Pivaldo", "Pizzo", "Robre", "Roccio", "Rocco", "Rochio", "Rocho", "Roero", "Rogio", "Rogno", "Rollo", "Rolo", "Rone", "Ronio", "Rono", "Rorgio", "Roro", "Rosibre", "Rosiccio", "Rosicco", "Rosichio", "Rosicho", "Rosiero", "Rosigio", "Rosigno", "Rosillo", "Rosilo", "Rosine", "Rosinio", "Rosino", "Rosirgio", "Rosiro", "Rosisse", "Rosivaldo", "Rosizzo", "Rosse", "Rovaldo", "Rozzo", "Sibre", "Siccio", "Sicco", "Sichio", "Sicho", "Siero", "Sigio", "Signo", "Sillo", "Silo", "Sine", "Sinio", "Sino", "Sirgio", "Siro", "Sisse", "Sivaldo", "Sizzo", "Stabre", "Staccio", "Stacco", "Stachio", "Stacho", "Staero", "Stagio", "Stagno", "Stallo", "Stalo", "Stane", "Stanio", "Stano", "Stargio", "Staro", "Stasse", "Stavaldo", "Stazzo", "Tinabre", "Tinaccio", "Tinacco", "Tinachio", "Tinacho", "Tinaero", "Tinagio", "Tinagno", "Tinallo", "Tinalo", "Tinane", "Tinanio", "Tinano", "Tinargio", "Tinaro", "Tinasse", "Tinavaldo", "Tinazzo", "Tribre", "Triccio", "Tricco", "Trichio", "Tricho", "Triero", "Trigio", "Trigno", "Trillo", "Trilo", "Trine", "Trinio", "Trino", "Trirgio", "Triro", "Trisse", "Trivaldo", "Trizzo", "Vabre", "Vaccio", "Vacco", "Vachio", "Vacho", "Vaero", "Vagio", "Vagno", "Vallo", "Valo", "Vane", "Vanio", "Vano", "Vargio", "Varo", "Vasse", "Vavaldo", "Vazzo", "Vibre", "Viccio", "Vicco", "Vichio", "Vicho", "Viero", "Vigio", "Vigno", "Villo", "Vilo", "Vine", "Vinio", "Vino", "Virgio", "Viro", "Visse", "Vivaldo", "Vizzo", "Zabre", "Zaccio", "Zacco", "Zachio", "Zacho", "Zaero", "Zagio", "Zagno", "Zallo", "Zalo", "Zane", "Zanio", "Zano", "Zargio", "Zaro", "Zasse", "Zavaldo", "Zazzo", "Andrea", "Chiabre", "Aninne", "Gibre", "Fresse", "Liche", "Nirni", "Pechi"}
+
+-- VERSION --
+RYZOM_NAMES_MATIS_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua b/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua
index 3d4c535cce..686fe220bf 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/names_tryker.lua
@@ -1,3 +1,5 @@
trykerFirstNames = {"Abban", "Abben", "Abber", "Abbie", "Abby", "Achan", "Achen", "Acher", "Achie", "Achy", "Ackan", "Acken", "Acker", "Ackie", "Acky", "Addan", "Adden", "Adder", "Addie", "Addy", "Adgan", "Adgen", "Adger", "Adgie", "Adgy", "Aebban", "Aebben", "Aebber", "Aebbie", "Aebby", "Aechan", "Aechen", "Aecher", "Aechie", "Aechy", "Aeckan", "Aecken", "Aecker", "Aeckie", "Aecky", "Aeddan", "Aedden", "Aedder", "Aeddie", "Aeddy", "Aedgan", "Aedgen", "Aedger", "Aedgie", "Aedgy", "Aeffan", "Aeffen", "Aeffer", "Aeffie", "Aeffy", "Aegan", "Aegen", "Aeger", "Aeggan", "Aeggen", "Aegger", "Aeggie", "Aeggy", "Aegie", "Aegy", "Aeksan", "Aeksen", "Aekser", "Aeksie", "Aeksy", "Aelan", "Aelen", "Aeler", "Aelie", "Aellan", "Aellen", "Aeller", "Aellie", "Aelly", "Aely", "Aeman", "Aemen", "Aemer", "Aemie", "Aemman", "Aemmen", "Aemmer", "Aemmie", "Aemmy", "Aemy", "Aenan", "Aendan", "Aenden", "Aender", "Aendie", "Aendy", "Aenen", "Aener", "Aenie", "Aennan", "Aennen", "Aenner", "Aennie", "Aenny", "Aeny", "Aepan", "Aepen", "Aeper", "Aepie", "Aeppan", "Aeppen", "Aepper", "Aeppie", "Aeppy", "Aepsan", "Aepsen", "Aepser", "Aepsie", "Aepsy", "Aepy", "Aerdan", "Aerden", "Aerder", "Aerdie", "Aerdy", "Aerman", "Aermen", "Aermer", "Aermie", "Aermy", "Aerran", "Aerren", "Aerrer", "Aerrie", "Aerry", "Aertan", "Aerten", "Aerter", "Aertie", "Aerty", "Aesan", "Aesen", "Aeser", "Aesie", "Aeskan", "Aesken", "Aesker", "Aeskie", "Aesky", "Aessan", "Aessen", "Aesser", "Aessie", "Aessy", "Aesy", "Aethan", "Aethen", "Aether", "Aethie", "Aethy", "Aettan", "Aetten", "Aetter", "Aettie", "Aetty", "Aexan", "Aexen", "Aexer", "Aexie", "Aexy", "Aezzan", "Aezzen", "Aezzer", "Aezzie", "Aezzy", "Affan", "Affen", "Affer", "Affie", "Affy", "Agan", "Agen", "Ager", "Aggan", "Aggen", "Agger", "Aggie", "Aggy", "Agie", "Agy", "Aibban", "Aibben", "Aibber", "Aibbie", "Aibby", "Aichan", "Aichen", "Aicher", "Aichie", "Aichy", "Aickan", "Aicken", "Aicker", "Aickie", "Aicky", "Aiddan", "Aidden", "Aidder", "Aiddie", "Aiddy", "Aidgan", "Aidgen", "Aidger", "Aidgie", "Aidgy", "Aiffan", "Aiffen", "Aiffer", "Aiffie", "Aiffy", "Aigan", "Aigen", "Aiger", "Aiggan", "Aiggen", "Aigger", "Aiggie", "Aiggy", "Aigie", "Aigy", "Aiksan", "Aiksen", "Aikser", "Aiksie", "Aiksy", "Ailan", "Ailen", "Ailer", "Ailie", "Aillan", "Aillen", "Ailler", "Aillie", "Ailly", "Aily", "Aiman", "Aimen", "Aimer", "Aimie", "Aimman", "Aimmen", "Aimmer", "Aimmie", "Aimmy", "Aimy", "Ainan", "Aindan", "Ainden", "Ainder", "Aindie", "Aindy", "Ainen", "Ainer", "Ainie", "Ainnan", "Ainnen", "Ainner", "Ainnie", "Ainny", "Ainy", "Aipan", "Aipen", "Aiper", "Aipie", "Aippan", "Aippen", "Aipper", "Aippie", "Aippy", "Aipsan", "Aipsen", "Aipser", "Aipsie", "Aipsy", "Aipy", "Airdan", "Airden", "Airder", "Airdie", "Airdy", "Airman", "Airmen", "Airmer", "Airmie", "Airmy", "Airran", "Airren", "Airrer", "Airrie", "Airry", "Airtan", "Airten", "Airter", "Airtie", "Airty", "Aisan", "Aisen", "Aiser", "Aisie", "Aiskan", "Aisken", "Aisker", "Aiskie", "Aisky", "Aissan", "Aissen", "Aisser", "Aissie", "Aissy", "Aisy", "Aithan", "Aithen", "Aither", "Aithie", "Aithy", "Aittan", "Aitten", "Aitter", "Aittie", "Aitty", "Aixan", "Aixen", "Aixer", "Aixie", "Aixy", "Aizzan", "Aizzen", "Aizzer", "Aizzie", "Aizzy", "Aksan", "Aksen", "Akser", "Aksie", "Aksy", "Alan", "Alen", "Aler", "Alie", "Allan", "Allen", "Aller", "Allie", "Ally", "Aly", "Aman", "Amen", "Amer", "Amie", "Amman", "Ammen", "Ammer", "Ammie", "Ammy", "Amy", "Anan", "Andan", "Anden", "Ander", "Andie", "Andy", "Anen", "Aner", "Anie", "Annan", "Annen", "Anner", "Annie", "Anny", "Any", "Apan", "Apen", "Aper", "Apie", "Appan", "Appen", "Apper", "Appie", "Appy", "Apsan", "Apsen", "Apser", "Apsie", "Apsy", "Apy", "Ardan", "Arden", "Arder", "Ardie", "Ardy", "Arman", "Armen", "Armer", "Armie", "Army", "Arran", "Arren", "Arrer", "Arrie", "Arry", "Artan", "Arten", "Arter", "Artie", "Arty", "Asan", "Asen", "Aser", "Asie", "Askan", "Asken", "Asker", "Askie", "Asky", "Assan", "Assen", "Asser", "Assie", "Assy", "Asy", "Athan", "Athen", "Ather", "Athie", "Athy", "Attan", "Atten", "Atter", "Attie", "Atty", "Axan", "Axen", "Axer", "Axie", "Axy", "Azzan", "Azzen", "Azzer", "Azzie", "Azzy", "Babban", "Babben", "Babber", "Babbie", "Babby", "Bachan", "Bachen", "Bacher", "Bachie", "Bachy", "Backan", "Backen", "Backer", "Backie", "Backy", "Baddan", "Badden", "Badder", "Baddie", "Baddy", "Badgan", "Badgen", "Badger", "Badgie", "Badgy", "Baffan", "Baffen", "Baffer", "Baffie", "Baffy", "Bagan", "Bagen", "Bager", "Baggan", "Baggen", "Bagger", "Baggie", "Baggy", "Bagie", "Bagy", "Baksan", "Baksen", "Bakser", "Baksie", "Baksy", "Balan", "Balen", "Baler", "Balie", "Ballan", "Ballen", "Baller", "Ballie", "Bally", "Baly", "Baman", "Bamen", "Bamer", "Bamie", "Bamman", "Bammen", "Bammer", "Bammie", "Bammy", "Bamy", "Banan", "Bandan", "Banden", "Bander", "Bandie", "Bandy", "Banen", "Baner", "Banie", "Bannan", "Bannen", "Banner", "Bannie", "Banny", "Bany", "Bapan", "Bapen", "Baper", "Bapie", "Bappan", "Bappen", "Bapper", "Bappie", "Bappy", "Bapsan", "Bapsen", "Bapser", "Bapsie", "Bapsy", "Bapy", "Bardan", "Barden", "Barder", "Bardie", "Bardy", "Barman", "Barmen", "Barmer", "Barmie", "Barmy", "Barran", "Barren", "Barrer", "Barrie", "Barry", "Bartan", "Barten", "Barter", "Bartie", "Barty", "Basan", "Basen", "Baser", "Basie", "Baskan", "Basken", "Basker", "Baskie", "Basky", "Bassan", "Bassen", "Basser", "Bassie", "Bassy", "Basy", "Bathan", "Bathen", "Bather", "Bathie", "Bathy", "Battan", "Batten", "Batter", "Battie", "Batty", "Baxan", "Baxen", "Baxer", "Baxie", "Baxy", "Bazzan", "Bazzen", "Bazzer", "Bazzie", "Bazzy", "Brabban", "Brabben", "Brabber", "Brabbie", "Brabby", "Brachan", "Brachen", "Bracher", "Brachie", "Brachy", "Brackan", "Bracken", "Bracker", "Brackie", "Bracky", "Braddan", "Bradden", "Bradder", "Braddie", "Braddy", "Bradgan", "Bradgen", "Bradger", "Bradgie", "Bradgy", "Braffan", "Braffen", "Braffer", "Braffie", "Braffy", "Bragan", "Bragen", "Brager", "Braggan", "Braggen", "Bragger", "Braggie", "Braggy", "Bragie", "Bragy", "Braksan", "Braksen", "Brakser", "Braksie", "Braksy", "Bralan", "Bralen", "Braler", "Bralie", "Brallan", "Brallen", "Braller", "Brallie", "Brally", "Braly", "Braman", "Bramen", "Bramer", "Bramie", "Bramman", "Brammen", "Brammer", "Brammie", "Brammy", "Bramy", "Branan", "Brandan", "Branden", "Brander", "Brandie", "Brandy", "Branen", "Braner", "Branie", "Brannan", "Brannen", "Branner", "Brannie", "Branny", "Brany", "Brapan", "Brapen", "Braper", "Brapie", "Brappan", "Brappen", "Brapper", "Brappie", "Brappy", "Brapsan", "Brapsen", "Brapser", "Brapsie", "Brapsy", "Brapy", "Brardan", "Brarden", "Brarder", "Brardie", "Brardy", "Brarman", "Brarmen", "Brarmer", "Brarmie", "Brarmy", "Brarran", "Brarren", "Brarrer", "Brarrie", "Brarry", "Brartan", "Brarten", "Brarter", "Brartie", "Brarty", "Brasan", "Brasen", "Braser", "Brasie", "Braskan", "Brasken", "Brasker", "Braskie", "Brasky", "Brassan", "Brassen", "Brasser", "Brassie", "Brassy", "Brasy", "Brathan", "Brathen", "Brather", "Brathie", "Brathy", "Brattan", "Bratten", "Bratter", "Brattie", "Bratty", "Braxan", "Braxen", "Braxer", "Braxie", "Braxy", "Brazzan", "Brazzen", "Brazzer", "Brazzie", "Brazzy", "Brebban", "Brebben", "Brebber", "Brebbie", "Brebby", "Brechan", "Brechen", "Brecher", "Brechie", "Brechy", "Breckan", "Brecken", "Brecker", "Breckie", "Brecky", "Breddan", "Bredden", "Bredder", "Breddie", "Breddy", "Bredgan", "Bredgen", "Bredger", "Bredgie", "Bredgy", "Breffan", "Breffen", "Breffer", "Breffie", "Breffy", "Bregan", "Bregen", "Breger", "Breggan", "Breggen", "Bregger", "Breggie", "Breggy", "Bregie", "Bregy", "Breksan", "Breksen", "Brekser", "Breksie", "Breksy", "Brelan", "Brelen", "Breler", "Brelie", "Brellan", "Brellen", "Breller", "Brellie", "Brelly", "Brely", "Breman", "Bremen", "Bremer", "Bremie", "Bremman", "Bremmen", "Bremmer", "Bremmie", "Bremmy", "Bremy", "Brenan", "Brendan", "Brenden", "Brender", "Brendie", "Brendy", "Brenen", "Brener", "Brenie", "Brennan", "Brennen", "Brenner", "Brennie", "Brenny", "Breny", "Brepan", "Brepen", "Breper", "Brepie", "Breppan", "Breppen", "Brepper", "Breppie", "Breppy", "Brepsan", "Brepsen", "Brepser", "Brepsie", "Brepsy", "Brepy", "Brerdan", "Brerden", "Brerder", "Brerdie", "Brerdy", "Brerman", "Brermen", "Brermer", "Brermie", "Brermy", "Brerran", "Brerren", "Brerrer", "Brerrie", "Brerry", "Brertan", "Brerten", "Brerter", "Brertie", "Brerty", "Bresan", "Bresen", "Breser", "Bresie", "Breskan", "Bresken", "Bresker", "Breskie", "Bresky", "Bressan", "Bressen", "Bresser", "Bressie", "Bressy", "Bresy", "Brethan", "Brethen", "Brether", "Brethie", "Brethy", "Brettan", "Bretten", "Bretter", "Brettie", "Bretty", "Brexan", "Brexen", "Brexer", "Brexie", "Brexy", "Brezzan", "Brezzen", "Brezzer", "Brezzie", "Brezzy", "Bribban", "Bribben", "Bribber", "Bribbie", "Bribby", "Brichan", "Brichen", "Bricher", "Brichie", "Brichy", "Brickan", "Bricken", "Bricker", "Brickie", "Bricky", "Briddan", "Bridden", "Bridder", "Briddie", "Briddy", "Bridgan", "Bridgen", "Bridger", "Bridgie", "Bridgy", "Briffan", "Briffen", "Briffer", "Briffie", "Briffy", "Brigan", "Brigen", "Briger", "Briggan", "Briggen", "Brigger", "Briggie", "Briggy", "Brigie", "Brigy", "Briksan", "Briksen", "Brikser", "Briksie", "Briksy", "Brilan", "Brilen", "Briler", "Brilie", "Brillan", "Brillen", "Briller", "Brillie", "Brilly", "Brily", "Briman", "Brimen", "Brimer", "Brimie", "Brimman", "Brimmen", "Brimmer", "Brimmie", "Brimmy", "Brimy", "Brinan", "Brindan", "Brinden", "Brinder", "Brindie", "Brindy", "Brinen", "Briner", "Brinie", "Brinnan", "Brinnen", "Brinner", "Brinnie", "Brinny", "Briny", "Bripan", "Bripen", "Briper", "Bripie", "Brippan", "Brippen", "Bripper", "Brippie", "Brippy", "Bripsan", "Bripsen", "Bripser", "Bripsie", "Bripsy", "Bripy", "Brirdan", "Brirden", "Brirder", "Brirdie", "Brirdy", "Brirman", "Brirmen", "Brirmer", "Brirmie", "Brirmy", "Brirran", "Brirren", "Brirrer", "Brirrie", "Brirry", "Brirtan", "Brirten", "Brirter", "Brirtie", "Brirty", "Brisan", "Brisen", "Briser", "Brisie", "Briskan", "Brisken", "Brisker", "Briskie", "Brisky", "Brissan", "Brissen", "Brisser", "Brissie", "Brissy", "Brisy", "Brithan", "Brithen", "Brither", "Brithie", "Brithy", "Brittan", "Britten", "Britter", "Brittie", "Britty", "Brixan", "Brixen", "Brixer", "Brixie", "Brixy", "Brizzan", "Brizzen", "Brizzer", "Brizzie", "Brizzy", "Cabban", "Cabben", "Cabber", "Cabbie", "Cabby", "Cachan", "Cachen", "Cacher", "Cachie", "Cachy", "Cackan", "Cacken", "Cacker", "Cackie", "Cacky", "Caddan", "Cadden", "Cadder", "Caddie", "Caddy", "Cadgan", "Cadgen", "Cadger", "Cadgie", "Cadgy", "Caffan", "Caffen", "Caffer", "Caffie", "Caffy", "Cagan", "Cagen", "Cager", "Caggan", "Caggen", "Cagger", "Caggie", "Caggy", "Cagie", "Cagy", "Caksan", "Caksen", "Cakser", "Caksie", "Caksy", "Calan", "Calen", "Caler", "Calie", "Callan", "Callen", "Caller", "Callie", "Cally", "Caly", "Caman", "Camen", "Camer", "Camie", "Camman", "Cammen", "Cammer", "Cammie", "Cammy", "Camy", "Canan", "Candan", "Canden", "Cander", "Candie", "Candy", "Canen", "Caner", "Canie", "Cannan", "Cannen", "Canner", "Cannie", "Canny", "Cany", "Capan", "Capen", "Caper", "Capie", "Cappan", "Cappen", "Capper", "Cappie", "Cappy", "Capsan", "Capsen", "Capser", "Capsie", "Capsy", "Capy", "Cardan", "Carden", "Carder", "Cardie", "Cardy", "Carman", "Carmen", "Carmer", "Carmie", "Carmy", "Carran", "Carren", "Carrer", "Carrie", "Carry", "Cartan", "Carten", "Carter", "Cartie", "Carty", "Casan", "Casen", "Caser", "Casie", "Caskan", "Casken", "Casker", "Caskie", "Casky", "Cassan", "Cassen", "Casser", "Cassie", "Cassy", "Casy", "Cathan", "Cathen", "Cather", "Cathie", "Cathy", "Cattan", "Catten", "Catter", "Cattie", "Catty", "Caxan", "Caxen", "Caxer", "Caxie", "Caxy", "Cazzan", "Cazzen", "Cazzer", "Cazzie", "Cazzy", "Cobban", "Cobben", "Cobber", "Cobbie", "Cobby", "Cochan", "Cochen", "Cocher", "Cochie", "Cochy", "Cockan", "Cocken", "Cocker", "Cockie", "Cocky", "Coddan", "Codden", "Codder", "Coddie", "Coddy", "Codgan", "Codgen", "Codger", "Codgie", "Codgy", "Coffan", "Coffen", "Coffer", "Coffie", "Coffy", "Cogan", "Cogen", "Coger", "Coggan", "Coggen", "Cogger", "Coggie", "Coggy", "Cogie", "Cogy", "Coksan", "Coksen", "Cokser", "Coksie", "Coksy", "Colan", "Colen", "Coler", "Colie", "Collan", "Collen", "Coller", "Collie", "Colly", "Coly", "Coman", "Comen", "Comer", "Comie", "Comman", "Commen", "Commer", "Commie", "Commy", "Comy", "Conan", "Condan", "Conden", "Conder", "Condie", "Condy", "Conen", "Coner", "Conie", "Connan", "Connen", "Conner", "Connie", "Conny", "Cony", "Copan", "Copen", "Coper", "Copie", "Coppan", "Coppen", "Copper", "Coppie", "Coppy", "Copsan", "Copsen", "Copser", "Copsie", "Copsy", "Copy", "Cordan", "Corden", "Corder", "Cordie", "Cordy", "Corman", "Cormen", "Cormer", "Cormie", "Cormy", "Corran", "Corren", "Correr", "Corrie", "Corry", "Cortan", "Corten", "Corter", "Cortie", "Corty", "Cosan", "Cosen", "Coser", "Cosie", "Coskan", "Cosken", "Cosker", "Coskie", "Cosky", "Cossan", "Cossen", "Cosser", "Cossie", "Cossy", "Cosy", "Cothan", "Cothen", "Cother", "Cothie", "Cothy", "Cottan", "Cotten", "Cotter", "Cottie", "Cotty", "Coxan", "Coxen", "Coxer", "Coxie", "Coxy", "Cozzan", "Cozzen", "Cozzer", "Cozzie", "Cozzy", "Dabban", "Dabben", "Dabber", "Dabbie", "Dabby", "Dachan", "Dachen", "Dacher", "Dachie", "Dachy", "Dackan", "Dacken", "Dacker", "Dackie", "Dacky", "Daddan", "Dadden", "Dadder", "Daddie", "Daddy", "Dadgan", "Dadgen", "Dadger", "Dadgie", "Dadgy", "Daffan", "Daffen", "Daffer", "Daffie", "Daffy", "Dagan", "Dagen", "Dager", "Daggan", "Daggen", "Dagger", "Daggie", "Daggy", "Dagie", "Dagy", "Daksan", "Daksen", "Dakser", "Daksie", "Daksy", "Dalan", "Dalen", "Daler", "Dalie", "Dallan", "Dallen", "Daller", "Dallie", "Dally", "Daly", "Daman", "Damen", "Damer", "Damie", "Damman", "Dammen", "Dammer", "Dammie", "Dammy", "Damy", "Danan", "Dandan", "Danden", "Dander", "Dandie", "Dandy", "Danen", "Daner", "Danie", "Dannan", "Dannen", "Danner", "Dannie", "Danny", "Dany", "Dapan", "Dapen", "Daper", "Dapie", "Dappan", "Dappen", "Dapper", "Dappie", "Dappy", "Dapsan", "Dapsen", "Dapser", "Dapsie", "Dapsy", "Dapy", "Dardan", "Darden", "Darder", "Dardie", "Dardy", "Darman", "Darmen", "Darmer", "Darmie", "Darmy", "Darran", "Darren", "Darrer", "Darrie", "Darry", "Dartan", "Darten", "Darter", "Dartie", "Darty", "Dasan", "Dasen", "Daser", "Dasie", "Daskan", "Dasken", "Dasker", "Daskie", "Dasky", "Dassan", "Dassen", "Dasser", "Dassie", "Dassy", "Dasy", "Dathan", "Dathen", "Dather", "Dathie", "Dathy", "Dattan", "Datten", "Datter", "Dattie", "Datty", "Daxan", "Daxen", "Daxer", "Daxie", "Daxy", "Dazzan", "Dazzen", "Dazzer", "Dazzie", "Dazzy", "Debban", "Debben", "Debber", "Debbie", "Debby", "Dechan", "Dechen", "Decher", "Dechie", "Dechy", "Deckan", "Decken", "Decker", "Deckie", "Decky", "Deddan", "Dedden", "Dedder", "Deddie", "Deddy", "Dedgan", "Dedgen", "Dedger", "Dedgie", "Dedgy", "Deffan", "Deffen", "Deffer", "Deffie", "Deffy", "Degan", "Degen", "Deger", "Deggan", "Deggen", "Degger", "Deggie", "Deggy", "Degie", "Degy", "Deksan", "Deksen", "Dekser", "Deksie", "Deksy", "Delan", "Delen", "Deler", "Delie", "Dellan", "Dellen", "Deller", "Dellie", "Delly", "Dely", "Deman", "Demen", "Demer", "Demie", "Demman", "Demmen", "Demmer", "Demmie", "Demmy", "Demy", "Denan", "Dendan", "Denden", "Dender", "Dendie", "Dendy", "Denen", "Dener", "Denie", "Dennan", "Dennen", "Denner", "Dennie", "Denny", "Deny", "Depan", "Depen", "Deper", "Depie", "Deppan", "Deppen", "Depper", "Deppie", "Deppy", "Depsan", "Depsen", "Depser", "Depsie", "Depsy", "Depy", "Derdan", "Derden", "Derder", "Derdie", "Derdy", "Derman", "Dermen", "Dermer", "Dermie", "Dermy", "Derran", "Derren", "Derrer", "Derrie", "Derry", "Dertan", "Derten", "Derter", "Dertie", "Derty", "Desan", "Desen", "Deser", "Desie", "Deskan", "Desken", "Desker", "Deskie", "Desky", "Dessan", "Dessen", "Desser", "Dessie", "Dessy", "Desy", "Dethan", "Dethen", "Dether", "Dethie", "Dethy", "Dettan", "Detten", "Detter", "Dettie", "Detty", "Dexan", "Dexen", "Dexer", "Dexie", "Dexy", "Dezzan", "Dezzen", "Dezzer", "Dezzie", "Dezzy", "Dibban", "Dibben", "Dibber", "Dibbie", "Dibby", "Dichan", "Dichen", "Dicher", "Dichie", "Dichy", "Dickan", "Dicken", "Dicker", "Dickie", "Dicky", "Diddan", "Didden", "Didder", "Diddie", "Diddy", "Didgan", "Didgen", "Didger", "Didgie", "Didgy", "Diffan", "Diffen", "Differ", "Diffie", "Diffy", "Digan", "Digen", "Diger", "Diggan", "Diggen", "Digger", "Diggie", "Diggy", "Digie", "Digy", "Diksan", "Diksen", "Dikser", "Diksie", "Diksy", "Dilan", "Dilen", "Diler", "Dilie", "Dillan", "Dillen", "Diller", "Dillie", "Dilly", "Dily", "Diman", "Dimen", "Dimer", "Dimie", "Dimman", "Dimmen", "Dimmer", "Dimmie", "Dimmy", "Dimy", "Dinan", "Dindan", "Dinden", "Dinder", "Dindie", "Dindy", "Dinen", "Diner", "Dinie", "Dinnan", "Dinnen", "Dinner", "Dinnie", "Dinny", "Diny", "Dipan", "Dipen", "Diper", "Dipie", "Dippan", "Dippen", "Dipper", "Dippie", "Dippy", "Dipsan", "Dipsen", "Dipser", "Dipsie", "Dipsy", "Dipy", "Dirdan", "Dirden", "Dirder", "Dirdie", "Dirdy", "Dirman", "Dirmen", "Dirmer", "Dirmie", "Dirmy", "Dirran", "Dirren", "Dirrer", "Dirrie", "Dirry", "Dirtan", "Dirten", "Dirter", "Dirtie", "Dirty", "Disan", "Disen", "Diser", "Disie", "Diskan", "Disken", "Disker", "Diskie", "Disky", "Dissan", "Dissen", "Disser", "Dissie", "Dissy", "Disy", "Dithan", "Dithen", "Dither", "Dithie", "Dithy", "Dittan", "Ditten", "Ditter", "Dittie", "Ditty", "Dixan", "Dixen", "Dixer", "Dixie", "Dixy", "Dizzan", "Dizzen", "Dizzer", "Dizzie", "Dizzy", "Ebban", "Ebben", "Ebber", "Ebbie", "Ebby", "Echan", "Echen", "Echer", "Echie", "Echy", "Eckan", "Ecken", "Ecker", "Eckie", "Ecky", "Eddan", "Edden", "Edder", "Eddie", "Eddy", "Edgan", "Edgen", "Edger", "Edgie", "Edgy", "Effan", "Effen", "Effer", "Effie", "Effy", "Egan", "Egen", "Eger", "Eggan", "Eggen", "Egger", "Eggie", "Eggy", "Egie", "Egy", "Eksan", "Eksen", "Ekser", "Eksie", "Eksy", "Elan", "Elen", "Eler", "Elie", "Ellan", "Ellen", "Eller", "Ellie", "Elly", "Ely", "Eman", "Emen", "Emer", "Emie", "Emman", "Emmen", "Emmer", "Emmie", "Emmy", "Emy", "Enan", "Endan", "Enden", "Ender", "Endie", "Endy", "Enen", "Ener", "Enie", "Ennan", "Ennen", "Enner", "Ennie", "Enny", "Eny", "Eobban", "Eobben", "Eobber", "Eobbie", "Eobby", "Eochan", "Eochen", "Eocher", "Eochie", "Eochy", "Eockan", "Eocken", "Eocker", "Eockie", "Eocky", "Eoddan", "Eodden", "Eodder", "Eoddie", "Eoddy", "Eodgan", "Eodgen", "Eodger", "Eodgie", "Eodgy", "Eoffan", "Eoffen", "Eoffer", "Eoffie", "Eoffy", "Eogan", "Eogen", "Eoger", "Eoggan", "Eoggen", "Eogger", "Eoggie", "Eoggy", "Eogie", "Eogy", "Eoksan", "Eoksen", "Eokser", "Eoksie", "Eoksy", "Eolan", "Eolen", "Eoler", "Eolie", "Eollan", "Eollen", "Eoller", "Eollie", "Eolly", "Eoly", "Eoman", "Eomen", "Eomer", "Eomie", "Eomman", "Eommen", "Eommer", "Eommie", "Eommy", "Eomy", "Eonan", "Eondan", "Eonden", "Eonder", "Eondie", "Eondy", "Eonen", "Eoner", "Eonie", "Eonnan", "Eonnen", "Eonner", "Eonnie", "Eonny", "Eony", "Eopan", "Eopen", "Eoper", "Eopie", "Eoppan", "Eoppen", "Eopper", "Eoppie", "Eoppy", "Eopsan", "Eopsen", "Eopser", "Eopsie", "Eopsy", "Eopy", "Eordan", "Eorden", "Eorder", "Eordie", "Eordy", "Eorman", "Eormen", "Eormer", "Eormie", "Eormy", "Eorran", "Eorren", "Eorrer", "Eorrie", "Eorry", "Eortan", "Eorten", "Eorter", "Eortie", "Eorty", "Eosan", "Eosen", "Eoser", "Eosie", "Eoskan", "Eosken", "Eosker", "Eoskie", "Eosky", "Eossan", "Eossen", "Eosser", "Eossie", "Eossy", "Eosy", "Eothan", "Eothen", "Eother", "Eothie", "Eothy", "Eottan", "Eotten", "Eotter", "Eottie", "Eotty", "Eoxan", "Eoxen", "Eoxer", "Eoxie", "Eoxy", "Eozzan", "Eozzen", "Eozzer", "Eozzie", "Eozzy", "Epan", "Epen", "Eper", "Epie", "Eppan", "Eppen", "Epper", "Eppie", "Eppy", "Epsan", "Epsen", "Epser", "Epsie", "Epsy", "Epy", "Erdan", "Erden", "Erder", "Erdie", "Erdy", "Erman", "Ermen", "Ermer", "Ermie", "Ermy", "Erran", "Erren", "Errer", "Errie", "Erry", "Ertan", "Erten", "Erter", "Ertie", "Erty", "Esan", "Esen", "Eser", "Esie", "Eskan", "Esken", "Esker", "Eskie", "Esky", "Essan", "Essen", "Esser", "Essie", "Essy", "Esy", "Ethan", "Ethen", "Ether", "Ethie", "Ethy", "Ettan", "Etten", "Etter", "Ettie", "Etty", "Exan", "Exen", "Exer", "Exie", "Exy", "Ezzan", "Ezzen", "Ezzer", "Ezzie", "Ezzy", "Gabban", "Gabben", "Gabber", "Gabbie", "Gabby", "Gachan", "Gachen", "Gacher", "Gachie", "Gachy", "Gackan", "Gacken", "Gacker", "Gackie", "Gacky", "Gaddan", "Gadden", "Gadder", "Gaddie", "Gaddy", "Gadgan", "Gadgen", "Gadger", "Gadgie", "Gadgy", "Gaffan", "Gaffen", "Gaffer", "Gaffie", "Gaffy", "Gagan", "Gagen", "Gager", "Gaggan", "Gaggen", "Gagger", "Gaggie", "Gaggy", "Gagie", "Gagy", "Gaksan", "Gaksen", "Gakser", "Gaksie", "Gaksy", "Galan", "Galen", "Galer", "Galie", "Gallan", "Gallen", "Galler", "Gallie", "Gally", "Galy", "Gaman", "Gamen", "Gamer", "Gamie", "Gamman", "Gammen", "Gammer", "Gammie", "Gammy", "Gamy", "Ganan", "Gandan", "Ganden", "Gander", "Gandie", "Gandy", "Ganen", "Ganer", "Ganie", "Gannan", "Gannen", "Ganner", "Gannie", "Ganny", "Gany", "Gapan", "Gapen", "Gaper", "Gapie", "Gappan", "Gappen", "Gapper", "Gappie", "Gappy", "Gapsan", "Gapsen", "Gapser", "Gapsie", "Gapsy", "Gapy", "Gardan", "Garden", "Garder", "Gardie", "Gardy", "Garman", "Garmen", "Garmer", "Garmie", "Garmy", "Garran", "Garren", "Garrer", "Garrie", "Garry", "Gartan", "Garten", "Garter", "Gartie", "Garty", "Gasan", "Gasen", "Gaser", "Gasie", "Gaskan", "Gasken", "Gasker", "Gaskie", "Gasky", "Gassan", "Gassen", "Gasser", "Gassie", "Gassy", "Gasy", "Gathan", "Gathen", "Gather", "Gathie", "Gathy", "Gattan", "Gatten", "Gatter", "Gattie", "Gatty", "Gaxan", "Gaxen", "Gaxer", "Gaxie", "Gaxy", "Gazzan", "Gazzen", "Gazzer", "Gazzie", "Gazzy", "Gebban", "Gebben", "Gebber", "Gebbie", "Gebby", "Gechan", "Gechen", "Gecher", "Gechie", "Gechy", "Geckan", "Gecken", "Gecker", "Geckie", "Gecky", "Geddan", "Gedden", "Gedder", "Geddie", "Geddy", "Gedgan", "Gedgen", "Gedger", "Gedgie", "Gedgy", "Geffan", "Geffen", "Geffer", "Geffie", "Geffy", "Gegan", "Gegen", "Geger", "Geggan", "Geggen", "Gegger", "Geggie", "Geggy", "Gegie", "Gegy", "Geksan", "Geksen", "Gekser", "Geksie", "Geksy", "Gelan", "Gelen", "Geler", "Gelie", "Gellan", "Gellen", "Geller", "Gellie", "Gelly", "Gely", "Geman", "Gemen", "Gemer", "Gemie", "Gemman", "Gemmen", "Gemmer", "Gemmie", "Gemmy", "Gemy", "Genan", "Gendan", "Genden", "Gender", "Gendie", "Gendy", "Genen", "Gener", "Genie", "Gennan", "Gennen", "Genner", "Gennie", "Genny", "Geny", "Gepan", "Gepen", "Geper", "Gepie", "Geppan", "Geppen", "Gepper", "Geppie", "Geppy", "Gepsan", "Gepsen", "Gepser", "Gepsie", "Gepsy", "Gepy", "Gerdan", "Gerden", "Gerder", "Gerdie", "Gerdy", "German", "Germen", "Germer", "Germie", "Germy", "Gerran", "Gerren", "Gerrer", "Gerrie", "Gerry", "Gertan", "Gerten", "Gerter", "Gertie", "Gerty", "Gesan", "Gesen", "Geser", "Gesie", "Geskan", "Gesken", "Gesker", "Geskie", "Gesky", "Gessan", "Gessen", "Gesser", "Gessie", "Gessy", "Gesy", "Gethan", "Gethen", "Gether", "Gethie", "Gethy", "Gettan", "Getten", "Getter", "Gettie", "Getty", "Gexan", "Gexen", "Gexer", "Gexie", "Gexy", "Gezzan", "Gezzen", "Gezzer", "Gezzie", "Gezzy", "Habban", "Habben", "Habber", "Habbie", "Habby", "Hachan", "Hachen", "Hacher", "Hachie", "Hachy", "Hackan", "Hacken", "Hacker", "Hackie", "Hacky", "Haddan", "Hadden", "Hadder", "Haddie", "Haddy", "Hadgan", "Hadgen", "Hadger", "Hadgie", "Hadgy", "Haffan", "Haffen", "Haffer", "Haffie", "Haffy", "Hagan", "Hagen", "Hager", "Haggan", "Haggen", "Hagger", "Haggie", "Haggy", "Hagie", "Hagy", "Haksan", "Haksen", "Hakser", "Haksie", "Haksy", "Halan", "Halen", "Haler", "Halie", "Hallan", "Hallen", "Haller", "Hallie", "Hally", "Haly", "Haman", "Hamen", "Hamer", "Hamie", "Hamman", "Hammen", "Hammer", "Hammie", "Hammy", "Hamy", "Hanan", "Handan", "Handen", "Hander", "Handie", "Handy", "Hanen", "Haner", "Hanie", "Hannan", "Hannen", "Hanner", "Hannie", "Hanny", "Hany", "Hapan", "Hapen", "Haper", "Hapie", "Happan", "Happen", "Happer", "Happie", "Happy", "Hapsan", "Hapsen", "Hapser", "Hapsie", "Hapsy", "Hapy", "Hardan", "Harden", "Harder", "Hardie", "Hardy", "Harman", "Harmen", "Harmer", "Harmie", "Harmy", "Harran", "Harren", "Harrer", "Harrie", "Harry", "Hartan", "Harten", "Harter", "Hartie", "Harty", "Hasan", "Hasen", "Haser", "Hasie", "Haskan", "Hasken", "Hasker", "Haskie", "Hasky", "Hassan", "Hassen", "Hasser", "Hassie", "Hassy", "Hasy", "Hathan", "Hathen", "Hather", "Hathie", "Hathy", "Hattan", "Hatten", "Hatter", "Hattie", "Hatty", "Haxan", "Haxen", "Haxer", "Haxie", "Haxy", "Hazzan", "Hazzen", "Hazzer", "Hazzie", "Hazzy", "Jibban", "Jibben", "Jibber", "Jibbie", "Jibby", "Jichan", "Jichen", "Jicher", "Jichie", "Jichy", "Jickan", "Jicken", "Jicker", "Jickie", "Jicky", "Jiddan", "Jidden", "Jidder", "Jiddie", "Jiddy", "Jidgan", "Jidgen", "Jidger", "Jidgie", "Jidgy", "Jiffan", "Jiffen", "Jiffer", "Jiffie", "Jiffy", "Jigan", "Jigen", "Jiger", "Jiggan", "Jiggen", "Jigger", "Jiggie", "Jiggy", "Jigie", "Jigy", "Jiksan", "Jiksen", "Jikser", "Jiksie", "Jiksy", "Jilan", "Jilen", "Jiler", "Jilie", "Jillan", "Jillen", "Jiller", "Jillie", "Jilly", "Jily", "Jiman", "Jimen", "Jimer", "Jimie", "Jimman", "Jimmen", "Jimmer", "Jimmie", "Jimmy", "Jimy", "Jinan", "Jindan", "Jinden", "Jinder", "Jindie", "Jindy", "Jinen", "Jiner", "Jinie", "Jinnan", "Jinnen", "Jinner", "Jinnie", "Jinny", "Jiny", "Jipan", "Jipen", "Jiper", "Jipie", "Jippan", "Jippen", "Jipper", "Jippie", "Jippy", "Jipsan", "Jipsen", "Jipser", "Jipsie", "Jipsy", "Jipy", "Jirdan", "Jirden", "Jirder", "Jirdie", "Jirdy", "Jirman", "Jirmen", "Jirmer", "Jirmie", "Jirmy", "Jirran", "Jirren", "Jirrer", "Jirrie", "Jirry", "Jirtan", "Jirten", "Jirter", "Jirtie", "Jirty", "Jisan", "Jisen", "Jiser", "Jisie", "Jiskan", "Jisken", "Jisker", "Jiskie", "Jisky", "Jissan", "Jissen", "Jisser", "Jissie", "Jissy", "Jisy", "Jithan", "Jithen", "Jither", "Jithie", "Jithy", "Jittan", "Jitten", "Jitter", "Jittie", "Jitty", "Jixan", "Jixen", "Jixer", "Jixie", "Jixy", "Jizzan", "Jizzen", "Jizzer", "Jizzie", "Jizzy", "Kebban", "Kebben", "Kebber", "Kebbie", "Kebby", "Kechan", "Kechen", "Kecher", "Kechie", "Kechy", "Keckan", "Kecken", "Kecker", "Keckie", "Kecky", "Keddan", "Kedden", "Kedder", "Keddie", "Keddy", "Kedgan", "Kedgen", "Kedger", "Kedgie", "Kedgy", "Keffan", "Keffen", "Keffer", "Keffie", "Keffy", "Kegan", "Kegen", "Keger", "Keggan", "Keggen", "Kegger", "Keggie", "Keggy", "Kegie", "Kegy", "Keksan", "Keksen", "Kekser", "Keksie", "Keksy", "Kelan", "Kelen", "Keler", "Kelie", "Kellan", "Kellen", "Keller", "Kellie", "Kelly", "Kely", "Keman", "Kemen", "Kemer", "Kemie", "Kemman", "Kemmen", "Kemmer", "Kemmie", "Kemmy", "Kemy", "Kenan", "Kendan", "Kenden", "Kender", "Kendie", "Kendy", "Kenen", "Kener", "Kenie", "Kennan", "Kennen", "Kenner", "Kennie", "Kenny", "Keny", "Kepan", "Kepen", "Keper", "Kepie", "Keppan", "Keppen", "Kepper", "Keppie", "Keppy", "Kepsan", "Kepsen", "Kepser", "Kepsie", "Kepsy", "Kepy", "Kerdan", "Kerden", "Kerder", "Kerdie", "Kerdy", "Kerman", "Kermen", "Kermer", "Kermie", "Kermy", "Kerran", "Kerren", "Kerrer", "Kerrie", "Kerry", "Kertan", "Kerten", "Kerter", "Kertie", "Kerty", "Kesan", "Kesen", "Keser", "Kesie", "Keskan", "Kesken", "Kesker", "Keskie", "Kesky", "Kessan", "Kessen", "Kesser", "Kessie", "Kessy", "Kesy", "Kethan", "Kethen", "Kether", "Kethie", "Kethy", "Kettan", "Ketten", "Ketter", "Kettie", "Ketty", "Kexan", "Kexen", "Kexer", "Kexie", "Kexy", "Kezzan", "Kezzen", "Kezzer", "Kezzie", "Kezzy", "Kibban", "Kibben", "Kibber", "Kibbie", "Kibby", "Kichan", "Kichen", "Kicher", "Kichie", "Kichy", "Kickan", "Kicken", "Kicker", "Kickie", "Kicky", "Kiddan", "Kidden", "Kidder", "Kiddie", "Kiddy", "Kidgan", "Kidgen", "Kidger", "Kidgie", "Kidgy", "Kiffan", "Kiffen", "Kiffer", "Kiffie", "Kiffy", "Kigan", "Kigen", "Kiger", "Kiggan", "Kiggen", "Kigger", "Kiggie", "Kiggy", "Kigie", "Kigy", "Kiksan", "Kiksen", "Kikser", "Kiksie", "Kiksy", "Kilan", "Kilen", "Kiler", "Kilie", "Killan", "Killen", "Killer", "Killie", "Killy", "Kily", "Kiman", "Kimen", "Kimer", "Kimie", "Kimman", "Kimmen", "Kimmer", "Kimmie", "Kimmy", "Kimy", "Kinan", "Kindan", "Kinden", "Kinder", "Kindie", "Kindy", "Kinen", "Kiner", "Kinie", "Kinnan", "Kinnen", "Kinner", "Kinnie", "Kinny", "Kiny", "Kipan", "Kipen", "Kiper", "Kipie", "Kippan", "Kippen", "Kipper", "Kippie", "Kippy", "Kipsan", "Kipsen", "Kipser", "Kipsie", "Kipsy", "Kipy", "Kirdan", "Kirden", "Kirder", "Kirdie", "Kirdy", "Kirman", "Kirmen", "Kirmer", "Kirmie", "Kirmy", "Kirran", "Kirren", "Kirrer", "Kirrie", "Kirry", "Kirtan", "Kirten", "Kirter", "Kirtie", "Kirty", "Kisan", "Kisen", "Kiser", "Kisie", "Kiskan", "Kisken", "Kisker", "Kiskie", "Kisky", "Kissan", "Kissen", "Kisser", "Kissie", "Kissy", "Kisy", "Kithan", "Kithen", "Kither", "Kithie", "Kithy", "Kittan", "Kitten", "Kitter", "Kittie", "Kitty", "Kixan", "Kixen", "Kixer", "Kixie", "Kixy", "Kizzan", "Kizzen", "Kizzer", "Kizzie", "Kizzy", "Libban", "Libben", "Libber", "Libbie", "Libby", "Lichan", "Lichen", "Licher", "Lichie", "Lichy", "Lickan", "Licken", "Licker", "Lickie", "Licky", "Liddan", "Lidden", "Lidder", "Liddie", "Liddy", "Lidgan", "Lidgen", "Lidger", "Lidgie", "Lidgy", "Liffan", "Liffen", "Liffer", "Liffie", "Liffy", "Ligan", "Ligen", "Liger", "Liggan", "Liggen", "Ligger", "Liggie", "Liggy", "Ligie", "Ligy", "Liksan", "Liksen", "Likser", "Liksie", "Liksy", "Lilan", "Lilen", "Liler", "Lilie", "Lillan", "Lillen", "Liller", "Lillie", "Lilly", "Lily", "Liman", "Limen", "Limer", "Limie", "Limman", "Limmen", "Limmer", "Limmie", "Limmy", "Limy", "Linan", "Lindan", "Linden", "Linder", "Lindie", "Lindy", "Linen", "Liner", "Linie", "Linnan", "Linnen", "Linner", "Linnie", "Linny", "Liny", "Lipan", "Lipen", "Liper", "Lipie", "Lippan", "Lippen", "Lipper", "Lippie", "Lippy", "Lipsan", "Lipsen", "Lipser", "Lipsie", "Lipsy", "Lipy", "Lirdan", "Lirden", "Lirder", "Lirdie", "Lirdy", "Lirman", "Lirmen", "Lirmer", "Lirmie", "Lirmy", "Lirran", "Lirren", "Lirrer", "Lirrie", "Lirry", "Lirtan", "Lirten", "Lirter", "Lirtie", "Lirty", "Lisan", "Lisen", "Liser", "Lisie", "Liskan", "Lisken", "Lisker", "Liskie", "Lisky", "Lissan", "Lissen", "Lisser", "Lissie", "Lissy", "Lisy", "Lithan", "Lithen", "Lither", "Lithie", "Lithy", "Littan", "Litten", "Litter", "Littie", "Litty", "Lixan", "Lixen", "Lixer", "Lixie", "Lixy", "Lizzan", "Lizzen", "Lizzer", "Lizzie", "Lizzy", "Mabban", "Mabben", "Mabber", "Mabbie", "Mabby", "Machan", "Machen", "Macher", "Machie", "Machy", "Mackan", "Macken", "Macker", "Mackie", "Macky", "Maddan", "Madden", "Madder", "Maddie", "Maddy", "Madgan", "Madgen", "Madger", "Madgie", "Madgy", "Maffan", "Maffen", "Maffer", "Maffie", "Maffy", "Magan", "Magen", "Mager", "Maggan", "Maggen", "Magger", "Maggie", "Maggy", "Magie", "Magy", "Maksan", "Maksen", "Makser", "Maksie", "Maksy", "Malan", "Malen", "Maler", "Malie", "Mallan", "Mallen", "Maller", "Mallie", "Mally", "Maly", "Maman", "Mamen", "Mamer", "Mamie", "Mamman", "Mammen", "Mammer", "Mammie", "Mammy", "Mamy", "Manan", "Mandan", "Manden", "Mander", "Mandie", "Mandy", "Manen", "Maner", "Manie", "Mannan", "Mannen", "Manner", "Mannie", "Manny", "Many", "Mapan", "Mapen", "Maper", "Mapie", "Mappan", "Mappen", "Mapper", "Mappie", "Mappy", "Mapsan", "Mapsen", "Mapser", "Mapsie", "Mapsy", "Mapy", "Mardan", "Marden", "Marder", "Mardie", "Mardy", "Marman", "Marmen", "Marmer", "Marmie", "Marmy", "Marran", "Marren", "Marrer", "Marrie", "Marry", "Martan", "Marten", "Marter", "Martie", "Marty", "Masan", "Masen", "Maser", "Masie", "Maskan", "Masken", "Masker", "Maskie", "Masky", "Massan", "Massen", "Masser", "Massie", "Massy", "Masy", "Mathan", "Mathen", "Mather", "Mathie", "Mathy", "Mattan", "Matten", "Matter", "Mattie", "Matty", "Maxan", "Maxen", "Maxer", "Maxie", "Maxy", "Mazzan", "Mazzen", "Mazzer", "Mazzie", "Mazzy", "Pabban", "Pabben", "Pabber", "Pabbie", "Pabby", "Pachan", "Pachen", "Pacher", "Pachie", "Pachy", "Packan", "Packen", "Packer", "Packie", "Packy", "Paddan", "Padden", "Padder", "Paddie", "Paddy", "Padgan", "Padgen", "Padger", "Padgie", "Padgy", "Paffan", "Paffen", "Paffer", "Paffie", "Paffy", "Pagan", "Pagen", "Pager", "Paggan", "Paggen", "Pagger", "Paggie", "Paggy", "Pagie", "Pagy", "Paksan", "Paksen", "Pakser", "Paksie", "Paksy", "Palan", "Palen", "Paler", "Palie", "Pallan", "Pallen", "Paller", "Pallie", "Pally", "Paly", "Paman", "Pamen", "Pamer", "Pamie", "Pamman", "Pammen", "Pammer", "Pammie", "Pammy", "Pamy", "Panan", "Pandan", "Panden", "Pander", "Pandie", "Pandy", "Panen", "Paner", "Panie", "Pannan", "Pannen", "Panner", "Pannie", "Panny", "Pany", "Papan", "Papen", "Paper", "Papie", "Pappan", "Pappen", "Papper", "Pappie", "Pappy", "Papsan", "Papsen", "Papser", "Papsie", "Papsy", "Papy", "Pardan", "Parden", "Parder", "Pardie", "Pardy", "Parman", "Parmen", "Parmer", "Parmie", "Parmy", "Parran", "Parren", "Parrer", "Parrie", "Parry", "Partan", "Parten", "Parter", "Partie", "Party", "Pasan", "Pasen", "Paser", "Pasie", "Paskan", "Pasken", "Pasker", "Paskie", "Pasky", "Passan", "Passen", "Passer", "Passie", "Passy", "Pasy", "Pathan", "Pathen", "Pather", "Pathie", "Pathy", "Pattan", "Patten", "Patter", "Pattie", "Patty", "Paxan", "Paxen", "Paxer", "Paxie", "Paxy", "Pazzan", "Pazzen", "Pazzer", "Pazzie", "Pazzy", "Ribban", "Ribben", "Ribber", "Ribbie", "Ribby", "Richan", "Richen", "Richer", "Richie", "Richy", "Rickan", "Ricken", "Ricker", "Rickie", "Ricky", "Riddan", "Ridden", "Ridder", "Riddie", "Riddy", "Ridgan", "Ridgen", "Ridger", "Ridgie", "Ridgy", "Riffan", "Riffen", "Riffer", "Riffie", "Riffy", "Rigan", "Rigen", "Riger", "Riggan", "Riggen", "Rigger", "Riggie", "Riggy", "Rigie", "Rigy", "Riksan", "Riksen", "Rikser", "Riksie", "Riksy", "Rilan", "Rilen", "Riler", "Rilie", "Rillan", "Rillen", "Riller", "Rillie", "Rilly", "Rily", "Riman", "Rimen", "Rimer", "Rimie", "Rimman", "Rimmen", "Rimmer", "Rimmie", "Rimmy", "Rimy", "Rinan", "Rindan", "Rinden", "Rinder", "Rindie", "Rindy", "Rinen", "Riner", "Rinie", "Rinnan", "Rinnen", "Rinner", "Rinnie", "Rinny", "Riny", "Ripan", "Ripen", "Riper", "Ripie", "Rippan", "Rippen", "Ripper", "Rippie", "Rippy", "Ripsan", "Ripsen", "Ripser", "Ripsie", "Ripsy", "Ripy", "Rirdan", "Rirden", "Rirder", "Rirdie", "Rirdy", "Rirman", "Rirmen", "Rirmer", "Rirmie", "Rirmy", "Rirran", "Rirren", "Rirrer", "Rirrie", "Rirry", "Rirtan", "Rirten", "Rirter", "Rirtie", "Rirty", "Risan", "Risen", "Riser", "Risie", "Riskan", "Risken", "Risker", "Riskie", "Risky", "Rissan", "Rissen", "Risser", "Rissie", "Rissy", "Risy", "Rithan", "Rithen", "Rither", "Rithie", "Rithy", "Rittan", "Ritten", "Ritter", "Rittie", "Ritty", "Rixan", "Rixen", "Rixer", "Rixie", "Rixy", "Rizzan", "Rizzen", "Rizzer", "Rizzie", "Rizzy", "Robban", "Robben", "Robber", "Robbie", "Robby", "Rochan", "Rochen", "Rocher", "Rochie", "Rochy", "Rockan", "Rocken", "Rocker", "Rockie", "Rocky", "Roddan", "Rodden", "Rodder", "Roddie", "Roddy", "Rodgan", "Rodgen", "Rodger", "Rodgie", "Rodgy", "Roffan", "Roffen", "Roffer", "Roffie", "Roffy", "Rogan", "Rogen", "Roger", "Roggan", "Roggen", "Rogger", "Roggie", "Roggy", "Rogie", "Rogy", "Roksan", "Roksen", "Rokser", "Roksie", "Roksy", "Rolan", "Rolen", "Roler", "Rolie", "Rollan", "Rollen", "Roller", "Rollie", "Rolly", "Roly", "Roman", "Romen", "Romer", "Romie", "Romman", "Rommen", "Rommer", "Rommie", "Rommy", "Romy", "Ronan", "Rondan", "Ronden", "Ronder", "Rondie", "Rondy", "Ronen", "Roner", "Ronie", "Ronnan", "Ronnen", "Ronner", "Ronnie", "Ronny", "Rony", "Ropan", "Ropen", "Roper", "Ropie", "Roppan", "Roppen", "Ropper", "Roppie", "Roppy", "Ropsan", "Ropsen", "Ropser", "Ropsie", "Ropsy", "Ropy", "Rordan", "Rorden", "Rorder", "Rordie", "Rordy", "Rorman", "Rormen", "Rormer", "Rormie", "Rormy", "Rorran", "Rorren", "Rorrer", "Rorrie", "Rorry", "Rortan", "Rorten", "Rorter", "Rortie", "Rorty", "Rosan", "Rosen", "Roser", "Rosie", "Roskan", "Rosken", "Rosker", "Roskie", "Rosky", "Rossan", "Rossen", "Rosser", "Rossie", "Rossy", "Rosy", "Rothan", "Rothen", "Rother", "Rothie", "Rothy", "Rottan", "Rotten", "Rotter", "Rottie", "Rotty", "Roxan", "Roxen", "Roxer", "Roxie", "Roxy", "Rozzan", "Rozzen", "Rozzer", "Rozzie", "Rozzy", "Sabban", "Sabben", "Sabber", "Sabbie", "Sabby", "Sachan", "Sachen", "Sacher", "Sachie", "Sachy", "Sackan", "Sacken", "Sacker", "Sackie", "Sacky", "Saddan", "Sadden", "Sadder", "Saddie", "Saddy", "Sadgan", "Sadgen", "Sadger", "Sadgie", "Sadgy", "Saffan", "Saffen", "Saffer", "Saffie", "Saffy", "Sagan", "Sagen", "Sager", "Saggan", "Saggen", "Sagger", "Saggie", "Saggy", "Sagie", "Sagy", "Saksan", "Saksen", "Sakser", "Saksie", "Saksy", "Salan", "Salen", "Saler", "Salie", "Sallan", "Sallen", "Saller", "Sallie", "Sally", "Saly", "Saman", "Samen", "Samer", "Samie", "Samman", "Sammen", "Sammer", "Sammie", "Sammy", "Samy", "Sanan", "Sandan", "Sanden", "Sander", "Sandie", "Sandy", "Sanen", "Saner", "Sanie", "Sannan", "Sannen", "Sanner", "Sannie", "Sanny", "Sany", "Sapan", "Sapen", "Saper", "Sapie", "Sappan", "Sappen", "Sapper", "Sappie", "Sappy", "Sapsan", "Sapsen", "Sapser", "Sapsie", "Sapsy", "Sapy", "Sardan", "Sarden", "Sarder", "Sardie", "Sardy", "Sarman", "Sarmen", "Sarmer", "Sarmie", "Sarmy", "Sarran", "Sarren", "Sarrer", "Sarrie", "Sarry", "Sartan", "Sarten", "Sarter", "Sartie", "Sarty", "Sasan", "Sasen", "Saser", "Sasie", "Saskan", "Sasken", "Sasker", "Saskie", "Sasky", "Sassan", "Sassen", "Sasser", "Sassie", "Sassy", "Sasy", "Sathan", "Sathen", "Sather", "Sathie", "Sathy", "Sattan", "Satten", "Satter", "Sattie", "Satty", "Saxan", "Saxen", "Saxer", "Saxie", "Saxy", "Sazzan", "Sazzen", "Sazzer", "Sazzie", "Sazzy", "Shabban", "Shabben", "Shabber", "Shabbie", "Shabby", "Shachan", "Shachen", "Shacher", "Shachie", "Shachy", "Shackan", "Shacken", "Shacker", "Shackie", "Shacky", "Shaddan", "Shadden", "Shadder", "Shaddie", "Shaddy", "Shadgan", "Shadgen", "Shadger", "Shadgie", "Shadgy", "Shaffan", "Shaffen", "Shaffer", "Shaffie", "Shaffy", "Shagan", "Shagen", "Shager", "Shaggan", "Shaggen", "Shagger", "Shaggie", "Shaggy", "Shagie", "Shagy", "Shaksan", "Shaksen", "Shakser", "Shaksie", "Shaksy", "Shalan", "Shalen", "Shaler", "Shalie", "Shallan", "Shallen", "Shaller", "Shallie", "Shally", "Shaly", "Shaman", "Shamen", "Shamer", "Shamie", "Shamman", "Shammen", "Shammer", "Shammie", "Shammy", "Shamy", "Shanan", "Shandan", "Shanden", "Shander", "Shandie", "Shandy", "Shanen", "Shaner", "Shanie", "Shannan", "Shannen", "Shanner", "Shannie", "Shanny", "Shany", "Shapan", "Shapen", "Shaper", "Shapie", "Shappan", "Shappen", "Shapper", "Shappie", "Shappy", "Shapsan", "Shapsen", "Shapser", "Shapsie", "Shapsy", "Shapy", "Shardan", "Sharden", "Sharder", "Shardie", "Shardy", "Sharman", "Sharmen", "Sharmer", "Sharmie", "Sharmy", "Sharran", "Sharren", "Sharrer", "Sharrie", "Sharry", "Shartan", "Sharten", "Sharter", "Shartie", "Sharty", "Shasan", "Shasen", "Shaser", "Shasie", "Shaskan", "Shasken", "Shasker", "Shaskie", "Shasky", "Shassan", "Shassen", "Shasser", "Shassie", "Shassy", "Shasy", "Shathan", "Shathen", "Shather", "Shathie", "Shathy", "Shattan", "Shatten", "Shatter", "Shattie", "Shatty", "Shaxan", "Shaxen", "Shaxer", "Shaxie", "Shaxy", "Shazzan", "Shazzen", "Shazzer", "Shazzie", "Shazzy", "Shibban", "Shibben", "Shibber", "Shibbie", "Shibby", "Shichan", "Shichen", "Shicher", "Shichie", "Shichy", "Shickan", "Shicken", "Shicker", "Shickie", "Shicky", "Shiddan", "Shidden", "Shidder", "Shiddie", "Shiddy", "Shidgan", "Shidgen", "Shidger", "Shidgie", "Shidgy", "Shiffan", "Shiffen", "Shiffer", "Shiffie", "Shiffy", "Shigan", "Shigen", "Shiger", "Shiggan", "Shiggen", "Shigger", "Shiggie", "Shiggy", "Shigie", "Shigy", "Shiksan", "Shiksen", "Shikser", "Shiksie", "Shiksy", "Shilan", "Shilen", "Shiler", "Shilie", "Shillan", "Shillen", "Shiller", "Shillie", "Shilly", "Shily", "Shiman", "Shimen", "Shimer", "Shimie", "Shimman", "Shimmen", "Shimmer", "Shimmie", "Shimmy", "Shimy", "Shinan", "Shindan", "Shinden", "Shinder", "Shindie", "Shindy", "Shinen", "Shiner", "Shinie", "Shinnan", "Shinnen", "Shinner", "Shinnie", "Shinny", "Shiny", "Shipan", "Shipen", "Shiper", "Shipie", "Shippan", "Shippen", "Shipper", "Shippie", "Shippy", "Shipsan", "Shipsen", "Shipser", "Shipsie", "Shipsy", "Shipy", "Shirdan", "Shirden", "Shirder", "Shirdie", "Shirdy", "Shirman", "Shirmen", "Shirmer", "Shirmie", "Shirmy", "Shirran", "Shirren", "Shirrer", "Shirrie", "Shirry", "Shirtan", "Shirten", "Shirter", "Shirtie", "Shirty", "Shisan", "Shisen", "Shiser", "Shisie", "Shiskan", "Shisken", "Shisker", "Shiskie", "Shisky", "Shissan", "Shissen", "Shisser", "Shissie", "Shissy", "Shisy", "Shithan", "Shithen", "Shither", "Shithie", "Shithy", "Shittan", "Shitten", "Shitter", "Shittie", "Shitty", "Shixan", "Shixen", "Shixer", "Shixie", "Shixy", "Shizzan", "Shizzen", "Shizzer", "Shizzie", "Shizzy", "Thobban", "Thobben", "Thobber", "Thobbie", "Thobby", "Thochan", "Thochen", "Thocher", "Thochie", "Thochy", "Thockan", "Thocken", "Thocker", "Thockie", "Thocky", "Thoddan", "Thodden", "Thodder", "Thoddie", "Thoddy", "Thodgan", "Thodgen", "Thodger", "Thodgie", "Thodgy", "Thoffan", "Thoffen", "Thoffer", "Thoffie", "Thoffy", "Thogan", "Thogen", "Thoger", "Thoggan", "Thoggen", "Thogger", "Thoggie", "Thoggy", "Thogie", "Thogy", "Thoksan", "Thoksen", "Thokser", "Thoksie", "Thoksy", "Tholan", "Tholen", "Tholer", "Tholie", "Thollan", "Thollen", "Tholler", "Thollie", "Tholly", "Tholy", "Thoman", "Thomen", "Thomer", "Thomie", "Thomman", "Thommen", "Thommer", "Thommie", "Thommy", "Thomy", "Thonan", "Thondan", "Thonden", "Thonder", "Thondie", "Thondy", "Thonen", "Thoner", "Thonie", "Thonnan", "Thonnen", "Thonner", "Thonnie", "Thonny", "Thony", "Thopan", "Thopen", "Thoper", "Thopie", "Thoppan", "Thoppen", "Thopper", "Thoppie", "Thoppy", "Thopsan", "Thopsen", "Thopser", "Thopsie", "Thopsy", "Thopy", "Thordan", "Thorden", "Thorder", "Thordie", "Thordy", "Thorman", "Thormen", "Thormer", "Thormie", "Thormy", "Thorran", "Thorren", "Thorrer", "Thorrie", "Thorry", "Thortan", "Thorten", "Thorter", "Thortie", "Thorty", "Thosan", "Thosen", "Thoser", "Thosie", "Thoskan", "Thosken", "Thosker", "Thoskie", "Thosky", "Thossan", "Thossen", "Thosser", "Thossie", "Thossy", "Thosy", "Thothan", "Thothen", "Thother", "Thothie", "Thothy", "Thottan", "Thotten", "Thotter", "Thottie", "Thotty", "Thoxan", "Thoxen", "Thoxer", "Thoxie", "Thoxy", "Thozzan", "Thozzen", "Thozzer", "Thozzie", "Thozzy", "Wibban", "Wibben", "Wibber", "Wibbie", "Wibby", "Wichan", "Wichen", "Wicher", "Wichie", "Wichy", "Wickan", "Wicken", "Wicker", "Wickie", "Wicky", "Widdan", "Widden", "Widder", "Widdie", "Widdy", "Widgan", "Widgen", "Widger", "Widgie", "Widgy", "Wiffan", "Wiffen", "Wiffer", "Wiffie", "Wiffy", "Wigan", "Wigen", "Wiger", "Wiggan", "Wiggen", "Wigger", "Wiggie", "Wiggy", "Wigie", "Wigy", "Wiksan", "Wiksen", "Wikser", "Wiksie", "Wiksy", "Wilan", "Wilen", "Wiler", "Wilie", "Willan", "Willen", "Willer", "Willie", "Willy", "Wily", "Wiman", "Wimen", "Wimer", "Wimie", "Wimman", "Wimmen", "Wimmer", "Wimmie", "Wimmy", "Wimy", "Winan", "Windan", "Winden", "Winder", "Windie", "Windy", "Winen", "Winer", "Winie", "Winnan", "Winnen", "Winner", "Winnie", "Winny", "Winy", "Wipan", "Wipen", "Wiper", "Wipie", "Wippan", "Wippen", "Wipper", "Wippie", "Wippy", "Wipsan", "Wipsen", "Wipser", "Wipsie", "Wipsy", "Wipy", "Wirdan", "Wirden", "Wirder", "Wirdie", "Wirdy", "Wirman", "Wirmen", "Wirmer", "Wirmie", "Wirmy", "Wirran", "Wirren", "Wirrer", "Wirrie", "Wirry", "Wirtan", "Wirten", "Wirter", "Wirtie", "Wirty", "Wisan", "Wisen", "Wiser", "Wisie", "Wiskan", "Wisken", "Wisker", "Wiskie", "Wisky", "Wissan", "Wissen", "Wisser", "Wissie", "Wissy", "Wisy", "Withan", "Withen", "Wither", "Withie", "Withy", "Wittan", "Witten", "Witter", "Wittie", "Witty", "Wixan", "Wixen", "Wixer", "Wixie", "Wixy", "Wizzan", "Wizzen", "Wizzer", "Wizzie", "Wizzy"}
-trykerLastNames = {"Ardan", "Arddy", "Arer", "Arffy", "Argan", "Arggan", "Argh", "Arghan", "Arins", "Arkry", "Arlan", "Arle", "Arley", "Arliam", "Arlly", "Arn", "Arnin", "Arny", "Arppy", "Arpsey", "Arra", "Arroy", "Arrrell", "Arrroy", "Arry", "Arssey", "Artty", "Arty", "Ba'ardan", "Ba'arddy", "Ba'arer", "Ba'arffy", "Ba'argan", "Ba'arggan", "Ba'argh", "Ba'arghan", "Ba'arins", "Ba'arkry", "Ba'arlan", "Ba'arle", "Ba'arley", "Ba'arliam", "Ba'arlly", "Ba'arn", "Ba'arnin", "Ba'arny", "Ba'arppy", "Ba'arpsey", "Ba'arra", "Ba'arroy", "Ba'arrrell", "Ba'arrroy", "Ba'arry", "Ba'arssey", "Ba'artty", "Ba'arty", "Ba'bidan", "Ba'biddy", "Ba'bier", "Ba'biffy", "Ba'bigan", "Ba'biggan", "Ba'bigh", "Ba'bighan", "Ba'biins", "Ba'bikry", "Ba'bilan", "Ba'bile", "Ba'biley", "Ba'biliam", "Ba'billy", "Ba'bin", "Ba'binin", "Ba'biny", "Ba'bippy", "Ba'bipsey", "Ba'bira", "Ba'biroy", "Ba'birrell", "Ba'birroy", "Ba'biry", "Ba'bissey", "Ba'bitty", "Ba'bity", "Ba'caudan", "Ba'cauddy", "Ba'cauer", "Ba'cauffy", "Ba'caugan", "Ba'cauggan", "Ba'caugh", "Ba'caughan", "Ba'cauins", "Ba'caukry", "Ba'caulan", "Ba'caule", "Ba'cauley", "Ba'cauliam", "Ba'caully", "Ba'caun", "Ba'caunin", "Ba'cauny", "Ba'cauppy", "Ba'caupsey", "Ba'caura", "Ba'cauroy", "Ba'caurrell", "Ba'caurroy", "Ba'caury", "Ba'caussey", "Ba'cautty", "Ba'cauty", "Ba'dadan", "Ba'daddy", "Ba'daer", "Ba'daffy", "Ba'dagan", "Ba'daggan", "Ba'dagh", "Ba'daghan", "Ba'dains", "Ba'dakry", "Ba'dalan", "Ba'dale", "Ba'daley", "Ba'daliam", "Ba'dally", "Ba'dan", "Ba'danin", "Ba'dany", "Ba'dappy", "Ba'dapsey", "Ba'dara", "Ba'dardan", "Ba'darddy", "Ba'darer", "Ba'darffy", "Ba'dargan", "Ba'darggan", "Ba'dargh", "Ba'darghan", "Ba'darins", "Ba'darkry", "Ba'darlan", "Ba'darle", "Ba'darley", "Ba'darliam", "Ba'darlly", "Ba'darn", "Ba'darnin", "Ba'darny", "Ba'daroy", "Ba'darppy", "Ba'darpsey", "Ba'darra", "Ba'darrell", "Ba'darroy", "Ba'darrrell", "Ba'darrroy", "Ba'darry", "Ba'darssey", "Ba'dartty", "Ba'darty", "Ba'dary", "Ba'dassey", "Ba'datty", "Ba'daty", "Ba'doydan", "Ba'doyddy", "Ba'doyer", "Ba'doyffy", "Ba'doygan", "Ba'doyggan", "Ba'doygh", "Ba'doyghan", "Ba'doyins", "Ba'doykry", "Ba'doylan", "Ba'doyle", "Ba'doyley", "Ba'doyliam", "Ba'doylly", "Ba'doyn", "Ba'doynin", "Ba'doyny", "Ba'doyppy", "Ba'doypsey", "Ba'doyra", "Ba'doyroy", "Ba'doyrrell", "Ba'doyrroy", "Ba'doyry", "Ba'doyssey", "Ba'doytty", "Ba'doyty", "Ba'dudan", "Ba'duddy", "Ba'duer", "Ba'duffy", "Ba'dugan", "Ba'duggan", "Ba'dugh", "Ba'dughan", "Ba'duins", "Ba'dukry", "Ba'dulan", "Ba'dule", "Ba'duley", "Ba'duliam", "Ba'dully", "Ba'dun", "Ba'dunin", "Ba'duny", "Ba'duppy", "Ba'dupsey", "Ba'dura", "Ba'duroy", "Ba'durrell", "Ba'durroy", "Ba'dury", "Ba'dussey", "Ba'dutty", "Ba'duty", "Ba'gadan", "Ba'gaddy", "Ba'gaer", "Ba'gaffy", "Ba'gagan", "Ba'gaggan", "Ba'gagh", "Ba'gaghan", "Ba'gains", "Ba'gakry", "Ba'galan", "Ba'gale", "Ba'galey", "Ba'galiam", "Ba'gally", "Ba'gan", "Ba'ganin", "Ba'gany", "Ba'gappy", "Ba'gapsey", "Ba'gara", "Ba'garoy", "Ba'garrell", "Ba'garroy", "Ba'gary", "Ba'gassey", "Ba'gatty", "Ba'gaty", "Ba'jordan", "Ba'jorddy", "Ba'jorer", "Ba'jorffy", "Ba'jorgan", "Ba'jorggan", "Ba'jorgh", "Ba'jorghan", "Ba'jorins", "Ba'jorkry", "Ba'jorlan", "Ba'jorle", "Ba'jorley", "Ba'jorliam", "Ba'jorlly", "Ba'jorn", "Ba'jornin", "Ba'jorny", "Ba'jorppy", "Ba'jorpsey", "Ba'jorra", "Ba'jorroy", "Ba'jorrrell", "Ba'jorrroy", "Ba'jorry", "Ba'jorssey", "Ba'jortty", "Ba'jorty", "Ba'keadan", "Ba'keaddy", "Ba'keaer", "Ba'keaffy", "Ba'keagan", "Ba'keaggan", "Ba'keagh", "Ba'keaghan", "Ba'keains", "Ba'keakry", "Ba'kealan", "Ba'keale", "Ba'kealey", "Ba'kealiam", "Ba'keally", "Ba'kean", "Ba'keanin", "Ba'keany", "Ba'keappy", "Ba'keapsey", "Ba'keara", "Ba'kearoy", "Ba'kearrell", "Ba'kearroy", "Ba'keary", "Ba'keassey", "Ba'keatty", "Ba'keaty", "Ba'keedan", "Ba'keeddy", "Ba'keeer", "Ba'keeffy", "Ba'keegan", "Ba'keeggan", "Ba'keegh", "Ba'keeghan", "Ba'keeins", "Ba'keekry", "Ba'keelan", "Ba'keele", "Ba'keeley", "Ba'keeliam", "Ba'keelly", "Ba'keen", "Ba'keenin", "Ba'keeny", "Ba'keeppy", "Ba'keepsey", "Ba'keera", "Ba'keeroy", "Ba'keerrell", "Ba'keerroy", "Ba'keery", "Ba'keessey", "Ba'keetty", "Ba'keety", "Ba'laudan", "Ba'lauddy", "Ba'lauer", "Ba'lauffy", "Ba'laugan", "Ba'lauggan", "Ba'laugh", "Ba'laughan", "Ba'lauins", "Ba'laukry", "Ba'laulan", "Ba'laule", "Ba'lauley", "Ba'lauliam", "Ba'laully", "Ba'laun", "Ba'launin", "Ba'launy", "Ba'lauppy", "Ba'laupsey", "Ba'laura", "Ba'lauroy", "Ba'laurrell", "Ba'laurroy", "Ba'laury", "Ba'laussey", "Ba'lautty", "Ba'lauty", "Ba'leadan", "Ba'leaddy", "Ba'leaer", "Ba'leaffy", "Ba'leagan", "Ba'leaggan", "Ba'leagh", "Ba'leaghan", "Ba'leains", "Ba'leakry", "Ba'lealan", "Ba'leale", "Ba'lealey", "Ba'lealiam", "Ba'leally", "Ba'lean", "Ba'leanin", "Ba'leany", "Ba'leappy", "Ba'leapsey", "Ba'leara", "Ba'learoy", "Ba'learrell", "Ba'learroy", "Ba'leary", "Ba'leassey", "Ba'leatty", "Ba'leaty", "Ba'ledan", "Ba'leddy", "Ba'leer", "Ba'leffy", "Ba'legan", "Ba'leggan", "Ba'legh", "Ba'leghan", "Ba'leidan", "Ba'leiddy", "Ba'leier", "Ba'leiffy", "Ba'leigan", "Ba'leiggan", "Ba'leigh", "Ba'leighan", "Ba'leiins", "Ba'leikry", "Ba'leilan", "Ba'leile", "Ba'leiley", "Ba'leiliam", "Ba'leilly", "Ba'lein", "Ba'leinin", "Ba'leins", "Ba'leiny", "Ba'leippy", "Ba'leipsey", "Ba'leira", "Ba'leiroy", "Ba'leirrell", "Ba'leirroy", "Ba'leiry", "Ba'leissey", "Ba'leitty", "Ba'leity", "Ba'lekry", "Ba'lelan", "Ba'lele", "Ba'leley", "Ba'leliam", "Ba'lelly", "Ba'len", "Ba'lenin", "Ba'leny", "Ba'leppy", "Ba'lepsey", "Ba'lera", "Ba'leroy", "Ba'lerrell", "Ba'lerroy", "Ba'lery", "Ba'lessey", "Ba'letty", "Ba'lety", "Ba'lodan", "Ba'loddy", "Ba'loer", "Ba'loffy", "Ba'logan", "Ba'loggan", "Ba'logh", "Ba'loghan", "Ba'loins", "Ba'lokry", "Ba'lolan", "Ba'lole", "Ba'loley", "Ba'loliam", "Ba'lolly", "Ba'lon", "Ba'lonin", "Ba'lony", "Ba'loppy", "Ba'lopsey", "Ba'lora", "Ba'loroy", "Ba'lorrell", "Ba'lorroy", "Ba'lory", "Ba'lossey", "Ba'lotty", "Ba'loty", "Ba'lyndan", "Ba'lynddy", "Ba'lyner", "Ba'lynffy", "Ba'lyngan", "Ba'lynggan", "Ba'lyngh", "Ba'lynghan", "Ba'lynins", "Ba'lynkry", "Ba'lynlan", "Ba'lynle", "Ba'lynley", "Ba'lynliam", "Ba'lynlly", "Ba'lynn", "Ba'lynnin", "Ba'lynny", "Ba'lynppy", "Ba'lynpsey", "Ba'lynra", "Ba'lynroy", "Ba'lynrrell", "Ba'lynrroy", "Ba'lynry", "Ba'lynssey", "Ba'lyntty", "Ba'lynty", "Ba'madan", "Ba'maddy", "Ba'maer", "Ba'maffy", "Ba'magan", "Ba'maggan", "Ba'magh", "Ba'maghan", "Ba'mains", "Ba'makry", "Ba'malan", "Ba'male", "Ba'maley", "Ba'maliam", "Ba'mally", "Ba'man", "Ba'manin", "Ba'many", "Ba'mappy", "Ba'mapsey", "Ba'mara", "Ba'maroy", "Ba'marrell", "Ba'marroy", "Ba'mary", "Ba'massey", "Ba'matty", "Ba'maty", "Ba'nadan", "Ba'naddy", "Ba'naer", "Ba'naffy", "Ba'nagan", "Ba'naggan", "Ba'nagh", "Ba'naghan", "Ba'nains", "Ba'nakry", "Ba'nalan", "Ba'nale", "Ba'naley", "Ba'naliam", "Ba'nally", "Ba'nan", "Ba'nanin", "Ba'nany", "Ba'nappy", "Ba'napsey", "Ba'nara", "Ba'naroy", "Ba'narrell", "Ba'narroy", "Ba'nary", "Ba'nassey", "Ba'natty", "Ba'naty", "Ba'nedan", "Ba'neddy", "Ba'neer", "Ba'neffy", "Ba'negan", "Ba'neggan", "Ba'negh", "Ba'neghan", "Ba'neins", "Ba'nekry", "Ba'nelan", "Ba'nele", "Ba'neley", "Ba'neliam", "Ba'nelly", "Ba'nen", "Ba'nenin", "Ba'neny", "Ba'neppy", "Ba'nepsey", "Ba'nera", "Ba'neroy", "Ba'nerrell", "Ba'nerroy", "Ba'nery", "Ba'nessey", "Ba'netty", "Ba'nety", "Ba'peadan", "Ba'peaddy", "Ba'peaer", "Ba'peaffy", "Ba'peagan", "Ba'peaggan", "Ba'peagh", "Ba'peaghan", "Ba'peains", "Ba'peakry", "Ba'pealan", "Ba'peale", "Ba'pealey", "Ba'pealiam", "Ba'peally", "Ba'pean", "Ba'peanin", "Ba'peany", "Ba'peappy", "Ba'peapsey", "Ba'peara", "Ba'pearoy", "Ba'pearrell", "Ba'pearroy", "Ba'peary", "Ba'peassey", "Ba'peatty", "Ba'peaty", "Ba'reidan", "Ba'reiddy", "Ba'reier", "Ba'reiffy", "Ba'reigan", "Ba'reiggan", "Ba'reigh", "Ba'reighan", "Ba'reiins", "Ba'reikry", "Ba'reilan", "Ba'reile", "Ba'reiley", "Ba'reiliam", "Ba'reilly", "Ba'rein", "Ba'reinin", "Ba'reiny", "Ba'reippy", "Ba'reipsey", "Ba'reira", "Ba'reiroy", "Ba'reirrell", "Ba'reirroy", "Ba'reiry", "Ba'reissey", "Ba'reitty", "Ba'reity", "Ba'ridan", "Ba'riddy", "Ba'rier", "Ba'riffy", "Ba'rigan", "Ba'riggan", "Ba'righ", "Ba'righan", "Ba'riins", "Ba'rikry", "Ba'rilan", "Ba'rile", "Ba'riley", "Ba'riliam", "Ba'rilly", "Ba'rin", "Ba'rinin", "Ba'riny", "Ba'ripdan", "Ba'ripddy", "Ba'riper", "Ba'ripffy", "Ba'ripgan", "Ba'ripggan", "Ba'ripgh", "Ba'ripghan", "Ba'ripins", "Ba'ripkry", "Ba'riplan", "Ba'riple", "Ba'ripley", "Ba'ripliam", "Ba'riplly", "Ba'ripn", "Ba'ripnin", "Ba'ripny", "Ba'ripppy", "Ba'rippsey", "Ba'rippy", "Ba'ripra", "Ba'riproy", "Ba'riprrell", "Ba'riprroy", "Ba'ripry", "Ba'ripsey", "Ba'ripssey", "Ba'riptty", "Ba'ripty", "Ba'rira", "Ba'riroy", "Ba'rirrell", "Ba'rirroy", "Ba'riry", "Ba'rissey", "Ba'ritty", "Ba'rity", "Ba'rodan", "Ba'roddy", "Ba'roer", "Ba'roffy", "Ba'rogan", "Ba'roggan", "Ba'rogh", "Ba'roghan", "Ba'roins", "Ba'rokry", "Ba'rolan", "Ba'role", "Ba'roley", "Ba'roliam", "Ba'rolly", "Ba'ron", "Ba'ronin", "Ba'rony", "Ba'roppy", "Ba'ropsey", "Ba'rora", "Ba'roroy", "Ba'rorrell", "Ba'rorroy", "Ba'rory", "Ba'rossey", "Ba'rotty", "Ba'roty", "Ba'sadan", "Ba'saddy", "Ba'saer", "Ba'saffy", "Ba'sagan", "Ba'saggan", "Ba'sagh", "Ba'saghan", "Ba'sains", "Ba'sakry", "Ba'salan", "Ba'sale", "Ba'saley", "Ba'saliam", "Ba'sally", "Ba'san", "Ba'sanin", "Ba'sany", "Ba'sappy", "Ba'sapsey", "Ba'sara", "Ba'saroy", "Ba'sarrell", "Ba'sarroy", "Ba'sary", "Ba'sassey", "Ba'satty", "Ba'saty", "Ba'shedan", "Ba'sheddy", "Ba'sheer", "Ba'sheffy", "Ba'shegan", "Ba'sheggan", "Ba'shegh", "Ba'sheghan", "Ba'sheins", "Ba'shekry", "Ba'shelan", "Ba'shele", "Ba'sheley", "Ba'sheliam", "Ba'shelly", "Ba'shen", "Ba'shenin", "Ba'sheny", "Ba'sheppy", "Ba'shepsey", "Ba'shera", "Ba'sheroy", "Ba'sherrell", "Ba'sherroy", "Ba'shery", "Ba'shessey", "Ba'shetty", "Ba'shety", "Ba'tedan", "Ba'teddy", "Ba'teer", "Ba'teffy", "Ba'tegan", "Ba'teggan", "Ba'tegh", "Ba'teghan", "Ba'teins", "Ba'tekry", "Ba'telan", "Ba'tele", "Ba'teley", "Ba'teliam", "Ba'telly", "Ba'ten", "Ba'tenin", "Ba'teny", "Ba'teppy", "Ba'tepsey", "Ba'tera", "Ba'teroy", "Ba'terrell", "Ba'terroy", "Ba'tery", "Ba'tessey", "Ba'tetty", "Ba'tety", "Ba'toodan", "Ba'tooddy", "Ba'tooer", "Ba'tooffy", "Ba'toogan", "Ba'tooggan", "Ba'toogh", "Ba'tooghan", "Ba'tooins", "Ba'tookry", "Ba'toolan", "Ba'toole", "Ba'tooley", "Ba'tooliam", "Ba'toolly", "Ba'toon", "Ba'toonin", "Ba'toony", "Ba'tooppy", "Ba'toopsey", "Ba'toora", "Ba'tooroy", "Ba'toorrell", "Ba'toorroy", "Ba'toory", "Ba'toossey", "Ba'tootty", "Ba'tooty", "Ba'widan", "Ba'widdy", "Ba'wier", "Ba'wiffy", "Ba'wigan", "Ba'wiggan", "Ba'wigh", "Ba'wighan", "Ba'wiins", "Ba'wikry", "Ba'wilan", "Ba'wile", "Ba'wiley", "Ba'wiliam", "Ba'willy", "Ba'win", "Ba'winin", "Ba'winy", "Ba'wippy", "Ba'wipsey", "Ba'wira", "Ba'wiroy", "Ba'wirrell", "Ba'wirroy", "Ba'wiry", "Ba'wissey", "Ba'witty", "Ba'wity", "Ba'ydan", "Ba'yddy", "Ba'yer", "Ba'yffy", "Ba'ygan", "Ba'yggan", "Ba'ygh", "Ba'yghan", "Ba'yins", "Ba'ykry", "Ba'ylan", "Ba'yle", "Ba'yley", "Ba'yliam", "Ba'ylly", "Ba'yn", "Ba'ynin", "Ba'yny", "Ba'yppy", "Ba'ypsey", "Ba'yra", "Ba'yroy", "Ba'yrrell", "Ba'yrroy", "Ba'yry", "Ba'yssey", "Ba'ytty", "Ba'yty", "Be'ardan", "Be'arddy", "Be'arer", "Be'arffy", "Be'argan", "Be'arggan", "Be'argh", "Be'arghan", "Be'arins", "Be'arkry", "Be'arlan", "Be'arle", "Be'arley", "Be'arliam", "Be'arlly", "Be'arn", "Be'arnin", "Be'arny", "Be'arppy", "Be'arpsey", "Be'arra", "Be'arroy", "Be'arrrell", "Be'arrroy", "Be'arry", "Be'arssey", "Be'artty", "Be'arty", "Be'bidan", "Be'biddy", "Be'bier", "Be'biffy", "Be'bigan", "Be'biggan", "Be'bigh", "Be'bighan", "Be'biins", "Be'bikry", "Be'bilan", "Be'bile", "Be'biley", "Be'biliam", "Be'billy", "Be'bin", "Be'binin", "Be'biny", "Be'bippy", "Be'bipsey", "Be'bira", "Be'biroy", "Be'birrell", "Be'birroy", "Be'biry", "Be'bissey", "Be'bitty", "Be'bity", "Be'caudan", "Be'cauddy", "Be'cauer", "Be'cauffy", "Be'caugan", "Be'cauggan", "Be'caugh", "Be'caughan", "Be'cauins", "Be'caukry", "Be'caulan", "Be'caule", "Be'cauley", "Be'cauliam", "Be'caully", "Be'caun", "Be'caunin", "Be'cauny", "Be'cauppy", "Be'caupsey", "Be'caura", "Be'cauroy", "Be'caurrell", "Be'caurroy", "Be'caury", "Be'caussey", "Be'cautty", "Be'cauty", "Be'dadan", "Be'daddy", "Be'daer", "Be'daffy", "Be'dagan", "Be'daggan", "Be'dagh", "Be'daghan", "Be'dains", "Be'dakry", "Be'dalan", "Be'dale", "Be'daley", "Be'daliam", "Be'dally", "Be'dan", "Be'danin", "Be'dany", "Be'dappy", "Be'dapsey", "Be'dara", "Be'dardan", "Be'darddy", "Be'darer", "Be'darffy", "Be'dargan", "Be'darggan", "Be'dargh", "Be'darghan", "Be'darins", "Be'darkry", "Be'darlan", "Be'darle", "Be'darley", "Be'darliam", "Be'darlly", "Be'darn", "Be'darnin", "Be'darny", "Be'daroy", "Be'darppy", "Be'darpsey", "Be'darra", "Be'darrell", "Be'darroy", "Be'darrrell", "Be'darrroy", "Be'darry", "Be'darssey", "Be'dartty", "Be'darty", "Be'dary", "Be'dassey", "Be'datty", "Be'daty", "Be'doydan", "Be'doyddy", "Be'doyer", "Be'doyffy", "Be'doygan", "Be'doyggan", "Be'doygh", "Be'doyghan", "Be'doyins", "Be'doykry", "Be'doylan", "Be'doyle", "Be'doyley", "Be'doyliam", "Be'doylly", "Be'doyn", "Be'doynin", "Be'doyny", "Be'doyppy", "Be'doypsey", "Be'doyra", "Be'doyroy", "Be'doyrrell", "Be'doyrroy", "Be'doyry", "Be'doyssey", "Be'doytty", "Be'doyty", "Be'dudan", "Be'duddy", "Be'duer", "Be'duffy", "Be'dugan", "Be'duggan", "Be'dugh", "Be'dughan", "Be'duins", "Be'dukry", "Be'dulan", "Be'dule", "Be'duley", "Be'duliam", "Be'dully", "Be'dun", "Be'dunin", "Be'duny", "Be'duppy", "Be'dupsey", "Be'dura", "Be'duroy", "Be'durrell", "Be'durroy", "Be'dury", "Be'dussey", "Be'dutty", "Be'duty", "Be'gadan", "Be'gaddy", "Be'gaer", "Be'gaffy", "Be'gagan", "Be'gaggan", "Be'gagh", "Be'gaghan", "Be'gains", "Be'gakry", "Be'galan", "Be'gale", "Be'galey", "Be'galiam", "Be'gally", "Be'gan", "Be'ganin", "Be'gany", "Be'gappy", "Be'gapsey", "Be'gara", "Be'garoy", "Be'garrell", "Be'garroy", "Be'gary", "Be'gassey", "Be'gatty", "Be'gaty", "Be'jordan", "Be'jorddy", "Be'jorer", "Be'jorffy", "Be'jorgan", "Be'jorggan", "Be'jorgh", "Be'jorghan", "Be'jorins", "Be'jorkry", "Be'jorlan", "Be'jorle", "Be'jorley", "Be'jorliam", "Be'jorlly", "Be'jorn", "Be'jornin", "Be'jorny", "Be'jorppy", "Be'jorpsey", "Be'jorra", "Be'jorroy", "Be'jorrrell", "Be'jorrroy", "Be'jorry", "Be'jorssey", "Be'jortty", "Be'jorty", "Be'keadan", "Be'keaddy", "Be'keaer", "Be'keaffy", "Be'keagan", "Be'keaggan", "Be'keagh", "Be'keaghan", "Be'keains", "Be'keakry", "Be'kealan", "Be'keale", "Be'kealey", "Be'kealiam", "Be'keally", "Be'kean", "Be'keanin", "Be'keany", "Be'keappy", "Be'keapsey", "Be'keara", "Be'kearoy", "Be'kearrell", "Be'kearroy", "Be'keary", "Be'keassey", "Be'keatty", "Be'keaty", "Be'keedan", "Be'keeddy", "Be'keeer", "Be'keeffy", "Be'keegan", "Be'keeggan", "Be'keegh", "Be'keeghan", "Be'keeins", "Be'keekry", "Be'keelan", "Be'keele", "Be'keeley", "Be'keeliam", "Be'keelly", "Be'keen", "Be'keenin", "Be'keeny", "Be'keeppy", "Be'keepsey", "Be'keera", "Be'keeroy", "Be'keerrell", "Be'keerroy", "Be'keery", "Be'keessey", "Be'keetty", "Be'keety", "Be'laudan", "Be'lauddy", "Be'lauer", "Be'lauffy", "Be'laugan", "Be'lauggan", "Be'laugh", "Be'laughan", "Be'lauins", "Be'laukry", "Be'laulan", "Be'laule", "Be'lauley", "Be'lauliam", "Be'laully", "Be'laun", "Be'launin", "Be'launy", "Be'lauppy", "Be'laupsey", "Be'laura", "Be'lauroy", "Be'laurrell", "Be'laurroy", "Be'laury", "Be'laussey", "Be'lautty", "Be'lauty", "Be'leadan", "Be'leaddy", "Be'leaer", "Be'leaffy", "Be'leagan", "Be'leaggan", "Be'leagh", "Be'leaghan", "Be'leains", "Be'leakry", "Be'lealan", "Be'leale", "Be'lealey", "Be'lealiam", "Be'leally", "Be'lean", "Be'leanin", "Be'leany", "Be'leappy", "Be'leapsey", "Be'leara", "Be'learoy", "Be'learrell", "Be'learroy", "Be'leary", "Be'leassey", "Be'leatty", "Be'leaty", "Be'ledan", "Be'leddy", "Be'leer", "Be'leffy", "Be'legan", "Be'leggan", "Be'legh", "Be'leghan", "Be'leidan", "Be'leiddy", "Be'leier", "Be'leiffy", "Be'leigan", "Be'leiggan", "Be'leigh", "Be'leighan", "Be'leiins", "Be'leikry", "Be'leilan", "Be'leile", "Be'leiley", "Be'leiliam", "Be'leilly", "Be'lein", "Be'leinin", "Be'leins", "Be'leiny", "Be'leippy", "Be'leipsey", "Be'leira", "Be'leiroy", "Be'leirrell", "Be'leirroy", "Be'leiry", "Be'leissey", "Be'leitty", "Be'leity", "Be'lekry", "Be'lelan", "Be'lele", "Be'leley", "Be'leliam", "Be'lelly", "Be'len", "Be'lenin", "Be'leny", "Be'leppy", "Be'lepsey", "Be'lera", "Be'leroy", "Be'lerrell", "Be'lerroy", "Be'lery", "Be'lessey", "Be'letty", "Be'lety", "Be'lodan", "Be'loddy", "Be'loer", "Be'loffy", "Be'logan", "Be'loggan", "Be'logh", "Be'loghan", "Be'loins", "Be'lokry", "Be'lolan", "Be'lole", "Be'loley", "Be'loliam", "Be'lolly", "Be'lon", "Be'lonin", "Be'lony", "Be'loppy", "Be'lopsey", "Be'lora", "Be'loroy", "Be'lorrell", "Be'lorroy", "Be'lory", "Be'lossey", "Be'lotty", "Be'loty", "Be'lyndan", "Be'lynddy", "Be'lyner", "Be'lynffy", "Be'lyngan", "Be'lynggan", "Be'lyngh", "Be'lynghan", "Be'lynins", "Be'lynkry", "Be'lynlan", "Be'lynle", "Be'lynley", "Be'lynliam", "Be'lynlly", "Be'lynn", "Be'lynnin", "Be'lynny", "Be'lynppy", "Be'lynpsey", "Be'lynra", "Be'lynroy", "Be'lynrrell", "Be'lynrroy", "Be'lynry", "Be'lynssey", "Be'lyntty", "Be'lynty", "Be'madan", "Be'maddy", "Be'maer", "Be'maffy", "Be'magan", "Be'maggan", "Be'magh", "Be'maghan", "Be'mains", "Be'makry", "Be'malan", "Be'male", "Be'maley", "Be'maliam", "Be'mally", "Be'man", "Be'manin", "Be'many", "Be'mappy", "Be'mapsey", "Be'mara", "Be'maroy", "Be'marrell", "Be'marroy", "Be'mary", "Be'massey", "Be'matty", "Be'maty", "Be'nadan", "Be'naddy", "Be'naer", "Be'naffy", "Be'nagan", "Be'naggan", "Be'nagh", "Be'naghan", "Be'nains", "Be'nakry", "Be'nalan", "Be'nale", "Be'naley", "Be'naliam", "Be'nally", "Be'nan", "Be'nanin", "Be'nany", "Be'nappy", "Be'napsey", "Be'nara", "Be'naroy", "Be'narrell", "Be'narroy", "Be'nary", "Be'nassey", "Be'natty", "Be'naty", "Be'nedan", "Be'neddy", "Be'neer", "Be'neffy", "Be'negan", "Be'neggan", "Be'negh", "Be'neghan", "Be'neins", "Be'nekry", "Be'nelan", "Be'nele", "Be'neley", "Be'neliam", "Be'nelly", "Be'nen", "Be'nenin", "Be'neny", "Be'neppy", "Be'nepsey", "Be'nera", "Be'neroy", "Be'nerrell", "Be'nerroy", "Be'nery", "Be'nessey", "Be'netty", "Be'nety", "Be'peadan", "Be'peaddy", "Be'peaer", "Be'peaffy", "Be'peagan", "Be'peaggan", "Be'peagh", "Be'peaghan", "Be'peains", "Be'peakry", "Be'pealan", "Be'peale", "Be'pealey", "Be'pealiam", "Be'peally", "Be'pean", "Be'peanin", "Be'peany", "Be'peappy", "Be'peapsey", "Be'peara", "Be'pearoy", "Be'pearrell", "Be'pearroy", "Be'peary", "Be'peassey", "Be'peatty", "Be'peaty", "Be'reidan", "Be'reiddy", "Be'reier", "Be'reiffy", "Be'reigan", "Be'reiggan", "Be'reigh", "Be'reighan", "Be'reiins", "Be'reikry", "Be'reilan", "Be'reile", "Be'reiley", "Be'reiliam", "Be'reilly", "Be'rein", "Be'reinin", "Be'reiny", "Be'reippy", "Be'reipsey", "Be'reira", "Be'reiroy", "Be'reirrell", "Be'reirroy", "Be'reiry", "Be'reissey", "Be'reitty", "Be'reity", "Be'ridan", "Be'riddy", "Be'rier", "Be'riffy", "Be'rigan", "Be'riggan", "Be'righ", "Be'righan", "Be'riins", "Be'rikry", "Be'rilan", "Be'rile", "Be'riley", "Be'riliam", "Be'rilly", "Be'rin", "Be'rinin", "Be'riny", "Be'ripdan", "Be'ripddy", "Be'riper", "Be'ripffy", "Be'ripgan", "Be'ripggan", "Be'ripgh", "Be'ripghan", "Be'ripins", "Be'ripkry", "Be'riplan", "Be'riple", "Be'ripley", "Be'ripliam", "Be'riplly", "Be'ripn", "Be'ripnin", "Be'ripny", "Be'ripppy", "Be'rippsey", "Be'rippy", "Be'ripra", "Be'riproy", "Be'riprrell", "Be'riprroy", "Be'ripry", "Be'ripsey", "Be'ripssey", "Be'riptty", "Be'ripty", "Be'rira", "Be'riroy", "Be'rirrell", "Be'rirroy", "Be'riry", "Be'rissey", "Be'ritty", "Be'rity", "Be'rodan", "Be'roddy", "Be'roer", "Be'roffy", "Be'rogan", "Be'roggan", "Be'rogh", "Be'roghan", "Be'roins", "Be'rokry", "Be'rolan", "Be'role", "Be'roley", "Be'roliam", "Be'rolly", "Be'ron", "Be'ronin", "Be'rony", "Be'roppy", "Be'ropsey", "Be'rora", "Be'roroy", "Be'rorrell", "Be'rorroy", "Be'rory", "Be'rossey", "Be'rotty", "Be'roty", "Be'sadan", "Be'saddy", "Be'saer", "Be'saffy", "Be'sagan", "Be'saggan", "Be'sagh", "Be'saghan", "Be'sains", "Be'sakry", "Be'salan", "Be'sale", "Be'saley", "Be'saliam", "Be'sally", "Be'san", "Be'sanin", "Be'sany", "Be'sappy", "Be'sapsey", "Be'sara", "Be'saroy", "Be'sarrell", "Be'sarroy", "Be'sary", "Be'sassey", "Be'satty", "Be'saty", "Be'shedan", "Be'sheddy", "Be'sheer", "Be'sheffy", "Be'shegan", "Be'sheggan", "Be'shegh", "Be'sheghan", "Be'sheins", "Be'shekry", "Be'shelan", "Be'shele", "Be'sheley", "Be'sheliam", "Be'shelly", "Be'shen", "Be'shenin", "Be'sheny", "Be'sheppy", "Be'shepsey", "Be'shera", "Be'sheroy", "Be'sherrell", "Be'sherroy", "Be'shery", "Be'shessey", "Be'shetty", "Be'shety", "Be'tedan", "Be'teddy", "Be'teer", "Be'teffy", "Be'tegan", "Be'teggan", "Be'tegh", "Be'teghan", "Be'teins", "Be'tekry", "Be'telan", "Be'tele", "Be'teley", "Be'teliam", "Be'telly", "Be'ten", "Be'tenin", "Be'teny", "Be'teppy", "Be'tepsey", "Be'tera", "Be'teroy", "Be'terrell", "Be'terroy", "Be'tery", "Be'tessey", "Be'tetty", "Be'tety", "Be'toodan", "Be'tooddy", "Be'tooer", "Be'tooffy", "Be'toogan", "Be'tooggan", "Be'toogh", "Be'tooghan", "Be'tooins", "Be'tookry", "Be'toolan", "Be'toole", "Be'tooley", "Be'tooliam", "Be'toolly", "Be'toon", "Be'toonin", "Be'toony", "Be'tooppy", "Be'toopsey", "Be'toora", "Be'tooroy", "Be'toorrell", "Be'toorroy", "Be'toory", "Be'toossey", "Be'tootty", "Be'tooty", "Be'widan", "Be'widdy", "Be'wier", "Be'wiffy", "Be'wigan", "Be'wiggan", "Be'wigh", "Be'wighan", "Be'wiins", "Be'wikry", "Be'wilan", "Be'wile", "Be'wiley", "Be'wiliam", "Be'willy", "Be'win", "Be'winin", "Be'winy", "Be'wippy", "Be'wipsey", "Be'wira", "Be'wiroy", "Be'wirrell", "Be'wirroy", "Be'wiry", "Be'wissey", "Be'witty", "Be'wity", "Be'ydan", "Be'yddy", "Be'yer", "Be'yffy", "Be'ygan", "Be'yggan", "Be'ygh", "Be'yghan", "Be'yins", "Be'ykry", "Be'ylan", "Be'yle", "Be'yley", "Be'yliam", "Be'ylly", "Be'yn", "Be'ynin", "Be'yny", "Be'yppy", "Be'ypsey", "Be'yra", "Be'yroy", "Be'yrrell", "Be'yrroy", "Be'yry", "Be'yssey", "Be'ytty", "Be'yty", "Bidan", "Biddy", "Bier", "Biffy", "Bigan", "Biggan", "Bigh", "Bighan", "Biins", "Bikry", "Bilan", "Bile", "Biley", "Biliam", "Billy", "Bin", "Binin", "Biny", "Bippy", "Bipsey", "Bira", "Biroy", "Birrell", "Birroy", "Biry", "Bissey", "Bitty", "Bity", "Caudan", "Cauddy", "Cauer", "Cauffy", "Caugan", "Cauggan", "Caugh", "Caughan", "Cauins", "Caukry", "Caulan", "Caule", "Cauley", "Cauliam", "Caully", "Caun", "Caunin", "Cauny", "Cauppy", "Caupsey", "Caura", "Cauroy", "Caurrell", "Caurroy", "Caury", "Caussey", "Cautty", "Cauty", "Dadan", "Daddy", "Daer", "Daffy", "Dagan", "Daggan", "Dagh", "Daghan", "Dains", "Dakry", "Dalan", "Dale", "Daley", "Daliam", "Dally", "Dan", "Danin", "Dany", "Dappy", "Dapsey", "Dara", "Dardan", "Darddy", "Darer", "Darffy", "Dargan", "Darggan", "Dargh", "Darghan", "Darins", "Darkry", "Darlan", "Darle", "Darley", "Darliam", "Darlly", "Darn", "Darnin", "Darny", "Daroy", "Darppy", "Darpsey", "Darra", "Darrell", "Darroy", "Darrrell", "Darrroy", "Darry", "Darssey", "Dartty", "Darty", "Dary", "Dassey", "Datty", "Daty", "Doydan", "Doyddy", "Doyer", "Doyffy", "Doygan", "Doyggan", "Doygh", "Doyghan", "Doyins", "Doykry", "Doylan", "Doyle", "Doyley", "Doyliam", "Doylly", "Doyn", "Doynin", "Doyny", "Doyppy", "Doypsey", "Doyra", "Doyroy", "Doyrrell", "Doyrroy", "Doyry", "Doyssey", "Doytty", "Doyty", "Dudan", "Duddy", "Duer", "Duffy", "Dugan", "Duggan", "Dugh", "Dughan", "Duins", "Dukry", "Dulan", "Dule", "Duley", "Duliam", "Dully", "Dun", "Dunin", "Duny", "Duppy", "Dupsey", "Dura", "Duroy", "Durrell", "Durroy", "Dury", "Dussey", "Dutty", "Duty", "Gadan", "Gaddy", "Gaer", "Gaffy", "Gagan", "Gaggan", "Gagh", "Gaghan", "Gains", "Gakry", "Galan", "Gale", "Galey", "Galiam", "Gally", "Gan", "Ganin", "Gany", "Gappy", "Gapsey", "Gara", "Garoy", "Garrell", "Garroy", "Gary", "Gassey", "Gatty", "Gaty", "Jordan", "Jorddy", "Jorer", "Jorffy", "Jorgan", "Jorggan", "Jorgh", "Jorghan", "Jorins", "Jorkry", "Jorlan", "Jorle", "Jorley", "Jorliam", "Jorlly", "Jorn", "Jornin", "Jorny", "Jorppy", "Jorpsey", "Jorra", "Jorroy", "Jorrrell", "Jorrroy", "Jorry", "Jorssey", "Jortty", "Jorty", "Keadan", "Keaddy", "Keaer", "Keaffy", "Keagan", "Keaggan", "Keagh", "Keaghan", "Keains", "Keakry", "Kealan", "Keale", "Kealey", "Kealiam", "Keally", "Kean", "Keanin", "Keany", "Keappy", "Keapsey", "Keara", "Kearoy", "Kearrell", "Kearroy", "Keary", "Keassey", "Keatty", "Keaty", "Keedan", "Keeddy", "Keeer", "Keeffy", "Keegan", "Keeggan", "Keegh", "Keeghan", "Keeins", "Keekry", "Keelan", "Keele", "Keeley", "Keeliam", "Keelly", "Keen", "Keenin", "Keeny", "Keeppy", "Keepsey", "Keera", "Keeroy", "Keerrell", "Keerroy", "Keery", "Keessey", "Keetty", "Keety", "Laudan", "Lauddy", "Lauer", "Lauffy", "Laugan", "Lauggan", "Laugh", "Laughan", "Lauins", "Laukry", "Laulan", "Laule", "Lauley", "Lauliam", "Laully", "Laun", "Launin", "Launy", "Lauppy", "Laupsey", "Laura", "Lauroy", "Laurrell", "Laurroy", "Laury", "Laussey", "Lautty", "Lauty", "Leadan", "Leaddy", "Leaer", "Leaffy", "Leagan", "Leaggan", "Leagh", "Leaghan", "Leains", "Leakry", "Lealan", "Leale", "Lealey", "Lealiam", "Leally", "Lean", "Leanin", "Leany", "Leappy", "Leapsey", "Leara", "Learoy", "Learrell", "Learroy", "Leary", "Leassey", "Leatty", "Leaty", "Ledan", "Leddy", "Leer", "Leffy", "Legan", "Leggan", "Legh", "Leghan", "Leidan", "Leiddy", "Leier", "Leiffy", "Leigan", "Leiggan", "Leigh", "Leighan", "Leiins", "Leikry", "Leilan", "Leile", "Leiley", "Leiliam", "Leilly", "Lein", "Leinin", "Leins", "Leiny", "Leippy", "Leipsey", "Leira", "Leiroy", "Leirrell", "Leirroy", "Leiry", "Leissey", "Leitty", "Leity", "Lekry", "Lelan", "Lele", "Leley", "Leliam", "Lelly", "Len", "Lenin", "Leny", "Leppy", "Lepsey", "Lera", "Leroy", "Lerrell", "Lerroy", "Lery", "Lessey", "Letty", "Lety", "Lodan", "Loddy", "Loer", "Loffy", "Logan", "Loggan", "Logh", "Loghan", "Loins", "Lokry", "Lolan", "Lole", "Loley", "Loliam", "Lolly", "Lon", "Lonin", "Lony", "Loppy", "Lopsey", "Lora", "Loroy", "Lorrell", "Lorroy", "Lory", "Lossey", "Lotty", "Loty", "Lyndan", "Lynddy", "Lyner", "Lynffy", "Lyngan", "Lynggan", "Lyngh", "Lynghan", "Lynins", "Lynkry", "Lynlan", "Lynle", "Lynley", "Lynliam", "Lynlly", "Lynn", "Lynnin", "Lynny", "Lynppy", "Lynpsey", "Lynra", "Lynroy", "Lynrrell", "Lynrroy", "Lynry", "Lynssey", "Lyntty", "Lynty", "Mac'ardan", "Mac'arddy", "Mac'arer", "Mac'arffy", "Mac'argan", "Mac'arggan", "Mac'argh", "Mac'arghan", "Mac'arins", "Mac'arkry", "Mac'arlan", "Mac'arle", "Mac'arley", "Mac'arliam", "Mac'arlly", "Mac'arn", "Mac'arnin", "Mac'arny", "Mac'arppy", "Mac'arpsey", "Mac'arra", "Mac'arroy", "Mac'arrrell", "Mac'arrroy", "Mac'arry", "Mac'arssey", "Mac'artty", "Mac'arty", "Mac'bidan", "Mac'biddy", "Mac'bier", "Mac'biffy", "Mac'bigan", "Mac'biggan", "Mac'bigh", "Mac'bighan", "Mac'biins", "Mac'bikry", "Mac'bilan", "Mac'bile", "Mac'biley", "Mac'biliam", "Mac'billy", "Mac'bin", "Mac'binin", "Mac'biny", "Mac'bippy", "Mac'bipsey", "Mac'bira", "Mac'biroy", "Mac'birrell", "Mac'birroy", "Mac'biry", "Mac'bissey", "Mac'bitty", "Mac'bity", "Mac'caudan", "Mac'cauddy", "Mac'cauer", "Mac'cauffy", "Mac'caugan", "Mac'cauggan", "Mac'caugh", "Mac'caughan", "Mac'cauins", "Mac'caukry", "Mac'caulan", "Mac'caule", "Mac'cauley", "Mac'cauliam", "Mac'caully", "Mac'caun", "Mac'caunin", "Mac'cauny", "Mac'cauppy", "Mac'caupsey", "Mac'caura", "Mac'cauroy", "Mac'caurrell", "Mac'caurroy", "Mac'caury", "Mac'caussey", "Mac'cautty", "Mac'cauty", "Mac'dadan", "Mac'daddy", "Mac'daer", "Mac'daffy", "Mac'dagan", "Mac'daggan", "Mac'dagh", "Mac'daghan", "Mac'dains", "Mac'dakry", "Mac'dalan", "Mac'dale", "Mac'daley", "Mac'daliam", "Mac'dally", "Mac'dan", "Mac'danin", "Mac'dany", "Mac'dappy", "Mac'dapsey", "Mac'dara", "Mac'dardan", "Mac'darddy", "Mac'darer", "Mac'darffy", "Mac'dargan", "Mac'darggan", "Mac'dargh", "Mac'darghan", "Mac'darins", "Mac'darkry", "Mac'darlan", "Mac'darle", "Mac'darley", "Mac'darliam", "Mac'darlly", "Mac'darn", "Mac'darnin", "Mac'darny", "Mac'daroy", "Mac'darppy", "Mac'darpsey", "Mac'darra", "Mac'darrell", "Mac'darroy", "Mac'darrrell", "Mac'darrroy", "Mac'darry", "Mac'darssey", "Mac'dartty", "Mac'darty", "Mac'dary", "Mac'dassey", "Mac'datty", "Mac'daty", "Mac'doydan", "Mac'doyddy", "Mac'doyer", "Mac'doyffy", "Mac'doygan", "Mac'doyggan", "Mac'doygh", "Mac'doyghan", "Mac'doyins", "Mac'doykry", "Mac'doylan", "Mac'doyle", "Mac'doyley", "Mac'doyliam", "Mac'doylly", "Mac'doyn", "Mac'doynin", "Mac'doyny", "Mac'doyppy", "Mac'doypsey", "Mac'doyra", "Mac'doyroy", "Mac'doyrrell", "Mac'doyrroy", "Mac'doyry", "Mac'doyssey", "Mac'doytty", "Mac'doyty", "Mac'dudan", "Mac'duddy", "Mac'duer", "Mac'duffy", "Mac'dugan", "Mac'duggan", "Mac'dugh", "Mac'dughan", "Mac'duins", "Mac'dukry", "Mac'dulan", "Mac'dule", "Mac'duley", "Mac'duliam", "Mac'dully", "Mac'dun", "Mac'dunin", "Mac'duny", "Mac'duppy", "Mac'dupsey", "Mac'dura", "Mac'duroy", "Mac'durrell", "Mac'durroy", "Mac'dury", "Mac'dussey", "Mac'dutty", "Mac'duty", "Mac'gadan", "Mac'gaddy", "Mac'gaer", "Mac'gaffy", "Mac'gagan", "Mac'gaggan", "Mac'gagh", "Mac'gaghan", "Mac'gains", "Mac'gakry", "Mac'galan", "Mac'gale", "Mac'galey", "Mac'galiam", "Mac'gally", "Mac'gan", "Mac'ganin", "Mac'gany", "Mac'gappy", "Mac'gapsey", "Mac'gara", "Mac'garoy", "Mac'garrell", "Mac'garroy", "Mac'gary", "Mac'gassey", "Mac'gatty", "Mac'gaty", "Mac'jordan", "Mac'jorddy", "Mac'jorer", "Mac'jorffy", "Mac'jorgan", "Mac'jorggan", "Mac'jorgh", "Mac'jorghan", "Mac'jorins", "Mac'jorkry", "Mac'jorlan", "Mac'jorle", "Mac'jorley", "Mac'jorliam", "Mac'jorlly", "Mac'jorn", "Mac'jornin", "Mac'jorny", "Mac'jorppy", "Mac'jorpsey", "Mac'jorra", "Mac'jorroy", "Mac'jorrrell", "Mac'jorrroy", "Mac'jorry", "Mac'jorssey", "Mac'jortty", "Mac'jorty", "Mac'keadan", "Mac'keaddy", "Mac'keaer", "Mac'keaffy", "Mac'keagan", "Mac'keaggan", "Mac'keagh", "Mac'keaghan", "Mac'keains", "Mac'keakry", "Mac'kealan", "Mac'keale", "Mac'kealey", "Mac'kealiam", "Mac'keally", "Mac'kean", "Mac'keanin", "Mac'keany", "Mac'keappy", "Mac'keapsey", "Mac'keara", "Mac'kearoy", "Mac'kearrell", "Mac'kearroy", "Mac'keary", "Mac'keassey", "Mac'keatty", "Mac'keaty", "Mac'keedan", "Mac'keeddy", "Mac'keeer", "Mac'keeffy", "Mac'keegan", "Mac'keeggan", "Mac'keegh", "Mac'keeghan", "Mac'keeins", "Mac'keekry", "Mac'keelan", "Mac'keele", "Mac'keeley", "Mac'keeliam", "Mac'keelly", "Mac'keen", "Mac'keenin", "Mac'keeny", "Mac'keeppy", "Mac'keepsey", "Mac'keera", "Mac'keeroy", "Mac'keerrell", "Mac'keerroy", "Mac'keery", "Mac'keessey", "Mac'keetty", "Mac'keety", "Mac'laudan", "Mac'lauddy", "Mac'lauer", "Mac'lauffy", "Mac'laugan", "Mac'lauggan", "Mac'laugh", "Mac'laughan", "Mac'lauins", "Mac'laukry", "Mac'laulan", "Mac'laule", "Mac'lauley", "Mac'lauliam", "Mac'laully", "Mac'laun", "Mac'launin", "Mac'launy", "Mac'lauppy", "Mac'laupsey", "Mac'laura", "Mac'lauroy", "Mac'laurrell", "Mac'laurroy", "Mac'laury", "Mac'laussey", "Mac'lautty", "Mac'lauty", "Mac'leadan", "Mac'leaddy", "Mac'leaer", "Mac'leaffy", "Mac'leagan", "Mac'leaggan", "Mac'leagh", "Mac'leaghan", "Mac'leains", "Mac'leakry", "Mac'lealan", "Mac'leale", "Mac'lealey", "Mac'lealiam", "Mac'leally", "Mac'lean", "Mac'leanin", "Mac'leany", "Mac'leappy", "Mac'leapsey", "Mac'leara", "Mac'learoy", "Mac'learrell", "Mac'learroy", "Mac'leary", "Mac'leassey", "Mac'leatty", "Mac'leaty", "Mac'ledan", "Mac'leddy", "Mac'leer", "Mac'leffy", "Mac'legan", "Mac'leggan", "Mac'legh", "Mac'leghan", "Mac'leidan", "Mac'leiddy", "Mac'leier", "Mac'leiffy", "Mac'leigan", "Mac'leiggan", "Mac'leigh", "Mac'leighan", "Mac'leiins", "Mac'leikry", "Mac'leilan", "Mac'leile", "Mac'leiley", "Mac'leiliam", "Mac'leilly", "Mac'lein", "Mac'leinin", "Mac'leins", "Mac'leiny", "Mac'leippy", "Mac'leipsey", "Mac'leira", "Mac'leiroy", "Mac'leirrell", "Mac'leirroy", "Mac'leiry", "Mac'leissey", "Mac'leitty", "Mac'leity", "Mac'lekry", "Mac'lelan", "Mac'lele", "Mac'leley", "Mac'leliam", "Mac'lelly", "Mac'len", "Mac'lenin", "Mac'leny", "Mac'leppy", "Mac'lepsey", "Mac'lera", "Mac'leroy", "Mac'lerrell", "Mac'lerroy", "Mac'lery", "Mac'lessey", "Mac'letty", "Mac'lety", "Mac'lodan", "Mac'loddy", "Mac'loer", "Mac'loffy", "Mac'logan", "Mac'loggan", "Mac'logh", "Mac'loghan", "Mac'loins", "Mac'lokry", "Mac'lolan", "Mac'lole", "Mac'loley", "Mac'loliam", "Mac'lolly", "Mac'lon", "Mac'lonin", "Mac'lony", "Mac'loppy", "Mac'lopsey", "Mac'lora", "Mac'loroy", "Mac'lorrell", "Mac'lorroy", "Mac'lory", "Mac'lossey", "Mac'lotty", "Mac'loty", "Mac'lyndan", "Mac'lynddy", "Mac'lyner", "Mac'lynffy", "Mac'lyngan", "Mac'lynggan", "Mac'lyngh", "Mac'lynghan", "Mac'lynins", "Mac'lynkry", "Mac'lynlan", "Mac'lynle", "Mac'lynley", "Mac'lynliam", "Mac'lynlly", "Mac'lynn", "Mac'lynnin", "Mac'lynny", "Mac'lynppy", "Mac'lynpsey", "Mac'lynra", "Mac'lynroy", "Mac'lynrrell", "Mac'lynrroy", "Mac'lynry", "Mac'lynssey", "Mac'lyntty", "Mac'lynty", "Mac'madan", "Mac'maddy", "Mac'maer", "Mac'maffy", "Mac'magan", "Mac'maggan", "Mac'magh", "Mac'maghan", "Mac'mains", "Mac'makry", "Mac'malan", "Mac'male", "Mac'maley", "Mac'maliam", "Mac'mally", "Mac'man", "Mac'manin", "Mac'many", "Mac'mappy", "Mac'mapsey", "Mac'mara", "Mac'maroy", "Mac'marrell", "Mac'marroy", "Mac'mary", "Mac'massey", "Mac'matty", "Mac'maty", "Mac'nadan", "Mac'naddy", "Mac'naer", "Mac'naffy", "Mac'nagan", "Mac'naggan", "Mac'nagh", "Mac'naghan", "Mac'nains", "Mac'nakry", "Mac'nalan", "Mac'nale", "Mac'naley", "Mac'naliam", "Mac'nally", "Mac'nan", "Mac'nanin", "Mac'nany", "Mac'nappy", "Mac'napsey", "Mac'nara", "Mac'naroy", "Mac'narrell", "Mac'narroy", "Mac'nary", "Mac'nassey", "Mac'natty", "Mac'naty", "Mac'nedan", "Mac'neddy", "Mac'neer", "Mac'neffy", "Mac'negan", "Mac'neggan", "Mac'negh", "Mac'neghan", "Mac'neins", "Mac'nekry", "Mac'nelan", "Mac'nele", "Mac'neley", "Mac'neliam", "Mac'nelly", "Mac'nen", "Mac'nenin", "Mac'neny", "Mac'neppy", "Mac'nepsey", "Mac'nera", "Mac'neroy", "Mac'nerrell", "Mac'nerroy", "Mac'nery", "Mac'nessey", "Mac'netty", "Mac'nety", "Mac'peadan", "Mac'peaddy", "Mac'peaer", "Mac'peaffy", "Mac'peagan", "Mac'peaggan", "Mac'peagh", "Mac'peaghan", "Mac'peains", "Mac'peakry", "Mac'pealan", "Mac'peale", "Mac'pealey", "Mac'pealiam", "Mac'peally", "Mac'pean", "Mac'peanin", "Mac'peany", "Mac'peappy", "Mac'peapsey", "Mac'peara", "Mac'pearoy", "Mac'pearrell", "Mac'pearroy", "Mac'peary", "Mac'peassey", "Mac'peatty", "Mac'peaty", "Mac'reidan", "Mac'reiddy", "Mac'reier", "Mac'reiffy", "Mac'reigan", "Mac'reiggan", "Mac'reigh", "Mac'reighan", "Mac'reiins", "Mac'reikry", "Mac'reilan", "Mac'reile", "Mac'reiley", "Mac'reiliam", "Mac'reilly", "Mac'rein", "Mac'reinin", "Mac'reiny", "Mac'reippy", "Mac'reipsey", "Mac'reira", "Mac'reiroy", "Mac'reirrell", "Mac'reirroy", "Mac'reiry", "Mac'reissey", "Mac'reitty", "Mac'reity", "Mac'ridan", "Mac'riddy", "Mac'rier", "Mac'riffy", "Mac'rigan", "Mac'riggan", "Mac'righ", "Mac'righan", "Mac'riins", "Mac'rikry", "Mac'rilan", "Mac'rile", "Mac'riley", "Mac'riliam", "Mac'rilly", "Mac'rin", "Mac'rinin", "Mac'riny", "Mac'ripdan", "Mac'ripddy", "Mac'riper", "Mac'ripffy", "Mac'ripgan", "Mac'ripggan", "Mac'ripgh", "Mac'ripghan", "Mac'ripins", "Mac'ripkry", "Mac'riplan", "Mac'riple", "Mac'ripley", "Mac'ripliam", "Mac'riplly", "Mac'ripn", "Mac'ripnin", "Mac'ripny", "Mac'ripppy", "Mac'rippsey", "Mac'rippy", "Mac'ripra", "Mac'riproy", "Mac'riprrell", "Mac'riprroy", "Mac'ripry", "Mac'ripsey", "Mac'ripssey", "Mac'riptty", "Mac'ripty", "Mac'rira", "Mac'riroy", "Mac'rirrell", "Mac'rirroy", "Mac'riry", "Mac'rissey", "Mac'ritty", "Mac'rity", "Mac'rodan", "Mac'roddy", "Mac'roer", "Mac'roffy", "Mac'rogan", "Mac'roggan", "Mac'rogh", "Mac'roghan", "Mac'roins", "Mac'rokry", "Mac'rolan", "Mac'role", "Mac'roley", "Mac'roliam", "Mac'rolly", "Mac'ron", "Mac'ronin", "Mac'rony", "Mac'roppy", "Mac'ropsey", "Mac'rora", "Mac'roroy", "Mac'rorrell", "Mac'rorroy", "Mac'rory", "Mac'rossey", "Mac'rotty", "Mac'roty", "Mac'sadan", "Mac'saddy", "Mac'saer", "Mac'saffy", "Mac'sagan", "Mac'saggan", "Mac'sagh", "Mac'saghan", "Mac'sains", "Mac'sakry", "Mac'salan", "Mac'sale", "Mac'saley", "Mac'saliam", "Mac'sally", "Mac'san", "Mac'sanin", "Mac'sany", "Mac'sappy", "Mac'sapsey", "Mac'sara", "Mac'saroy", "Mac'sarrell", "Mac'sarroy", "Mac'sary", "Mac'sassey", "Mac'satty", "Mac'saty", "Mac'shedan", "Mac'sheddy", "Mac'sheer", "Mac'sheffy", "Mac'shegan", "Mac'sheggan", "Mac'shegh", "Mac'sheghan", "Mac'sheins", "Mac'shekry", "Mac'shelan", "Mac'shele", "Mac'sheley", "Mac'sheliam", "Mac'shelly", "Mac'shen", "Mac'shenin", "Mac'sheny", "Mac'sheppy", "Mac'shepsey", "Mac'shera", "Mac'sheroy", "Mac'sherrell", "Mac'sherroy", "Mac'shery", "Mac'shessey", "Mac'shetty", "Mac'shety", "Mac'tedan", "Mac'teddy", "Mac'teer", "Mac'teffy", "Mac'tegan", "Mac'teggan", "Mac'tegh", "Mac'teghan", "Mac'teins", "Mac'tekry", "Mac'telan", "Mac'tele", "Mac'teley", "Mac'teliam", "Mac'telly", "Mac'ten", "Mac'tenin", "Mac'teny", "Mac'teppy", "Mac'tepsey", "Mac'tera", "Mac'teroy", "Mac'terrell", "Mac'terroy", "Mac'tery", "Mac'tessey", "Mac'tetty", "Mac'tety", "Mac'toodan", "Mac'tooddy", "Mac'tooer", "Mac'tooffy", "Mac'toogan", "Mac'tooggan", "Mac'toogh", "Mac'tooghan", "Mac'tooins", "Mac'tookry", "Mac'toolan", "Mac'toole", "Mac'tooley", "Mac'tooliam", "Mac'toolly", "Mac'toon", "Mac'toonin", "Mac'toony", "Mac'tooppy", "Mac'toopsey", "Mac'toora", "Mac'tooroy", "Mac'toorrell", "Mac'toorroy", "Mac'toory", "Mac'toossey", "Mac'tootty", "Mac'tooty", "Mac'widan", "Mac'widdy", "Mac'wier", "Mac'wiffy", "Mac'wigan", "Mac'wiggan", "Mac'wigh", "Mac'wighan", "Mac'wiins", "Mac'wikry", "Mac'wilan", "Mac'wile", "Mac'wiley", "Mac'wiliam", "Mac'willy", "Mac'win", "Mac'winin", "Mac'winy", "Mac'wippy", "Mac'wipsey", "Mac'wira", "Mac'wiroy", "Mac'wirrell", "Mac'wirroy", "Mac'wiry", "Mac'wissey", "Mac'witty", "Mac'wity", "Mac'ydan", "Mac'yddy", "Mac'yer", "Mac'yffy", "Mac'ygan", "Mac'yggan", "Mac'ygh", "Mac'yghan", "Mac'yins", "Mac'ykry", "Mac'ylan", "Mac'yle", "Mac'yley", "Mac'yliam", "Mac'ylly", "Mac'yn", "Mac'ynin", "Mac'yny", "Mac'yppy", "Mac'ypsey", "Mac'yra", "Mac'yroy", "Mac'yrrell", "Mac'yrroy", "Mac'yry", "Mac'yssey", "Mac'ytty", "Mac'yty", "Madan", "Maddy", "Maer", "Maffy", "Magan", "Maggan", "Magh", "Maghan", "Mains", "Makry", "Malan", "Male", "Maley", "Maliam", "Mally", "Man", "Manin", "Many", "Mappy", "Mapsey", "Mara", "Maroy", "Marrell", "Marroy", "Mary", "Massey", "Matty", "Maty", "Nadan", "Naddy", "Naer", "Naffy", "Nagan", "Naggan", "Nagh", "Naghan", "Nains", "Nakry", "Nalan", "Nale", "Naley", "Naliam", "Nally", "Nan", "Nanin", "Nany", "Nappy", "Napsey", "Nara", "Naroy", "Narrell", "Narroy", "Nary", "Nassey", "Natty", "Naty", "Nedan", "Neddy", "Neer", "Neffy", "Negan", "Neggan", "Negh", "Neghan", "Neins", "Nekry", "Nelan", "Nele", "Neley", "Neliam", "Nelly", "Nen", "Nenin", "Neny", "Neppy", "Nepsey", "Nera", "Neroy", "Nerrell", "Nerroy", "Nery", "Nessey", "Netty", "Nety", "O'ardan", "O'arddy", "O'arer", "O'arffy", "O'argan", "O'arggan", "O'argh", "O'arghan", "O'arins", "O'arkry", "O'arlan", "O'arle", "O'arley", "O'arliam", "O'arlly", "O'arn", "O'arnin", "O'arny", "O'arppy", "O'arpsey", "O'arra", "O'arroy", "O'arrrell", "O'arrroy", "O'arry", "O'arssey", "O'artty", "O'arty", "O'bidan", "O'biddy", "O'bier", "O'biffy", "O'bigan", "O'biggan", "O'bigh", "O'bighan", "O'biins", "O'bikry", "O'bilan", "O'bile", "O'biley", "O'biliam", "O'billy", "O'bin", "O'binin", "O'biny", "O'bippy", "O'bipsey", "O'bira", "O'biroy", "O'birrell", "O'birroy", "O'biry", "O'bissey", "O'bitty", "O'bity", "O'caudan", "O'cauddy", "O'cauer", "O'cauffy", "O'caugan", "O'cauggan", "O'caugh", "O'caughan", "O'cauins", "O'caukry", "O'caulan", "O'caule", "O'cauley", "O'cauliam", "O'caully", "O'caun", "O'caunin", "O'cauny", "O'cauppy", "O'caupsey", "O'caura", "O'cauroy", "O'caurrell", "O'caurroy", "O'caury", "O'caussey", "O'cautty", "O'cauty", "O'dadan", "O'daddy", "O'daer", "O'daffy", "O'dagan", "O'daggan", "O'dagh", "O'daghan", "O'dains", "O'dakry", "O'dalan", "O'dale", "O'daley", "O'daliam", "O'dally", "O'dan", "O'danin", "O'dany", "O'dappy", "O'dapsey", "O'dara", "O'dardan", "O'darddy", "O'darer", "O'darffy", "O'dargan", "O'darggan", "O'dargh", "O'darghan", "O'darins", "O'darkry", "O'darlan", "O'darle", "O'darley", "O'darliam", "O'darlly", "O'darn", "O'darnin", "O'darny", "O'daroy", "O'darppy", "O'darpsey", "O'darra", "O'darrell", "O'darroy", "O'darrrell", "O'darrroy", "O'darry", "O'darssey", "O'dartty", "O'darty", "O'dary", "O'dassey", "O'datty", "O'daty", "O'doydan", "O'doyddy", "O'doyer", "O'doyffy", "O'doygan", "O'doyggan", "O'doygh", "O'doyghan", "O'doyins", "O'doykry", "O'doylan", "O'doyle", "O'doyley", "O'doyliam", "O'doylly", "O'doyn", "O'doynin", "O'doyny", "O'doyppy", "O'doypsey", "O'doyra", "O'doyroy", "O'doyrrell", "O'doyrroy", "O'doyry", "O'doyssey", "O'doytty", "O'doyty", "O'dudan", "O'duddy", "O'duer", "O'duffy", "O'dugan", "O'duggan", "O'dugh", "O'dughan", "O'duins", "O'dukry", "O'dulan", "O'dule", "O'duley", "O'duliam", "O'dully", "O'dun", "O'dunin", "O'duny", "O'duppy", "O'dupsey", "O'dura", "O'duroy", "O'durrell", "O'durroy", "O'dury", "O'dussey", "O'dutty", "O'duty", "O'gadan", "O'gaddy", "O'gaer", "O'gaffy", "O'gagan", "O'gaggan", "O'gagh", "O'gaghan", "O'gains", "O'gakry", "O'galan", "O'gale", "O'galey", "O'galiam", "O'gally", "O'gan", "O'ganin", "O'gany", "O'gappy", "O'gapsey", "O'gara", "O'garoy", "O'garrell", "O'garroy", "O'gary", "O'gassey", "O'gatty", "O'gaty", "O'jordan", "O'jorddy", "O'jorer", "O'jorffy", "O'jorgan", "O'jorggan", "O'jorgh", "O'jorghan", "O'jorins", "O'jorkry", "O'jorlan", "O'jorle", "O'jorley", "O'jorliam", "O'jorlly", "O'jorn", "O'jornin", "O'jorny", "O'jorppy", "O'jorpsey", "O'jorra", "O'jorroy", "O'jorrrell", "O'jorrroy", "O'jorry", "O'jorssey", "O'jortty", "O'jorty", "O'keadan", "O'keaddy", "O'keaer", "O'keaffy", "O'keagan", "O'keaggan", "O'keagh", "O'keaghan", "O'keains", "O'keakry", "O'kealan", "O'keale", "O'kealey", "O'kealiam", "O'keally", "O'kean", "O'keanin", "O'keany", "O'keappy", "O'keapsey", "O'keara", "O'kearoy", "O'kearrell", "O'kearroy", "O'keary", "O'keassey", "O'keatty", "O'keaty", "O'keedan", "O'keeddy", "O'keeer", "O'keeffy", "O'keegan", "O'keeggan", "O'keegh", "O'keeghan", "O'keeins", "O'keekry", "O'keelan", "O'keele", "O'keeley", "O'keeliam", "O'keelly", "O'keen", "O'keenin", "O'keeny", "O'keeppy", "O'keepsey", "O'keera", "O'keeroy", "O'keerrell", "O'keerroy", "O'keery", "O'keessey", "O'keetty", "O'keety", "O'laudan", "O'lauddy", "O'lauer", "O'lauffy", "O'laugan", "O'lauggan", "O'laugh", "O'laughan", "O'lauins", "O'laukry", "O'laulan", "O'laule", "O'lauley", "O'lauliam", "O'laully", "O'laun", "O'launin", "O'launy", "O'lauppy", "O'laupsey", "O'laura", "O'lauroy", "O'laurrell", "O'laurroy", "O'laury", "O'laussey", "O'lautty", "O'lauty", "O'leadan", "O'leaddy", "O'leaer", "O'leaffy", "O'leagan", "O'leaggan", "O'leagh", "O'leaghan", "O'leains", "O'leakry", "O'lealan", "O'leale", "O'lealey", "O'lealiam", "O'leally", "O'lean", "O'leanin", "O'leany", "O'leappy", "O'leapsey", "O'leara", "O'learoy", "O'learrell", "O'learroy", "O'leary", "O'leassey", "O'leatty", "O'leaty", "O'ledan", "O'leddy", "O'leer", "O'leffy", "O'legan", "O'leggan", "O'legh", "O'leghan", "O'leidan", "O'leiddy", "O'leier", "O'leiffy", "O'leigan", "O'leiggan", "O'leigh", "O'leighan", "O'leiins", "O'leikry", "O'leilan", "O'leile", "O'leiley", "O'leiliam", "O'leilly", "O'lein", "O'leinin", "O'leins", "O'leiny", "O'leippy", "O'leipsey", "O'leira", "O'leiroy", "O'leirrell", "O'leirroy", "O'leiry", "O'leissey", "O'leitty", "O'leity", "O'lekry", "O'lelan", "O'lele", "O'leley", "O'leliam", "O'lelly", "O'len", "O'lenin", "O'leny", "O'leppy", "O'lepsey", "O'lera", "O'leroy", "O'lerrell", "O'lerroy", "O'lery", "O'lessey", "O'letty", "O'lety", "O'lodan", "O'loddy", "O'loer", "O'loffy", "O'logan", "O'loggan", "O'logh", "O'loghan", "O'loins", "O'lokry", "O'lolan", "O'lole", "O'loley", "O'loliam", "O'lolly", "O'lon", "O'lonin", "O'lony", "O'loppy", "O'lopsey", "O'lora", "O'loroy", "O'lorrell", "O'lorroy", "O'lory", "O'lossey", "O'lotty", "O'loty", "O'lyndan", "O'lynddy", "O'lyner", "O'lynffy", "O'lyngan", "O'lynggan", "O'lyngh", "O'lynghan", "O'lynins", "O'lynkry", "O'lynlan", "O'lynle", "O'lynley", "O'lynliam", "O'lynlly", "O'lynn", "O'lynnin", "O'lynny", "O'lynppy", "O'lynpsey", "O'lynra", "O'lynroy", "O'lynrrell", "O'lynrroy", "O'lynry", "O'lynssey", "O'lyntty", "O'lynty", "O'madan", "O'maddy", "O'maer", "O'maffy", "O'magan", "O'maggan", "O'magh", "O'maghan", "O'mains", "O'makry", "O'malan", "O'male", "O'maley", "O'maliam", "O'mally", "O'man", "O'manin", "O'many", "O'mappy", "O'mapsey", "O'mara", "O'maroy", "O'marrell", "O'marroy", "O'mary", "O'massey", "O'matty", "O'maty", "O'nadan", "O'naddy", "O'naer", "O'naffy", "O'nagan", "O'naggan", "O'nagh", "O'naghan", "O'nains", "O'nakry", "O'nalan", "O'nale", "O'naley", "O'naliam", "O'nally", "O'nan", "O'nanin", "O'nany", "O'nappy", "O'napsey", "O'nara", "O'naroy", "O'narrell", "O'narroy", "O'nary", "O'nassey", "O'natty", "O'naty", "O'nedan", "O'neddy", "O'neer", "O'neffy", "O'negan", "O'neggan", "O'negh", "O'neghan", "O'neins", "O'nekry", "O'nelan", "O'nele", "O'neley", "O'neliam", "O'nelly", "O'nen", "O'nenin", "O'neny", "O'neppy", "O'nepsey", "O'nera", "O'neroy", "O'nerrell", "O'nerroy", "O'nery", "O'nessey", "O'netty", "O'nety", "O'peadan", "O'peaddy", "O'peaer", "O'peaffy", "O'peagan", "O'peaggan", "O'peagh", "O'peaghan", "O'peains", "O'peakry", "O'pealan", "O'peale", "O'pealey", "O'pealiam", "O'peally", "O'pean", "O'peanin", "O'peany", "O'peappy", "O'peapsey", "O'peara", "O'pearoy", "O'pearrell", "O'pearroy", "O'peary", "O'peassey", "O'peatty", "O'peaty", "O'reidan", "O'reiddy", "O'reier", "O'reiffy", "O'reigan", "O'reiggan", "O'reigh", "O'reighan", "O'reiins", "O'reikry", "O'reilan", "O'reile", "O'reiley", "O'reiliam", "O'reilly", "O'rein", "O'reinin", "O'reiny", "O'reippy", "O'reipsey", "O'reira", "O'reiroy", "O'reirrell", "O'reirroy", "O'reiry", "O'reissey", "O'reitty", "O'reity", "O'ridan", "O'riddy", "O'rier", "O'riffy", "O'rigan", "O'riggan", "O'righ", "O'righan", "O'riins", "O'rikry", "O'rilan", "O'rile", "O'riley", "O'riliam", "O'rilly", "O'rin", "O'rinin", "O'riny", "O'ripdan", "O'ripddy", "O'riper", "O'ripffy", "O'ripgan", "O'ripggan", "O'ripgh", "O'ripghan", "O'ripins", "O'ripkry", "O'riplan", "O'riple", "O'ripley", "O'ripliam", "O'riplly", "O'ripn", "O'ripnin", "O'ripny", "O'ripppy", "O'rippsey", "O'rippy", "O'ripra", "O'riproy", "O'riprrell", "O'riprroy", "O'ripry", "O'ripsey", "O'ripssey", "O'riptty", "O'ripty", "O'rira", "O'riroy", "O'rirrell", "O'rirroy", "O'riry", "O'rissey", "O'ritty", "O'rity", "O'rodan", "O'roddy", "O'roer", "O'roffy", "O'rogan", "O'roggan", "O'rogh", "O'roghan", "O'roins", "O'rokry", "O'rolan", "O'role", "O'roley", "O'roliam", "O'rolly", "O'ron", "O'ronin", "O'rony", "O'roppy", "O'ropsey", "O'rora", "O'roroy", "O'rorrell", "O'rorroy", "O'rory", "O'rossey", "O'rotty", "O'roty", "O'sadan", "O'saddy", "O'saer", "O'saffy", "O'sagan", "O'saggan", "O'sagh", "O'saghan", "O'sains", "O'sakry", "O'salan", "O'sale", "O'saley", "O'saliam", "O'sally", "O'san", "O'sanin", "O'sany", "O'sappy", "O'sapsey", "O'sara", "O'saroy", "O'sarrell", "O'sarroy", "O'sary", "O'sassey", "O'satty", "O'saty", "O'shedan", "O'sheddy", "O'sheer", "O'sheffy", "O'shegan", "O'sheggan", "O'shegh", "O'sheghan", "O'sheins", "O'shekry", "O'shelan", "O'shele", "O'sheley", "O'sheliam", "O'shelly", "O'shen", "O'shenin", "O'sheny", "O'sheppy", "O'shepsey", "O'shera", "O'sheroy", "O'sherrell", "O'sherroy", "O'shery", "O'shessey", "O'shetty", "O'shety", "O'tedan", "O'teddy", "O'teer", "O'teffy", "O'tegan", "O'teggan", "O'tegh", "O'teghan", "O'teins", "O'tekry", "O'telan", "O'tele", "O'teley", "O'teliam", "O'telly", "O'ten", "O'tenin", "O'teny", "O'teppy", "O'tepsey", "O'tera", "O'teroy", "O'terrell", "O'terroy", "O'tery", "O'tessey", "O'tetty", "O'tety", "O'toodan", "O'tooddy", "O'tooer", "O'tooffy", "O'toogan", "O'tooggan", "O'toogh", "O'tooghan", "O'tooins", "O'tookry", "O'toolan", "O'toole", "O'tooley", "O'tooliam", "O'toolly", "O'toon", "O'toonin", "O'toony", "O'tooppy", "O'toopsey", "O'toora", "O'tooroy", "O'toorrell", "O'toorroy", "O'toory", "O'toossey", "O'tootty", "O'tooty", "O'widan", "O'widdy", "O'wier", "O'wiffy", "O'wigan", "O'wiggan", "O'wigh", "O'wighan", "O'wiins", "O'wikry", "O'wilan", "O'wile", "O'wiley", "O'wiliam", "O'willy", "O'win", "O'winin", "O'winy", "O'wippy", "O'wipsey", "O'wira", "O'wiroy", "O'wirrell", "O'wirroy", "O'wiry", "O'wissey", "O'witty", "O'wity", "O'ydan", "O'yddy", "O'yer", "O'yffy", "O'ygan", "O'yggan", "O'ygh", "O'yghan", "O'yins", "O'ykry", "O'ylan", "O'yle", "O'yley", "O'yliam", "O'ylly", "O'yn", "O'ynin", "O'yny", "O'yppy", "O'ypsey", "O'yra", "O'yroy", "O'yrrell", "O'yrroy", "O'yry", "O'yssey", "O'ytty", "O'yty", "Peadan", "Peaddy", "Peaer", "Peaffy", "Peagan", "Peaggan", "Peagh", "Peaghan", "Peains", "Peakry", "Pealan", "Peale", "Pealey", "Pealiam", "Peally", "Pean", "Peanin", "Peany", "Peappy", "Peapsey", "Peara", "Pearoy", "Pearrell", "Pearroy", "Peary", "Peassey", "Peatty", "Peaty", "Reidan", "Reiddy", "Reier", "Reiffy", "Reigan", "Reiggan", "Reigh", "Reighan", "Reiins", "Reikry", "Reilan", "Reile", "Reiley", "Reiliam", "Reilly", "Rein", "Reinin", "Reiny", "Reippy", "Reipsey", "Reira", "Reiroy", "Reirrell", "Reirroy", "Reiry", "Reissey", "Reitty", "Reity", "Ridan", "Riddy", "Rier", "Riffy", "Rigan", "Riggan", "Righ", "Righan", "Riins", "Rikry", "Rilan", "Rile", "Riley", "Riliam", "Rilly", "Rin", "Rinin", "Riny", "Ripdan", "Ripddy", "Riper", "Ripffy", "Ripgan", "Ripggan", "Ripgh", "Ripghan", "Ripins", "Ripkry", "Riplan", "Riple", "Ripley", "Ripliam", "Riplly", "Ripn", "Ripnin", "Ripny", "Ripppy", "Rippsey", "Rippy", "Ripra", "Riproy", "Riprrell", "Riprroy", "Ripry", "Ripsey", "Ripssey", "Riptty", "Ripty", "Rira", "Riroy", "Rirrell", "Rirroy", "Riry", "Rissey", "Ritty", "Rity", "Rodan", "Roddy", "Roer", "Roffy", "Rogan", "Roggan", "Rogh", "Roghan", "Roins", "Rokry", "Rolan", "Role", "Roley", "Roliam", "Rolly", "Ron", "Ronin", "Rony", "Roppy", "Ropsey", "Rora", "Roroy", "Rorrell", "Rorroy", "Rory", "Rossey", "Rotty", "Roty", "Sadan", "Saddy", "Saer", "Saffy", "Sagan", "Saggan", "Sagh", "Saghan", "Sains", "Sakry", "Salan", "Sale", "Saley", "Saliam", "Sally", "San", "Sanin", "Sany", "Sappy", "Sapsey", "Sara", "Saroy", "Sarrell", "Sarroy", "Sary", "Sassey", "Satty", "Saty", "Shedan", "Sheddy", "Sheer", "Sheffy", "Shegan", "Sheggan", "Shegh", "Sheghan", "Sheins", "Shekry", "Shelan", "Shele", "Sheley", "Sheliam", "Shelly", "Shen", "Shenin", "Sheny", "Sheppy", "Shepsey", "Shera", "Sheroy", "Sherrell", "Sherroy", "Shery", "Shessey", "Shetty", "Shety", "Tedan", "Teddy", "Teer", "Teffy", "Tegan", "Teggan", "Tegh", "Teghan", "Teins", "Tekry", "Telan", "Tele", "Teley", "Teliam", "Telly", "Ten", "Tenin", "Teny", "Teppy", "Tepsey", "Tera", "Teroy", "Terrell", "Terroy", "Tery", "Tessey", "Tetty", "Tety", "Toodan", "Tooddy", "Tooer", "Tooffy", "Toogan", "Tooggan", "Toogh", "Tooghan", "Tooins", "Tookry", "Toolan", "Toole", "Tooley", "Tooliam", "Toolly", "Toon", "Toonin", "Toony", "Tooppy", "Toopsey", "Toora", "Tooroy", "Toorrell", "Toorroy", "Toory", "Toossey", "Tootty", "Tooty", "Widan", "Widdy", "Wier", "Wiffy", "Wigan", "Wiggan", "Wigh", "Wighan", "Wiins", "Wikry", "Wilan", "Wile", "Wiley", "Wiliam", "Willy", "Win", "Winin", "Winy", "Wippy", "Wipsey", "Wira", "Wiroy", "Wirrell", "Wirroy", "Wiry", "Wissey", "Witty", "Wity", "Ydan", "Yddy", "Yer", "Yffy", "Ygan", "Yggan", "Ygh", "Yghan", "Yins", "Ykry", "Ylan", "Yle", "Yley", "Yliam", "Ylly", "Yn", "Ynin", "Yny", "Yppy", "Ypsey", "Yra", "Yroy", "Yrrell", "Yrroy", "Yry", "Yssey", "Ytty", "Yty"}
\ No newline at end of file
+trykerLastNames = {"Ardan", "Arddy", "Arer", "Arffy", "Argan", "Arggan", "Argh", "Arghan", "Arins", "Arkry", "Arlan", "Arle", "Arley", "Arliam", "Arlly", "Arn", "Arnin", "Arny", "Arppy", "Arpsey", "Arra", "Arroy", "Arrrell", "Arrroy", "Arry", "Arssey", "Artty", "Arty", "Ba'ardan", "Ba'arddy", "Ba'arer", "Ba'arffy", "Ba'argan", "Ba'arggan", "Ba'argh", "Ba'arghan", "Ba'arins", "Ba'arkry", "Ba'arlan", "Ba'arle", "Ba'arley", "Ba'arliam", "Ba'arlly", "Ba'arn", "Ba'arnin", "Ba'arny", "Ba'arppy", "Ba'arpsey", "Ba'arra", "Ba'arroy", "Ba'arrrell", "Ba'arrroy", "Ba'arry", "Ba'arssey", "Ba'artty", "Ba'arty", "Ba'bidan", "Ba'biddy", "Ba'bier", "Ba'biffy", "Ba'bigan", "Ba'biggan", "Ba'bigh", "Ba'bighan", "Ba'biins", "Ba'bikry", "Ba'bilan", "Ba'bile", "Ba'biley", "Ba'biliam", "Ba'billy", "Ba'bin", "Ba'binin", "Ba'biny", "Ba'bippy", "Ba'bipsey", "Ba'bira", "Ba'biroy", "Ba'birrell", "Ba'birroy", "Ba'biry", "Ba'bissey", "Ba'bitty", "Ba'bity", "Ba'caudan", "Ba'cauddy", "Ba'cauer", "Ba'cauffy", "Ba'caugan", "Ba'cauggan", "Ba'caugh", "Ba'caughan", "Ba'cauins", "Ba'caukry", "Ba'caulan", "Ba'caule", "Ba'cauley", "Ba'cauliam", "Ba'caully", "Ba'caun", "Ba'caunin", "Ba'cauny", "Ba'cauppy", "Ba'caupsey", "Ba'caura", "Ba'cauroy", "Ba'caurrell", "Ba'caurroy", "Ba'caury", "Ba'caussey", "Ba'cautty", "Ba'cauty", "Ba'dadan", "Ba'daddy", "Ba'daer", "Ba'daffy", "Ba'dagan", "Ba'daggan", "Ba'dagh", "Ba'daghan", "Ba'dains", "Ba'dakry", "Ba'dalan", "Ba'dale", "Ba'daley", "Ba'daliam", "Ba'dally", "Ba'dan", "Ba'danin", "Ba'dany", "Ba'dappy", "Ba'dapsey", "Ba'dara", "Ba'dardan", "Ba'darddy", "Ba'darer", "Ba'darffy", "Ba'dargan", "Ba'darggan", "Ba'dargh", "Ba'darghan", "Ba'darins", "Ba'darkry", "Ba'darlan", "Ba'darle", "Ba'darley", "Ba'darliam", "Ba'darlly", "Ba'darn", "Ba'darnin", "Ba'darny", "Ba'daroy", "Ba'darppy", "Ba'darpsey", "Ba'darra", "Ba'darrell", "Ba'darroy", "Ba'darrrell", "Ba'darrroy", "Ba'darry", "Ba'darssey", "Ba'dartty", "Ba'darty", "Ba'dary", "Ba'dassey", "Ba'datty", "Ba'daty", "Ba'doydan", "Ba'doyddy", "Ba'doyer", "Ba'doyffy", "Ba'doygan", "Ba'doyggan", "Ba'doygh", "Ba'doyghan", "Ba'doyins", "Ba'doykry", "Ba'doylan", "Ba'doyle", "Ba'doyley", "Ba'doyliam", "Ba'doylly", "Ba'doyn", "Ba'doynin", "Ba'doyny", "Ba'doyppy", "Ba'doypsey", "Ba'doyra", "Ba'doyroy", "Ba'doyrrell", "Ba'doyrroy", "Ba'doyry", "Ba'doyssey", "Ba'doytty", "Ba'doyty", "Ba'dudan", "Ba'duddy", "Ba'duer", "Ba'duffy", "Ba'dugan", "Ba'duggan", "Ba'dugh", "Ba'dughan", "Ba'duins", "Ba'dukry", "Ba'dulan", "Ba'dule", "Ba'duley", "Ba'duliam", "Ba'dully", "Ba'dun", "Ba'dunin", "Ba'duny", "Ba'duppy", "Ba'dupsey", "Ba'dura", "Ba'duroy", "Ba'durrell", "Ba'durroy", "Ba'dury", "Ba'dussey", "Ba'dutty", "Ba'duty", "Ba'gadan", "Ba'gaddy", "Ba'gaer", "Ba'gaffy", "Ba'gagan", "Ba'gaggan", "Ba'gagh", "Ba'gaghan", "Ba'gains", "Ba'gakry", "Ba'galan", "Ba'gale", "Ba'galey", "Ba'galiam", "Ba'gally", "Ba'gan", "Ba'ganin", "Ba'gany", "Ba'gappy", "Ba'gapsey", "Ba'gara", "Ba'garoy", "Ba'garrell", "Ba'garroy", "Ba'gary", "Ba'gassey", "Ba'gatty", "Ba'gaty", "Ba'jordan", "Ba'jorddy", "Ba'jorer", "Ba'jorffy", "Ba'jorgan", "Ba'jorggan", "Ba'jorgh", "Ba'jorghan", "Ba'jorins", "Ba'jorkry", "Ba'jorlan", "Ba'jorle", "Ba'jorley", "Ba'jorliam", "Ba'jorlly", "Ba'jorn", "Ba'jornin", "Ba'jorny", "Ba'jorppy", "Ba'jorpsey", "Ba'jorra", "Ba'jorroy", "Ba'jorrrell", "Ba'jorrroy", "Ba'jorry", "Ba'jorssey", "Ba'jortty", "Ba'jorty", "Ba'keadan", "Ba'keaddy", "Ba'keaer", "Ba'keaffy", "Ba'keagan", "Ba'keaggan", "Ba'keagh", "Ba'keaghan", "Ba'keains", "Ba'keakry", "Ba'kealan", "Ba'keale", "Ba'kealey", "Ba'kealiam", "Ba'keally", "Ba'kean", "Ba'keanin", "Ba'keany", "Ba'keappy", "Ba'keapsey", "Ba'keara", "Ba'kearoy", "Ba'kearrell", "Ba'kearroy", "Ba'keary", "Ba'keassey", "Ba'keatty", "Ba'keaty", "Ba'keedan", "Ba'keeddy", "Ba'keeer", "Ba'keeffy", "Ba'keegan", "Ba'keeggan", "Ba'keegh", "Ba'keeghan", "Ba'keeins", "Ba'keekry", "Ba'keelan", "Ba'keele", "Ba'keeley", "Ba'keeliam", "Ba'keelly", "Ba'keen", "Ba'keenin", "Ba'keeny", "Ba'keeppy", "Ba'keepsey", "Ba'keera", "Ba'keeroy", "Ba'keerrell", "Ba'keerroy", "Ba'keery", "Ba'keessey", "Ba'keetty", "Ba'keety", "Ba'laudan", "Ba'lauddy", "Ba'lauer", "Ba'lauffy", "Ba'laugan", "Ba'lauggan", "Ba'laugh", "Ba'laughan", "Ba'lauins", "Ba'laukry", "Ba'laulan", "Ba'laule", "Ba'lauley", "Ba'lauliam", "Ba'laully", "Ba'laun", "Ba'launin", "Ba'launy", "Ba'lauppy", "Ba'laupsey", "Ba'laura", "Ba'lauroy", "Ba'laurrell", "Ba'laurroy", "Ba'laury", "Ba'laussey", "Ba'lautty", "Ba'lauty", "Ba'leadan", "Ba'leaddy", "Ba'leaer", "Ba'leaffy", "Ba'leagan", "Ba'leaggan", "Ba'leagh", "Ba'leaghan", "Ba'leains", "Ba'leakry", "Ba'lealan", "Ba'leale", "Ba'lealey", "Ba'lealiam", "Ba'leally", "Ba'lean", "Ba'leanin", "Ba'leany", "Ba'leappy", "Ba'leapsey", "Ba'leara", "Ba'learoy", "Ba'learrell", "Ba'learroy", "Ba'leary", "Ba'leassey", "Ba'leatty", "Ba'leaty", "Ba'ledan", "Ba'leddy", "Ba'leer", "Ba'leffy", "Ba'legan", "Ba'leggan", "Ba'legh", "Ba'leghan", "Ba'leidan", "Ba'leiddy", "Ba'leier", "Ba'leiffy", "Ba'leigan", "Ba'leiggan", "Ba'leigh", "Ba'leighan", "Ba'leiins", "Ba'leikry", "Ba'leilan", "Ba'leile", "Ba'leiley", "Ba'leiliam", "Ba'leilly", "Ba'lein", "Ba'leinin", "Ba'leins", "Ba'leiny", "Ba'leippy", "Ba'leipsey", "Ba'leira", "Ba'leiroy", "Ba'leirrell", "Ba'leirroy", "Ba'leiry", "Ba'leissey", "Ba'leitty", "Ba'leity", "Ba'lekry", "Ba'lelan", "Ba'lele", "Ba'leley", "Ba'leliam", "Ba'lelly", "Ba'len", "Ba'lenin", "Ba'leny", "Ba'leppy", "Ba'lepsey", "Ba'lera", "Ba'leroy", "Ba'lerrell", "Ba'lerroy", "Ba'lery", "Ba'lessey", "Ba'letty", "Ba'lety", "Ba'lodan", "Ba'loddy", "Ba'loer", "Ba'loffy", "Ba'logan", "Ba'loggan", "Ba'logh", "Ba'loghan", "Ba'loins", "Ba'lokry", "Ba'lolan", "Ba'lole", "Ba'loley", "Ba'loliam", "Ba'lolly", "Ba'lon", "Ba'lonin", "Ba'lony", "Ba'loppy", "Ba'lopsey", "Ba'lora", "Ba'loroy", "Ba'lorrell", "Ba'lorroy", "Ba'lory", "Ba'lossey", "Ba'lotty", "Ba'loty", "Ba'lyndan", "Ba'lynddy", "Ba'lyner", "Ba'lynffy", "Ba'lyngan", "Ba'lynggan", "Ba'lyngh", "Ba'lynghan", "Ba'lynins", "Ba'lynkry", "Ba'lynlan", "Ba'lynle", "Ba'lynley", "Ba'lynliam", "Ba'lynlly", "Ba'lynn", "Ba'lynnin", "Ba'lynny", "Ba'lynppy", "Ba'lynpsey", "Ba'lynra", "Ba'lynroy", "Ba'lynrrell", "Ba'lynrroy", "Ba'lynry", "Ba'lynssey", "Ba'lyntty", "Ba'lynty", "Ba'madan", "Ba'maddy", "Ba'maer", "Ba'maffy", "Ba'magan", "Ba'maggan", "Ba'magh", "Ba'maghan", "Ba'mains", "Ba'makry", "Ba'malan", "Ba'male", "Ba'maley", "Ba'maliam", "Ba'mally", "Ba'man", "Ba'manin", "Ba'many", "Ba'mappy", "Ba'mapsey", "Ba'mara", "Ba'maroy", "Ba'marrell", "Ba'marroy", "Ba'mary", "Ba'massey", "Ba'matty", "Ba'maty", "Ba'nadan", "Ba'naddy", "Ba'naer", "Ba'naffy", "Ba'nagan", "Ba'naggan", "Ba'nagh", "Ba'naghan", "Ba'nains", "Ba'nakry", "Ba'nalan", "Ba'nale", "Ba'naley", "Ba'naliam", "Ba'nally", "Ba'nan", "Ba'nanin", "Ba'nany", "Ba'nappy", "Ba'napsey", "Ba'nara", "Ba'naroy", "Ba'narrell", "Ba'narroy", "Ba'nary", "Ba'nassey", "Ba'natty", "Ba'naty", "Ba'nedan", "Ba'neddy", "Ba'neer", "Ba'neffy", "Ba'negan", "Ba'neggan", "Ba'negh", "Ba'neghan", "Ba'neins", "Ba'nekry", "Ba'nelan", "Ba'nele", "Ba'neley", "Ba'neliam", "Ba'nelly", "Ba'nen", "Ba'nenin", "Ba'neny", "Ba'neppy", "Ba'nepsey", "Ba'nera", "Ba'neroy", "Ba'nerrell", "Ba'nerroy", "Ba'nery", "Ba'nessey", "Ba'netty", "Ba'nety", "Ba'peadan", "Ba'peaddy", "Ba'peaer", "Ba'peaffy", "Ba'peagan", "Ba'peaggan", "Ba'peagh", "Ba'peaghan", "Ba'peains", "Ba'peakry", "Ba'pealan", "Ba'peale", "Ba'pealey", "Ba'pealiam", "Ba'peally", "Ba'pean", "Ba'peanin", "Ba'peany", "Ba'peappy", "Ba'peapsey", "Ba'peara", "Ba'pearoy", "Ba'pearrell", "Ba'pearroy", "Ba'peary", "Ba'peassey", "Ba'peatty", "Ba'peaty", "Ba'reidan", "Ba'reiddy", "Ba'reier", "Ba'reiffy", "Ba'reigan", "Ba'reiggan", "Ba'reigh", "Ba'reighan", "Ba'reiins", "Ba'reikry", "Ba'reilan", "Ba'reile", "Ba'reiley", "Ba'reiliam", "Ba'reilly", "Ba'rein", "Ba'reinin", "Ba'reiny", "Ba'reippy", "Ba'reipsey", "Ba'reira", "Ba'reiroy", "Ba'reirrell", "Ba'reirroy", "Ba'reiry", "Ba'reissey", "Ba'reitty", "Ba'reity", "Ba'ridan", "Ba'riddy", "Ba'rier", "Ba'riffy", "Ba'rigan", "Ba'riggan", "Ba'righ", "Ba'righan", "Ba'riins", "Ba'rikry", "Ba'rilan", "Ba'rile", "Ba'riley", "Ba'riliam", "Ba'rilly", "Ba'rin", "Ba'rinin", "Ba'riny", "Ba'ripdan", "Ba'ripddy", "Ba'riper", "Ba'ripffy", "Ba'ripgan", "Ba'ripggan", "Ba'ripgh", "Ba'ripghan", "Ba'ripins", "Ba'ripkry", "Ba'riplan", "Ba'riple", "Ba'ripley", "Ba'ripliam", "Ba'riplly", "Ba'ripn", "Ba'ripnin", "Ba'ripny", "Ba'ripppy", "Ba'rippsey", "Ba'rippy", "Ba'ripra", "Ba'riproy", "Ba'riprrell", "Ba'riprroy", "Ba'ripry", "Ba'ripsey", "Ba'ripssey", "Ba'riptty", "Ba'ripty", "Ba'rira", "Ba'riroy", "Ba'rirrell", "Ba'rirroy", "Ba'riry", "Ba'rissey", "Ba'ritty", "Ba'rity", "Ba'rodan", "Ba'roddy", "Ba'roer", "Ba'roffy", "Ba'rogan", "Ba'roggan", "Ba'rogh", "Ba'roghan", "Ba'roins", "Ba'rokry", "Ba'rolan", "Ba'role", "Ba'roley", "Ba'roliam", "Ba'rolly", "Ba'ron", "Ba'ronin", "Ba'rony", "Ba'roppy", "Ba'ropsey", "Ba'rora", "Ba'roroy", "Ba'rorrell", "Ba'rorroy", "Ba'rory", "Ba'rossey", "Ba'rotty", "Ba'roty", "Ba'sadan", "Ba'saddy", "Ba'saer", "Ba'saffy", "Ba'sagan", "Ba'saggan", "Ba'sagh", "Ba'saghan", "Ba'sains", "Ba'sakry", "Ba'salan", "Ba'sale", "Ba'saley", "Ba'saliam", "Ba'sally", "Ba'san", "Ba'sanin", "Ba'sany", "Ba'sappy", "Ba'sapsey", "Ba'sara", "Ba'saroy", "Ba'sarrell", "Ba'sarroy", "Ba'sary", "Ba'sassey", "Ba'satty", "Ba'saty", "Ba'shedan", "Ba'sheddy", "Ba'sheer", "Ba'sheffy", "Ba'shegan", "Ba'sheggan", "Ba'shegh", "Ba'sheghan", "Ba'sheins", "Ba'shekry", "Ba'shelan", "Ba'shele", "Ba'sheley", "Ba'sheliam", "Ba'shelly", "Ba'shen", "Ba'shenin", "Ba'sheny", "Ba'sheppy", "Ba'shepsey", "Ba'shera", "Ba'sheroy", "Ba'sherrell", "Ba'sherroy", "Ba'shery", "Ba'shessey", "Ba'shetty", "Ba'shety", "Ba'tedan", "Ba'teddy", "Ba'teer", "Ba'teffy", "Ba'tegan", "Ba'teggan", "Ba'tegh", "Ba'teghan", "Ba'teins", "Ba'tekry", "Ba'telan", "Ba'tele", "Ba'teley", "Ba'teliam", "Ba'telly", "Ba'ten", "Ba'tenin", "Ba'teny", "Ba'teppy", "Ba'tepsey", "Ba'tera", "Ba'teroy", "Ba'terrell", "Ba'terroy", "Ba'tery", "Ba'tessey", "Ba'tetty", "Ba'tety", "Ba'toodan", "Ba'tooddy", "Ba'tooer", "Ba'tooffy", "Ba'toogan", "Ba'tooggan", "Ba'toogh", "Ba'tooghan", "Ba'tooins", "Ba'tookry", "Ba'toolan", "Ba'toole", "Ba'tooley", "Ba'tooliam", "Ba'toolly", "Ba'toon", "Ba'toonin", "Ba'toony", "Ba'tooppy", "Ba'toopsey", "Ba'toora", "Ba'tooroy", "Ba'toorrell", "Ba'toorroy", "Ba'toory", "Ba'toossey", "Ba'tootty", "Ba'tooty", "Ba'widan", "Ba'widdy", "Ba'wier", "Ba'wiffy", "Ba'wigan", "Ba'wiggan", "Ba'wigh", "Ba'wighan", "Ba'wiins", "Ba'wikry", "Ba'wilan", "Ba'wile", "Ba'wiley", "Ba'wiliam", "Ba'willy", "Ba'win", "Ba'winin", "Ba'winy", "Ba'wippy", "Ba'wipsey", "Ba'wira", "Ba'wiroy", "Ba'wirrell", "Ba'wirroy", "Ba'wiry", "Ba'wissey", "Ba'witty", "Ba'wity", "Ba'ydan", "Ba'yddy", "Ba'yer", "Ba'yffy", "Ba'ygan", "Ba'yggan", "Ba'ygh", "Ba'yghan", "Ba'yins", "Ba'ykry", "Ba'ylan", "Ba'yle", "Ba'yley", "Ba'yliam", "Ba'ylly", "Ba'yn", "Ba'ynin", "Ba'yny", "Ba'yppy", "Ba'ypsey", "Ba'yra", "Ba'yroy", "Ba'yrrell", "Ba'yrroy", "Ba'yry", "Ba'yssey", "Ba'ytty", "Ba'yty", "Be'ardan", "Be'arddy", "Be'arer", "Be'arffy", "Be'argan", "Be'arggan", "Be'argh", "Be'arghan", "Be'arins", "Be'arkry", "Be'arlan", "Be'arle", "Be'arley", "Be'arliam", "Be'arlly", "Be'arn", "Be'arnin", "Be'arny", "Be'arppy", "Be'arpsey", "Be'arra", "Be'arroy", "Be'arrrell", "Be'arrroy", "Be'arry", "Be'arssey", "Be'artty", "Be'arty", "Be'bidan", "Be'biddy", "Be'bier", "Be'biffy", "Be'bigan", "Be'biggan", "Be'bigh", "Be'bighan", "Be'biins", "Be'bikry", "Be'bilan", "Be'bile", "Be'biley", "Be'biliam", "Be'billy", "Be'bin", "Be'binin", "Be'biny", "Be'bippy", "Be'bipsey", "Be'bira", "Be'biroy", "Be'birrell", "Be'birroy", "Be'biry", "Be'bissey", "Be'bitty", "Be'bity", "Be'caudan", "Be'cauddy", "Be'cauer", "Be'cauffy", "Be'caugan", "Be'cauggan", "Be'caugh", "Be'caughan", "Be'cauins", "Be'caukry", "Be'caulan", "Be'caule", "Be'cauley", "Be'cauliam", "Be'caully", "Be'caun", "Be'caunin", "Be'cauny", "Be'cauppy", "Be'caupsey", "Be'caura", "Be'cauroy", "Be'caurrell", "Be'caurroy", "Be'caury", "Be'caussey", "Be'cautty", "Be'cauty", "Be'dadan", "Be'daddy", "Be'daer", "Be'daffy", "Be'dagan", "Be'daggan", "Be'dagh", "Be'daghan", "Be'dains", "Be'dakry", "Be'dalan", "Be'dale", "Be'daley", "Be'daliam", "Be'dally", "Be'dan", "Be'danin", "Be'dany", "Be'dappy", "Be'dapsey", "Be'dara", "Be'dardan", "Be'darddy", "Be'darer", "Be'darffy", "Be'dargan", "Be'darggan", "Be'dargh", "Be'darghan", "Be'darins", "Be'darkry", "Be'darlan", "Be'darle", "Be'darley", "Be'darliam", "Be'darlly", "Be'darn", "Be'darnin", "Be'darny", "Be'daroy", "Be'darppy", "Be'darpsey", "Be'darra", "Be'darrell", "Be'darroy", "Be'darrrell", "Be'darrroy", "Be'darry", "Be'darssey", "Be'dartty", "Be'darty", "Be'dary", "Be'dassey", "Be'datty", "Be'daty", "Be'doydan", "Be'doyddy", "Be'doyer", "Be'doyffy", "Be'doygan", "Be'doyggan", "Be'doygh", "Be'doyghan", "Be'doyins", "Be'doykry", "Be'doylan", "Be'doyle", "Be'doyley", "Be'doyliam", "Be'doylly", "Be'doyn", "Be'doynin", "Be'doyny", "Be'doyppy", "Be'doypsey", "Be'doyra", "Be'doyroy", "Be'doyrrell", "Be'doyrroy", "Be'doyry", "Be'doyssey", "Be'doytty", "Be'doyty", "Be'dudan", "Be'duddy", "Be'duer", "Be'duffy", "Be'dugan", "Be'duggan", "Be'dugh", "Be'dughan", "Be'duins", "Be'dukry", "Be'dulan", "Be'dule", "Be'duley", "Be'duliam", "Be'dully", "Be'dun", "Be'dunin", "Be'duny", "Be'duppy", "Be'dupsey", "Be'dura", "Be'duroy", "Be'durrell", "Be'durroy", "Be'dury", "Be'dussey", "Be'dutty", "Be'duty", "Be'gadan", "Be'gaddy", "Be'gaer", "Be'gaffy", "Be'gagan", "Be'gaggan", "Be'gagh", "Be'gaghan", "Be'gains", "Be'gakry", "Be'galan", "Be'gale", "Be'galey", "Be'galiam", "Be'gally", "Be'gan", "Be'ganin", "Be'gany", "Be'gappy", "Be'gapsey", "Be'gara", "Be'garoy", "Be'garrell", "Be'garroy", "Be'gary", "Be'gassey", "Be'gatty", "Be'gaty", "Be'jordan", "Be'jorddy", "Be'jorer", "Be'jorffy", "Be'jorgan", "Be'jorggan", "Be'jorgh", "Be'jorghan", "Be'jorins", "Be'jorkry", "Be'jorlan", "Be'jorle", "Be'jorley", "Be'jorliam", "Be'jorlly", "Be'jorn", "Be'jornin", "Be'jorny", "Be'jorppy", "Be'jorpsey", "Be'jorra", "Be'jorroy", "Be'jorrrell", "Be'jorrroy", "Be'jorry", "Be'jorssey", "Be'jortty", "Be'jorty", "Be'keadan", "Be'keaddy", "Be'keaer", "Be'keaffy", "Be'keagan", "Be'keaggan", "Be'keagh", "Be'keaghan", "Be'keains", "Be'keakry", "Be'kealan", "Be'keale", "Be'kealey", "Be'kealiam", "Be'keally", "Be'kean", "Be'keanin", "Be'keany", "Be'keappy", "Be'keapsey", "Be'keara", "Be'kearoy", "Be'kearrell", "Be'kearroy", "Be'keary", "Be'keassey", "Be'keatty", "Be'keaty", "Be'keedan", "Be'keeddy", "Be'keeer", "Be'keeffy", "Be'keegan", "Be'keeggan", "Be'keegh", "Be'keeghan", "Be'keeins", "Be'keekry", "Be'keelan", "Be'keele", "Be'keeley", "Be'keeliam", "Be'keelly", "Be'keen", "Be'keenin", "Be'keeny", "Be'keeppy", "Be'keepsey", "Be'keera", "Be'keeroy", "Be'keerrell", "Be'keerroy", "Be'keery", "Be'keessey", "Be'keetty", "Be'keety", "Be'laudan", "Be'lauddy", "Be'lauer", "Be'lauffy", "Be'laugan", "Be'lauggan", "Be'laugh", "Be'laughan", "Be'lauins", "Be'laukry", "Be'laulan", "Be'laule", "Be'lauley", "Be'lauliam", "Be'laully", "Be'laun", "Be'launin", "Be'launy", "Be'lauppy", "Be'laupsey", "Be'laura", "Be'lauroy", "Be'laurrell", "Be'laurroy", "Be'laury", "Be'laussey", "Be'lautty", "Be'lauty", "Be'leadan", "Be'leaddy", "Be'leaer", "Be'leaffy", "Be'leagan", "Be'leaggan", "Be'leagh", "Be'leaghan", "Be'leains", "Be'leakry", "Be'lealan", "Be'leale", "Be'lealey", "Be'lealiam", "Be'leally", "Be'lean", "Be'leanin", "Be'leany", "Be'leappy", "Be'leapsey", "Be'leara", "Be'learoy", "Be'learrell", "Be'learroy", "Be'leary", "Be'leassey", "Be'leatty", "Be'leaty", "Be'ledan", "Be'leddy", "Be'leer", "Be'leffy", "Be'legan", "Be'leggan", "Be'legh", "Be'leghan", "Be'leidan", "Be'leiddy", "Be'leier", "Be'leiffy", "Be'leigan", "Be'leiggan", "Be'leigh", "Be'leighan", "Be'leiins", "Be'leikry", "Be'leilan", "Be'leile", "Be'leiley", "Be'leiliam", "Be'leilly", "Be'lein", "Be'leinin", "Be'leins", "Be'leiny", "Be'leippy", "Be'leipsey", "Be'leira", "Be'leiroy", "Be'leirrell", "Be'leirroy", "Be'leiry", "Be'leissey", "Be'leitty", "Be'leity", "Be'lekry", "Be'lelan", "Be'lele", "Be'leley", "Be'leliam", "Be'lelly", "Be'len", "Be'lenin", "Be'leny", "Be'leppy", "Be'lepsey", "Be'lera", "Be'leroy", "Be'lerrell", "Be'lerroy", "Be'lery", "Be'lessey", "Be'letty", "Be'lety", "Be'lodan", "Be'loddy", "Be'loer", "Be'loffy", "Be'logan", "Be'loggan", "Be'logh", "Be'loghan", "Be'loins", "Be'lokry", "Be'lolan", "Be'lole", "Be'loley", "Be'loliam", "Be'lolly", "Be'lon", "Be'lonin", "Be'lony", "Be'loppy", "Be'lopsey", "Be'lora", "Be'loroy", "Be'lorrell", "Be'lorroy", "Be'lory", "Be'lossey", "Be'lotty", "Be'loty", "Be'lyndan", "Be'lynddy", "Be'lyner", "Be'lynffy", "Be'lyngan", "Be'lynggan", "Be'lyngh", "Be'lynghan", "Be'lynins", "Be'lynkry", "Be'lynlan", "Be'lynle", "Be'lynley", "Be'lynliam", "Be'lynlly", "Be'lynn", "Be'lynnin", "Be'lynny", "Be'lynppy", "Be'lynpsey", "Be'lynra", "Be'lynroy", "Be'lynrrell", "Be'lynrroy", "Be'lynry", "Be'lynssey", "Be'lyntty", "Be'lynty", "Be'madan", "Be'maddy", "Be'maer", "Be'maffy", "Be'magan", "Be'maggan", "Be'magh", "Be'maghan", "Be'mains", "Be'makry", "Be'malan", "Be'male", "Be'maley", "Be'maliam", "Be'mally", "Be'man", "Be'manin", "Be'many", "Be'mappy", "Be'mapsey", "Be'mara", "Be'maroy", "Be'marrell", "Be'marroy", "Be'mary", "Be'massey", "Be'matty", "Be'maty", "Be'nadan", "Be'naddy", "Be'naer", "Be'naffy", "Be'nagan", "Be'naggan", "Be'nagh", "Be'naghan", "Be'nains", "Be'nakry", "Be'nalan", "Be'nale", "Be'naley", "Be'naliam", "Be'nally", "Be'nan", "Be'nanin", "Be'nany", "Be'nappy", "Be'napsey", "Be'nara", "Be'naroy", "Be'narrell", "Be'narroy", "Be'nary", "Be'nassey", "Be'natty", "Be'naty", "Be'nedan", "Be'neddy", "Be'neer", "Be'neffy", "Be'negan", "Be'neggan", "Be'negh", "Be'neghan", "Be'neins", "Be'nekry", "Be'nelan", "Be'nele", "Be'neley", "Be'neliam", "Be'nelly", "Be'nen", "Be'nenin", "Be'neny", "Be'neppy", "Be'nepsey", "Be'nera", "Be'neroy", "Be'nerrell", "Be'nerroy", "Be'nery", "Be'nessey", "Be'netty", "Be'nety", "Be'peadan", "Be'peaddy", "Be'peaer", "Be'peaffy", "Be'peagan", "Be'peaggan", "Be'peagh", "Be'peaghan", "Be'peains", "Be'peakry", "Be'pealan", "Be'peale", "Be'pealey", "Be'pealiam", "Be'peally", "Be'pean", "Be'peanin", "Be'peany", "Be'peappy", "Be'peapsey", "Be'peara", "Be'pearoy", "Be'pearrell", "Be'pearroy", "Be'peary", "Be'peassey", "Be'peatty", "Be'peaty", "Be'reidan", "Be'reiddy", "Be'reier", "Be'reiffy", "Be'reigan", "Be'reiggan", "Be'reigh", "Be'reighan", "Be'reiins", "Be'reikry", "Be'reilan", "Be'reile", "Be'reiley", "Be'reiliam", "Be'reilly", "Be'rein", "Be'reinin", "Be'reiny", "Be'reippy", "Be'reipsey", "Be'reira", "Be'reiroy", "Be'reirrell", "Be'reirroy", "Be'reiry", "Be'reissey", "Be'reitty", "Be'reity", "Be'ridan", "Be'riddy", "Be'rier", "Be'riffy", "Be'rigan", "Be'riggan", "Be'righ", "Be'righan", "Be'riins", "Be'rikry", "Be'rilan", "Be'rile", "Be'riley", "Be'riliam", "Be'rilly", "Be'rin", "Be'rinin", "Be'riny", "Be'ripdan", "Be'ripddy", "Be'riper", "Be'ripffy", "Be'ripgan", "Be'ripggan", "Be'ripgh", "Be'ripghan", "Be'ripins", "Be'ripkry", "Be'riplan", "Be'riple", "Be'ripley", "Be'ripliam", "Be'riplly", "Be'ripn", "Be'ripnin", "Be'ripny", "Be'ripppy", "Be'rippsey", "Be'rippy", "Be'ripra", "Be'riproy", "Be'riprrell", "Be'riprroy", "Be'ripry", "Be'ripsey", "Be'ripssey", "Be'riptty", "Be'ripty", "Be'rira", "Be'riroy", "Be'rirrell", "Be'rirroy", "Be'riry", "Be'rissey", "Be'ritty", "Be'rity", "Be'rodan", "Be'roddy", "Be'roer", "Be'roffy", "Be'rogan", "Be'roggan", "Be'rogh", "Be'roghan", "Be'roins", "Be'rokry", "Be'rolan", "Be'role", "Be'roley", "Be'roliam", "Be'rolly", "Be'ron", "Be'ronin", "Be'rony", "Be'roppy", "Be'ropsey", "Be'rora", "Be'roroy", "Be'rorrell", "Be'rorroy", "Be'rory", "Be'rossey", "Be'rotty", "Be'roty", "Be'sadan", "Be'saddy", "Be'saer", "Be'saffy", "Be'sagan", "Be'saggan", "Be'sagh", "Be'saghan", "Be'sains", "Be'sakry", "Be'salan", "Be'sale", "Be'saley", "Be'saliam", "Be'sally", "Be'san", "Be'sanin", "Be'sany", "Be'sappy", "Be'sapsey", "Be'sara", "Be'saroy", "Be'sarrell", "Be'sarroy", "Be'sary", "Be'sassey", "Be'satty", "Be'saty", "Be'shedan", "Be'sheddy", "Be'sheer", "Be'sheffy", "Be'shegan", "Be'sheggan", "Be'shegh", "Be'sheghan", "Be'sheins", "Be'shekry", "Be'shelan", "Be'shele", "Be'sheley", "Be'sheliam", "Be'shelly", "Be'shen", "Be'shenin", "Be'sheny", "Be'sheppy", "Be'shepsey", "Be'shera", "Be'sheroy", "Be'sherrell", "Be'sherroy", "Be'shery", "Be'shessey", "Be'shetty", "Be'shety", "Be'tedan", "Be'teddy", "Be'teer", "Be'teffy", "Be'tegan", "Be'teggan", "Be'tegh", "Be'teghan", "Be'teins", "Be'tekry", "Be'telan", "Be'tele", "Be'teley", "Be'teliam", "Be'telly", "Be'ten", "Be'tenin", "Be'teny", "Be'teppy", "Be'tepsey", "Be'tera", "Be'teroy", "Be'terrell", "Be'terroy", "Be'tery", "Be'tessey", "Be'tetty", "Be'tety", "Be'toodan", "Be'tooddy", "Be'tooer", "Be'tooffy", "Be'toogan", "Be'tooggan", "Be'toogh", "Be'tooghan", "Be'tooins", "Be'tookry", "Be'toolan", "Be'toole", "Be'tooley", "Be'tooliam", "Be'toolly", "Be'toon", "Be'toonin", "Be'toony", "Be'tooppy", "Be'toopsey", "Be'toora", "Be'tooroy", "Be'toorrell", "Be'toorroy", "Be'toory", "Be'toossey", "Be'tootty", "Be'tooty", "Be'widan", "Be'widdy", "Be'wier", "Be'wiffy", "Be'wigan", "Be'wiggan", "Be'wigh", "Be'wighan", "Be'wiins", "Be'wikry", "Be'wilan", "Be'wile", "Be'wiley", "Be'wiliam", "Be'willy", "Be'win", "Be'winin", "Be'winy", "Be'wippy", "Be'wipsey", "Be'wira", "Be'wiroy", "Be'wirrell", "Be'wirroy", "Be'wiry", "Be'wissey", "Be'witty", "Be'wity", "Be'ydan", "Be'yddy", "Be'yer", "Be'yffy", "Be'ygan", "Be'yggan", "Be'ygh", "Be'yghan", "Be'yins", "Be'ykry", "Be'ylan", "Be'yle", "Be'yley", "Be'yliam", "Be'ylly", "Be'yn", "Be'ynin", "Be'yny", "Be'yppy", "Be'ypsey", "Be'yra", "Be'yroy", "Be'yrrell", "Be'yrroy", "Be'yry", "Be'yssey", "Be'ytty", "Be'yty", "Bidan", "Biddy", "Bier", "Biffy", "Bigan", "Biggan", "Bigh", "Bighan", "Biins", "Bikry", "Bilan", "Bile", "Biley", "Biliam", "Billy", "Bin", "Binin", "Biny", "Bippy", "Bipsey", "Bira", "Biroy", "Birrell", "Birroy", "Biry", "Bissey", "Bitty", "Bity", "Caudan", "Cauddy", "Cauer", "Cauffy", "Caugan", "Cauggan", "Caugh", "Caughan", "Cauins", "Caukry", "Caulan", "Caule", "Cauley", "Cauliam", "Caully", "Caun", "Caunin", "Cauny", "Cauppy", "Caupsey", "Caura", "Cauroy", "Caurrell", "Caurroy", "Caury", "Caussey", "Cautty", "Cauty", "Dadan", "Daddy", "Daer", "Daffy", "Dagan", "Daggan", "Dagh", "Daghan", "Dains", "Dakry", "Dalan", "Dale", "Daley", "Daliam", "Dally", "Dan", "Danin", "Dany", "Dappy", "Dapsey", "Dara", "Dardan", "Darddy", "Darer", "Darffy", "Dargan", "Darggan", "Dargh", "Darghan", "Darins", "Darkry", "Darlan", "Darle", "Darley", "Darliam", "Darlly", "Darn", "Darnin", "Darny", "Daroy", "Darppy", "Darpsey", "Darra", "Darrell", "Darroy", "Darrrell", "Darrroy", "Darry", "Darssey", "Dartty", "Darty", "Dary", "Dassey", "Datty", "Daty", "Doydan", "Doyddy", "Doyer", "Doyffy", "Doygan", "Doyggan", "Doygh", "Doyghan", "Doyins", "Doykry", "Doylan", "Doyle", "Doyley", "Doyliam", "Doylly", "Doyn", "Doynin", "Doyny", "Doyppy", "Doypsey", "Doyra", "Doyroy", "Doyrrell", "Doyrroy", "Doyry", "Doyssey", "Doytty", "Doyty", "Dudan", "Duddy", "Duer", "Duffy", "Dugan", "Duggan", "Dugh", "Dughan", "Duins", "Dukry", "Dulan", "Dule", "Duley", "Duliam", "Dully", "Dun", "Dunin", "Duny", "Duppy", "Dupsey", "Dura", "Duroy", "Durrell", "Durroy", "Dury", "Dussey", "Dutty", "Duty", "Gadan", "Gaddy", "Gaer", "Gaffy", "Gagan", "Gaggan", "Gagh", "Gaghan", "Gains", "Gakry", "Galan", "Gale", "Galey", "Galiam", "Gally", "Gan", "Ganin", "Gany", "Gappy", "Gapsey", "Gara", "Garoy", "Garrell", "Garroy", "Gary", "Gassey", "Gatty", "Gaty", "Jordan", "Jorddy", "Jorer", "Jorffy", "Jorgan", "Jorggan", "Jorgh", "Jorghan", "Jorins", "Jorkry", "Jorlan", "Jorle", "Jorley", "Jorliam", "Jorlly", "Jorn", "Jornin", "Jorny", "Jorppy", "Jorpsey", "Jorra", "Jorroy", "Jorrrell", "Jorrroy", "Jorry", "Jorssey", "Jortty", "Jorty", "Keadan", "Keaddy", "Keaer", "Keaffy", "Keagan", "Keaggan", "Keagh", "Keaghan", "Keains", "Keakry", "Kealan", "Keale", "Kealey", "Kealiam", "Keally", "Kean", "Keanin", "Keany", "Keappy", "Keapsey", "Keara", "Kearoy", "Kearrell", "Kearroy", "Keary", "Keassey", "Keatty", "Keaty", "Keedan", "Keeddy", "Keeer", "Keeffy", "Keegan", "Keeggan", "Keegh", "Keeghan", "Keeins", "Keekry", "Keelan", "Keele", "Keeley", "Keeliam", "Keelly", "Keen", "Keenin", "Keeny", "Keeppy", "Keepsey", "Keera", "Keeroy", "Keerrell", "Keerroy", "Keery", "Keessey", "Keetty", "Keety", "Laudan", "Lauddy", "Lauer", "Lauffy", "Laugan", "Lauggan", "Laugh", "Laughan", "Lauins", "Laukry", "Laulan", "Laule", "Lauley", "Lauliam", "Laully", "Laun", "Launin", "Launy", "Lauppy", "Laupsey", "Laura", "Lauroy", "Laurrell", "Laurroy", "Laury", "Laussey", "Lautty", "Lauty", "Leadan", "Leaddy", "Leaer", "Leaffy", "Leagan", "Leaggan", "Leagh", "Leaghan", "Leains", "Leakry", "Lealan", "Leale", "Lealey", "Lealiam", "Leally", "Lean", "Leanin", "Leany", "Leappy", "Leapsey", "Leara", "Learoy", "Learrell", "Learroy", "Leary", "Leassey", "Leatty", "Leaty", "Ledan", "Leddy", "Leer", "Leffy", "Legan", "Leggan", "Legh", "Leghan", "Leidan", "Leiddy", "Leier", "Leiffy", "Leigan", "Leiggan", "Leigh", "Leighan", "Leiins", "Leikry", "Leilan", "Leile", "Leiley", "Leiliam", "Leilly", "Lein", "Leinin", "Leins", "Leiny", "Leippy", "Leipsey", "Leira", "Leiroy", "Leirrell", "Leirroy", "Leiry", "Leissey", "Leitty", "Leity", "Lekry", "Lelan", "Lele", "Leley", "Leliam", "Lelly", "Len", "Lenin", "Leny", "Leppy", "Lepsey", "Lera", "Leroy", "Lerrell", "Lerroy", "Lery", "Lessey", "Letty", "Lety", "Lodan", "Loddy", "Loer", "Loffy", "Logan", "Loggan", "Logh", "Loghan", "Loins", "Lokry", "Lolan", "Lole", "Loley", "Loliam", "Lolly", "Lon", "Lonin", "Lony", "Loppy", "Lopsey", "Lora", "Loroy", "Lorrell", "Lorroy", "Lory", "Lossey", "Lotty", "Loty", "Lyndan", "Lynddy", "Lyner", "Lynffy", "Lyngan", "Lynggan", "Lyngh", "Lynghan", "Lynins", "Lynkry", "Lynlan", "Lynle", "Lynley", "Lynliam", "Lynlly", "Lynn", "Lynnin", "Lynny", "Lynppy", "Lynpsey", "Lynra", "Lynroy", "Lynrrell", "Lynrroy", "Lynry", "Lynssey", "Lyntty", "Lynty", "Mac'ardan", "Mac'arddy", "Mac'arer", "Mac'arffy", "Mac'argan", "Mac'arggan", "Mac'argh", "Mac'arghan", "Mac'arins", "Mac'arkry", "Mac'arlan", "Mac'arle", "Mac'arley", "Mac'arliam", "Mac'arlly", "Mac'arn", "Mac'arnin", "Mac'arny", "Mac'arppy", "Mac'arpsey", "Mac'arra", "Mac'arroy", "Mac'arrrell", "Mac'arrroy", "Mac'arry", "Mac'arssey", "Mac'artty", "Mac'arty", "Mac'bidan", "Mac'biddy", "Mac'bier", "Mac'biffy", "Mac'bigan", "Mac'biggan", "Mac'bigh", "Mac'bighan", "Mac'biins", "Mac'bikry", "Mac'bilan", "Mac'bile", "Mac'biley", "Mac'biliam", "Mac'billy", "Mac'bin", "Mac'binin", "Mac'biny", "Mac'bippy", "Mac'bipsey", "Mac'bira", "Mac'biroy", "Mac'birrell", "Mac'birroy", "Mac'biry", "Mac'bissey", "Mac'bitty", "Mac'bity", "Mac'caudan", "Mac'cauddy", "Mac'cauer", "Mac'cauffy", "Mac'caugan", "Mac'cauggan", "Mac'caugh", "Mac'caughan", "Mac'cauins", "Mac'caukry", "Mac'caulan", "Mac'caule", "Mac'cauley", "Mac'cauliam", "Mac'caully", "Mac'caun", "Mac'caunin", "Mac'cauny", "Mac'cauppy", "Mac'caupsey", "Mac'caura", "Mac'cauroy", "Mac'caurrell", "Mac'caurroy", "Mac'caury", "Mac'caussey", "Mac'cautty", "Mac'cauty", "Mac'dadan", "Mac'daddy", "Mac'daer", "Mac'daffy", "Mac'dagan", "Mac'daggan", "Mac'dagh", "Mac'daghan", "Mac'dains", "Mac'dakry", "Mac'dalan", "Mac'dale", "Mac'daley", "Mac'daliam", "Mac'dally", "Mac'dan", "Mac'danin", "Mac'dany", "Mac'dappy", "Mac'dapsey", "Mac'dara", "Mac'dardan", "Mac'darddy", "Mac'darer", "Mac'darffy", "Mac'dargan", "Mac'darggan", "Mac'dargh", "Mac'darghan", "Mac'darins", "Mac'darkry", "Mac'darlan", "Mac'darle", "Mac'darley", "Mac'darliam", "Mac'darlly", "Mac'darn", "Mac'darnin", "Mac'darny", "Mac'daroy", "Mac'darppy", "Mac'darpsey", "Mac'darra", "Mac'darrell", "Mac'darroy", "Mac'darrrell", "Mac'darrroy", "Mac'darry", "Mac'darssey", "Mac'dartty", "Mac'darty", "Mac'dary", "Mac'dassey", "Mac'datty", "Mac'daty", "Mac'doydan", "Mac'doyddy", "Mac'doyer", "Mac'doyffy", "Mac'doygan", "Mac'doyggan", "Mac'doygh", "Mac'doyghan", "Mac'doyins", "Mac'doykry", "Mac'doylan", "Mac'doyle", "Mac'doyley", "Mac'doyliam", "Mac'doylly", "Mac'doyn", "Mac'doynin", "Mac'doyny", "Mac'doyppy", "Mac'doypsey", "Mac'doyra", "Mac'doyroy", "Mac'doyrrell", "Mac'doyrroy", "Mac'doyry", "Mac'doyssey", "Mac'doytty", "Mac'doyty", "Mac'dudan", "Mac'duddy", "Mac'duer", "Mac'duffy", "Mac'dugan", "Mac'duggan", "Mac'dugh", "Mac'dughan", "Mac'duins", "Mac'dukry", "Mac'dulan", "Mac'dule", "Mac'duley", "Mac'duliam", "Mac'dully", "Mac'dun", "Mac'dunin", "Mac'duny", "Mac'duppy", "Mac'dupsey", "Mac'dura", "Mac'duroy", "Mac'durrell", "Mac'durroy", "Mac'dury", "Mac'dussey", "Mac'dutty", "Mac'duty", "Mac'gadan", "Mac'gaddy", "Mac'gaer", "Mac'gaffy", "Mac'gagan", "Mac'gaggan", "Mac'gagh", "Mac'gaghan", "Mac'gains", "Mac'gakry", "Mac'galan", "Mac'gale", "Mac'galey", "Mac'galiam", "Mac'gally", "Mac'gan", "Mac'ganin", "Mac'gany", "Mac'gappy", "Mac'gapsey", "Mac'gara", "Mac'garoy", "Mac'garrell", "Mac'garroy", "Mac'gary", "Mac'gassey", "Mac'gatty", "Mac'gaty", "Mac'jordan", "Mac'jorddy", "Mac'jorer", "Mac'jorffy", "Mac'jorgan", "Mac'jorggan", "Mac'jorgh", "Mac'jorghan", "Mac'jorins", "Mac'jorkry", "Mac'jorlan", "Mac'jorle", "Mac'jorley", "Mac'jorliam", "Mac'jorlly", "Mac'jorn", "Mac'jornin", "Mac'jorny", "Mac'jorppy", "Mac'jorpsey", "Mac'jorra", "Mac'jorroy", "Mac'jorrrell", "Mac'jorrroy", "Mac'jorry", "Mac'jorssey", "Mac'jortty", "Mac'jorty", "Mac'keadan", "Mac'keaddy", "Mac'keaer", "Mac'keaffy", "Mac'keagan", "Mac'keaggan", "Mac'keagh", "Mac'keaghan", "Mac'keains", "Mac'keakry", "Mac'kealan", "Mac'keale", "Mac'kealey", "Mac'kealiam", "Mac'keally", "Mac'kean", "Mac'keanin", "Mac'keany", "Mac'keappy", "Mac'keapsey", "Mac'keara", "Mac'kearoy", "Mac'kearrell", "Mac'kearroy", "Mac'keary", "Mac'keassey", "Mac'keatty", "Mac'keaty", "Mac'keedan", "Mac'keeddy", "Mac'keeer", "Mac'keeffy", "Mac'keegan", "Mac'keeggan", "Mac'keegh", "Mac'keeghan", "Mac'keeins", "Mac'keekry", "Mac'keelan", "Mac'keele", "Mac'keeley", "Mac'keeliam", "Mac'keelly", "Mac'keen", "Mac'keenin", "Mac'keeny", "Mac'keeppy", "Mac'keepsey", "Mac'keera", "Mac'keeroy", "Mac'keerrell", "Mac'keerroy", "Mac'keery", "Mac'keessey", "Mac'keetty", "Mac'keety", "Mac'laudan", "Mac'lauddy", "Mac'lauer", "Mac'lauffy", "Mac'laugan", "Mac'lauggan", "Mac'laugh", "Mac'laughan", "Mac'lauins", "Mac'laukry", "Mac'laulan", "Mac'laule", "Mac'lauley", "Mac'lauliam", "Mac'laully", "Mac'laun", "Mac'launin", "Mac'launy", "Mac'lauppy", "Mac'laupsey", "Mac'laura", "Mac'lauroy", "Mac'laurrell", "Mac'laurroy", "Mac'laury", "Mac'laussey", "Mac'lautty", "Mac'lauty", "Mac'leadan", "Mac'leaddy", "Mac'leaer", "Mac'leaffy", "Mac'leagan", "Mac'leaggan", "Mac'leagh", "Mac'leaghan", "Mac'leains", "Mac'leakry", "Mac'lealan", "Mac'leale", "Mac'lealey", "Mac'lealiam", "Mac'leally", "Mac'lean", "Mac'leanin", "Mac'leany", "Mac'leappy", "Mac'leapsey", "Mac'leara", "Mac'learoy", "Mac'learrell", "Mac'learroy", "Mac'leary", "Mac'leassey", "Mac'leatty", "Mac'leaty", "Mac'ledan", "Mac'leddy", "Mac'leer", "Mac'leffy", "Mac'legan", "Mac'leggan", "Mac'legh", "Mac'leghan", "Mac'leidan", "Mac'leiddy", "Mac'leier", "Mac'leiffy", "Mac'leigan", "Mac'leiggan", "Mac'leigh", "Mac'leighan", "Mac'leiins", "Mac'leikry", "Mac'leilan", "Mac'leile", "Mac'leiley", "Mac'leiliam", "Mac'leilly", "Mac'lein", "Mac'leinin", "Mac'leins", "Mac'leiny", "Mac'leippy", "Mac'leipsey", "Mac'leira", "Mac'leiroy", "Mac'leirrell", "Mac'leirroy", "Mac'leiry", "Mac'leissey", "Mac'leitty", "Mac'leity", "Mac'lekry", "Mac'lelan", "Mac'lele", "Mac'leley", "Mac'leliam", "Mac'lelly", "Mac'len", "Mac'lenin", "Mac'leny", "Mac'leppy", "Mac'lepsey", "Mac'lera", "Mac'leroy", "Mac'lerrell", "Mac'lerroy", "Mac'lery", "Mac'lessey", "Mac'letty", "Mac'lety", "Mac'lodan", "Mac'loddy", "Mac'loer", "Mac'loffy", "Mac'logan", "Mac'loggan", "Mac'logh", "Mac'loghan", "Mac'loins", "Mac'lokry", "Mac'lolan", "Mac'lole", "Mac'loley", "Mac'loliam", "Mac'lolly", "Mac'lon", "Mac'lonin", "Mac'lony", "Mac'loppy", "Mac'lopsey", "Mac'lora", "Mac'loroy", "Mac'lorrell", "Mac'lorroy", "Mac'lory", "Mac'lossey", "Mac'lotty", "Mac'loty", "Mac'lyndan", "Mac'lynddy", "Mac'lyner", "Mac'lynffy", "Mac'lyngan", "Mac'lynggan", "Mac'lyngh", "Mac'lynghan", "Mac'lynins", "Mac'lynkry", "Mac'lynlan", "Mac'lynle", "Mac'lynley", "Mac'lynliam", "Mac'lynlly", "Mac'lynn", "Mac'lynnin", "Mac'lynny", "Mac'lynppy", "Mac'lynpsey", "Mac'lynra", "Mac'lynroy", "Mac'lynrrell", "Mac'lynrroy", "Mac'lynry", "Mac'lynssey", "Mac'lyntty", "Mac'lynty", "Mac'madan", "Mac'maddy", "Mac'maer", "Mac'maffy", "Mac'magan", "Mac'maggan", "Mac'magh", "Mac'maghan", "Mac'mains", "Mac'makry", "Mac'malan", "Mac'male", "Mac'maley", "Mac'maliam", "Mac'mally", "Mac'man", "Mac'manin", "Mac'many", "Mac'mappy", "Mac'mapsey", "Mac'mara", "Mac'maroy", "Mac'marrell", "Mac'marroy", "Mac'mary", "Mac'massey", "Mac'matty", "Mac'maty", "Mac'nadan", "Mac'naddy", "Mac'naer", "Mac'naffy", "Mac'nagan", "Mac'naggan", "Mac'nagh", "Mac'naghan", "Mac'nains", "Mac'nakry", "Mac'nalan", "Mac'nale", "Mac'naley", "Mac'naliam", "Mac'nally", "Mac'nan", "Mac'nanin", "Mac'nany", "Mac'nappy", "Mac'napsey", "Mac'nara", "Mac'naroy", "Mac'narrell", "Mac'narroy", "Mac'nary", "Mac'nassey", "Mac'natty", "Mac'naty", "Mac'nedan", "Mac'neddy", "Mac'neer", "Mac'neffy", "Mac'negan", "Mac'neggan", "Mac'negh", "Mac'neghan", "Mac'neins", "Mac'nekry", "Mac'nelan", "Mac'nele", "Mac'neley", "Mac'neliam", "Mac'nelly", "Mac'nen", "Mac'nenin", "Mac'neny", "Mac'neppy", "Mac'nepsey", "Mac'nera", "Mac'neroy", "Mac'nerrell", "Mac'nerroy", "Mac'nery", "Mac'nessey", "Mac'netty", "Mac'nety", "Mac'peadan", "Mac'peaddy", "Mac'peaer", "Mac'peaffy", "Mac'peagan", "Mac'peaggan", "Mac'peagh", "Mac'peaghan", "Mac'peains", "Mac'peakry", "Mac'pealan", "Mac'peale", "Mac'pealey", "Mac'pealiam", "Mac'peally", "Mac'pean", "Mac'peanin", "Mac'peany", "Mac'peappy", "Mac'peapsey", "Mac'peara", "Mac'pearoy", "Mac'pearrell", "Mac'pearroy", "Mac'peary", "Mac'peassey", "Mac'peatty", "Mac'peaty", "Mac'reidan", "Mac'reiddy", "Mac'reier", "Mac'reiffy", "Mac'reigan", "Mac'reiggan", "Mac'reigh", "Mac'reighan", "Mac'reiins", "Mac'reikry", "Mac'reilan", "Mac'reile", "Mac'reiley", "Mac'reiliam", "Mac'reilly", "Mac'rein", "Mac'reinin", "Mac'reiny", "Mac'reippy", "Mac'reipsey", "Mac'reira", "Mac'reiroy", "Mac'reirrell", "Mac'reirroy", "Mac'reiry", "Mac'reissey", "Mac'reitty", "Mac'reity", "Mac'ridan", "Mac'riddy", "Mac'rier", "Mac'riffy", "Mac'rigan", "Mac'riggan", "Mac'righ", "Mac'righan", "Mac'riins", "Mac'rikry", "Mac'rilan", "Mac'rile", "Mac'riley", "Mac'riliam", "Mac'rilly", "Mac'rin", "Mac'rinin", "Mac'riny", "Mac'ripdan", "Mac'ripddy", "Mac'riper", "Mac'ripffy", "Mac'ripgan", "Mac'ripggan", "Mac'ripgh", "Mac'ripghan", "Mac'ripins", "Mac'ripkry", "Mac'riplan", "Mac'riple", "Mac'ripley", "Mac'ripliam", "Mac'riplly", "Mac'ripn", "Mac'ripnin", "Mac'ripny", "Mac'ripppy", "Mac'rippsey", "Mac'rippy", "Mac'ripra", "Mac'riproy", "Mac'riprrell", "Mac'riprroy", "Mac'ripry", "Mac'ripsey", "Mac'ripssey", "Mac'riptty", "Mac'ripty", "Mac'rira", "Mac'riroy", "Mac'rirrell", "Mac'rirroy", "Mac'riry", "Mac'rissey", "Mac'ritty", "Mac'rity", "Mac'rodan", "Mac'roddy", "Mac'roer", "Mac'roffy", "Mac'rogan", "Mac'roggan", "Mac'rogh", "Mac'roghan", "Mac'roins", "Mac'rokry", "Mac'rolan", "Mac'role", "Mac'roley", "Mac'roliam", "Mac'rolly", "Mac'ron", "Mac'ronin", "Mac'rony", "Mac'roppy", "Mac'ropsey", "Mac'rora", "Mac'roroy", "Mac'rorrell", "Mac'rorroy", "Mac'rory", "Mac'rossey", "Mac'rotty", "Mac'roty", "Mac'sadan", "Mac'saddy", "Mac'saer", "Mac'saffy", "Mac'sagan", "Mac'saggan", "Mac'sagh", "Mac'saghan", "Mac'sains", "Mac'sakry", "Mac'salan", "Mac'sale", "Mac'saley", "Mac'saliam", "Mac'sally", "Mac'san", "Mac'sanin", "Mac'sany", "Mac'sappy", "Mac'sapsey", "Mac'sara", "Mac'saroy", "Mac'sarrell", "Mac'sarroy", "Mac'sary", "Mac'sassey", "Mac'satty", "Mac'saty", "Mac'shedan", "Mac'sheddy", "Mac'sheer", "Mac'sheffy", "Mac'shegan", "Mac'sheggan", "Mac'shegh", "Mac'sheghan", "Mac'sheins", "Mac'shekry", "Mac'shelan", "Mac'shele", "Mac'sheley", "Mac'sheliam", "Mac'shelly", "Mac'shen", "Mac'shenin", "Mac'sheny", "Mac'sheppy", "Mac'shepsey", "Mac'shera", "Mac'sheroy", "Mac'sherrell", "Mac'sherroy", "Mac'shery", "Mac'shessey", "Mac'shetty", "Mac'shety", "Mac'tedan", "Mac'teddy", "Mac'teer", "Mac'teffy", "Mac'tegan", "Mac'teggan", "Mac'tegh", "Mac'teghan", "Mac'teins", "Mac'tekry", "Mac'telan", "Mac'tele", "Mac'teley", "Mac'teliam", "Mac'telly", "Mac'ten", "Mac'tenin", "Mac'teny", "Mac'teppy", "Mac'tepsey", "Mac'tera", "Mac'teroy", "Mac'terrell", "Mac'terroy", "Mac'tery", "Mac'tessey", "Mac'tetty", "Mac'tety", "Mac'toodan", "Mac'tooddy", "Mac'tooer", "Mac'tooffy", "Mac'toogan", "Mac'tooggan", "Mac'toogh", "Mac'tooghan", "Mac'tooins", "Mac'tookry", "Mac'toolan", "Mac'toole", "Mac'tooley", "Mac'tooliam", "Mac'toolly", "Mac'toon", "Mac'toonin", "Mac'toony", "Mac'tooppy", "Mac'toopsey", "Mac'toora", "Mac'tooroy", "Mac'toorrell", "Mac'toorroy", "Mac'toory", "Mac'toossey", "Mac'tootty", "Mac'tooty", "Mac'widan", "Mac'widdy", "Mac'wier", "Mac'wiffy", "Mac'wigan", "Mac'wiggan", "Mac'wigh", "Mac'wighan", "Mac'wiins", "Mac'wikry", "Mac'wilan", "Mac'wile", "Mac'wiley", "Mac'wiliam", "Mac'willy", "Mac'win", "Mac'winin", "Mac'winy", "Mac'wippy", "Mac'wipsey", "Mac'wira", "Mac'wiroy", "Mac'wirrell", "Mac'wirroy", "Mac'wiry", "Mac'wissey", "Mac'witty", "Mac'wity", "Mac'ydan", "Mac'yddy", "Mac'yer", "Mac'yffy", "Mac'ygan", "Mac'yggan", "Mac'ygh", "Mac'yghan", "Mac'yins", "Mac'ykry", "Mac'ylan", "Mac'yle", "Mac'yley", "Mac'yliam", "Mac'ylly", "Mac'yn", "Mac'ynin", "Mac'yny", "Mac'yppy", "Mac'ypsey", "Mac'yra", "Mac'yroy", "Mac'yrrell", "Mac'yrroy", "Mac'yry", "Mac'yssey", "Mac'ytty", "Mac'yty", "Madan", "Maddy", "Maer", "Maffy", "Magan", "Maggan", "Magh", "Maghan", "Mains", "Makry", "Malan", "Male", "Maley", "Maliam", "Mally", "Man", "Manin", "Many", "Mappy", "Mapsey", "Mara", "Maroy", "Marrell", "Marroy", "Mary", "Massey", "Matty", "Maty", "Nadan", "Naddy", "Naer", "Naffy", "Nagan", "Naggan", "Nagh", "Naghan", "Nains", "Nakry", "Nalan", "Nale", "Naley", "Naliam", "Nally", "Nan", "Nanin", "Nany", "Nappy", "Napsey", "Nara", "Naroy", "Narrell", "Narroy", "Nary", "Nassey", "Natty", "Naty", "Nedan", "Neddy", "Neer", "Neffy", "Negan", "Neggan", "Negh", "Neghan", "Neins", "Nekry", "Nelan", "Nele", "Neley", "Neliam", "Nelly", "Nen", "Nenin", "Neny", "Neppy", "Nepsey", "Nera", "Neroy", "Nerrell", "Nerroy", "Nery", "Nessey", "Netty", "Nety", "O'ardan", "O'arddy", "O'arer", "O'arffy", "O'argan", "O'arggan", "O'argh", "O'arghan", "O'arins", "O'arkry", "O'arlan", "O'arle", "O'arley", "O'arliam", "O'arlly", "O'arn", "O'arnin", "O'arny", "O'arppy", "O'arpsey", "O'arra", "O'arroy", "O'arrrell", "O'arrroy", "O'arry", "O'arssey", "O'artty", "O'arty", "O'bidan", "O'biddy", "O'bier", "O'biffy", "O'bigan", "O'biggan", "O'bigh", "O'bighan", "O'biins", "O'bikry", "O'bilan", "O'bile", "O'biley", "O'biliam", "O'billy", "O'bin", "O'binin", "O'biny", "O'bippy", "O'bipsey", "O'bira", "O'biroy", "O'birrell", "O'birroy", "O'biry", "O'bissey", "O'bitty", "O'bity", "O'caudan", "O'cauddy", "O'cauer", "O'cauffy", "O'caugan", "O'cauggan", "O'caugh", "O'caughan", "O'cauins", "O'caukry", "O'caulan", "O'caule", "O'cauley", "O'cauliam", "O'caully", "O'caun", "O'caunin", "O'cauny", "O'cauppy", "O'caupsey", "O'caura", "O'cauroy", "O'caurrell", "O'caurroy", "O'caury", "O'caussey", "O'cautty", "O'cauty", "O'dadan", "O'daddy", "O'daer", "O'daffy", "O'dagan", "O'daggan", "O'dagh", "O'daghan", "O'dains", "O'dakry", "O'dalan", "O'dale", "O'daley", "O'daliam", "O'dally", "O'dan", "O'danin", "O'dany", "O'dappy", "O'dapsey", "O'dara", "O'dardan", "O'darddy", "O'darer", "O'darffy", "O'dargan", "O'darggan", "O'dargh", "O'darghan", "O'darins", "O'darkry", "O'darlan", "O'darle", "O'darley", "O'darliam", "O'darlly", "O'darn", "O'darnin", "O'darny", "O'daroy", "O'darppy", "O'darpsey", "O'darra", "O'darrell", "O'darroy", "O'darrrell", "O'darrroy", "O'darry", "O'darssey", "O'dartty", "O'darty", "O'dary", "O'dassey", "O'datty", "O'daty", "O'doydan", "O'doyddy", "O'doyer", "O'doyffy", "O'doygan", "O'doyggan", "O'doygh", "O'doyghan", "O'doyins", "O'doykry", "O'doylan", "O'doyle", "O'doyley", "O'doyliam", "O'doylly", "O'doyn", "O'doynin", "O'doyny", "O'doyppy", "O'doypsey", "O'doyra", "O'doyroy", "O'doyrrell", "O'doyrroy", "O'doyry", "O'doyssey", "O'doytty", "O'doyty", "O'dudan", "O'duddy", "O'duer", "O'duffy", "O'dugan", "O'duggan", "O'dugh", "O'dughan", "O'duins", "O'dukry", "O'dulan", "O'dule", "O'duley", "O'duliam", "O'dully", "O'dun", "O'dunin", "O'duny", "O'duppy", "O'dupsey", "O'dura", "O'duroy", "O'durrell", "O'durroy", "O'dury", "O'dussey", "O'dutty", "O'duty", "O'gadan", "O'gaddy", "O'gaer", "O'gaffy", "O'gagan", "O'gaggan", "O'gagh", "O'gaghan", "O'gains", "O'gakry", "O'galan", "O'gale", "O'galey", "O'galiam", "O'gally", "O'gan", "O'ganin", "O'gany", "O'gappy", "O'gapsey", "O'gara", "O'garoy", "O'garrell", "O'garroy", "O'gary", "O'gassey", "O'gatty", "O'gaty", "O'jordan", "O'jorddy", "O'jorer", "O'jorffy", "O'jorgan", "O'jorggan", "O'jorgh", "O'jorghan", "O'jorins", "O'jorkry", "O'jorlan", "O'jorle", "O'jorley", "O'jorliam", "O'jorlly", "O'jorn", "O'jornin", "O'jorny", "O'jorppy", "O'jorpsey", "O'jorra", "O'jorroy", "O'jorrrell", "O'jorrroy", "O'jorry", "O'jorssey", "O'jortty", "O'jorty", "O'keadan", "O'keaddy", "O'keaer", "O'keaffy", "O'keagan", "O'keaggan", "O'keagh", "O'keaghan", "O'keains", "O'keakry", "O'kealan", "O'keale", "O'kealey", "O'kealiam", "O'keally", "O'kean", "O'keanin", "O'keany", "O'keappy", "O'keapsey", "O'keara", "O'kearoy", "O'kearrell", "O'kearroy", "O'keary", "O'keassey", "O'keatty", "O'keaty", "O'keedan", "O'keeddy", "O'keeer", "O'keeffy", "O'keegan", "O'keeggan", "O'keegh", "O'keeghan", "O'keeins", "O'keekry", "O'keelan", "O'keele", "O'keeley", "O'keeliam", "O'keelly", "O'keen", "O'keenin", "O'keeny", "O'keeppy", "O'keepsey", "O'keera", "O'keeroy", "O'keerrell", "O'keerroy", "O'keery", "O'keessey", "O'keetty", "O'keety", "O'laudan", "O'lauddy", "O'lauer", "O'lauffy", "O'laugan", "O'lauggan", "O'laugh", "O'laughan", "O'lauins", "O'laukry", "O'laulan", "O'laule", "O'lauley", "O'lauliam", "O'laully", "O'laun", "O'launin", "O'launy", "O'lauppy", "O'laupsey", "O'laura", "O'lauroy", "O'laurrell", "O'laurroy", "O'laury", "O'laussey", "O'lautty", "O'lauty", "O'leadan", "O'leaddy", "O'leaer", "O'leaffy", "O'leagan", "O'leaggan", "O'leagh", "O'leaghan", "O'leains", "O'leakry", "O'lealan", "O'leale", "O'lealey", "O'lealiam", "O'leally", "O'lean", "O'leanin", "O'leany", "O'leappy", "O'leapsey", "O'leara", "O'learoy", "O'learrell", "O'learroy", "O'leary", "O'leassey", "O'leatty", "O'leaty", "O'ledan", "O'leddy", "O'leer", "O'leffy", "O'legan", "O'leggan", "O'legh", "O'leghan", "O'leidan", "O'leiddy", "O'leier", "O'leiffy", "O'leigan", "O'leiggan", "O'leigh", "O'leighan", "O'leiins", "O'leikry", "O'leilan", "O'leile", "O'leiley", "O'leiliam", "O'leilly", "O'lein", "O'leinin", "O'leins", "O'leiny", "O'leippy", "O'leipsey", "O'leira", "O'leiroy", "O'leirrell", "O'leirroy", "O'leiry", "O'leissey", "O'leitty", "O'leity", "O'lekry", "O'lelan", "O'lele", "O'leley", "O'leliam", "O'lelly", "O'len", "O'lenin", "O'leny", "O'leppy", "O'lepsey", "O'lera", "O'leroy", "O'lerrell", "O'lerroy", "O'lery", "O'lessey", "O'letty", "O'lety", "O'lodan", "O'loddy", "O'loer", "O'loffy", "O'logan", "O'loggan", "O'logh", "O'loghan", "O'loins", "O'lokry", "O'lolan", "O'lole", "O'loley", "O'loliam", "O'lolly", "O'lon", "O'lonin", "O'lony", "O'loppy", "O'lopsey", "O'lora", "O'loroy", "O'lorrell", "O'lorroy", "O'lory", "O'lossey", "O'lotty", "O'loty", "O'lyndan", "O'lynddy", "O'lyner", "O'lynffy", "O'lyngan", "O'lynggan", "O'lyngh", "O'lynghan", "O'lynins", "O'lynkry", "O'lynlan", "O'lynle", "O'lynley", "O'lynliam", "O'lynlly", "O'lynn", "O'lynnin", "O'lynny", "O'lynppy", "O'lynpsey", "O'lynra", "O'lynroy", "O'lynrrell", "O'lynrroy", "O'lynry", "O'lynssey", "O'lyntty", "O'lynty", "O'madan", "O'maddy", "O'maer", "O'maffy", "O'magan", "O'maggan", "O'magh", "O'maghan", "O'mains", "O'makry", "O'malan", "O'male", "O'maley", "O'maliam", "O'mally", "O'man", "O'manin", "O'many", "O'mappy", "O'mapsey", "O'mara", "O'maroy", "O'marrell", "O'marroy", "O'mary", "O'massey", "O'matty", "O'maty", "O'nadan", "O'naddy", "O'naer", "O'naffy", "O'nagan", "O'naggan", "O'nagh", "O'naghan", "O'nains", "O'nakry", "O'nalan", "O'nale", "O'naley", "O'naliam", "O'nally", "O'nan", "O'nanin", "O'nany", "O'nappy", "O'napsey", "O'nara", "O'naroy", "O'narrell", "O'narroy", "O'nary", "O'nassey", "O'natty", "O'naty", "O'nedan", "O'neddy", "O'neer", "O'neffy", "O'negan", "O'neggan", "O'negh", "O'neghan", "O'neins", "O'nekry", "O'nelan", "O'nele", "O'neley", "O'neliam", "O'nelly", "O'nen", "O'nenin", "O'neny", "O'neppy", "O'nepsey", "O'nera", "O'neroy", "O'nerrell", "O'nerroy", "O'nery", "O'nessey", "O'netty", "O'nety", "O'peadan", "O'peaddy", "O'peaer", "O'peaffy", "O'peagan", "O'peaggan", "O'peagh", "O'peaghan", "O'peains", "O'peakry", "O'pealan", "O'peale", "O'pealey", "O'pealiam", "O'peally", "O'pean", "O'peanin", "O'peany", "O'peappy", "O'peapsey", "O'peara", "O'pearoy", "O'pearrell", "O'pearroy", "O'peary", "O'peassey", "O'peatty", "O'peaty", "O'reidan", "O'reiddy", "O'reier", "O'reiffy", "O'reigan", "O'reiggan", "O'reigh", "O'reighan", "O'reiins", "O'reikry", "O'reilan", "O'reile", "O'reiley", "O'reiliam", "O'reilly", "O'rein", "O'reinin", "O'reiny", "O'reippy", "O'reipsey", "O'reira", "O'reiroy", "O'reirrell", "O'reirroy", "O'reiry", "O'reissey", "O'reitty", "O'reity", "O'ridan", "O'riddy", "O'rier", "O'riffy", "O'rigan", "O'riggan", "O'righ", "O'righan", "O'riins", "O'rikry", "O'rilan", "O'rile", "O'riley", "O'riliam", "O'rilly", "O'rin", "O'rinin", "O'riny", "O'ripdan", "O'ripddy", "O'riper", "O'ripffy", "O'ripgan", "O'ripggan", "O'ripgh", "O'ripghan", "O'ripins", "O'ripkry", "O'riplan", "O'riple", "O'ripley", "O'ripliam", "O'riplly", "O'ripn", "O'ripnin", "O'ripny", "O'ripppy", "O'rippsey", "O'rippy", "O'ripra", "O'riproy", "O'riprrell", "O'riprroy", "O'ripry", "O'ripsey", "O'ripssey", "O'riptty", "O'ripty", "O'rira", "O'riroy", "O'rirrell", "O'rirroy", "O'riry", "O'rissey", "O'ritty", "O'rity", "O'rodan", "O'roddy", "O'roer", "O'roffy", "O'rogan", "O'roggan", "O'rogh", "O'roghan", "O'roins", "O'rokry", "O'rolan", "O'role", "O'roley", "O'roliam", "O'rolly", "O'ron", "O'ronin", "O'rony", "O'roppy", "O'ropsey", "O'rora", "O'roroy", "O'rorrell", "O'rorroy", "O'rory", "O'rossey", "O'rotty", "O'roty", "O'sadan", "O'saddy", "O'saer", "O'saffy", "O'sagan", "O'saggan", "O'sagh", "O'saghan", "O'sains", "O'sakry", "O'salan", "O'sale", "O'saley", "O'saliam", "O'sally", "O'san", "O'sanin", "O'sany", "O'sappy", "O'sapsey", "O'sara", "O'saroy", "O'sarrell", "O'sarroy", "O'sary", "O'sassey", "O'satty", "O'saty", "O'shedan", "O'sheddy", "O'sheer", "O'sheffy", "O'shegan", "O'sheggan", "O'shegh", "O'sheghan", "O'sheins", "O'shekry", "O'shelan", "O'shele", "O'sheley", "O'sheliam", "O'shelly", "O'shen", "O'shenin", "O'sheny", "O'sheppy", "O'shepsey", "O'shera", "O'sheroy", "O'sherrell", "O'sherroy", "O'shery", "O'shessey", "O'shetty", "O'shety", "O'tedan", "O'teddy", "O'teer", "O'teffy", "O'tegan", "O'teggan", "O'tegh", "O'teghan", "O'teins", "O'tekry", "O'telan", "O'tele", "O'teley", "O'teliam", "O'telly", "O'ten", "O'tenin", "O'teny", "O'teppy", "O'tepsey", "O'tera", "O'teroy", "O'terrell", "O'terroy", "O'tery", "O'tessey", "O'tetty", "O'tety", "O'toodan", "O'tooddy", "O'tooer", "O'tooffy", "O'toogan", "O'tooggan", "O'toogh", "O'tooghan", "O'tooins", "O'tookry", "O'toolan", "O'toole", "O'tooley", "O'tooliam", "O'toolly", "O'toon", "O'toonin", "O'toony", "O'tooppy", "O'toopsey", "O'toora", "O'tooroy", "O'toorrell", "O'toorroy", "O'toory", "O'toossey", "O'tootty", "O'tooty", "O'widan", "O'widdy", "O'wier", "O'wiffy", "O'wigan", "O'wiggan", "O'wigh", "O'wighan", "O'wiins", "O'wikry", "O'wilan", "O'wile", "O'wiley", "O'wiliam", "O'willy", "O'win", "O'winin", "O'winy", "O'wippy", "O'wipsey", "O'wira", "O'wiroy", "O'wirrell", "O'wirroy", "O'wiry", "O'wissey", "O'witty", "O'wity", "O'ydan", "O'yddy", "O'yer", "O'yffy", "O'ygan", "O'yggan", "O'ygh", "O'yghan", "O'yins", "O'ykry", "O'ylan", "O'yle", "O'yley", "O'yliam", "O'ylly", "O'yn", "O'ynin", "O'yny", "O'yppy", "O'ypsey", "O'yra", "O'yroy", "O'yrrell", "O'yrroy", "O'yry", "O'yssey", "O'ytty", "O'yty", "Peadan", "Peaddy", "Peaer", "Peaffy", "Peagan", "Peaggan", "Peagh", "Peaghan", "Peains", "Peakry", "Pealan", "Peale", "Pealey", "Pealiam", "Peally", "Pean", "Peanin", "Peany", "Peappy", "Peapsey", "Peara", "Pearoy", "Pearrell", "Pearroy", "Peary", "Peassey", "Peatty", "Peaty", "Reidan", "Reiddy", "Reier", "Reiffy", "Reigan", "Reiggan", "Reigh", "Reighan", "Reiins", "Reikry", "Reilan", "Reile", "Reiley", "Reiliam", "Reilly", "Rein", "Reinin", "Reiny", "Reippy", "Reipsey", "Reira", "Reiroy", "Reirrell", "Reirroy", "Reiry", "Reissey", "Reitty", "Reity", "Ridan", "Riddy", "Rier", "Riffy", "Rigan", "Riggan", "Righ", "Righan", "Riins", "Rikry", "Rilan", "Rile", "Riley", "Riliam", "Rilly", "Rin", "Rinin", "Riny", "Ripdan", "Ripddy", "Riper", "Ripffy", "Ripgan", "Ripggan", "Ripgh", "Ripghan", "Ripins", "Ripkry", "Riplan", "Riple", "Ripley", "Ripliam", "Riplly", "Ripn", "Ripnin", "Ripny", "Ripppy", "Rippsey", "Rippy", "Ripra", "Riproy", "Riprrell", "Riprroy", "Ripry", "Ripsey", "Ripssey", "Riptty", "Ripty", "Rira", "Riroy", "Rirrell", "Rirroy", "Riry", "Rissey", "Ritty", "Rity", "Rodan", "Roddy", "Roer", "Roffy", "Rogan", "Roggan", "Rogh", "Roghan", "Roins", "Rokry", "Rolan", "Role", "Roley", "Roliam", "Rolly", "Ron", "Ronin", "Rony", "Roppy", "Ropsey", "Rora", "Roroy", "Rorrell", "Rorroy", "Rory", "Rossey", "Rotty", "Roty", "Sadan", "Saddy", "Saer", "Saffy", "Sagan", "Saggan", "Sagh", "Saghan", "Sains", "Sakry", "Salan", "Sale", "Saley", "Saliam", "Sally", "San", "Sanin", "Sany", "Sappy", "Sapsey", "Sara", "Saroy", "Sarrell", "Sarroy", "Sary", "Sassey", "Satty", "Saty", "Shedan", "Sheddy", "Sheer", "Sheffy", "Shegan", "Sheggan", "Shegh", "Sheghan", "Sheins", "Shekry", "Shelan", "Shele", "Sheley", "Sheliam", "Shelly", "Shen", "Shenin", "Sheny", "Sheppy", "Shepsey", "Shera", "Sheroy", "Sherrell", "Sherroy", "Shery", "Shessey", "Shetty", "Shety", "Tedan", "Teddy", "Teer", "Teffy", "Tegan", "Teggan", "Tegh", "Teghan", "Teins", "Tekry", "Telan", "Tele", "Teley", "Teliam", "Telly", "Ten", "Tenin", "Teny", "Teppy", "Tepsey", "Tera", "Teroy", "Terrell", "Terroy", "Tery", "Tessey", "Tetty", "Tety", "Toodan", "Tooddy", "Tooer", "Tooffy", "Toogan", "Tooggan", "Toogh", "Tooghan", "Tooins", "Tookry", "Toolan", "Toole", "Tooley", "Tooliam", "Toolly", "Toon", "Toonin", "Toony", "Tooppy", "Toopsey", "Toora", "Tooroy", "Toorrell", "Toorroy", "Toory", "Toossey", "Tootty", "Tooty", "Widan", "Widdy", "Wier", "Wiffy", "Wigan", "Wiggan", "Wigh", "Wighan", "Wiins", "Wikry", "Wilan", "Wile", "Wiley", "Wiliam", "Willy", "Win", "Winin", "Winy", "Wippy", "Wipsey", "Wira", "Wiroy", "Wirrell", "Wirroy", "Wiry", "Wissey", "Witty", "Wity", "Ydan", "Yddy", "Yer", "Yffy", "Ygan", "Yggan", "Ygh", "Yghan", "Yins", "Ykry", "Ylan", "Yle", "Yley", "Yliam", "Ylly", "Yn", "Ynin", "Yny", "Yppy", "Ypsey", "Yra", "Yroy", "Yrrell", "Yrroy", "Yry", "Yssey", "Ytty", "Yty"}
+-- VERSION --
+RYZOM_NAMES_TRYKER_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua b/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua
index be0d2d2c64..30f371551b 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/names_zorai.lua
@@ -3,3 +3,6 @@ zoraiFirstNamesOne = {"Ba", "Bai", "Be", "Bei", "Bi", "Bia", "Biai", "Bii", "Bo"
zoraiFirstNamesTwo = {"Ba", "Ban", "Bang", "Bao", "Be", "Ben", "Beng", "Beo", "Bi", "Bia", "Bian", "Biang", "Biao", "Bin", "Bing", "Bio", "Bo", "Bon", "Bong", "Boo", "Bu", "Bua", "Buan", "Buang", "Buao", "Bun", "Bung", "Buo", "Ca", "Can", "Cang", "Cao", "Ce", "Cen", "Ceng", "Ceo", "Cha", "Chan", "Chang", "Chao", "Che", "Chen", "Cheng", "Cheo", "Chi", "Chia", "Chian", "Chiang", "Chiao", "Chin", "Ching", "Chio", "Cho", "Chon", "Chong", "Choo", "Chu", "Chua", "Chuan", "Chuang", "Chuao", "Chun", "Chung", "Chuo", "Ci", "Cia", "Cian", "Ciang", "Ciao", "Cin", "Cing", "Cio", "Co", "Con", "Cong", "Coo", "Cu", "Cua", "Cuan", "Cuang", "Cuao", "Cun", "Cung", "Cuo", "Da", "Dan", "Dang", "Dao", "De", "Den", "Deng", "Deo", "Di", "Dia", "Dian", "Diang", "Diao", "Din", "Ding", "Dio", "Do", "Don", "Dong", "Doo", "Du", "Dua", "Duan", "Duang", "Duao", "Dun", "Dung", "Duo", "Fa", "Fan", "Fang", "Fao", "Fe", "Fen", "Feng", "Feo", "Fi", "Fia", "Fian", "Fiang", "Fiao", "Fin", "Fing", "Fio", "Fo", "Fon", "Fong", "Foo", "Fu", "Fua", "Fuan", "Fuang", "Fuao", "Fun", "Fung", "Fuo", "Ga", "Gan", "Gang", "Gao", "Ge", "Gen", "Geng", "Geo", "Gi", "Gia", "Gian", "Giang", "Giao", "Gin", "Ging", "Gio", "Go", "Gon", "Gong", "Goo", "Gu", "Gua", "Guan", "Guang", "Guao", "Gun", "Gung", "Guo", "Ha", "Han", "Hang", "Hao", "He", "Hen", "Heng", "Heo", "Hi", "Hia", "Hian", "Hiang", "Hiao", "Hin", "Hing", "Hio", "Ho", "Hon", "Hong", "Hoo", "Hu", "Hua", "Huan", "Huang", "Huao", "Hun", "Hung", "Huo", "Ja", "Jan", "Jang", "Jao", "Je", "Jen", "Jeng", "Jeo", "Ji", "Jia", "Jian", "Jiang", "Jiao", "Jin", "Jing", "Jio", "Jo", "Jon", "Jong", "Joo", "Ju", "Jua", "Juan", "Juang", "Juao", "Jun", "Jung", "Juo", "Ka", "Kan", "Kang", "Kao", "Ke", "Ken", "Keng", "Keo", "Ki", "Kia", "Kian", "Kiang", "Kiao", "Kin", "King", "Kio", "Ko", "Kon", "Kong", "Koo", "Ku", "Kua", "Kuan", "Kuang", "Kuao", "Kun", "Kung", "Kuo", "La", "Lan", "Lang", "Lao", "Le", "Len", "Leng", "Leo", "Li", "Lia", "Lian", "Liang", "Liao", "Lin", "Ling", "Lio", "Lo", "Lon", "Long", "Loo", "Lu", "Lua", "Luan", "Luang", "Luao", "Lun", "Lung", "Luo", "Ma", "Man", "Mang", "Mao", "Me", "Men", "Meng", "Meo", "Mi", "Mia", "Mian", "Miang", "Miao", "Min", "Ming", "Mio", "Mo", "Mon", "Mong", "Moo", "Mu", "Mua", "Muan", "Muang", "Muao", "Mun", "Mung", "Muo", "Na", "Nan", "Nang", "Nao", "Ne", "Nen", "Neng", "Neo", "Ni", "Nia", "Nian", "Niang", "Niao", "Nin", "Ning", "Nio", "No", "Non", "Nong", "Noo", "Nu", "Nua", "Nuan", "Nuang", "Nuao", "Nun", "Nung", "Nuo", "Pa", "Pan", "Pang", "Pao", "Pe", "Pen", "Peng", "Peo", "Pi", "Pia", "Pian", "Piang", "Piao", "Pin", "Ping", "Pio", "Po", "Pon", "Pong", "Poo", "Pu", "Pua", "Puan", "Puang", "Puao", "Pun", "Pung", "Puo", "Qa", "Qan", "Qang", "Qao", "Qe", "Qen", "Qeng", "Qeo", "Qi", "Qia", "Qian", "Qiang", "Qiao", "Qin", "Qing", "Qio", "Qo", "Qon", "Qong", "Qoo", "Qu", "Qua", "Quan", "Quang", "Quao", "Qun", "Qung", "Quo", "Sa", "San", "Sang", "Sao", "Se", "Sen", "Seng", "Seo", "Sha", "Shan", "Shang", "Shao", "She", "Shen", "Sheng", "Sheo", "Shi", "Shia", "Shian", "Shiang", "Shiao", "Shin", "Shing", "Shio", "Sho", "Shon", "Shong", "Shoo", "Shu", "Shua", "Shuan", "Shuang", "Shuao", "Shun", "Shung", "Shuo", "Si", "Sia", "Sian", "Siang", "Siao", "Sin", "Sing", "Sio", "So", "Son", "Song", "Soo", "Su", "Sua", "Suan", "Suang", "Suao", "Sun", "Sung", "Suo", "Ta", "Tan", "Tang", "Tao", "Te", "Ten", "Teng", "Teo", "Ti", "Tia", "Tian", "Tiang", "Tiao", "Tin", "Ting", "Tio", "To", "Ton", "Tong", "Too", "Tu", "Tua", "Tuan", "Tuang", "Tuao", "Tun", "Tung", "Tuo", "Va", "Van", "Vang", "Vao", "Ve", "Ven", "Veng", "Veo", "Vi", "Via", "Vian", "Viang", "Viao", "Vin", "Ving", "Vio", "Vo", "Von", "Vong", "Voo", "Vu", "Vua", "Vuan", "Vuang", "Vuao", "Vun", "Vung", "Vuo", "Wa", "Wan", "Wang", "Wao", "We", "Wen", "Weng", "Weo", "Wi", "Wia", "Wian", "Wiang", "Wiao", "Win", "Wing", "Wio", "Wo", "Won", "Wong", "Woo", "Wu", "Wua", "Wuan", "Wuang", "Wuao", "Wun", "Wung", "Wuo", "Xa", "Xan", "Xang", "Xao", "Xe", "Xen", "Xeng", "Xeo", "Xi", "Xia", "Xian", "Xiang", "Xiao", "Xin", "Xing", "Xio", "Xo", "Xon", "Xong", "Xoo", "Xu", "Xua", "Xuan", "Xuang", "Xuao", "Xun", "Xung", "Xuo", "Ya", "Yan", "Yang", "Yao", "Ye", "Yen", "Yeng", "Yeo", "Yi", "Yia", "Yian", "Yiang", "Yiao", "Yin", "Ying", "Yio", "Yo", "Yon", "Yong", "Yoo", "Yu", "Yua", "Yuan", "Yuang", "Yuao", "Yun", "Yung", "You", "Za", "Zan", "Zang", "Zao", "Ze", "Zen", "Zeng", "Zeo", "Zha", "Zhan", "Zhang", "Zhao", "Zhe", "Zhen", "Zheng", "Zheo", "Zhi", "Zhia", "Zhian", "Zhiang", "Zhiao", "Zhin", "Zhing", "Zhio", "Zho", "Zhon", "Zhong", "Zhoo", "Zhu", "Zhua", "Zhuan", "Zhuang", "Zhuao", "Zhun", "Zhung", "Zhuo", "Zi", "Zia", "Zian", "Ziang", "Ziao", "Zin", "Zing", "Zio", "Zo", "Zon", "Zong", "Zoo", "Zu", "Zua", "Zuan", "Zuang", "Zuao", "Zun", "Zung", "Zuo"}
zoraiLastNames = {"Ba", "Bai", "Ban", "Bang", "Bangi", "Bani", "Bao", "Baoi", "Be", "Bei", "Ben", "Beng", "Bengi", "Beni", "Beo", "Beoi", "Bi", "Bia", "Biai", "Bian", "Biang", "Biangi", "Biani", "Biao", "Biaoi", "Bii", "Bin", "Bing", "Bingi", "Bini", "Bio", "Bioi", "Bo", "Boi", "Bon", "Bong", "Bongi", "Boni", "Boo", "Booi", "Bu", "Bua", "Buai", "Buan", "Buang", "Buangi", "Buani", "Buao", "Buaoi", "Bui", "Bun", "Bung", "Bungi", "Buni", "Buo", "Buoi", "Ca", "Cai", "Can", "Cang", "Cangi", "Cani", "Cao", "Caoi", "Ce", "Cei", "Cen", "Ceng", "Cengi", "Ceni", "Ceo", "Ceoi", "Cha", "Chai", "Chan", "Chang", "Changi", "Chani", "Chao", "Chaoi", "Che", "Chei", "Chen", "Cheng", "Chengi", "Cheni", "Cheo", "Cheoi", "Chi", "Chia", "Chiai", "Chian", "Chiang", "Chiangi", "Chiani", "Chiao", "Chiaoi", "Chii", "Chin", "Ching", "Chingi", "Chini", "Chio", "Chioi", "Cho", "Choi", "Chon", "Chong", "Chongi", "Choni", "Choo", "Chooi", "Chu", "Chua", "Chuai", "Chuan", "Chuang", "Chuangi", "Chuani", "Chuao", "Chuaoi", "Chui", "Chun", "Chung", "Chungi", "Chuni", "Chuo", "Chuoi", "Ci", "Cia", "Ciai", "Cian", "Ciang", "Ciangi", "Ciani", "Ciao", "Ciaoi", "Cii", "Cin", "Cing", "Cingi", "Cini", "Cio", "Cioi", "Co", "Coi", "Con", "Cong", "Congi", "Coni", "Coo", "Cooi", "Cu", "Cua", "Cuai", "Cuan", "Cuang", "Cuangi", "Cuani", "Cuao", "Cuaoi", "Cui", "Cun", "Cung", "Cungi", "Cuni", "Cuo", "Cuoi", "Da", "Dai", "Dan", "Dang", "Dangi", "Dani", "Dao", "Daoi", "De", "Dei", "Den", "Deng", "Dengi", "Deni", "Deo", "Deoi", "Di", "Dia", "Diai", "Dian", "Diang", "Diangi", "Diani", "Diao", "Diaoi", "Dii", "Din", "Ding", "Dingi", "Dini", "Dio", "Dioi", "Do", "Doi", "Don", "Dong", "Dongi", "Doni", "Doo", "Dooi", "Du", "Dua", "Duai", "Duan", "Duang", "Duangi", "Duani", "Duao", "Duaoi", "Dui", "Dun", "Dung", "Dungi", "Duni", "Duo", "Duoi", "Fa", "Fai", "Fan", "Fang", "Fangi", "Fani", "Fao", "Faoi", "Fe", "Fei", "Fen", "Feng", "Fengi", "Feni", "Feo", "Feoi", "Fi", "Fia", "Fiai", "Fian", "Fiang", "Fiangi", "Fiani", "Fiao", "Fiaoi", "Fii", "Fin", "Fing", "Fingi", "Fini", "Fio", "Fioi", "Fo", "Foi", "Fon", "Fong", "Fongi", "Foni", "Foo", "Fooi", "Fu", "Fua", "Fuai", "Fuan", "Fuang", "Fuangi", "Fuani", "Fuao", "Fuaoi", "Fui", "Fun", "Fung", "Fungi", "Funi", "Fuo", "Fuoi", "Ga", "Gai", "Gan", "Gang", "Gangi", "Gani", "Gao", "Gaoi", "Ge", "Gei", "Gen", "Geng", "Gengi", "Geni", "Geo", "Geoi", "Gi", "Gia", "Giai", "Gian", "Giang", "Giangi", "Giani", "Giao", "Giaoi", "Gii", "Gin", "Ging", "Gingi", "Gini", "Gio", "Gioi", "Go", "Goi", "Gon", "Gong", "Gongi", "Goni", "Goo", "Gooi", "Gu", "Gua", "Guai", "Guan", "Guang", "Guangi", "Guani", "Guao", "Guaoi", "Gui", "Gun", "Gung", "Gungi", "Guni", "Guo", "Guoi", "Ha", "Hai", "Han", "Hang", "Hangi", "Hani", "Hao", "Haoi", "He", "Hei", "Hen", "Heng", "Hengi", "Heni", "Heo", "Heoi", "Hi", "Hia", "Hiai", "Hian", "Hiang", "Hiangi", "Hiani", "Hiao", "Hiaoi", "Hii", "Hin", "Hing", "Hingi", "Hini", "Hio", "Hioi", "Ho", "Hoi", "Hon", "Hong", "Hongi", "Honi", "Hoo", "Hooi", "Hu", "Hua", "Huai", "Huan", "Huang", "Huangi", "Huani", "Huao", "Huaoi", "Hui", "Hun", "Hung", "Hungi", "Huni", "Huo", "Huoi", "Ja", "Jai", "Jan", "Jang", "Jangi", "Jani", "Jao", "Jaoi", "Je", "Jei", "Jen", "Jeng", "Jengi", "Jeni", "Jeo", "Jeoi", "Ji", "Jia", "Jiai", "Jian", "Jiang", "Jiangi", "Jiani", "Jiao", "Jiaoi", "Jii", "Jin", "Jing", "Jingi", "Jini", "Jio", "Jioi", "Jo", "Joi", "Jon", "Jong", "Jongi", "Joni", "Joo", "Jooi", "Ju", "Jua", "Juai", "Juan", "Juang", "Juangi", "Juani", "Juao", "Juaoi", "Jui", "Jun", "Jung", "Jungi", "Juni", "Juo", "Juoi", "Ka", "Kai", "Kan", "Kang", "Kangi", "Kani", "Kao", "Kaoi", "Ke", "Kei", "Ken", "Keng", "Kengi", "Keni", "Keo", "Keoi", "Ki", "Kia", "Kiai", "Kian", "Kiang", "Kiangi", "Kiani", "Kiao", "Kiaoi", "Kii", "Kin", "King", "Kingi", "Kini", "Kio", "Kioi", "Ko", "Koi", "Kon", "Kong", "Kongi", "Koni", "Koo", "Kooi", "Ku", "Kua", "Kuai", "Kuan", "Kuang", "Kuangi", "Kuani", "Kuao", "Kuaoi", "Kui", "Kun", "Kung", "Kungi", "Kuni", "Kuo", "Kuoi", "La", "Lai", "Lan", "Lang", "Langi", "Lani", "Lao", "Laoi", "Le", "Lei", "Len", "Leng", "Lengi", "Leni", "Leo", "Leoi", "Li", "Lia", "Liai", "Lian", "Liang", "Liangi", "Liani", "Liao", "Liaoi", "Lii", "Lin", "Ling", "Lingi", "Lini", "Lio", "Lioi", "Lo", "Loi", "Lon", "Long", "Longi", "Loni", "Loo", "Looi", "Lu", "Lua", "Luai", "Luan", "Luang", "Luangi", "Luani", "Luao", "Luaoi", "Lui", "Lun", "Lung", "Lungi", "Luni", "Luo", "Luoi", "Ma", "Mai", "Man", "Mang", "Mangi", "Mani", "Mao", "Maoi", "Me", "Mei", "Men", "Meng", "Mengi", "Meni", "Meo", "Meoi", "Mi", "Mia", "Miai", "Mian", "Miang", "Miangi", "Miani", "Miao", "Miaoi", "Mii", "Min", "Ming", "Mingi", "Mini", "Mio", "Mioi", "Mo", "Moi", "Mon", "Mong", "Mongi", "Moni", "Moo", "Mooi", "Mu", "Mua", "Muai", "Muan", "Muang", "Muangi", "Muani", "Muao", "Muaoi", "Mui", "Mun", "Mung", "Mungi", "Muni", "Muo", "Muoi", "Na", "Nai", "Nan", "Nang", "Nangi", "Nani", "Nao", "Naoi", "Ne", "Nei", "Nen", "Neng", "Nengi", "Neni", "Neo", "Neoi", "Ni", "Nia", "Niai", "Nian", "Niang", "Niangi", "Niani", "Niao", "Niaoi", "Nii", "Nin", "Ning", "Ningi", "Nini", "Nio", "Nioi", "No", "Noi", "Non", "Nong", "Nongi", "Noni", "Noo", "Nooi", "Nu", "Nua", "Nuai", "Nuan", "Nuang", "Nuangi", "Nuani", "Nuao", "Nuaoi", "Nui", "Nun", "Nung", "Nungi", "Nuni", "Nuo", "Nuoi", "Pa", "Pai", "Pan", "Pang", "Pangi", "Pani", "Pao", "Paoi", "Pe", "Pei", "Pen", "Peng", "Pengi", "Peni", "Peo", "Peoi", "Pi", "Pia", "Piai", "Pian", "Piang", "Piangi", "Piani", "Piao", "Piaoi", "Pii", "Pin", "Ping", "Pingi", "Pini", "Pio", "Pioi", "Po", "Poi", "Pon", "Pong", "Pongi", "Poni", "Poo", "Pooi", "Pu", "Pua", "Puai", "Puan", "Puang", "Puangi", "Puani", "Puao", "Puaoi", "Pui", "Pun", "Pung", "Pungi", "Puni", "Puo", "Puoi", "Qa", "Qai", "Qan", "Qang", "Qangi", "Qani", "Qao", "Qaoi", "Qe", "Qei", "Qen", "Qeng", "Qengi", "Qeni", "Qeo", "Qeoi", "Qi", "Qia", "Qiai", "Qian", "Qiang", "Qiangi", "Qiani", "Qiao", "Qiaoi", "Qii", "Qin", "Qing", "Qingi", "Qini", "Qio", "Qioi", "Qo", "Qoi", "Qon", "Qong", "Qongi", "Qoni", "Qoo", "Qooi", "Qu", "Qua", "Quai", "Quan", "Quang", "Quangi", "Quani", "Quao", "Quaoi", "Qui", "Qun", "Qung", "Qungi", "Quni", "Quo", "Sa", "Sai", "San", "Sang", "Sangi", "Sani", "Sao", "Saoi", "Se", "Sei", "Sen", "Seng", "Sengi", "Seni", "Seo", "Seoi", "Sha", "Shai", "Shan", "Shang", "Shangi", "Shani", "Shao", "Shaoi", "She", "Shei", "Shen", "Sheng", "Shengi", "Sheni", "Sheo", "Sheoi", "Shi", "Shia", "Shiai", "Shian", "Shiang", "Shiangi", "Shiani", "Shiao", "Shiaoi", "Shii", "Shin", "Shing", "Shingi", "Shini", "Shio", "Shioi", "Sho", "Shoi", "Shon", "Shong", "Shongi", "Shoni", "Shoo", "Shooi", "Shu", "Shua", "Shuai", "Shuan", "Shuang", "Shuangi", "Shuani", "Shuao", "Shuaoi", "Shui", "Shun", "Shung", "Shungi", "Shuni", "Shuo", "Shuoi", "Si", "Sia", "Siai", "Sian", "Siang", "Siangi", "Siani", "Siao", "Siaoi", "Sii", "Sin", "Sing", "Singi", "Sini", "Sio", "Sioi", "So", "Soi", "Son", "Song", "Songi", "Soni", "Soo", "Sooi", "Su", "Sua", "Suai", "Suan", "Suang", "Suangi", "Suani", "Suao", "Suaoi", "Sui", "Sun", "Sung", "Sungi", "Suni", "Suo", "Suoi", "Ta", "Tai", "Tan", "Tang", "Tangi", "Tani", "Tao", "Taoi", "Te", "Tei", "Ten", "Teng", "Tengi", "Teni", "Teo", "Teoi", "Ti", "Tia", "Tiai", "Tian", "Tiang", "Tiangi", "Tiani", "Tiao", "Tiaoi", "Tii", "Tin", "Ting", "Tingi", "Tini", "Tio", "Tioi", "To", "Toi", "Ton", "Tong", "Tongi", "Toni", "Too", "Tooi", "Tu", "Tua", "Tuai", "Tuan", "Tuang", "Tuangi", "Tuani", "Tuao", "Tuaoi", "Tui", "Tun", "Tung", "Tungi", "Tuni", "Tuo", "Tuoi", "Va", "Vai", "Van", "Vang", "Vangi", "Vani", "Vao", "Vaoi", "Ve", "Vei", "Ven", "Veng", "Vengi", "Veni", "Veo", "Veoi", "Vi", "Via", "Viai", "Vian", "Viang", "Viangi", "Viani", "Viao", "Viaoi", "Vii", "Vin", "Ving", "Vingi", "Vini", "Vio", "Vioi", "Vo", "Voi", "Von", "Vong", "Vongi", "Voni", "Voo", "Vooi", "Vu", "Vua", "Vuai", "Vuan", "Vuang", "Vuangi", "Vuani", "Vuao", "Vuaoi", "Vui", "Vun", "Vung", "Vungi", "Vuni", "Vuo", "Vuoi", "Wa", "Wai", "Wan", "Wang", "Wangi", "Wani", "Wao", "Waoi", "We", "Wei", "Wen", "Weng", "Wengi", "Weni", "Weo", "Weoi", "Wi", "Wia", "Wiai", "Wian", "Wiang", "Wiangi", "Wiani", "Wiao", "Wiaoi", "Wii", "Win", "Wing", "Wingi", "Wini", "Wio", "Wioi", "Wo", "Woi", "Won", "Wong", "Wongi", "Woni", "Woo", "Wooi", "Wu", "Wua", "Wuai", "Wuan", "Wuang", "Wuangi", "Wuani", "Wuao", "Wuaoi", "Wui", "Wun", "Wung", "Wungi", "Wuni", "Wuo", "Wuoi", "Xa", "Xai", "Xan", "Xang", "Xangi", "Xani", "Xao", "Xaoi", "Xe", "Xei", "Xen", "Xeng", "Xengi", "Xeni", "Xeo", "Xeoi", "Xi", "Xia", "Xiai", "Xian", "Xiang", "Xiangi", "Xiani", "Xiao", "Xiaoi", "Xii", "Xin", "Xing", "Xingi", "Xini", "Xio", "Xioi", "Xo", "Xoi", "Xon", "Xong", "Xongi", "Xoni", "Xoo", "Xooi", "Xu", "Xua", "Xuai", "Xuan", "Xuang", "Xuangi", "Xuani", "Xuao", "Xuaoi", "Xui", "Xun", "Xung", "Xungi", "Xuni", "Xuo", "Xuoi", "Ya", "Yai", "Yan", "Yang", "Yangi", "Yani", "Yao", "Yaoi", "Ye", "Yei", "Yen", "Yeng", "Yengi", "Yeni", "Yeo", "Yeoi", "Yi", "Yia", "Yiai", "Yian", "Yiang", "Yiangi", "Yiani", "Yiao", "Yiaoi", "Yii", "Yin", "Ying", "Yingi", "Yini", "Yio", "Yioi", "Yo", "Yoi", "Yon", "Yong", "Yongi", "Yoni", "Yoo", "Yooi", "Yu", "Yua", "Yuai", "Yuan", "Yuang", "Yuangi", "Yuani", "Yuao", "Yuaoi", "Yui", "Yun", "Yung", "Yungi", "Yuni", "Yuo", "Yuoi", "Za", "Zai", "Zan", "Zang", "Zangi", "Zani", "Zao", "Zaoi", "Ze", "Zei", "Zen", "Zeng", "Zengi", "Zeni", "Zeo", "Zeoi", "Zha", "Zhai", "Zhan", "Zhang", "Zhangi", "Zhani", "Zhao", "Zhaoi", "Zhe", "Zhei", "Zhen", "Zheng", "Zhengi", "Zheni", "Zheo", "Zheoi", "Zhi", "Zhia", "Zhiai", "Zhian", "Zhiang", "Zhiangi", "Zhiani", "Zhiao", "Zhiaoi", "Zhii", "Zhin", "Zhing", "Zhingi", "Zhini", "Zhio", "Zhioi", "Zho", "Zhoi", "Zhon", "Zhong", "Zhongi", "Zhoni", "Zhoo", "Zhooi", "Zhu", "Zhua", "Zhuai", "Zhuan", "Zhuang", "Zhuangi", "Zhuani", "Zhuao", "Zhuaoi", "Zhui", "Zhun", "Zhung", "Zhungi", "Zhuni", "Zhuo", "Zhuoi", "Zi", "Zia", "Ziai", "Zian", "Ziang", "Ziangi", "Ziani", "Ziao", "Ziaoi", "Zii", "Zin", "Zing", "Zingi", "Zini", "Zio", "Zioi", "Zo", "Zoi", "Zon", "Zong", "Zongi", "Zoni", "Zoo", "Zooi", "Zu", "Zua", "Zuai", "Zuan", "Zuang", "Zuangi", "Zuani", "Zuao", "Zuaoi", "Zui", "Zun", "Zung", "Zungi", "Zuni", "Zuo", "Zuoi"}
+
+-- VERSION --
+RYZOM_NAMES_ZORAI_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua b/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua
index 198e9bdd2f..65ef3ed480 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/out_v2_appear.lua
@@ -276,17 +276,14 @@ function outgame:buildActionPack()
local slot = getDbProp("UI:TEMP:CHARSELSLOT")
local lang = getClientCfg("LanguageCode")
+ local login = getClientCfgVar("LastLogin")
local sex = "m"
if getDbProp("UI:TEMP:CHAR3D:VPA:SEX") == 1 then
sex = "f"
end
- rpbg_key = tostring(nltime.getSecondsSince1970())..":"..tostring(math.random(100000, 429496729))
- local dst = io.open("save/rpbg_"..tostring(slot)..".key", "wb")
- dst:write(rpbg_key)
- dst:close()
getUI("ui:outgame:appear:finish_but").frozen = 1
- getUI("ui:outgame:appear:job_options:rpbg:html"):browse("https://app.ryzom.com/app_arcc/outgame_rpbg.php?lang="..lang.."&slot="..tostring(slot).."&sex="..sex.."&key="..rpbg_key)
+ getUI("ui:outgame:appear:job_options:rpbg:html"):browse("https://app.ryzom.com/app_arcc/outgame_rpbg.php?lang="..lang.."&login="..login.."&slot="..tostring(slot).."&sex="..sex)
local uiDesc = getUI("ui:outgame:appear:job_options:options:desc")
@@ -431,10 +428,13 @@ end
function outgame:loadRPBGPage()
local slot = getDbProp("UI:TEMP:CHARSELSLOT")
local lang = getClientCfg("LanguageCode")
+ local login = getClientCfgVar("LastLogin")
local sex = "m"
if getDbProp("UI:TEMP:CHAR3D:VPA:SEX") == 1 then
sex = "f"
end
- getUI("ui:outgame:appear:job_options:rpbg:html"):browse("https://app.ryzom.com/app_arcc/outgame_rpbg.php?lang="..lang.."&slot="..tostring(slot).."&sex="..sex.."&key="..rpbg_key)
- getUI("https://app.ryzom.com/app_arcc/outgame_rpbg.php?lang="..lang.."&slot="..tostring(slot).."&sex="..sex.."&key="..rpbg_key)
+ getUI("ui:outgame:appear:job_options:rpbg:html"):browse("https://app.ryzom.com/app_arcc/outgame_rpbg.php?lang="..lang.."&login="..login.."&slot="..tostring(slot).."&sex="..sex)
end
+
+-- VERSION --
+RYZOM_OUT_V2_APPEAR_VERSION = 324
diff --git a/ryzom/client/data/gamedev/interfaces_v3/out_v2_connect.xml b/ryzom/client/data/gamedev/interfaces_v3/out_v2_connect.xml
index 8acbe7d4e2..a038a133c1 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/out_v2_connect.xml
+++ b/ryzom/client/data/gamedev/interfaces_v3/out_v2_connect.xml
@@ -36,10 +36,10 @@
-
-
+
-
+
-
-
-
diff --git a/ryzom/client/data/gamedev/interfaces_v3/out_v2_intro.xml b/ryzom/client/data/gamedev/interfaces_v3/out_v2_intro.xml
index 04bc3cd19d..9a341b3fc8 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/out_v2_intro.xml
+++ b/ryzom/client/data/gamedev/interfaces_v3/out_v2_intro.xml
@@ -1,6 +1,7 @@
+
@@ -22,9 +23,9 @@
-
+
-
+
@@ -42,7 +43,7 @@
-
+
@@ -85,21 +86,20 @@
-
+
-
-
+
@@ -109,30 +109,30 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
-
+
+
-->
-
-
+
+
-
-
-
-
diff --git a/ryzom/client/data/gamedev/interfaces_v3/out_v2_select.lua b/ryzom/client/data/gamedev/interfaces_v3/out_v2_select.lua
index 7e35b5a438..afd737f895 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/out_v2_select.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/out_v2_select.lua
@@ -42,3 +42,6 @@ function game:procCharselClickSlot()
local value = getDbProp('UI:SELECTED_SLOT')
runAH(nil, "proc", "proc_charsel_clickslot|"..value)
end
+
+-- VERSION --
+RYZOM_OUT_V2_SELECT_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/outpost.lua b/ryzom/client/data/gamedev/interfaces_v3/outpost.lua
index 67fb214af5..8e01dce292 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/outpost.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/outpost.lua
@@ -93,24 +93,25 @@ end
------------------------------------------------------------------------------------------------------------
function game:outpostBCOpenStateWindow()
+ getUI("ui:interface:outpost_selected").active = false
-- Open the State Window from the BotChat. server msg
- runAH(nil, 'outpost_select_from_bc', '');
+ runAH(nil, "outpost_select_from_bc", "");
-- Open the window
- runAH(nil, 'show', 'outpost_selected');
+ runAH(nil, "show", "outpost_selected");
end
------------------------------------------------------------------------------------------------------------
function game:outpostDeclareWar()
- -- Send Msg to server
- runAH(nil, 'outpost_declare_war_start', '');
-
- -- wait a ack from server. Suppose not OK by default
- setDbProp("UI:TEMP:OUTPOST:DECLARE_WAR_ACK_RECEIVED", 0);
- setDbProp("UI:TEMP:OUTPOST:DECLARE_WAR_ACK_OK", 0);
-
- -- Open the Declare War window
- runAH(nil, "show", "outpost_declare_war");
+ local sheetSel = getDbProp("SERVER:OUTPOST_SELECTED:SHEET");
+ if sheetSel ~= nil then
+ local sheetSel = getSheetName(sheetSel)
+ local timeoffset = "0"
+ if getTimestampHuman ~= nil then
+ timeoffset = getTimestampHuman("%z")
+ end
+ WebQueue:push("https://app.ryzom.com/app_guild/outposts.php?action=declareWar&script=10149&command=reset_all&outpost="..sheetSel.."&timeoffset="..timeoffset)
+ end
end
------------------------------------------------------------------------------------------------------------
@@ -168,63 +169,58 @@ function game:outpostSelectSquadCapitalConfirm()
end
function game:outpostSetSquad()
- local halfIndexSquad= tonumber(getDefine("right_squad_list_index"));
- local MaxSquad= tonumber(getDefine("outpost_nb_max_squad_in_list"));
- debug(getDbProp("UI:TEMP:OUTPOST:SQUAD_TO_BUY"))
- local slot = getDbProp("UI:TEMP:OUTPOST:SQUAD_SLOT_SELECTED")
- if slot >= halfIndexSquad then
- setDbProp("UI:TEMP:OUTPOST:SQUAD_SLOT_SELECTED", slot - MaxSquad)
- end
+ debug(getDbProp("UI:TEMP:OUTPOST:SQUAD_SLOT_SELECTED"))
runAH(nil, "outpost_set_squad", "line=@UI:TEMP:OUTPOST:SQUAD_TO_BUY");
end
function game:outpostRemoveSquad()
- local Rounds = tonumber(getDefine("right_squad_list_index"));
- local MaxSquad= tonumber(getDefine("outpost_nb_max_squad_in_list"));
- local slot = getDbProp("UI:TEMP:OUTPOST:SQUAD_SLOT_SELECTED")
- if slot >= Rounds then
- setDbProp("UI:TEMP:OUTPOST:SQUAD_SLOT_SELECTED", slot - MaxSquad)
- end
runAH(nil, "outpost_remove_squad", "line=@UI:TEMP:OUTPOST:SQUAD_TO_BUY");
end
function game:outpostInsertSquad()
- local Rounds= tonumber(getDefine("right_squad_list_index"));
- local MaxSquad= tonumber(getDefine("outpost_nb_max_squad_in_list"));
- local slot = getDbProp("UI:TEMP:OUTPOST:SQUAD_SLOT_SELECTED")
- if slot >= Rounds then
- setDbProp("UI:TEMP:OUTPOST:SQUAD_SLOT_SELECTED", slot - MaxSquad)
- end
runAH(nil, "outpost_insert_squad", "line=@UI:TEMP:OUTPOST:SQUAD_TO_BUY");
end
function game:outpostSetMapSquad()
- local Rounds= tonumber(getDefine("right_squad_list_index"));
- local MaxSquad= tonumber(getDefine("outpost_nb_max_squad_in_list"));
- local slot = getDbProp("UI:TEMP:OUTPOST:SQUAD_SLOT_SELECTED")
- if slot >= Rounds then
- setDbProp("UI:TEMP:OUTPOST:SQUAD_SLOT_SELECTED", slot - MaxSquad)
- end
runAH(nil, "outpost_squad_map_send", "ui:interface:squad_spawn_map:content:map_content:actual_map")
end
------------------------------------------------------------------------------------------------------------
function game:outpostToolTipTrainSquad(dbIndex)
- local Rounds= tonumber(getDefine("right_squad_list_index"));
+ local Rounds = tonumber(getDefine("right_squad_list_index"));
-- compute the level at which the squad will spawn.
- local lvl;
+ local lvl
+ local elm
if(dbIndex < Rounds) then
- lvl = dbIndex*2 +1 ; -- eg: 0 => 1. 1=> 3
+ elm = getUI("ui:interface:outpost:content:squad_setup:list_next_start:list:o"..tostring(dbIndex))
+ lvl = math.ceil((dbIndex + 1)*1.3) - 1 -- eg: 0 => 1
+ if dbIndex == 3 or dbIndex == 6 then
+ elm.y = -14
+ end
else
- lvl = (dbIndex-Rounds)*2 +2 ; -- eg: 12 => 2
+ elm = getUI("ui:interface:outpost:content:squad_setup:list_next_during:list:o"..tostring(dbIndex))
+ lvl = math.ceil((dbIndex - Rounds + 1)*1.3) -- eg: 12 => 1
+ if dbIndex == 12 or dbIndex == 15 or dbIndex == 18 then
+ elm.y = -14
+ end
end
-- set the tooltip
- local text = i18n.get('uittOutpostSquadLvl');
+ local text = i18n.get("uittOutpostSquadLvl");
text = findReplaceAll(text, "%lvl", tostring(lvl));
setContextHelpText(text);
+
+ if dbIndex == 10 or dbIndex == 11 then
+ getUI("ui:interface:outpost:content:squad_setup:list_next_start:list:o"..tostring(dbIndex)).active=false
+ end
+
+ if dbIndex >= 22 then
+ getUI("ui:interface:outpost:content:squad_setup:list_next_during:list:o"..tostring(dbIndex)).active=false
+ end
+
+
end
@@ -281,6 +277,10 @@ function game:outpostInfoOnDbChange()
-- change path for attacker text id
uiGroup.global_state.outpost_attacker.name.textid_dblink= path .. ':GUILD:NAME_ATT';
+
+ for i=0,23 do
+ game:outpostToolTipTrainSquad(i)
+ end
end
------------------------------------------------------------------------------------------------------------
@@ -414,7 +414,7 @@ function game:outpostGetStatusInfo(statusExpr, dbIndex, isTooltip)
if (isTooltip == 'no') then
path = self:outpostInfoGetDbPath(uiGroup.parent);
else
- path = formatUI('SERVER:GUILD:OUTPOST:O#1', math.max(0, dbIndex));
+ path = formatUI('SERVER:GUILD:OUTPOST:O#1', math.max(0, tonumber(dbIndex)));
end
-- Peace
@@ -483,7 +483,6 @@ function game:outpostGetStatusInfo(statusExpr, dbIndex, isTooltip)
end
return uittOutpost;
-
end
------------------------------------------------------------------------------------------------------------
@@ -665,3 +664,6 @@ function game:outpostInitPvpJoinTimer()
setOnDraw(uiGroup, 'game:outpostPvpJoinTimerOnDraw()');
end
+
+-- VERSION --
+RYZOM_OUTPOST_VERSION = 335
diff --git a/ryzom/client/data/gamedev/interfaces_v3/outpost.xml b/ryzom/client/data/gamedev/interfaces_v3/outpost.xml
index 866b0b5788..669bde569e 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/outpost.xml
+++ b/ryzom/client/data/gamedev/interfaces_v3/outpost.xml
@@ -466,8 +466,8 @@
-
-
+
+
@@ -528,8 +528,9 @@
-
-
+
diff --git a/ryzom/client/data/gamedev/interfaces_v3/phrase.xml b/ryzom/client/data/gamedev/interfaces_v3/phrase.xml
index 8588668dcc..9cde224ade 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/phrase.xml
+++ b/ryzom/client/data/gamedev/interfaces_v3/phrase.xml
@@ -133,7 +133,7 @@
-
+
+
+
+
+
+
+
+
+
diff --git a/ryzom/client/data/gamedev/interfaces_v3/ring_access_point.lua b/ryzom/client/data/gamedev/interfaces_v3/ring_access_point.lua
index ca04561f1e..16df6010c5 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/ring_access_point.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/ring_access_point.lua
@@ -942,3 +942,6 @@ function RingAccessPoint:newScenario()
end
end
+
+-- VERSION --
+RYZOM_RING_ACCESS_POINT_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/ring_access_point_filter.lua b/ryzom/client/data/gamedev/interfaces_v3/ring_access_point_filter.lua
index 44a0451d75..9eb909358e 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/ring_access_point_filter.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/ring_access_point_filter.lua
@@ -119,3 +119,6 @@ function game.RingAccessPointFilter:validate()
end
+
+-- VERSION --
+RYZOM_RING_ACCESS_POINT_FILTER_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/ring_window.lua b/ryzom/client/data/gamedev/interfaces_v3/ring_window.lua
index dfec3edc4b..59ed3c745e 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/ring_window.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/ring_window.lua
@@ -15,3 +15,6 @@ function onRingWindowShown()
firstBrowseDone = true
end
end
+
+-- VERSION --
+RYZOM_RING_WINDOW_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/ryzhome_toolbar.lua b/ryzom/client/data/gamedev/interfaces_v3/ryzhome_toolbar.lua
index 5fd43364ba..9ece89fdbb 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/ryzhome_toolbar.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/ryzhome_toolbar.lua
@@ -234,3 +234,6 @@ function RyzhomePlace:close()
--runAH(nil, "remove_shapes", "")
getUI("ui:interface:webig_ryzhome_place_item").active=false
end
+
+-- VERSION --
+RYZOM_RYZHOME_TOOLBAR_VERSION = 324
\ No newline at end of file
diff --git a/ryzom/client/data/gamedev/interfaces_v3/sceneedit.lua b/ryzom/client/data/gamedev/interfaces_v3/sceneedit.lua
index 78d02648ca..9a02d2fe47 100644
--- a/ryzom/client/data/gamedev/interfaces_v3/sceneedit.lua
+++ b/ryzom/client/data/gamedev/interfaces_v3/sceneedit.lua
@@ -52,57 +52,57 @@ function SceneEditor:launch_menu(id)
menu:updateCoords()
menu = menu:getRootMenu()
menu:reset()
- menu:addLine(ucstring("-- SHAPE EDITION --"), "", "", "shape_header")
- menu:addLine(ucstring("Move"), "", "", "shape_move")
+ menu:addLine(getUCtf8("-- SHAPE EDITION --"), "", "", "shape_header")
+ menu:addLine(getUCtf8("Move"), "", "", "shape_move")
menu:addSubMenu(1)
local subMenu = menu:getSubMenu(1)
- subMenu:addIconLine(ucstring("Axe X"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:move_x()')", "shape_move_x", "ark_move_x.tga")
- subMenu:addIconLine(ucstring("Axe Y"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:move_y()')", "shape_move_y", "ark_move_y.tga")
- subMenu:addIconLine(ucstring("Axe Z"), "lua", "x, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:move_z()')", "shape_move_z", "ark_move_z.tga")
- subMenu:addIconLine(ucstring("Axes X & Y"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:move_xy()')", "shape_move_xy", "ark_move_xy.tga")
- subMenu:addIconLine(ucstring("Axes X & Y Snap to ground"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:move_xysnap()')", "shape_move_xy_snap", "ark_move_xysnap.tga")
+ subMenu:addIconLine(getUCtf8("Axe X"), "lua", "setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:move_x()\')", "shape_move_x", "ark_move_x.tga")
+ subMenu:addIconLine(getUCtf8("Axe Y"), "lua", "setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:move_y()\')", "shape_move_y", "ark_move_y.tga")
+ subMenu:addIconLine(getUCtf8("Axe Z"), "lua", "x, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:move_z()\')", "shape_move_z", "ark_move_z.tga")
+ subMenu:addIconLine(getUCtf8("Axes X & Y"), "lua", "setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:move_xy()\')", "shape_move_xy", "ark_move_xy.tga")
+ subMenu:addIconLine(getUCtf8("Axes X & Y Snap to ground    "), "lua", "setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:move_xysnap()\')", "shape_move_xy_snap", "ark_move_xysnap.tga")
subMenu:addSeparator()
- subMenu:addIconLine(ucstring("Move to player"), "lua", "SceneEditor:move_player()", "shape_move_player", "ark_move_player.tga")
+ subMenu:addIconLine(getUCtf8("Move to player    "), "lua", "SceneEditor:move_player()", "shape_move_player", "ark_move_player.tga")
- menu:addLine(ucstring("Rotate"), "", "", "shape_rotate")
+ menu:addLine(getUCtf8("Rotate"), "", "", "shape_rotate")
menu:addSubMenu(2)
subMenu = menu:getSubMenu(2)
- subMenu:addIconLine(ucstring("Axe X"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:rotate(SelectedInstanceId, \"x\")')", "shape_rotate_x", "ark_rotate_x.tga")
- subMenu:addIconLine(ucstring("Axe Y"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:rotate(SelectedInstanceId, \"y\")')", "shape_rotate_y", "ark_rotate_y.tga")
- subMenu:addIconLine(ucstring("Axe Z"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:rotate(SelectedInstanceId, \"z\")')", "shape_rotate_z", "ark_rotate_z.tga")
+ subMenu:addIconLine(getUCtf8("Axe X"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:rotate(SelectedInstanceId, \"x\")\')", "shape_rotate_x", "ark_rotate_x.tga")
+ subMenu:addIconLine(getUCtf8("Axe Y"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:rotate(SelectedInstanceId, \"y\")\')", "shape_rotate_y", "ark_rotate_y.tga")
+ subMenu:addIconLine(getUCtf8("Axe Z Â Â Â "), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:rotate(SelectedInstanceId, \"z\")\')", "shape_rotate_z", "ark_rotate_z.tga")
- menu:addLine(ucstring("Scale"), "", "", "shape_scale")
+ menu:addLine(getUCtf8("Scale"), "", "", "shape_scale")
menu:addSubMenu(3)
subMenu = menu:getSubMenu(3)
- subMenu:addIconLine(ucstring("Axe X"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:scale(SelectedInstanceId, \"x\")')", "shape_scale_x", "ark_scale_x.tga")
- subMenu:addIconLine(ucstring("Axe Y"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:scale(SelectedInstanceId, \"y\")')", "shape_scale_y", "ark_scale_y.tga")
- subMenu:addIconLine(ucstring("Axe Z"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:scale(SelectedInstanceId, \"z\")')", "shape_scale_z", "ark_scale_z.tga")
- subMenu:addIconLine(ucstring("Axes X & Y & Z"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:scale(SelectedInstanceId, \"xyz\")')", "shape_scale_xyz", "ark_scale_xyz.tga")
+ subMenu:addIconLine(getUCtf8("Axe X"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:scale(SelectedInstanceId, \"x\")\')", "shape_scale_x", "ark_scale_x.tga")
+ subMenu:addIconLine(getUCtf8("Axe Y"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:scale(SelectedInstanceId, \"y\")\')", "shape_scale_y", "ark_scale_y.tga")
+ subMenu:addIconLine(getUCtf8("Axe Z"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:scale(SelectedInstanceId, \"z\")\')", "shape_scale_z", "ark_scale_z.tga")
+ subMenu:addIconLine(getUCtf8("Axes X & Y & Z Â Â Â "), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:scale(SelectedInstanceId, \"xyz\")\')", "shape_scale_xyz", "ark_scale_xyz.tga")
- menu:addLine(ucstring("-- COLLISION EDITION --"), "", "", "col_header")
- menu:addLine(ucstring("Move"), "", "", "col_move")
+ menu:addLine(getUCtf8("-- COLLISION EDITION --"), "", "", "col_header")
+ menu:addLine(getUCtf8("Move"), "", "", "col_move")
menu:addSubMenu(5)
subMenu = menu:getSubMenu(5)
- subMenu:addIconLine(ucstring("Axe X"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_move_x()')", "col_move_x", "ark_move_x.tga")
- subMenu:addIconLine(ucstring("Axe Y"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_move_y()')", "col_move_y", "ark_move_y.tga")
- subMenu:addIconLine(ucstring("Axe Z"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_move_z()')", "col_move_z", "ark_move_xy.tga")
- subMenu:addIconLine(ucstring("Axe X & Y"), "lua", "setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_move_xy()')", "col_move_xy", "ark_move_xy.tga")
+ subMenu:addIconLine(getUCtf8("Axe X"), "lua", "setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:col_move_x()\')", "col_move_x", "ark_move_x.tga")
+ subMenu:addIconLine(getUCtf8("Axe Y"), "lua", "setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:col_move_y()\')", "col_move_y", "ark_move_y.tga")
+ subMenu:addIconLine(getUCtf8("Axe Z"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:col_move_z()\')", "col_move_z", "ark_move_xy.tga")
+ subMenu:addIconLine(getUCtf8("Axe X & Y Â Â Â "), "lua", "setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:col_move_xy()\')", "col_move_xy", "ark_move_xy.tga")
subMenu:addSeparator()
- subMenu:addIconLine(ucstring("Move to Shape"), "lua", "SceneEditor:col_move_to_shape()", "col_move_to_shape", "ark_move_player.tga")
+ subMenu:addIconLine(getUCtf8("Move to Shape    "), "lua", "SceneEditor:col_move_to_shape()", "col_move_to_shape", "ark_move_player.tga")
- menu:addIconLine(ucstring("Rotate"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_rotate(SelectedInstanceId, \"x\")')", "col_rotate_x", "ark_rotate_x.tga")
+ menu:addIconLine(getUCtf8("Rotate"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:col_rotate(SelectedInstanceId, \"x\")\')", "col_rotate_x", "ark_rotate_x.tga")
- menu:addLine(ucstring("Scale"), "", "", "col_scale")
+ menu:addLine(getUCtf8("Scale"), "", "", "col_scale")
menu:addSubMenu(7)
subMenu = menu:getSubMenu(7)
- subMenu:addIconLine(ucstring("Axe X"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_scale(SelectedInstanceId, \"x\")')", "col_scale_x", "ark_scale_x.tga")
- subMenu:addIconLine(ucstring("Axe Y"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_scale(SelectedInstanceId, \"y\")')", "col_scale_y", "ark_scale_y.tga")
- subMenu:addIconLine(ucstring("Axe Z"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI('ui:interface:ark_scene_editor'), 'SceneEditor:col_scale(SelectedInstanceId, \"z\")')", "col_scale_z", "ark_scale_z.tga")
+ subMenu:addIconLine(getUCtf8("Axe X"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:col_scale(SelectedInstanceId, \"x\")\')", "col_scale_x", "ark_scale_x.tga")
+ subMenu:addIconLine(getUCtf8("Axe Y"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:col_scale(SelectedInstanceId, \"y\")\')", "col_scale_y", "ark_scale_y.tga")
+ subMenu:addIconLine(getUCtf8("Axe Z"), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:col_scale(SelectedInstanceId, \"z\")\')", "col_scale_z", "ark_scale_z.tga")
+ subMenu:addIconLine(getUCtf8("Axe X & Y Â Â Â "), "lua", "ARK_SHAPE_LATEST_X, ARK_SHAPE_LATEST_Y = getMousePos(); setOnDraw(getUI(\'ui:interface:ark_scene_editor\'), \'SceneEditor:col_scale(SelectedInstanceId, \"xy\")\')", "col_scale_xy", "ark_scale_xyz.tga")
launchContextMenuInGame("ui:interface:ark_scene_editor_edit_menu")
end
-
function arcc_tools_check_rclick()
root = getUI("ui:interface")
local rx, ry = getMousePos()
@@ -263,8 +263,8 @@ function SceneEditor:col_scale(id, axe)
else
mx, my = getMousePos()
local setup = {}
- if axe == "x" then setup["col size x"]="+"..tostring((mx-ARK_SHAPE_LATEST_X)/100) end
- if axe == "y" then setup["col size y"]="+"..tostring((mx-ARK_SHAPE_LATEST_X)/100) end
+ if axe == "x" or axe == "xy" then setup["col size x"]="+"..tostring((mx-ARK_SHAPE_LATEST_X)/100) end
+ if axe == "y" or axe == "xy" then setup["col size y"]="+"..tostring((mx-ARK_SHAPE_LATEST_X)/100) end
if axe == "z" then setup["col size z"]="+"..tostring((my-ARK_SHAPE_LATEST_Y)/100) end
setupShape(id, setup)
ARK_SHAPE_LATEST_X = mx
@@ -274,9 +274,27 @@ end
function SceneEditor:set_modified(id)
- self.Groups[self.Shapes[id].group].props.modified=true
- self.Shapes[id].modified = "modified"
+ if self.Shapes[id] then
+ self.Groups[self.Shapes[id].group].props.modified=true
+ self.Shapes[id].modified = "modified"
+ end
self.HaveUpdate = true
+ if self.repeatAdd ~= nil then
+ local d, mx, my = getMouseRightDown()
+ if d == false then
+ self.hideMenu = true
+ self:add(self.repeatAdd)
+ self.repeatAdd = nil
+ end
+ else
+ getUI("ui:interface:arkpowo_preview_shape:content:scene3d").active=1
+ local framewin = getUI("ui:interface:arkpowo_preview_shape")
+ framewin.opened=true
+ if self.hideMenu then
+ setOnDraw(getUI("ui:interface:game_context_menu"), "SceneEditor:setTopWindowShapeList()")
+ setOnDraw(getUI("ui:interface:ark_scene_editor_edit_menu"), "SceneEditor:setTopWindowShapeList()")
+ end
+ end
end
@@ -316,7 +334,7 @@ end
function SceneEditor:add(shape)
if self.LastEditedGroup == nil then
- self:get_html(''..self.T["no_selected_group"]..' ', '000000')
+ self:get_html(""..self.T["no_selected_group"].." \", \"000000\"")
end
local new_shape = {}
new_shape.file = shape
@@ -324,11 +342,17 @@ function SceneEditor:add(shape)
self.Groups[new_shape.group].props.modified=true
new_shape.db_id = self.Groups[new_shape.group].props.count + 1
new_shape.modified = "added"
- new_shape_id = addShape(shape, 0, 0, 0, "user", 1, true, "", "SceneEditor:show_menu()")
+ new_shape_id = addShape(shape, 0, 0, 0, "user", 1, true, "", "SceneEditor:show_menu()", false, false, "", "", false)
table.insert(self.Groups[new_shape.group], new_shape_id)
self.Groups[new_shape.group].props.count = self.Groups[new_shape.group].props.count + 1
self.Shapes[new_shape_id] = new_shape
self:get_html("Added")
+
+ self.move_timer = nltime.getLocalTime() + 60
+ getUI("ui:interface:arkpowo_preview_shape:content:scene3d").active=false
+ local framewin = getUI("ui:interface:arkpowo_preview_shape")
+ framewin.opened=false
+ setOnDraw(framewin, "SceneEditor:moveTimerUpdate( \'"..shape.."\', "..tostring(new_shape_id)..")")
end
@@ -373,16 +397,36 @@ function SceneEditor:editGroup(group)
end
function SceneEditor:addFromDb(group, db_id, json_shape, edit)
- shape = Json.decode(json_shape)
+ local shape = Json.decode(json_shape)
shape.db_id = db_id
shape.group = group
shape.modified = ""
+
+ if shape.setup["textures"] ~= nil then
+ textures = shape.setup["textures"]
+ else
+ textures = ""
+ end
+
+ if shape.setup["context"] ~= nil then
+ context = shape.setup["context"]
+ else
+ context = ""
+ end
+
+ if shape.setup["url"] ~= nil then
+ url = shape.setup["url"]
+ else
+ url = ""
+ end
+
if edit then
- shape_id = addShape(shape.file, shape.pos[1], shape.pos[2], shape.pos[3], "user", 1, true, "", "SceneEditor:show_menu()")
+ shape_id = addShape(shape.file, shape.pos[1], shape.pos[2], shape.pos[3], "user", 1, true, "", "SceneEditor:show_menu()", false, false, textures, "", false)
else
- shape_id = addShape(shape.file, shape.pos[1], shape.pos[2], shape.pos[3], "user", 1, true, "", "")
+ shape_id = addShape(shape.file, shape.pos[1], shape.pos[2], shape.pos[3], "user", 1, true, context, url, false, false, textures, "", false)
end
+
rotateShape(shape_id, tostring(shape.rot[1]), tostring(shape.rot[2]), tostring(shape.rot[3]))
setupShape(shape_id, shape.setup)
self.Shapes[shape_id] = shape
@@ -517,6 +561,21 @@ function SceneEditor:get_html_section(message, color)
return ''
end
+function SceneEditor:onOverShapeButton(shape_id)
+ if SceneEditor.lastColorizedCheck then
+ setupShape(SceneEditor.lastColorizedCheck, {colorize="0"})
+ end
+ SceneEditor.lastColorizedCheck = shape_id
+ setupShape(shape_id, {colorize="255 0 0 255"})
+end
+
+function SceneEditor:setupShapeButton(shape_id)
+ local button = getUI("ui:interface:ark_scene_editor:browser:content:html"):find("shape_"..shape_id):find("b")
+ button.onover = "lua"
+ button.params_over = "SceneEditor:onOverShapeButton("..shape_id..")"
+end
+
+
function SceneEditor:get_html(message, message_bg)
debug("get_html :"..message)
local new_group = ' '
@@ -583,15 +642,20 @@ function SceneEditor:get_html(message, message_bg)
if k % 2 == 0 then
color = "101010"
end
- local text_color = "ef9b64"
if self.Shapes[shape_id].modified == "modified" then
- text_color = "aa5555"
+ color = "aa5555"
else
if self.Shapes[shape_id].modified == "added" then
- text_color = "55aa55"
+ color = "55aa55"
end
end
- table.insert(shapes_html_dict, {id=shape.db_id, html=" "..'#'..(shape.db_id or '0').." "..shape.file.." \
+ table.insert(shapes_html_dict, {id=shape.db_id, html="\
+ \
+ \
+ "..'#'..(shape.db_id or '0').." \
+ "..shape.file.." \
+ SceneEditor:setupShapeButton('"..tostring(shape_id).."') \
+ \
\
\
"})
@@ -624,3 +688,5 @@ function SceneEditor:get_html(message, message_bg)
end
end
+-- VERSION --
+RYZOM_SCENEEDIT_VERSION = 328
diff --git a/ryzom/client/data/gamedev/interfaces_v3/search_command.lua b/ryzom/client/data/gamedev/interfaces_v3/search_command.lua
new file mode 100644
index 0000000000..74e0731fa5
--- /dev/null
+++ b/ryzom/client/data/gamedev/interfaces_v3/search_command.lua
@@ -0,0 +1,1585 @@
+if not SearchCommand then
+ --global SearchCommand class
+ SearchCommand = {
+ identifier_found = {},
+ command_self = "",
+ command_parameter_list = {},
+ valid_commands_list = {},
+ commands_list = {},
+ key_tab_down = 0,
+ modal_open_list = {},
+ process_list = {},
+ player_list = {}
+ }
+end
+
+--setup data
+--commands_list[x] = {"type(client/shard)","priv(player/privs)","uitranslation for description","command", "parameter1(playername/text/number)", "parameter2(playername/text/number)" ..}
+SearchCommand.commands_list = {}
+
+local player_priv = isPlayerPrivilege()
+if(player_priv)then
+ table.insert(SearchCommand.commands_list,{"client", "player", "help_desc", "?", {{"Text:",""}, {"all","help_all_desc"}}, {{"shard",""},{"client",""},{"eScript",""}}})
+else
+ table.insert(SearchCommand.commands_list,{"client", "player", "help_desc", "?", {{"Text:",""}, {"all","help_all_desc"}}})
+end
+
+--client commands
+table.insert(SearchCommand.commands_list,{"client", "player", "time_desc", "time"})
+table.insert(SearchCommand.commands_list,{"client", "player", "version_desc", "version"})
+table.insert(SearchCommand.commands_list,{"client", "player", "where_desc", "where"})
+table.insert(SearchCommand.commands_list,{"client", "player", "playedTime_desc", "playedTime"})
+table.insert(SearchCommand.commands_list,{"client", "player", "who_desc", "who", {{"gm","who_gm_desc"}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "guildinvite_desc", "guildinvite",{{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "guildmotd_desc", "guildmotd",{{"Text:",""},{"?","guildmotd_arg1_desc"}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "league_desc", "league",{{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "leagueinvite_desc", "leagueinvite",{{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "leaguequit_desc", "leaguequit"})
+table.insert(SearchCommand.commands_list,{"client", "player", "leaguekick_desc", "leaguekick",{{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "afk_desc", "afk",{{"Text:","afk_autoresponse_desc"}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "assist_desc", "assist"})
+table.insert(SearchCommand.commands_list,{"client", "player", "assist_desc", "as"})
+table.insert(SearchCommand.commands_list,{"client", "player", "self_desc", "self"})
+table.insert(SearchCommand.commands_list,{"client", "player", "brutalQuit_desc", "brutalQuit"})
+table.insert(SearchCommand.commands_list,{"client", "player", "chatLog_desc", "chatLog"})
+table.insert(SearchCommand.commands_list,{"client", "player", "follow_desc", "follow"})
+table.insert(SearchCommand.commands_list,{"client", "player", "ignore_desc", "ignore",{{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "invite_desc", "invite",{{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "mount_desc", "mount"})
+table.insert(SearchCommand.commands_list,{"client", "player", "unmount_desc", "unmount"})
+table.insert(SearchCommand.commands_list,{"client", "player", "random_desc", "random", {{"Number:",""}}, {{"Number:",""}}, {{"hide ","random_hide_desc"}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "skiptutorial_desc", "skiptutorial"})
+table.insert(SearchCommand.commands_list,{"client", "player", "sleep_desc", "sleep", {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "tar_desc", "tar", {{"Text:",""}}, {{"|quiet=true","tar_quiet_desc"}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "target_quiet_desc", "target_quiet"})
+table.insert(SearchCommand.commands_list,{"client", "player", "target_quiet_desc", "tarq"})
+table.insert(SearchCommand.commands_list,{"client", "player", "lmtar_desc", "lmtar", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "chat_desc", "chat"})
+table.insert(SearchCommand.commands_list,{"client", "player", "go_desc", "go"})
+table.insert(SearchCommand.commands_list,{"client", "player", "appzone_desc", "appzone", {{"",""},{"hide","appzone_hide_desc"}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "setuiscale_desc", "setuiscale", {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "createGroup_desc", "createGroup", {{"Text:",""}},{{"[true]",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "moveGroup_desc", "moveGroup", {{"Text:",""}},{{"Text:",""},{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "equipGroup_desc", "equipGroup", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "deleteGroup_desc", "deleteGroup", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "naked_desc", "naked"})
+table.insert(SearchCommand.commands_list,{"client", "player", "nude_desc", "nude"})
+table.insert(SearchCommand.commands_list,{"client", "player", "listGroup_desc", "listGroup"})
+table.insert(SearchCommand.commands_list,{"client", "player", "say_desc", "say",{{">","s_param1_desc"}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "say_desc", "s",{{">","s_param1_desc"}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "shout_desc", "shout", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "shout_desc", "sh", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "shout_desc", "y", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "shout_desc", "yell", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "guild_desc", "guild", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "guild_desc", "g", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "guild_desc", "gu", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "region_desc", "region", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "region_desc", "r", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "region_desc", "re", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "team_desc", "team", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "team_desc", "te", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "team_desc", "party", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "team_desc", "p", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "universe_desc", "universe", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "universe_desc", "u", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "0_desc", "0", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "1_desc", "1", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "2_desc", "2", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "3_desc", "3", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "4_desc", "4", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "channel_desc", "channel",{{"Text:",""}}, {{"Text:","channel_password_desc"},{"*","channel_leave_desc"}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "tell_desc", "tell",{{"Text:",""}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", "player", "tell_desc", "t",{{"Text:",""}}, {{"Text:",""}}})
+
+table.insert(SearchCommand.commands_list,{"client", ":DEV:SGM:GM:VG:PR:OBSERVER:EM:EG:TESTER:", "tp_desc", "tp", {{",[,]","tp_1_desc"},{"Text:",""},{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"client", ":DEV:SGM:GM:VG:PR:OBSERVER:EM:EG:", "shape_desc", "shape", {{"Text:",""}}})
+--END client commands
+
+
+--shard commands
+table.insert(SearchCommand.commands_list,{"shard", "player", "a_desc", "a", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:PR:OBSERVER:EM:EG:TESTER:", "b_desc", "b", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:PR:OBSERVER:EM:EG:TESTER:", "c_desc", "c", {{"Text:(Atys/Yubo/Gingo/Rendor)",""}}, {{"Text:",""}}})
+
+table.insert(SearchCommand.commands_list,{"shard", "player", "showOnline_desc", "showOnline", {{"1","showOnline_1_desc"}, {"2","showOnline_2_desc"},{"0","showOnline_0_desc"}}})
+table.insert(SearchCommand.commands_list,{"shard", "player", "setLeague_desc", "setLeague", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", "player", "roomInvite_desc", "roomInvite", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", "player", "roomKick_desc", "roomKick", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", "player", "dodge_desc", "dodge"})
+table.insert(SearchCommand.commands_list,{"shard", "player", "parry_desc", "parry"})
+table.insert(SearchCommand.commands_list,{"shard", "player", "setPvPTag_desc", "setPvPTag", {{"0",""},{"1",""}}})
+table.insert(SearchCommand.commands_list,{"shard", "player", "clearGuildMessage_desc", "clearGuildMessage"})
+table.insert(SearchCommand.commands_list,{"shard", "player", "setGuildMessage_desc", "setGuildMessage", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", "player", "setDontTranslateLangs_desc", "setDontTranslateLangs", {{"codelang|codelang","setDontTranslateLangs_codelang_desc"}}})
+table.insert(SearchCommand.commands_list,{"shard", "player", "connectLangChannel_desc", "connectLangChannel",{{"fr",""},{"en",""},{"de",""},{"es",""},{"ru",""}},{{"[<0|1>]","connectLangChannel_1_desc"}}})
+table.insert(SearchCommand.commands_list,{"shard", "player", "updateTarget_desc", "updateTarget"})
+table.insert(SearchCommand.commands_list,{"shard", "player", "teamInvite_desc", "teamInvite", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", "player", "summonPet_desc", "summonPet", {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", "player", "setTeamLeader_desc", "setTeamLeader", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", "player", "resetName_desc", "resetName"})
+table.insert(SearchCommand.commands_list,{"shard", "player", "lockItem_desc", "lockItem", {{"Text:",""}}, {{"Number:",""}}, {{"lock=0,1",""}}})
+
+if(player_priv)then
+ table.insert(SearchCommand.commands_list,{"shard", "player", "connectUserChannel_desc", "connectUserChannel", {{"Text:",""}}, {{"Text:",""},{"*","channel_leave_desc"},{"***","channel_remove_admin_desc"}}})
+else
+ table.insert(SearchCommand.commands_list,{"shard", "player", "connectUserChannel_desc", "connectUserChannel", {{"Text:",""}}, {{"Text:",""},{"*","channel_leave_desc"}}})
+end
+
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "addGuildMember_desc", "addGuildMember", {{"Text:",""}},{{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "addGuildXp_desc", "addGuildXp", {{"Text:",""}},{{"<+-Xp>",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "addPetAnimal_desc", "addPetAnimal", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "addPosFlag_desc", "addPosFlag", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "addSkillPoints_desc", "addSkillPoints", {{"",""},{"",""},{"",""},{"",""}}, {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "addXPToSkill_desc", "addXPToSkill", {{"",""}}, {{"Text:",""}}, {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:VG:", "broadcast_desc", "broadcast", {{"",""}}, {{"Text:",""}}, {{"Number:",""}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "changeHairCut_desc", "changeHairCut", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "changeMode_desc", "changeMode", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "changeVar_desc", "changeVar", {{"Text:",""},{"BaseConstitution",""},{"BaseIntelligence",""},{"BaseStrength",""},{"BaseDexterity",""},{"BaseMetabolism",""},{"BaseWisdom",""},{"BaseWellBalanced",""},{"BaseWill",""}}, {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "checkTargetSP_desc", "checkTargetSP"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "clearEventFaction_desc", "clearEventFaction", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "clearFriendsList_desc", "clearFriendsList"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "clearIgnoreList_desc", "clearIgnoreList"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "clearIsFriendOfList_desc", "clearIsFriendOfList"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "createItemInBag_desc", "createItemInBag", {{"Text:",""}}, {{"Text:",""}}, {{"Text:",""}}, {{"[force]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:", "createItemInInv_desc", "createItemInInv", {{"Number:",""}}, {{"Text:",""}}, {{"Text:",""}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "createItemInTmpInv_desc", "createItemInTmpInv", {{"Text:",""}}, {{"Text:",""}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:", "createNamedItemInBag_desc", "createNamedItemInBag", {{"Text:",""}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "createFullArmorSet_desc", "createFullArmorSet", {{"fyros",""},{"matis",""},{"zorai",""},{"tryker",""}}, {{"light",""},{"medium",""},{"heavy",""}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "delPosFlag_desc", "delPosFlag", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:SG:EM:EG:", "dismiss_desc", "dismiss", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "displayForageRM_desc", "displayForageRM", {{"",""}}, {{"",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "displayInfosOnTarget_desc", "displayInfosOnTarget"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "execPhrase_desc", "execPhrase", {{"",""}}, {{"[...]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "executeSabrinaPhrase_desc", "executeSabrinaPhrase", {{"",""}}, {{"...",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "failMission_desc", "failMission", {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "forceTargetToDie_desc", "forceTargetToDie"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "getEventFaction_desc", "getEventFaction", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "giveRespawnPoint_desc", "giveRespawnPoint", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:SG:EM:EG:", "ignoreTells_desc", "ignoreTells", {{"<0/false/1/true>",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:SG:EM:EG:", "infos_desc", "infos"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:EG:", "killMob_desc", "killMob"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "learnAllBricks_desc", "learnAllBricks"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "learnAllForagePhrases_desc", "learnAllForagePhrases", {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "learnAllPhrases_desc", "learnAllPhrases"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "learnBrick_desc", "learnBrick", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "unlearnBrick_desc", "unlearnBrick", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "learnPhrase_desc", "learnPhrase", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "listGuildMembers_desc", "listGuildMembers", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:SG:G:EM:EG:", "listPosFlags_desc", "listPosFlags", {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:", "loadFromXML_desc", "loadFromXML", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:", "loadFromPDR_desc", "loadFromPDR", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "logXpGain_desc", "logXpGain", {{"",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:SG:G:EM:EG:", "listPosFlags_desc", "lPosFlags", {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "monitorMissions_desc", "monitorMissions", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:VG:", "motd_desc", "motd", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:VG:SG:", "mute_desc", "mute", {{"Text:",""}}, {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:VG:SG:", "muteUniverse_desc", "muteUniverse", {{"Text:",""}}, {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "outpostBanGuild_desc", "outpostBanGuild", {{"Number:",""}}, {{"Text:",""}}, {{"[]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "outpostBanPlayer_desc", "outpostBanPlayer", {{"Number:",""}}, {{"Number:",""}}, {{"[]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "outpostUnbanGuild_desc", "outpostUnbanGuild", {{"Number:",""}}, {{"Text:",""}}, {{"[]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "outpostUnbanPlayer_desc", "outpostUnbanPlayer", {{"Number:",""}}, {{"Number:",""}}, {{"[]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "progressMission_desc", "progressMission", {{"Number:",""}}, {{"[repeat]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "renameGuild_desc", "renameGuild", {{"Text:",""}},{{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "renamePlayer_desc", "renamePlayer", {{"Text:",""}},{{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:EG:", "renamePlayerForEvent_desc", "renamePlayerForEvent", {{"Text:",""}},{{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "resetPowerFlags_desc", "resetPowerFlags"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:VG:SG:", "root_desc", "root", {{"Text:",""}}, {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:", "saveToPDR_desc", "saveToPDR", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:", "saveToXML_desc", "saveToXML", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "setEventFaction_desc", "setEventFaction", {{"Text:",""}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "setGMGuild_desc", "setGMGuild"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "setGuildChargePoint_desc", "setGuildChargePoint", {{"Text:",""}},{{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "setGuildDescription_desc", "setGuildDescription", {{"Text:",""}},{{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "setGuildLeader_desc", "setGuildLeader", {{"Text:",""}},{{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "setGuildMemberGrade_desc", "setGuildMemberGrade", {{"Text:",""}},{{"Text:",""}},{{"Member",""},{"Officer",""},{"HighOfficer",""},{"Leader",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "setItemSapLoad_desc", "setItemSapLoad", {{"",""}}, {{"Float:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "setPosFlag_desc", "setPosFlag", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "setFamePlayer_desc", "setFamePlayer", {{"Text:",""}}, {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "resetPVPTimers_desc", "resetPVPTimers", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "setSkillsToMaxValue_desc", "setSkillsToMaxValue"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:SG:G:EM:EG:", "showCSR_desc", "showCSR"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "showFBT_desc", "showFBT"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "startEvent_desc", "startEvent", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "stopEvent_desc", "stopEvent"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "stopMonitorMissions_desc", "stopMonitorMissions"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "summon_desc", "summon", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:SG:EM:", "targetInfos_desc", "targetInfos"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:SG:G:OBSERVER:EM:EG:", "teleport_desc", "teleport", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:SG:G:EM:EG:", "tpPosFlag_desc", "tpPosFlag", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:VG:SG:", "unmute_desc", "unmute", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:VG:SG:", "unmuteUniverse_desc", "unmuteUniverse", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:VG:SG:", "unroot_desc", "unroot", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "updateGuildMembersList_desc", "updateGuildMembersList", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "allowSummonPet_desc", "allowSummonPet", {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:", "displayShopSelector_desc", "displayShopSelector"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:", "addFactionAttackableToTarget_desc", "addFactionAttackableToTarget"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:", "forceMissionProgress_desc", "forceMissionProgress"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:", "savePlayerActiveChar_desc", "savePlayerActiveChar", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:", "reloadPlayer_desc", "reloadPlayer", {{"Number:",""}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:SG:EM:", "farTPPush_desc", "farTPPush", {{"Number:",""}}, {{"[ [ []]]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:SG:EM:", "farTPReturn_desc", "farTPReturn"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "characterMissionDump_desc", "characterMissionDump"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "removeMission_desc", "removeMission", {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:", "addMission_desc", "addMission", {{"Number:",""}}, {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "characterInventoryDump_desc", "characterInventoryDump", {{"Text:",""}}, {{"Number:",""}}, {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "deleteInventoryItem_desc", "deleteInventoryItem", {{"Text:",""}}, {{"Number:",""}}, {{"Text:",""}}, {{"Text:",""}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "setPetAnimalSatiety_desc", "setPetAnimalSatiety", {{"",""}}, {{"full|",""}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "getPetAnimalSatiety_desc", "getPetAnimalSatiety", {{"",""}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:EG:", "setPetAnimalName_desc", "setPetAnimalName", {{"",""}}, {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "setSimplePhrase_desc", "setSimplePhrase", {{"Number:",""}}, {{"Text:",""}}, {{"fr",""},{"en",""},{"de",""},{"es",""},{"ru",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:SG:EM:EG:", "Aggro_desc", "Aggro",{{"[<0/off/false/1/on/true>]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "CreateCharacterStartSkillsValue_desc", "CreateCharacterStartSkillsValue"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:EM:", "FBT_desc", "FBT", {{"[<0/off/false/1/on/true>]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "God_desc", "God", {{"[<0/off/false/1/on/true>]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "Invulnerable_desc", "Invulnerable", {{"[<0/off/false/1/on/true>]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:SG:EM:EG:", "Invisible_desc", "Invisible", {{"[<0/off/false//1/on/true>]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:VG:SG:G:", "ShowFactionChannels_desc", "ShowFactionChannels"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "HP_desc", "HP", {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "MaxHP_desc", "MaxHP", {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "Money_desc", "Money", {{"Number:+-",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "Name_desc", "Name"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:", "Priv_desc", "Priv", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:EG:", "PriviledgePVP_desc", "PriviledgePVP", {{"[<0/off/false/1/on/pvp/true>]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:EG:", "FullPVP_desc", "FullPVP", {{"[<0/off/false/1/on/pvp/true>]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "RyzomDate_desc", "RyzomDate"})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "RyzomTime_desc", "RyzomTime"})
+
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "eventCreateNpcGroup_desc", "eventCreateNpcGroup",{{"Number:",""}},{{"Text:",""}},{{"Number:",""}},{{"<0/1>",""}},{{"random|self|-360..360",""}},{{"Text:",""}},{{"Number:",""}},{{"Number:",""}},{{"Number:",""},{"[*]",""}},{{"Text:",""}},{{"[inVIllage?inOutpost?inStable?inAtys?]",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "eventSetBotName_desc", "eventSetBotName", {{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "eventSetBotScale_desc", "eventSetBotScale", {{"<0...255>",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "eventSetBotFacing_desc", "eventSetBotFacing", {{"<0-360|random>",""}}, {{"[<0,1>]","eventSetBotFacing_group_desc"}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "eventNpcSay_desc", "eventNpcSay", {{"Text:",""}}, {{"[say,shout,...]",""}}})
+
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:VG:PR:OBSERVER:EM:EG:", "Position_desc", "Position", {{",[,]",""},{"Text:",""},{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"shard", ":DEV:SGM:GM:EM:", "eScript_desc", "eScript", {{"Text:@",""},{"Text:",""}}, {{"Text:",""}}})
+--END shard commands
+
+--eScript commands
+table.insert(SearchCommand.commands_list,{"eScript", ":DEV:SGM:GM:EM:", "despawn_desc", "despawn(arg1)", {{"<0/1>",""}}})
+table.insert(SearchCommand.commands_list,{"eScript", ":DEV:SGM:GM:EM:", "rename_desc", "rename(\"arg1$#arg2$\")", {{"Text:wk[]",""}},{{"Text:wk[]",""}}})
+table.insert(SearchCommand.commands_list,{"eScript", ":DEV:SGM:GM:EM:", "setAggro_desc", "setAggro(arg1)", {{"Number:",""}}, {{"Number:",""}}})
+table.insert(SearchCommand.commands_list,{"eScript", ":DEV:SGM:GM:EM:", "setPlayerAttackable_desc", "setPlayerAttackable(arg1)", {{"<0/1>",""}}})
+table.insert(SearchCommand.commands_list,{"eScript", ":DEV:SGM:GM:EM:", "setBotAttackable_desc", "setBotAttackable(arg1)", {{"<0/1>",""}}})
+table.insert(SearchCommand.commands_list,{"eScript", ":DEV:SGM:GM:EM:", "setAttackable_desc", "setAttackable(arg1)", {{"<0/1>",""}}})
+table.insert(SearchCommand.commands_list,{"eScript", ":DEV:SGM:GM:EM:", "setActivity_desc", "setActivity(\"arg1\")", {{"",""}}})
+table.insert(SearchCommand.commands_list,{"eScript", ":DEV:SGM:GM:EM:", "setFactionProp_desc", "setFactionProp(\"arg1\",\"arg2|arg3\")", {{":>",""}}, {{"Text:FameMin",""}}, {{"Text:FameMax",""}}})
+table.insert(SearchCommand.commands_list,{"eScript", ":DEV:SGM:GM:EM:", "addProfileParameter_desc", "addProfileParameter(\"arg1\",\"arg2\")", {{"event_group_killed",""},{"event_bot_killed",""},{"running",""},{"faction",""}},{{"Text:",""},{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"eScript", ":DEV:SGM:GM:EM:", "removeProfileParameter_desc", "removeProfileParameter(\"arg1\")",{{"Text:",""}}})
+table.insert(SearchCommand.commands_list,{"eScript", ":DEV:SGM:GM:EM:", "clearAggroList_desc", "clearAggroList()"})
+table.insert(SearchCommand.commands_list,{"eScript", ":DEV:SGM:GM:EM:", "startMoving_desc", "startMoving(arg1,arg2,arg3)", {{"Number:",""}}, {{"Number: