diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml
new file mode 100644
index 0000000..666baba
--- /dev/null
+++ b/.idea/dataSources.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ java.sql.Driver
+ true
+ true
+ org.isaacmcfadyen.D1Driver
+ jdbc:d1://d09d3c74-c75f-4418-8f1b-2fe7f21637e6
+ $ProjectFileDir$
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b745340
--- /dev/null
+++ b/README.md
@@ -0,0 +1,55 @@
+# Vore Scenario Generator
+
+![Example scenario, reading:
+The action takes place at a sports event.
+The encounter is themed around voreception.
+The action begins when a threat is made.
+Things are more difficult because someone is not prepared
+Partway through, unexpectedly, the prey nearly escapes
+The vore scene is focused on the aftermath
+The word of the day is Millionaire](example.png)
+
+It does exactly what it says on the tin: it generates random vore scenarios. For you!
+[The list of default responses are here if you want to check it in advance.](https://scenario-generator.deliciousreya.net/responses)
+
+## Usage
+
+### Installation
+
+* Visit [this Discord OAuth link](https://discord.com/api/oauth2/authorize?client_id=1192326191189864458&permissions=0&scope=applications.commands)
+and give permission to use application commands in your server. Share it with the admin of your server if you don't
+have permission yourself!
+* Don't worry - not only does this bot not do anything nefarious with your messages, but it actually can't read them at
+ all. It only reads the commands you give it and its own messages! If you're concerned, though, please go through the
+ code. Kink stuff is very personal and private! Use caution when running random horny software!
+
+### Generation
+
+* Run the `/generate` command to generate a random scenario.
+* Don't like what you got? Pick the components you don't like from the select box,
+ then click "Reroll Selected" to generate fresh ones.
+* Think the scenario is beyond saving? Click "Trash it." to delete the message.
+* Satisfied with the results? Click "Looks good!" to remove the reroll commands.
+
+### Customization
+
+Note that changes to custom responses will be sent to your current channel and will be visible to the admin (that's me)
+and everyone in the server, as well as anyone who knows or can guess your server ID. Assume your responses are not
+private.
+
+* Run `/response add [table] [text]` to add a new custom response. Use the table listing in the Discord command.
+* Run `/response delete [table] [text]` to remove a custom response. Give the response text exactly!
+* Run `/response edit [table] [old text] [new text]` to modify a custom response. Give the old response text exactly!
+* Run `/response list` to get a link to a list of all responses that will be given in the current server, including both
+ default and custom responses.
+
+## Credits
+
+* Icon source: [obsid1an on DeviantArt](https://www.deviantart.com/obsid1an/art/Slot-Machine-Game-Icon-341475642)
+* Writing for default responses by [Ssublissive](https://aryion.com/g4/gallery/Ssublissive), with additional writing by
+ [DeliciousReya](https://aryion.com/g4/gallery/DeliciousReya), [Seina](https://aryion.com/g4/user/RediQ) and 1 other.
+* Development by [DeliciousReya](https://aryion.com/g4/gallery/DeliciousReya), using
+ [slash-create](https://slash-create.js.org/#/) and
+ [discord-snowflake](https://github.com/ianmitchell/interaction-kit/tree/main/packages/discord-snowflake).
+* Hosted on [CloudFlare Workers](https://developers.cloudflare.com/workers/)
+ with [D1](https://developers.cloudflare.com/d1/).
diff --git a/example.png b/example.png
new file mode 100644
index 0000000..28a4500
Binary files /dev/null and b/example.png differ
diff --git a/migrations/0000_initialize_responses_table.sql b/migrations/0000_initialize_responses_table.sql
new file mode 100644
index 0000000..6c8a4fe
--- /dev/null
+++ b/migrations/0000_initialize_responses_table.sql
@@ -0,0 +1,14 @@
+-- Migration number: 0000 2024-01-04T08:37:46.641Z
+CREATE TABLE IF NOT EXISTS responses (
+ id INTEGER PRIMARY KEY ASC NOT NULL,
+ tableId INTEGER NOT NULL CHECK (tableId IN (0, 1, 2, 3, 4, 5, 6)),
+ text TEXT NOT NULL,
+ timestamp INTEGER NOT NULL,
+ userSnowflake TEXT NOT NULL,
+ serverSnowflake TEXT NULL,
+ access INTEGER NOT NULL CHECK (access IN (0, 1, 2))
+) STRICT;
+
+CREATE UNIQUE INDEX IF NOT EXISTS responses_unique_global ON responses (tableId, text) WHERE access = 0;
+CREATE UNIQUE INDEX IF NOT EXISTS responses_unique_by_server ON responses (serverSnowflake, tableId, text) WHERE access = 1;
+CREATE UNIQUE INDEX IF NOT EXISTS responses_unique_by_dm ON responses (userSnowflake, tableId, text) WHERE access = 2;
diff --git a/migrations/0001_add_initial_values.sql b/migrations/0001_add_initial_values.sql
new file mode 100644
index 0000000..9d65253
--- /dev/null
+++ b/migrations/0001_add_initial_values.sql
@@ -0,0 +1,1570 @@
+-- Migration number: 0001 2024-01-04T10:09:22.903Z
+INSERT OR IGNORE INTO responses (id, tableId, text, timestamp, userSnowflake, serverSnowflake, access)
+VALUES (1704363988831, 0, 'in someone''s home', 1704363988831, '126936953789743104', NULL, 0),
+ (1704363988832, 0, 'out on the street', 1704363988831, '126936953789743104', NULL, 0),
+ (1704363988833, 0, 'in the Pink Light District', 1704363988831, '126936953789743104', NULL, 0),
+ (1704363988834, 0, 'in a shop', 1704363988831, '126936953789743104', NULL, 0),
+ (1704363988835, 0, 'in a cafe', 1704363988831, '126936953789743104', NULL, 0),
+ (1704363988836, 0, 'on campus', 1704363988831, '126936953789743104', NULL, 0),
+ (1704363988837, 0, 'somewhere shady', 1704363988831, '126936953789743104', NULL, 0),
+ (1704363988838, 0, 'in line for something', 1704363988831, '126936953789743104', NULL, 0),
+ (1704363988839, 0, 'during practice', 1704363988831, '126936953789743104', NULL, 0),
+ (1704363988840, 0, 'in the car', 1704363988831, '126936953789743104', NULL, 0),
+ (1704363988841, 0, 'on a road trip', 1704363988831, '126936953789743104', NULL, 0),
+ (1704363988842, 0, 'at a theme park', 1704363988831, '126936953789743104', NULL, 0),
+ (1704363854890, 1, 'misunderstanding', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854891, 1, 'starvation', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854892, 1, 'jealousy', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854893, 1, 'affection', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854894, 1, 'protectiveness', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854895, 1, 'playfulness', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854896, 1, 'self-defense', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854897, 1, 'anxiety', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854898, 1, 'loneliness', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854899, 1, 'boredom', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854900, 1, 'friendship', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854901, 1, 'romance', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854902, 1, 'rejection', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854903, 1, 'lust', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854904, 1, 'obsession', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854905, 1, 'confusion', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854906, 1, 'superiority', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854907, 1, 'inferiority', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363854908, 1, 'casualness', 1704363854890, '126936953789743104', NULL, 0),
+ (1704363456528, 2, 'an external threat stresses someone out', 1704363456528, '126936953789743104', NULL, 0),
+ (1704363456529, 2, 'someone''s restraint gives way', 1704363456528, '126936953789743104', NULL, 0),
+ (1704363456530, 2, 'something foolish is said', 1704363456528, '126936953789743104', NULL, 0),
+ (1704363456531, 2, 'someone is bored', 1704363456528, '126936953789743104', NULL, 0),
+ (1704363456532, 2, 'something is overheard', 1704363456528, '126936953789743104', NULL, 0),
+ (1704363456533, 2, 'an argument builds to a fever pitch', 1704363456528, '126936953789743104', NULL, 0),
+ (1704363456534, 2, 'indecision gets frustrating', 1704363456528, '126936953789743104', NULL, 0),
+ (1704363456535, 2, 'feelings are unexpectedly hurt', 1704363456528, '126936953789743104', NULL, 0),
+ (1704363456536, 2, 'a stomach growls', 1704363456528, '126936953789743104', NULL, 0),
+ (1704364175747, 3, 'the size difference is prohibitive', 1704364175747, '126936953789743104', NULL, 0),
+ (1704364175748, 3, 'there''s a big audience watching', 1704364175747, '126936953789743104', NULL, 0),
+ (1704364175749, 3, 'someone has never tried vore before', 1704364175747, '126936953789743104', NULL, 0),
+ (1704364175750, 3, 'family tradition forbids this', 1704364175747, '126936953789743104', NULL, 0),
+ (1704364175751, 3, 'the characters are not supposed to speak to each other', 1704364175747, '126936953789743104',
+ NULL, 0),
+ (1704364175752, 3, 'the prey is dominant over the pred', 1704364175747, '126936953789743104', NULL, 0),
+ (1704364175753, 3, 'friends are trying to pull the characters apart', 1704364175747, '126936953789743104', NULL,
+ 0),
+ (1704364175754, 3, 'there isn''t a lot of room here', 1704364175747, '126936953789743104', NULL, 0),
+ (1704364175755, 3, 'vore is prohibited here', 1704364175747, '126936953789743104', NULL, 0),
+ (1704364442145, 4, 'someone who would normally have intervened doesn''t', 1704364442145, '126936953789743104',
+ NULL, 0),
+ (1704364442146, 4, 'the prey turns things around on the pred', 1704364442145, '126936953789743104', NULL, 0),
+ (1704364442147, 4, 'an unexpected ally helps out', 1704364442145, '126936953789743104', NULL, 0),
+ (1704364442148, 4, 'the prey''s enjoyment sharply changes', 1704364442145, '126936953789743104', NULL, 0),
+ (1704364442149, 4, 'the antacids mysteriously go missing', 1704364442145, '126936953789743104', NULL, 0),
+ (1704364442150, 4, 'the pred starts to develop indigestion', 1704364442145, '126936953789743104', NULL, 0),
+ (1704364442151, 4, 'a betrayal seals the prey''s fate', 1704364442145, '126936953789743104', NULL, 0),
+ (1704364442152, 4, 'the pred has second thoughts', 1704364442145, '126936953789743104', NULL, 0),
+ (1704364712751, 5, 'the pred''s feelings', 1704364712751, '126936953789743104', NULL, 0),
+ (1704364712752, 5, 'the prey''s feelings', 1704364712751, '126936953789743104', NULL, 0),
+ (1704364712753, 5, 'the pred''s stomach acids', 1704364712751, '126936953789743104', NULL, 0),
+ (1704364712754, 5, 'the pred''s mouth', 1704364712751, '126936953789743104', NULL, 0),
+ (1704364712755, 5, 'the prey''s body', 1704364712751, '126936953789743104', NULL, 0),
+ (1704364712756, 5, 'the pred''s intestines', 1704364712751, '126936953789743104', NULL, 0),
+ (1704364712757, 5, 'the pred''s weight', 1704364712751, '126936953789743104', NULL, 0),
+ (1704364712758, 5, 'detailed digestion', 1704364712751, '126936953789743104', NULL, 0),
+ (1704364712759, 5, 'scientific description of digestion', 1704364712751, '126936953789743104', NULL, 0),
+ (1704364712760, 5, 'the prey''s humiliation', 1704364712751, '126936953789743104', NULL, 0),
+ (1704364712761, 5, 'the observers'' feelings', 1704364712751, '126936953789743104', NULL, 0);
+INSERT OR IGNORE INTO responses (id, tableId, text, timestamp, userSnowflake, serverSnowflake, access)
+VALUES (1704362871734, 6, 'Ace', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871735, 6, 'Acid', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871736, 6, 'Acne', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871737, 6, 'Acre', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871738, 6, 'Africa', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871739, 6, 'Agent', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871740, 6, 'Air', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871741, 6, 'Aircraft', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871742, 6, 'Airplane', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871743, 6, 'Alarm Clock', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871744, 6, 'Alaska', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871745, 6, 'Alcohol', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871746, 6, 'Alien', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871747, 6, 'Alligator', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871748, 6, 'Alps', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871749, 6, 'Amazon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871750, 6, 'Ambulance', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871751, 6, 'America', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871752, 6, 'Anchor', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871753, 6, 'Angel', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871754, 6, 'Animal', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871755, 6, 'Ankle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871756, 6, 'Ant', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871757, 6, 'Antarctica', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871758, 6, 'Anthem', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871759, 6, 'Apple', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871760, 6, 'Apples', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871761, 6, 'Apron', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871762, 6, 'Archaeologist', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871763, 6, 'Aristocrat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871764, 6, 'Arm', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871765, 6, 'Armor', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871766, 6, 'Army', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871767, 6, 'Ash', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871768, 6, 'Ashes', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871769, 6, 'Asleep', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871770, 6, 'Ass', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871771, 6, 'Astronaut', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871772, 6, 'Athlete', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871773, 6, 'Atlantis', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871774, 6, 'Attic', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871775, 6, 'Aunt', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871776, 6, 'Australia', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871777, 6, 'Avalanche', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871778, 6, 'Axe', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871779, 6, 'Aztec', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871780, 6, 'Baby', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871781, 6, 'Baby-sitter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871782, 6, 'Back', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871783, 6, 'Backbone', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871784, 6, 'Bacon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871785, 6, 'Bag', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871786, 6, 'Baggage', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871787, 6, 'Baked', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871788, 6, 'Ball', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871789, 6, 'Balloon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871790, 6, 'Ballpoint Pen', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871791, 6, 'Balls', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871792, 6, 'Banana Peel', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871793, 6, 'Banana', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871794, 6, 'Band', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871795, 6, 'Bang', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871796, 6, 'Banister', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871797, 6, 'Bank', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871798, 6, 'Bar', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871799, 6, 'Barbecue', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871800, 6, 'Barber', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871801, 6, 'Bargain', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871802, 6, 'Bark', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871803, 6, 'Bartender', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871804, 6, 'Baseball', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871805, 6, 'Baseboard', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871806, 6, 'Basketball', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871807, 6, 'Bass', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871808, 6, 'Bat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871809, 6, 'Bath', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871810, 6, 'Bathroom Scale', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871811, 6, 'Batteries', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871812, 6, 'Battery', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871813, 6, 'Battle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871814, 6, 'Battleship', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871815, 6, 'Bay', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871816, 6, 'Beach', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871817, 6, 'Beam', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871818, 6, 'Bean', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871819, 6, 'Beans', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871820, 6, 'Bear', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871821, 6, 'Beard', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871822, 6, 'Beat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871823, 6, 'Beaver', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871824, 6, 'Bed', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871825, 6, 'Bedbug', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871826, 6, 'Bedspread', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871827, 6, 'Bedtime', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871828, 6, 'Bee', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871829, 6, 'Beef', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871830, 6, 'Beer', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871831, 6, 'Behind', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871832, 6, 'Beijing', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871833, 6, 'Bell', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871834, 6, 'Belt', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871835, 6, 'Bench', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871836, 6, 'Bender', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871837, 6, 'Berlin', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871838, 6, 'Bermuda', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871839, 6, 'Berry', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871840, 6, 'Bicycle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871841, 6, 'Big Bang', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871842, 6, 'Big Ben', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871843, 6, 'Big', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871844, 6, 'Bike', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871845, 6, 'Bikini', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871846, 6, 'Bill', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871847, 6, 'Bird', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871848, 6, 'Bird''s Nest', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871849, 6, 'Birthday', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871850, 6, 'Biscuit', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871851, 6, 'Biscuits', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871852, 6, 'Bisexual', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871853, 6, 'Bitch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871854, 6, 'Bite', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871855, 6, 'Black', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871856, 6, 'Blacksmith', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871857, 6, 'Blade', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871858, 6, 'Blanket', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871859, 6, 'Blind', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871860, 6, 'Bling', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871861, 6, 'Blizzard', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871862, 6, 'Block', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871863, 6, 'Blonde', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871864, 6, 'Blow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871865, 6, 'Blue', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871866, 6, 'Blues', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871867, 6, 'Blush', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871868, 6, 'Board', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871869, 6, 'Boat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871870, 6, 'Bobsled', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871871, 6, 'Body', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871872, 6, 'Boil', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871873, 6, 'Bolt', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871874, 6, 'Bomb', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871875, 6, 'Bond', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871876, 6, 'Bondage', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871877, 6, 'Bone', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871878, 6, 'Bong', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871879, 6, 'Bonnet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871880, 6, 'Bonsai', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871881, 6, 'Boob', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871882, 6, 'Book', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871883, 6, 'Bookend', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871884, 6, 'Boom', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871885, 6, 'Boot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871886, 6, 'Booty', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871887, 6, 'Booze', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871888, 6, 'Boss', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871889, 6, 'Bottle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871890, 6, 'Bottom', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871891, 6, 'Bow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871892, 6, 'Bowl', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871893, 6, 'Bowler', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871894, 6, 'Bowtie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871895, 6, 'Box', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871896, 6, 'Boxer', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871897, 6, 'Boxers', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871898, 6, 'Boy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871899, 6, 'Bra', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871900, 6, 'Bracelet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871901, 6, 'Brain', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871902, 6, 'Branch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871903, 6, 'Brass', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871904, 6, 'Brave', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871905, 6, 'Brazil', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871906, 6, 'Bread', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871907, 6, 'Break', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871908, 6, 'Breast', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871909, 6, 'Brick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871910, 6, 'Bride', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871911, 6, 'Bridge', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871912, 6, 'Briefs', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871913, 6, 'Broccoli', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871914, 6, 'Broken', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871915, 6, 'Broom', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871916, 6, 'Brother', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871917, 6, 'Brown', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871918, 6, 'Brownie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871919, 6, 'Brunette', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871920, 6, 'Brush', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871921, 6, 'Bubble', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871922, 6, 'Buck', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871923, 6, 'Bucket', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871924, 6, 'Bud', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871925, 6, 'Buffalo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871926, 6, 'Bug', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871927, 6, 'Bugle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871928, 6, 'Bulb', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871929, 6, 'Bunk Bed', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871930, 6, 'Bunk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871931, 6, 'Bunny', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871932, 6, 'Burn', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871933, 6, 'Bus', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871934, 6, 'Bush', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871935, 6, 'Bust', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871936, 6, 'Butt', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871937, 6, 'Butter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871938, 6, 'Butterfly', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871939, 6, 'Button', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871940, 6, 'Buy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871941, 6, 'Cable', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871942, 6, 'Caboose', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871943, 6, 'Caesar', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871944, 6, 'Cafeteria', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871945, 6, 'Cake', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871946, 6, 'Calculator', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871947, 6, 'Calf', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871948, 6, 'Camp', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871949, 6, 'Campsite', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871950, 6, 'Can', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871951, 6, 'Canada', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871952, 6, 'Candle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871953, 6, 'Candlestick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871954, 6, 'Candy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871955, 6, 'Cane', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871956, 6, 'Cannons', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871957, 6, 'Cap', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871958, 6, 'Capital', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871959, 6, 'Captain', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871960, 6, 'Car', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871961, 6, 'Card', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871962, 6, 'Caroler', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871963, 6, 'Carpet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871964, 6, 'Carrot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871965, 6, 'Cartography', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871966, 6, 'Casino', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871967, 6, 'Cast', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871968, 6, 'Castle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871969, 6, 'Cat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871970, 6, 'Catalog', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871971, 6, 'Catcher', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871972, 6, 'Cave', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871973, 6, 'Ceiling Fan', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871974, 6, 'Cell', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871975, 6, 'Cello', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871976, 6, 'Centaur', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871977, 6, 'Center', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871978, 6, 'Century', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871979, 6, 'Chain', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871980, 6, 'Chains', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871981, 6, 'Chair', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871982, 6, 'Chalk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871983, 6, 'Champagne', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871984, 6, 'Champion', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871985, 6, 'Change', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871986, 6, 'Chaps', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871987, 6, 'Charge', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871988, 6, 'Check', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871989, 6, 'Cheek', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871990, 6, 'Cheese', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871991, 6, 'Cherry', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871992, 6, 'Chest', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871993, 6, 'Chestnut', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871994, 6, 'Chew', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871995, 6, 'Chick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871996, 6, 'Chicken', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871997, 6, 'China', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871998, 6, 'Chip', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362871999, 6, 'Chocolate', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872000, 6, 'Choke', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872001, 6, 'Christmas', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872002, 6, 'Chubby', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872003, 6, 'Church', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872004, 6, 'Cigar', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872005, 6, 'Cigarette', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872006, 6, 'Circle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872007, 6, 'Circus', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872008, 6, 'Clam', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872009, 6, 'Clap', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872010, 6, 'Claw', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872011, 6, 'Cleopatra', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872012, 6, 'Cliff', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872013, 6, 'Cloak', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872014, 6, 'Clock', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872015, 6, 'Clog', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872016, 6, 'Cloud', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872017, 6, 'Clown', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872018, 6, 'Club', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872019, 6, 'Clue', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872020, 6, 'Coach', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872021, 6, 'Coal', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872022, 6, 'Coast', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872023, 6, 'Coat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872024, 6, 'Cock', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872025, 6, 'Cocktail', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872026, 6, 'Code', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872027, 6, 'Coffee', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872028, 6, 'Cold', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872029, 6, 'Collar', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872030, 6, 'Columbus', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872031, 6, 'Comb', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872032, 6, 'Comet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872033, 6, 'Comfy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872034, 6, 'Comic', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872035, 6, 'Commando', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872036, 6, 'Commercial', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872037, 6, 'Compound', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872038, 6, 'Computer', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872039, 6, 'Concert', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872040, 6, 'Condom', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872041, 6, 'Conductor', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872042, 6, 'Cone', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872043, 6, 'Contract', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872044, 6, 'Cook', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872045, 6, 'Cookie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872046, 6, 'Coozie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872047, 6, 'Copper', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872048, 6, 'Corn', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872049, 6, 'Cotton', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872050, 6, 'Couch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872051, 6, 'Cougar', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872052, 6, 'Cough', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872053, 6, 'Country', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872054, 6, 'Couple', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872055, 6, 'Court', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872056, 6, 'Cover', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872057, 6, 'Cow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872058, 6, 'Cowboy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872059, 6, 'Cowgirl', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872060, 6, 'Coyote', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872061, 6, 'Crab', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872062, 6, 'Crabs', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872063, 6, 'Crack', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872064, 6, 'Craft', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872065, 6, 'Crane', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872066, 6, 'Crap', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872067, 6, 'Crash', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872068, 6, 'Crayon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872069, 6, 'Cream', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872070, 6, 'Cricket', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872071, 6, 'Crisp', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872072, 6, 'Cross', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872073, 6, 'Crow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872074, 6, 'Crown', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872075, 6, 'Crumb', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872076, 6, 'Crusader', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872077, 6, 'Crystal', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872078, 6, 'Cuckoo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872079, 6, 'Cucumber', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872080, 6, 'Cuddle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872081, 6, 'Cuffs', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872082, 6, 'Cup', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872083, 6, 'Cupcake', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872084, 6, 'Curry', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872085, 6, 'Cycle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872086, 6, 'Czar', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872087, 6, 'Czech', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872088, 6, 'Dad', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872089, 6, 'Daddy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872090, 6, 'Dame', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872091, 6, 'Dance', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872092, 6, 'Darkness', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872093, 6, 'Dash', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872094, 6, 'Dashboard', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872095, 6, 'Date', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872096, 6, 'Day', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872097, 6, 'Death', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872098, 6, 'Deck', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872099, 6, 'Deep', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872100, 6, 'Degree', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872101, 6, 'Delta', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872102, 6, 'Dentist', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872103, 6, 'Desk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872104, 6, 'Diagonal', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872105, 6, 'Diamond', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872106, 6, 'Diarrhea', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872107, 6, 'Dice', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872108, 6, 'Dick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872109, 6, 'Dictionary', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872110, 6, 'Dildo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872111, 6, 'Dinosaur', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872112, 6, 'Director', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872113, 6, 'Dirty', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872114, 6, 'Disease', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872115, 6, 'Disk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872116, 6, 'Ditch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872117, 6, 'Dizzy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872118, 6, 'Dock', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872119, 6, 'Doctor', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872120, 6, 'Dog', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872121, 6, 'Doggy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872122, 6, 'Doghouse', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872123, 6, 'Doll', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872124, 6, 'Dollar', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872125, 6, 'Dominate', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872126, 6, 'Dominoes', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872127, 6, 'Donkey', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872128, 6, 'Door', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872129, 6, 'Dorsal', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872130, 6, 'Double', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872131, 6, 'Douche', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872132, 6, 'Down', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872133, 6, 'Download', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872134, 6, 'Draft', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872135, 6, 'Drag', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872136, 6, 'Dragon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872137, 6, 'Draw', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872138, 6, 'Drawback', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872139, 6, 'Drawing', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872140, 6, 'Dream', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872141, 6, 'Dress', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872142, 6, 'Dressing', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872143, 6, 'Drill', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872144, 6, 'Dripping', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872145, 6, 'Driver', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872146, 6, 'Drone', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872147, 6, 'Drop', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872148, 6, 'Drought', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872149, 6, 'Drum', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872150, 6, 'Drunk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872151, 6, 'Dryer', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872152, 6, 'Duck', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872153, 6, 'Dump Truck', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872154, 6, 'Dust', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872155, 6, 'Dwarf', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872156, 6, 'Eagle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872157, 6, 'Ear', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872158, 6, 'Earache', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872159, 6, 'Earth', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872160, 6, 'Earthquake', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872161, 6, 'Easel', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872162, 6, 'Easter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872163, 6, 'Eat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872164, 6, 'Eden', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872165, 6, 'Egg', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872166, 6, 'Egypt', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872167, 6, 'Einstein', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872168, 6, 'Elbow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872169, 6, 'Electricity', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872170, 6, 'Elephant', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872171, 6, 'Elevator', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872172, 6, 'Elf', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872173, 6, 'Embassy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872174, 6, 'Emission', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872175, 6, 'Engine', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872176, 6, 'England', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872177, 6, 'Escort', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872178, 6, 'Eureka', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872179, 6, 'Europe', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872180, 6, 'Exercise', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872181, 6, 'Experiment', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872182, 6, 'Exponential', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872183, 6, 'Eye', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872184, 6, 'Eyebrow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872185, 6, 'Eyes', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872186, 6, 'Fabric', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872187, 6, 'Face', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872188, 6, 'Facial', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872189, 6, 'Fair', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872190, 6, 'Fall', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872191, 6, 'Fan', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872192, 6, 'Fantasy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872193, 6, 'Farm', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872194, 6, 'Fast', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872195, 6, 'Fatty', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872196, 6, 'Feather', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872197, 6, 'Fecal', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872198, 6, 'Fence', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872199, 6, 'Fetch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872200, 6, 'Fetish', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872201, 6, 'Fever', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872202, 6, 'Fiddle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872203, 6, 'Field', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872204, 6, 'Fighter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872205, 6, 'Figment', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872206, 6, 'Figure', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872207, 6, 'File', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872208, 6, 'Film', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872209, 6, 'Finger', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872210, 6, 'Fire Engine', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872211, 6, 'Fire', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872212, 6, 'Firefighter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872213, 6, 'Fireside', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872214, 6, 'Fish', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872215, 6, 'Fishing', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872216, 6, 'Fist', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872217, 6, 'Fix', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872218, 6, 'Flag', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872219, 6, 'Flagpole', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872220, 6, 'Flash', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872221, 6, 'Flashlight', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872222, 6, 'Flat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872223, 6, 'Flesh', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872224, 6, 'Flock', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872225, 6, 'Flood', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872226, 6, 'Floor', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872227, 6, 'Flower', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872228, 6, 'Fluff', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872229, 6, 'Flute', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872230, 6, 'Flutter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872231, 6, 'Fly', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872232, 6, 'Foam', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872233, 6, 'Fog', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872234, 6, 'Foil', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872235, 6, 'Foot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872236, 6, 'Football', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872237, 6, 'Force', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872238, 6, 'Forehead', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872239, 6, 'Foreskin', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872240, 6, 'Forest', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872241, 6, 'Fork', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872242, 6, 'France', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872243, 6, 'Freak', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872244, 6, 'Freckle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872245, 6, 'Freckles', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872246, 6, 'French', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872247, 6, 'Friction', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872248, 6, 'Frog', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872249, 6, 'Front', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872250, 6, 'Frost', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872251, 6, 'Frown', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872252, 6, 'Fuel', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872253, 6, 'Funny', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872254, 6, 'Furry', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872255, 6, 'G-spot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872256, 6, 'Gag', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872257, 6, 'Gallop', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872258, 6, 'Game', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872259, 6, 'Gang', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872260, 6, 'Gangbang', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872261, 6, 'Gangster', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872262, 6, 'Garbage', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872263, 6, 'Garden', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872264, 6, 'Gas', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872265, 6, 'Gash', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872266, 6, 'Gay', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872267, 6, 'Gear', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872268, 6, 'Genie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872269, 6, 'Genius', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872270, 6, 'Gerbil', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872271, 6, 'Germany', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872272, 6, 'Ghost', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872273, 6, 'Giant', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872274, 6, 'Gigolo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872275, 6, 'Gingerbread Man', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872276, 6, 'Giraffe', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872277, 6, 'Girl', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872278, 6, 'Glacier', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872279, 6, 'Glass', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872280, 6, 'Glasses', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872281, 6, 'Glide', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872282, 6, 'Glitter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872283, 6, 'Glove', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872284, 6, 'Glue Stick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872285, 6, 'Goat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872286, 6, 'Goblin', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872287, 6, 'Gold', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872288, 6, 'Goldilocks', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872289, 6, 'Golf', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872290, 6, 'Goodbye', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872291, 6, 'Goose', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872292, 6, 'Governor', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872293, 6, 'Grace', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872294, 6, 'Grandfather', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872295, 6, 'Grandma', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872296, 6, 'Grape', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872297, 6, 'Grass', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872298, 6, 'Greece', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872299, 6, 'Green', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872300, 6, 'Greenhouse', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872301, 6, 'Grill', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872302, 6, 'Groom', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872303, 6, 'Grope', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872304, 6, 'Ground', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872305, 6, 'Group', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872306, 6, 'Grown-up', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872307, 6, 'Guitar', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872308, 6, 'Gum', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872309, 6, 'Gumball', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872310, 6, 'Gymnast', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872311, 6, 'Hail', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872312, 6, 'Hair', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872313, 6, 'Half', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872314, 6, 'Halloween', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872315, 6, 'Ham', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872316, 6, 'Hamburger', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872317, 6, 'Hammer', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872318, 6, 'Hamster', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872319, 6, 'Hand', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872320, 6, 'Happy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872321, 6, 'Hat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872322, 6, 'Hawaii', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872323, 6, 'Hawk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872324, 6, 'Head', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872325, 6, 'Headache', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872326, 6, 'Headboard', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872327, 6, 'Headlights', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872328, 6, 'Heart', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872329, 6, 'Helicopter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872330, 6, 'Hell', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872331, 6, 'Helmet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872332, 6, 'Herb', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872333, 6, 'Hercules', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872334, 6, 'Hide', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872335, 6, 'Hide-and-Seek', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872336, 6, 'High', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872337, 6, 'Hill', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872338, 6, 'Himalayas', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872339, 6, 'Hippo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872340, 6, 'Hit', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872341, 6, 'Hockey', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872342, 6, 'Hole', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872343, 6, 'Hollywood', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872344, 6, 'Home', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872345, 6, 'Homer', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872346, 6, 'Homerun', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872347, 6, 'Homework', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872348, 6, 'Honey', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872349, 6, 'Hood', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872350, 6, 'Hook', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872351, 6, 'Hooker', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872352, 6, 'Hooters', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872353, 6, 'Hopscotch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872354, 6, 'Horn', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872355, 6, 'Horny', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872356, 6, 'Horse', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872357, 6, 'Horseshoe', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872358, 6, 'Hose', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872359, 6, 'Hospital', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872360, 6, 'Hot Dog', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872361, 6, 'Hot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872362, 6, 'Hotel', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872363, 6, 'House', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872364, 6, 'Huddle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872365, 6, 'Hug', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872366, 6, 'Hump', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872367, 6, 'Hungry', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872368, 6, 'Hurdle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872369, 6, 'Hurl', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872370, 6, 'Hurt', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872371, 6, 'Husband', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872372, 6, 'Hydrogen', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872373, 6, 'Ice Age', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872374, 6, 'Ice Cream Cone', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872375, 6, 'Ice Cream', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872376, 6, 'Ice', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872377, 6, 'Iceland', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872378, 6, 'Igloo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872379, 6, 'Implode', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872380, 6, 'Important', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872381, 6, 'Inch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872382, 6, 'Inchworm', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872383, 6, 'India', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872384, 6, 'Ink', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872385, 6, 'Intern', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872386, 6, 'Internet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872387, 6, 'Ipad', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872388, 6, 'Ipod', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872389, 6, 'Iron', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872390, 6, 'Ironic', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872391, 6, 'Ironing Board', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872392, 6, 'Ivory', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872393, 6, 'Jack', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872394, 6, 'Jacket', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872395, 6, 'Jail', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872396, 6, 'Jam', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872397, 6, 'Jar', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872398, 6, 'Jazz', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872399, 6, 'Jeans', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872400, 6, 'Jelly', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872401, 6, 'Jellyfish', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872402, 6, 'Jerk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872403, 6, 'Jet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872404, 6, 'Jeweler', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872405, 6, 'Jewels', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872406, 6, 'Joan of Arc', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872407, 6, 'Job', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872408, 6, 'Jockey', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872409, 6, 'John', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872410, 6, 'Johnson', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872411, 6, 'Joint', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872412, 6, 'Joker', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872413, 6, 'Joystick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872414, 6, 'Judge', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872415, 6, 'Jugs', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872416, 6, 'Juice', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872417, 6, 'Jump', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872418, 6, 'Jumper', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872419, 6, 'Jungle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872420, 6, 'Jupiter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872421, 6, 'Kangaroo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872422, 6, 'Keg', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872423, 6, 'Ketchup', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872424, 6, 'Key', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872425, 6, 'Kick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872426, 6, 'Kid', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872427, 6, 'Kilogram', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872428, 6, 'Kilt', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872429, 6, 'King Arthur', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872430, 6, 'King', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872431, 6, 'Kinky', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872432, 6, 'Kiss', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872433, 6, 'Kitchen', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872434, 6, 'Kite', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872435, 6, 'Kitty', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872436, 6, 'Kiwi', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872437, 6, 'Knee', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872438, 6, 'Knees', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872439, 6, 'Knife', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872440, 6, 'Knight', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872441, 6, 'Knob', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872442, 6, 'Knockers', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872443, 6, 'Knot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872444, 6, 'Kung Fu', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872445, 6, 'Lab', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872446, 6, 'Lace', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872447, 6, 'Ladder', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872448, 6, 'Ladybug', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872449, 6, 'Lamp', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872450, 6, 'Landfill', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872451, 6, 'Landscape', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872452, 6, 'Lap', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872453, 6, 'Laser', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872454, 6, 'Latex', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872455, 6, 'Laugh', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872456, 6, 'Laundry', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872457, 6, 'Lawnmower', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872458, 6, 'Lawyer', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872459, 6, 'Lead', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872460, 6, 'Leaf', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872461, 6, 'Leather', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872462, 6, 'Leg', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872463, 6, 'Legend', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872464, 6, 'Legs', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872465, 6, 'Lemon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872466, 6, 'Lemonade', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872467, 6, 'Leprechaun', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872468, 6, 'Letter Opener', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872469, 6, 'Letter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872470, 6, 'Lick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872471, 6, 'Lie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872472, 6, 'Life', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872473, 6, 'Ligament', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872474, 6, 'Light Bulb', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872475, 6, 'Light', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872476, 6, 'Lighter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872477, 6, 'Lightning', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872478, 6, 'Lightsaber', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872479, 6, 'Lime', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872480, 6, 'Limousine', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872481, 6, 'Line', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872482, 6, 'Lingerie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872483, 6, 'Link', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872484, 6, 'Lion', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872485, 6, 'Lip', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872486, 6, 'Lips', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872487, 6, 'Liquor', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872488, 6, 'Litter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872489, 6, 'Living Room', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872490, 6, 'Lizard', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872491, 6, 'Lobster', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872492, 6, 'Loch Ness', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872493, 6, 'Lock', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872494, 6, 'Locust', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872495, 6, 'Log', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872496, 6, 'Logo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872497, 6, 'Lollipop', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872498, 6, 'London', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872499, 6, 'Long', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872500, 6, 'Loose', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872501, 6, 'Lotion', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872502, 6, 'Love', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872503, 6, 'Lube', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872504, 6, 'Luck', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872505, 6, 'Lumberjack', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872506, 6, 'Lunch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872507, 6, 'Lunchbox', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872508, 6, 'Lust', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872509, 6, 'Lyric', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872510, 6, 'Macaroni', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872511, 6, 'Magazine', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872512, 6, 'Magic', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872513, 6, 'Magician', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872514, 6, 'Mail', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872515, 6, 'Mailbox', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872516, 6, 'Mailman', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872517, 6, 'Makeup', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872518, 6, 'Mammoth', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872519, 6, 'Manboobs', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872520, 6, 'Manicure', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872521, 6, 'Map', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872522, 6, 'Maple', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872523, 6, 'Maracas', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872524, 6, 'Marathon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872525, 6, 'Marble', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872526, 6, 'March', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872527, 6, 'Mark', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872528, 6, 'Martini', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872529, 6, 'Mass', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872530, 6, 'Match', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872531, 6, 'Matchstick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872532, 6, 'Mattress', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872533, 6, 'Meat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872534, 6, 'Medic', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872535, 6, 'Melons', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872536, 6, 'Member', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872537, 6, 'Memory', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872538, 6, 'Mercury', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872539, 6, 'Mesh', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872540, 6, 'Mess', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872541, 6, 'Meter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872542, 6, 'Mexico', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872543, 6, 'Microscope', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872544, 6, 'Microwave', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872545, 6, 'Migrate', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872546, 6, 'Mile', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872547, 6, 'Milk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872548, 6, 'Mill', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872549, 6, 'Millionaire', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872550, 6, 'Mime', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872551, 6, 'Mine', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872552, 6, 'Minotaur', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872553, 6, 'Mint', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872554, 6, 'Minute', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872555, 6, 'Mirror', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872556, 6, 'Miss', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872557, 6, 'Missile', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872558, 6, 'Missionary', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872559, 6, 'Mixer', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872560, 6, 'Model', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872561, 6, 'Mohawk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872562, 6, 'Moist', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872563, 6, 'Mole', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872564, 6, 'Mom', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872565, 6, 'Mona Lisa', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872566, 6, 'Monday', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872567, 6, 'Money', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872568, 6, 'Monkey', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872569, 6, 'Monster', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872570, 6, 'Moon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872571, 6, 'Mop', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872572, 6, 'Moscow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872573, 6, 'Moses', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872574, 6, 'Mosquito', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872575, 6, 'Motel', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872576, 6, 'Mother', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872577, 6, 'Motorboat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872578, 6, 'Motorcycle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872579, 6, 'Mount', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872580, 6, 'Mountain', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872581, 6, 'Mountie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872582, 6, 'Mouse', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872583, 6, 'Mouth', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872584, 6, 'Movie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872585, 6, 'Movies', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872586, 6, 'Mud', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872587, 6, 'Mug', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872588, 6, 'Mummy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872589, 6, 'Mushroom', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872590, 6, 'Music', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872591, 6, 'Musketeer', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872592, 6, 'Mustard', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872593, 6, 'Mute', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872594, 6, 'Myth', 1704362871734, '126936953789743104', NULL, 0);
+INSERT OR IGNORE INTO responses (id, tableId, text, timestamp, userSnowflake, serverSnowflake, access)
+VALUES (1704362872595, 6, 'Nail', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872596, 6, 'Naked', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872597, 6, 'Napoleon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872598, 6, 'Nature', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872599, 6, 'Navel', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872600, 6, 'Necklace', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872601, 6, 'Needle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872602, 6, 'Neighbor', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872603, 6, 'Neighborhood', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872604, 6, 'Nerve', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872605, 6, 'Net', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872606, 6, 'Neutron', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872607, 6, 'New York', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872608, 6, 'New', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872609, 6, 'Newsletter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872610, 6, 'Newton', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872611, 6, 'Niece', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872612, 6, 'Night', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872613, 6, 'Nightmare', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872614, 6, 'Ninja', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872615, 6, 'Nipple', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872616, 6, 'Noah', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872617, 6, 'Noodle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872618, 6, 'Nose', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872619, 6, 'Note', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872620, 6, 'Notre Dame', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872621, 6, 'Novel', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872622, 6, 'Nude', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872623, 6, 'Nurse', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872624, 6, 'Nut', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872625, 6, 'Nuts', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872626, 6, 'Nylon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872627, 6, 'Oasis', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872628, 6, 'Observatory', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872629, 6, 'Ocean', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872630, 6, 'Octopus', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872631, 6, 'Oil', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872632, 6, 'Old', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872633, 6, 'Olive', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872634, 6, 'Olympus', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872635, 6, 'Onion', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872636, 6, 'Opaque', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872637, 6, 'Opera', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872638, 6, 'Orange', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872639, 6, 'Organ', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872640, 6, 'Orgasm', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872641, 6, 'Orgy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872642, 6, 'Outer Space', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872643, 6, 'Outside', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872644, 6, 'Ovation', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872645, 6, 'Overture', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872646, 6, 'Oyster', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872647, 6, 'Pacific', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872648, 6, 'Package', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872649, 6, 'Pad', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872650, 6, 'Paddle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872651, 6, 'Page', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872652, 6, 'Paint', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872653, 6, 'Pajamas', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872654, 6, 'Palace', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872655, 6, 'Palm', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872656, 6, 'Pan', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872657, 6, 'Pants', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872658, 6, 'Paper', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872659, 6, 'Paperback', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872660, 6, 'Parachute', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872661, 6, 'Parade', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872662, 6, 'Park', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872663, 6, 'Parody', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872664, 6, 'Parrot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872665, 6, 'Part', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872666, 6, 'Party', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872667, 6, 'Pass', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872668, 6, 'Password', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872669, 6, 'Paste', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872670, 6, 'Pastry', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872671, 6, 'Patient', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872672, 6, 'Pawn', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872673, 6, 'Pea', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872674, 6, 'Peach', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872675, 6, 'Peaches', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872676, 6, 'Peanut', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872677, 6, 'Pear', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872678, 6, 'Pearl', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872679, 6, 'Peasant', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872680, 6, 'Pecker', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872681, 6, 'Pee', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872682, 6, 'Pen', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872683, 6, 'Pencil', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872684, 6, 'Penguin', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872685, 6, 'Penis', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872686, 6, 'Penny', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872687, 6, 'Pentagon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872688, 6, 'Pepper', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872689, 6, 'Period', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872690, 6, 'Person', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872691, 6, 'Pew', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872692, 6, 'Pharmacist', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872693, 6, 'Philosopher', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872694, 6, 'Phoenix', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872695, 6, 'Photograph', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872696, 6, 'Piano', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872697, 6, 'Pickle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872698, 6, 'Picnic', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872699, 6, 'Pie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872700, 6, 'Pig', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872701, 6, 'Pigpen', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872702, 6, 'Pillow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872703, 6, 'Pillows', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872704, 6, 'Pilot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872705, 6, 'Pimp', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872706, 6, 'Pin', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872707, 6, 'Pinch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872708, 6, 'Pine', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872709, 6, 'Pink', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872710, 6, 'Pinwheel', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872711, 6, 'Pipe', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872712, 6, 'Pirate', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872713, 6, 'Pistol', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872714, 6, 'Pit', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872715, 6, 'Pitch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872716, 6, 'Pitcher', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872717, 6, 'Pizza Sauce', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872718, 6, 'Pizza', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872719, 6, 'Plane', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872720, 6, 'Plastic', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872721, 6, 'Plate', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872722, 6, 'Platypus', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872723, 6, 'Play', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872724, 6, 'Player', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872725, 6, 'Playground', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872726, 6, 'Plot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872727, 6, 'Plumber', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872728, 6, 'Pocket', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872729, 6, 'Poem', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872730, 6, 'Pogo Stick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872731, 6, 'Point', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872732, 6, 'Poison', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872733, 6, 'Poker', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872734, 6, 'Pole', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872735, 6, 'Police', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872736, 6, 'Polish', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872737, 6, 'Polo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872738, 6, 'Pool', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872739, 6, 'Poop', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872740, 6, 'Pop', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872741, 6, 'Popcorn', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872742, 6, 'Popsicle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872743, 6, 'Porch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872744, 6, 'Pork', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872745, 6, 'Porn', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872746, 6, 'Port', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872747, 6, 'Positive', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872748, 6, 'Post', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872749, 6, 'Pot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872750, 6, 'Potato', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872751, 6, 'Potter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872752, 6, 'Pound', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872753, 6, 'Powder', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872754, 6, 'Press', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872755, 6, 'Prick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872756, 6, 'Princess', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872757, 6, 'Prison', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872758, 6, 'Prize', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872759, 6, 'Pro', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872760, 6, 'Professor', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872761, 6, 'Prostate', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872762, 6, 'Psychologist', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872763, 6, 'Pub', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872764, 6, 'Pucker', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872765, 6, 'Pumpkin', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872766, 6, 'Pupil', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872767, 6, 'Puppet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872768, 6, 'Puppy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872769, 6, 'Purple', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872770, 6, 'Purse', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872771, 6, 'Push', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872772, 6, 'Pussy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872773, 6, 'Puzzle Piece', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872774, 6, 'Pyramid', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872775, 6, 'Quack', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872776, 6, 'Quarantine', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872777, 6, 'Quarter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872778, 6, 'Queef', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872779, 6, 'Queen', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872780, 6, 'Queer', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872781, 6, 'Quiet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872782, 6, 'Rabbit', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872783, 6, 'Race', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872784, 6, 'Rack', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872785, 6, 'Racket', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872786, 6, 'Radio', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872787, 6, 'Rail', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872788, 6, 'Rainbow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872789, 6, 'Rainwater', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872790, 6, 'Ram', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872791, 6, 'Ranch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872792, 6, 'Random', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872793, 6, 'Rat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872794, 6, 'Rattle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872795, 6, 'Rave', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872796, 6, 'Ray', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872797, 6, 'Razor', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872798, 6, 'Record', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872799, 6, 'Rectum', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872800, 6, 'Recycle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872801, 6, 'Red', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872802, 6, 'Regret', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872803, 6, 'Reindeer', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872804, 6, 'Retail', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872805, 6, 'Revolution', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872806, 6, 'Rib', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872807, 6, 'Rice', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872808, 6, 'Rifle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872809, 6, 'Ring', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872810, 6, 'Ringleader', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872811, 6, 'Rip', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872812, 6, 'River', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872813, 6, 'Roach', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872814, 6, 'Road', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872815, 6, 'Robe', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872816, 6, 'Robin', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872817, 6, 'Robot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872818, 6, 'Rock', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872819, 6, 'Rocket', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872820, 6, 'Rodeo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872821, 6, 'Roll', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872822, 6, 'Roller Blade', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872823, 6, 'Roller Coaster', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872824, 6, 'Rome', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872825, 6, 'Roof', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872826, 6, 'Rookie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872827, 6, 'Root', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872828, 6, 'Rope', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872829, 6, 'Rose', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872830, 6, 'Roulette', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872831, 6, 'Round', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872832, 6, 'Row', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872833, 6, 'Rubber', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872834, 6, 'Rug', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872835, 6, 'Ruler', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872836, 6, 'Russia', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872837, 6, 'Rust', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872838, 6, 'Sack', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872839, 6, 'Sad', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872840, 6, 'Saddle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872841, 6, 'Safe', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872842, 6, 'Sahara', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872843, 6, 'Sail', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872844, 6, 'Salad', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872845, 6, 'Saloon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872846, 6, 'Salsa', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872847, 6, 'Salt and Pepper', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872848, 6, 'Salt', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872849, 6, 'Sand', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872850, 6, 'Sandcastle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872851, 6, 'Sandwich', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872852, 6, 'Santa', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872853, 6, 'Satellite', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872854, 6, 'Saturn', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872855, 6, 'Sauna', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872856, 6, 'Sausage', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872857, 6, 'Saw', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872858, 6, 'Scale', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872859, 6, 'Scarecrow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872860, 6, 'Scared', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872861, 6, 'School Bus', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872862, 6, 'School', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872863, 6, 'Scientist', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872864, 6, 'Score', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872865, 6, 'Scorpion', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872866, 6, 'Scratch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872867, 6, 'Scream', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872868, 6, 'Screen', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872869, 6, 'Screw', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872870, 6, 'Scroll', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872871, 6, 'Scuba Diver', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872872, 6, 'Seal', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872873, 6, 'Seashell', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872874, 6, 'Second', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872875, 6, 'Secretary', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872876, 6, 'Seed', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872877, 6, 'Seesaw', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872878, 6, 'Semen', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872879, 6, 'Server', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872880, 6, 'Sex', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872881, 6, 'Shadow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872882, 6, 'Shaft', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872883, 6, 'Shakespeare', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872884, 6, 'Shallow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872885, 6, 'Shame', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872886, 6, 'Shampoo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872887, 6, 'Share', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872888, 6, 'Shark', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872889, 6, 'Shave', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872890, 6, 'Shed', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872891, 6, 'Sheep', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872892, 6, 'Sheet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872893, 6, 'Shelf', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872894, 6, 'Shell', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872895, 6, 'Sherlock', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872896, 6, 'Sherwood', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872897, 6, 'Ship', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872898, 6, 'Shipwreck', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872899, 6, 'Shirt', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872900, 6, 'Shoe', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872901, 6, 'Shoelace', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872902, 6, 'Shoot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872903, 6, 'Shop', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872904, 6, 'Shopping Cart', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872905, 6, 'Short', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872906, 6, 'Shorts', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872907, 6, 'Shot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872908, 6, 'Shoulder', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872909, 6, 'Shower', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872910, 6, 'Shrew', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872911, 6, 'Sick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872912, 6, 'Sign', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872913, 6, 'Silk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872914, 6, 'Sin', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872915, 6, 'Singer', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872916, 6, 'Sink', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872917, 6, 'Sister', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872918, 6, 'Skank', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872919, 6, 'Skate', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872920, 6, 'Skateboard', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872921, 6, 'Skates', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872922, 6, 'Ski Goggles', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872923, 6, 'Ski', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872924, 6, 'Skid', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872925, 6, 'Skirt', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872926, 6, 'Skull', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872927, 6, 'Skyscraper', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872928, 6, 'Slam Dunk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872929, 6, 'Sled', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872930, 6, 'Sleep', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872931, 6, 'Slide', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872932, 6, 'Sling', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872933, 6, 'Slip', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872934, 6, 'Slipper', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872935, 6, 'Sloth', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872936, 6, 'Slow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872937, 6, 'Slug', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872938, 6, 'Slump', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872939, 6, 'Slut', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872940, 6, 'Smegma', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872941, 6, 'Smell', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872942, 6, 'Smile', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872943, 6, 'Smog', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872944, 6, 'Smoke', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872945, 6, 'Smoothie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872946, 6, 'Smuggler', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872947, 6, 'Snag', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872948, 6, 'Snail', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872949, 6, 'Snake', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872950, 6, 'Snap', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872951, 6, 'Snatch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872952, 6, 'Sneeze', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872953, 6, 'Sniff', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872954, 6, 'Snort', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872955, 6, 'Snow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872956, 6, 'Snowflake', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872957, 6, 'Snowman', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872958, 6, 'Snuggle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872959, 6, 'Soap', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872960, 6, 'Sock', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872961, 6, 'Socks', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872962, 6, 'Softballs', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872963, 6, 'Soldier', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872964, 6, 'Solo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872965, 6, 'Song', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872966, 6, 'Sore', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872967, 6, 'Soul', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872968, 6, 'Sound', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872969, 6, 'Soup', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872970, 6, 'Space', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872971, 6, 'Spank', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872972, 6, 'Spare', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872973, 6, 'Speed', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872974, 6, 'Spell', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872975, 6, 'Sperm', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872976, 6, 'Sphinx', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872977, 6, 'Spice', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872978, 6, 'Spider Web', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872979, 6, 'Spider', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872980, 6, 'Spike', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872981, 6, 'Spine', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872982, 6, 'Spirit', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872983, 6, 'Spoon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872984, 6, 'Spot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872985, 6, 'Spray', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872986, 6, 'Spread', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872987, 6, 'Spring', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872988, 6, 'Sprinkler', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872989, 6, 'Spurs', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872990, 6, 'Spy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872991, 6, 'Square', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872992, 6, 'Squash', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872993, 6, 'Squirrel', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872994, 6, 'Squirt', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872995, 6, 'St.patrick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872996, 6, 'Stable', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872997, 6, 'Stadium', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872998, 6, 'Staff', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362872999, 6, 'Stairs', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873000, 6, 'Stalker', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873001, 6, 'Stamp', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873002, 6, 'Standing', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873003, 6, 'Star', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873004, 6, 'State', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873005, 6, 'Steam', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873006, 6, 'Steamy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873007, 6, 'Steel', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873008, 6, 'Step', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873009, 6, 'Stethoscope', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873010, 6, 'Stick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873011, 6, 'Sticker', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873012, 6, 'Stiff', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873013, 6, 'Stiletto', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873014, 6, 'Stock', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873015, 6, 'Stockholder', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873016, 6, 'Stones', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873017, 6, 'Stool', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873018, 6, 'Stoplight', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873019, 6, 'Storm', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873020, 6, 'Story', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873021, 6, 'Stove', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873022, 6, 'Stowaway', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873023, 6, 'Straight', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873024, 6, 'Strap', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873025, 6, 'Straw', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873026, 6, 'Stream', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873027, 6, 'Street', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873028, 6, 'Strike', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873029, 6, 'String', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873030, 6, 'Strip', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873031, 6, 'Stripe', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873032, 6, 'Stripper', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873033, 6, 'Strobe', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873034, 6, 'Stud', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873035, 6, 'Student', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873036, 6, 'Sub', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873037, 6, 'Sugar', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873038, 6, 'Suit', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873039, 6, 'Sumo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873040, 6, 'Sun', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873041, 6, 'Sunburn', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873042, 6, 'Superhero', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873043, 6, 'Swallow', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873044, 6, 'Swamp', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873045, 6, 'Sweat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873046, 6, 'Swimmers', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873047, 6, 'Swimming Pool', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873048, 6, 'Swing', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873049, 6, 'Switch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873050, 6, 'Sword', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873051, 6, 'Table', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873052, 6, 'Tablet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873053, 6, 'Taboo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873054, 6, 'Taco', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873055, 6, 'Tag', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873056, 6, 'Tail', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873057, 6, 'Talk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873058, 6, 'Tank', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873059, 6, 'Tap', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873060, 6, 'Taste', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873061, 6, 'Tattoo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873062, 6, 'Tavern', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873063, 6, 'Taxi Cab', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873064, 6, 'Tea', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873065, 6, 'Teabag', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873066, 6, 'Teacher', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873067, 6, 'Team', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873068, 6, 'Teapot', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873069, 6, 'Tear', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873070, 6, 'Tease', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873071, 6, 'Telephone', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873072, 6, 'Telescope', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873073, 6, 'Temple', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873074, 6, 'Tennis Shoes', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873075, 6, 'Tent', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873076, 6, 'Tequila', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873077, 6, 'Texas', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873078, 6, 'Theater', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873079, 6, 'Thief', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873080, 6, 'Threesome', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873081, 6, 'Throat', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873082, 6, 'Throne', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873083, 6, 'Thumb', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873084, 6, 'Thunder', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873085, 6, 'Tick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873086, 6, 'Tickle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873087, 6, 'Tie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873088, 6, 'Tiger', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873089, 6, 'Time', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873090, 6, 'Tin', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873091, 6, 'Tint', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873092, 6, 'Tip', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873093, 6, 'Tipi', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873094, 6, 'Tiptoe', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873095, 6, 'Tired', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873096, 6, 'Tit', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873097, 6, 'Toast', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873098, 6, 'Toilet Paper', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873099, 6, 'Tokyo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873100, 6, 'Tongue', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873101, 6, 'Tool', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873102, 6, 'Tooth', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873103, 6, 'Toothbrush', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873104, 6, 'Top', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873105, 6, 'Torch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873106, 6, 'Tornado', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873107, 6, 'Torture', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873108, 6, 'Touch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873109, 6, 'Touchdown', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873110, 6, 'Tournament', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873111, 6, 'Tower', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873112, 6, 'Toy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873113, 6, 'Track', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873114, 6, 'Tractor', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873115, 6, 'Train', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873116, 6, 'Tramp', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873117, 6, 'Trash', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873118, 6, 'Treasure', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873119, 6, 'Treehouse', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873120, 6, 'Tree', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873121, 6, 'Triangle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873122, 6, 'Trick', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873123, 6, 'Trim', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873124, 6, 'Trip', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873125, 6, 'Troll', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873126, 6, 'Trousers', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873127, 6, 'Truck', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873128, 6, 'Trunk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873129, 6, 'Tuba', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873130, 6, 'Tube', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873131, 6, 'Tubesteak', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873132, 6, 'Tuna', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873133, 6, 'Tunnel', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873134, 6, 'Turd', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873135, 6, 'Turkey', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873136, 6, 'Turtle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873137, 6, 'Tutor', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873138, 6, 'Tutu', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873139, 6, 'Tuxedo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873140, 6, 'Tv', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873141, 6, 'Twig', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873142, 6, 'Type', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873143, 6, 'Udders', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873144, 6, 'Undertaker', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873145, 6, 'Unicorn', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873146, 6, 'University', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873147, 6, 'Upgrade', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873148, 6, 'Uranus', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873149, 6, 'Vacuum', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873150, 6, 'Valentine', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873151, 6, 'Vampire', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873152, 6, 'Van', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873153, 6, 'Vasectomy', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873154, 6, 'Vegas', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873155, 6, 'Vegetarian', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873156, 6, 'Vein', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873157, 6, 'Venus', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873158, 6, 'Vet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873159, 6, 'Vibrator', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873160, 6, 'Video', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873161, 6, 'Viking', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873162, 6, 'Vinyl', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873163, 6, 'Violet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873164, 6, 'Virgin', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873165, 6, 'Virus', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873166, 6, 'Vision', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873167, 6, 'Vitamin', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873168, 6, 'Vodka', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873169, 6, 'Volcano', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873170, 6, 'Volume', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873171, 6, 'Vomit', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873172, 6, 'Wad', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873173, 6, 'Wagon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873174, 6, 'Waitress', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873175, 6, 'Wake', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873176, 6, 'Wall', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873177, 6, 'Wallet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873178, 6, 'Walrus', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873179, 6, 'Wang', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873180, 6, 'War', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873181, 6, 'Washer', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873182, 6, 'Washington', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873183, 6, 'Waste', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873184, 6, 'Watch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873185, 6, 'Water', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873186, 6, 'Watermelon', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873187, 6, 'Wave', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873188, 6, 'Wax', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873189, 6, 'Web', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873190, 6, 'Wedding Ring', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873191, 6, 'Wedding', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873192, 6, 'Weed', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873193, 6, 'Well', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873194, 6, 'Wench', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873195, 6, 'Werewolf', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873196, 6, 'Wet', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873197, 6, 'Whale', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873198, 6, 'Wheel', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873199, 6, 'Wheelchair', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873200, 6, 'Whip', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873201, 6, 'Whisk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873202, 6, 'Whiskey', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873203, 6, 'Whistle', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873204, 6, 'White', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873205, 6, 'Wiener', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873206, 6, 'Wind', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873207, 6, 'Windmill', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873208, 6, 'Window', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873209, 6, 'Wine', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873210, 6, 'Wing', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873211, 6, 'Winter', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873212, 6, 'Wish', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873213, 6, 'Witch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873214, 6, 'Wizard', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873215, 6, 'Wobble', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873216, 6, 'Wolf', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873217, 6, 'Wonderland', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873218, 6, 'Wood', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873219, 6, 'Wool', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873220, 6, 'Worm', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873221, 6, 'Wristwatch', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873222, 6, 'Yard', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873223, 6, 'Yellowstone', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873224, 6, 'Yo-yo', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873225, 6, 'Yolk', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873226, 6, 'Zero', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873227, 6, 'Zombie', 1704362871734, '126936953789743104', NULL, 0),
+ (1704362873228, 6, 'Zoo', 1704362871734, '126936953789743104', NULL, 0);
diff --git a/package-lock.json b/package-lock.json
index 499be78..efba794 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,6 +7,11 @@
"": {
"name": "ncc-gen",
"version": "0.0.0",
+ "dependencies": {
+ "discord-snowflake": "^2.0.0",
+ "jose": "^5.2.0",
+ "slash-create": "^6.0.2"
+ },
"devDependencies": {
"@cloudflare/workers-types": "^4.20231218.0",
"typescript": "^5.0.4",
@@ -498,7 +503,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz",
"integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==",
- "dev": true,
"engines": {
"node": ">=14"
}
@@ -685,6 +689,14 @@
}
}
},
+ "node_modules/discord-snowflake": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/discord-snowflake/-/discord-snowflake-2.0.0.tgz",
+ "integrity": "sha512-MFWier0d78ajvk1lAXUCm7wbNnY2bD7/rqvtemuhoebkBBS9AnA0OwQI7SpYqiy/01GR1raLPTsIOwWCj8Pb+w==",
+ "engines": {
+ "node": ">=18"
+ }
+ },
"node_modules/esbuild": {
"version": "0.17.19",
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz",
@@ -740,6 +752,11 @@
"integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
"dev": true
},
+ "node_modules/eventemitter3": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz",
+ "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA=="
+ },
"node_modules/exit-hook": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz",
@@ -848,6 +865,19 @@
"node": ">=0.12.0"
}
},
+ "node_modules/jose": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/jose/-/jose-5.2.0.tgz",
+ "integrity": "sha512-oW3PCnvyrcm1HMvGTzqjxxfnEs9EoFOFWi2HsEGhlFVOXxTE3K9GKWVMFoFw06yPUqwpvEWic1BmtUZBI/tIjw==",
+ "funding": {
+ "url": "https://github.com/sponsors/panva"
+ }
+ },
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+ },
"node_modules/magic-string": {
"version": "0.25.9",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
@@ -1034,6 +1064,35 @@
"node": ">=10"
}
},
+ "node_modules/slash-create": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/slash-create/-/slash-create-6.0.2.tgz",
+ "integrity": "sha512-V2gqs7Ov3C8hjS2aODwzGUM/4WqpRiNXSPh69Bk3soyL7Kvkc/75HfwOgz9fTNNU+H/u5EMtvjR4hJgey0HKHA==",
+ "dependencies": {
+ "eventemitter3": "^5.0.1",
+ "lodash.isequal": "^4.5.0",
+ "tweetnacl": "^1.0.3",
+ "undici": "^5.28.2"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/Snazzah"
+ },
+ "peerDependencies": {
+ "express": "^4",
+ "fastify": "^3 || ^4"
+ },
+ "peerDependenciesMeta": {
+ "express": {
+ "optional": true
+ },
+ "fastify": {
+ "optional": true
+ }
+ }
+ },
"node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -1088,6 +1147,11 @@
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
"dev": true
},
+ "node_modules/tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
+ },
"node_modules/typescript": {
"version": "5.3.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
@@ -1105,7 +1169,6 @@
"version": "5.28.2",
"resolved": "https://registry.npmjs.org/undici/-/undici-5.28.2.tgz",
"integrity": "sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w==",
- "dev": true,
"dependencies": {
"@fastify/busboy": "^2.0.0"
},
diff --git a/package.json b/package.json
index d3a60ce..b2afe40 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
- "name": "ncc-gen",
- "version": "0.0.0",
+ "name": "vore-scenario-gen",
+ "version": "1.0.0",
"private": true,
"scripts": {
"deploy": "wrangler deploy",
@@ -11,5 +11,9 @@
"@cloudflare/workers-types": "^4.20231218.0",
"typescript": "^5.0.4",
"wrangler": "^3.0.0"
+ },
+ "dependencies": {
+ "discord-snowflake": "^2.0.0",
+ "slash-create": "^6.0.2"
}
}
diff --git a/src/commands.ts b/src/commands.ts
new file mode 100644
index 0000000..1479e67
--- /dev/null
+++ b/src/commands.ts
@@ -0,0 +1,376 @@
+import { CommandContext, CommandOptionType, ComponentContext, SlashCommand, type SlashCreator } from 'slash-create/web';
+import {
+ calculateUnlockedValues,
+ DELETE_ID,
+ DONE_ID,
+ generateErrorMessageFor,
+ generateFieldFor,
+ generateMessageFor,
+ generateValuesFor,
+ getEmbedFrom,
+ loadEmbed,
+ populateLocksFor,
+ REROLL_ID,
+ RollTableNames,
+ SELECT_ID,
+ selectUnlockedFrom
+} from './generated.js';
+import { type DbAccess, DeleteResult, UpdateResult } from './dbAccess.js';
+import { isTable, RollTableOrder, ValueAccess } from './rolltable.js';
+import { getTimestamp, isSnowflake, type Snowflake } from 'discord-snowflake';
+
+export class ResponseCommand extends SlashCommand {
+ private readonly db: DbAccess
+ private readonly baseUrl: string;
+
+ constructor(creator: SlashCreator, db: DbAccess, baseUrl: string, forGuilds?: Snowflake|Snowflake[]) {
+ super(creator, {
+ name: "response",
+ description: "Modifies the responses available in the generator.",
+ nsfw: false,
+ guildIDs: forGuilds,
+ dmPermission: true,
+ options: [
+ {
+ type: CommandOptionType.SUB_COMMAND,
+ name: "add",
+ description: "Adds a new response to the generator.",
+ options: [
+ {
+ type: CommandOptionType.INTEGER,
+ name: "table",
+ description: "The table to insert the response into.",
+ choices: RollTableOrder.map(v => ({name: RollTableNames[v], value: v})),
+ required: true,
+ },
+ {
+ type: CommandOptionType.STRING,
+ name: "text",
+ description: "The text to use as the response.",
+ required: true,
+ }
+ ]
+ },
+ {
+ type: CommandOptionType.SUB_COMMAND,
+ name: "list",
+ description: "Lists responses that will appear in /generate in the current context."
+ },
+ {
+ type: CommandOptionType.SUB_COMMAND,
+ name: "edit",
+ description: "Modifies a response that was previously created.",
+ options: [
+ {
+ type: CommandOptionType.INTEGER,
+ name: "table",
+ description: "The table to update the response from.",
+ choices: RollTableOrder.map(v => ({name: RollTableNames[v], value: v})),
+ required: true,
+ },
+ {
+ type: CommandOptionType.STRING,
+ name: "old_text",
+ description: "The text of the response to edit.",
+ required: true,
+ },
+ {
+ type: CommandOptionType.STRING,
+ name: "new_text",
+ description: "The text to replace the response with.",
+ required: true,
+ }
+ ]
+ },
+ {
+ type: CommandOptionType.SUB_COMMAND,
+ name: "delete",
+ description: "Deletes a response that was previously created.",
+ options: [
+ {
+ type: CommandOptionType.INTEGER,
+ name: "table",
+ description: "The table to delete the response from.",
+ choices: RollTableOrder.map(v => ({name: RollTableNames[v], value: v})),
+ required: true,
+ },
+ {
+ type: CommandOptionType.STRING,
+ name: "text",
+ description: "The text of the response to delete.",
+ required: true,
+ },
+ ]
+ },
+ ]
+ });
+ this.baseUrl = baseUrl
+ this.db = db
+ }
+
+ async run(ctx: CommandContext): Promise {
+ switch (ctx.subcommands[0]) {
+ case "add":
+ try {
+ await this.onAdd(ctx)
+ } catch (e) {
+ await ctx.send(generateErrorMessageFor(e, "add a new response"))
+ }
+ break
+ case "list":
+ try {
+ await this.onList(ctx)
+ } catch (e) {
+ await ctx.send(generateErrorMessageFor(e, "get the list URL"))
+ }
+ break
+ case "edit":
+ try {
+ await this.onEdit(ctx)
+ } catch (e) {
+ await ctx.send(generateErrorMessageFor(e, "edit a response"))
+ }
+ break
+ case "delete":
+ try {
+ await this.onDelete(ctx)
+ } catch (e) {
+ await ctx.send(generateErrorMessageFor(e, "delete a response"))
+ }
+ break
+ default:
+ await ctx.send(generateErrorMessageFor(Error("I don't know what command you want"), "manage responses"))
+ break
+ }
+ }
+
+ private async onAdd(ctx: CommandContext): Promise {
+ const guildId = ctx.guildID ?? null
+ const userId = ctx.user.id
+ const id = ctx.interactionID
+ if (!isSnowflake(id)) {
+ throw Error("the snowflake wasn't a snowflake")
+ }
+ const timestamp = getTimestamp(id)
+ const table = ctx.options['add']['table']
+ if (!isTable(table)) {
+ throw Error(`there's no table number ${table}`)
+ }
+ const text = ctx.options['add']['text']
+ const { timestamp: insertedTimestamp, access, inserted } = await this.db.putResponse(timestamp, table, text, userId, guildId, guildId === null ? ValueAccess.CreatorDM : ValueAccess.Server)
+
+ await ctx.send({
+ embeds: [{
+ title: `${inserted ? 'Your new' : 'An existing'}${access === ValueAccess.Global ? " global" : ""} response`,
+ fields: [generateFieldFor(table, text)],
+ timestamp: new Date(insertedTimestamp),
+ }],
+ ephemeral: !inserted,
+ })
+ }
+
+ private async onList(ctx: CommandContext) {
+ if (ctx.guildID) {
+ await ctx.send({
+ embeds: [{
+ title: `Response list for this server`,
+ description: "Shows all global and server-local responses.",
+ url: `${this.baseUrl}/responses?server=${ctx.guildID}`,
+ }]
+ })
+ } else {
+ await ctx.send({
+ embeds: [{
+ title: `Response list for DMs`,
+ description: "It's not supported right now, so please just hang tight."
+ }]
+ })
+ }
+ }
+
+ private async onEdit(ctx: CommandContext): Promise {
+ const guildId = ctx.guildID ?? null
+ const userId = ctx.user.id
+ const id = ctx.interactionID
+ if (!isSnowflake(id)) {
+ throw Error("the snowflake wasn't a snowflake")
+ }
+ const timestamp = getTimestamp(id)
+ const table = ctx.options['edit']['table']
+ if (!isTable(table)) {
+ throw Error(`there's no table number ${table}`)
+ }
+ const oldText = ctx.options['edit']['old_text']
+ const newText = ctx.options['edit']['new_text']
+ const result = await this.db.updateResponse(timestamp, table, oldText, newText, userId, guildId, guildId === null ? ValueAccess.CreatorDM : ValueAccess.Server)
+ switch (result.result) {
+ case UpdateResult.Updated:
+ await ctx.send({
+ embeds: [{
+ title: `Your updated response`,
+ fields: [generateFieldFor(table, oldText), generateFieldFor(table, newText)],
+ timestamp: new Date(timestamp).toISOString()
+ }],
+ })
+ break
+ case UpdateResult.NewConflict:
+ await ctx.send({
+ embeds: [{
+ title: `An existing${result.access === ValueAccess.Global ? " global" : ""} response`,
+ fields: [generateFieldFor(table, newText)],
+ timestamp: new Date(result.timestamp).toISOString(),
+ }],
+ ephemeral: true,
+ })
+ break
+ case UpdateResult.NoOldText:
+ await ctx.send({
+ embeds: [{
+ title: `A nonexistent response`,
+ fields: [generateFieldFor(table, oldText)],
+ }],
+ ephemeral: true,
+ })
+ break
+ case UpdateResult.OldGlobal:
+ await ctx.send({
+ embeds: [{
+ title: `An uneditable global response`,
+ fields: [generateFieldFor(table, oldText)],
+ }],
+ ephemeral: true,
+ })
+ break
+ }
+ }
+
+ private async onDelete(ctx: CommandContext): Promise {
+ const guildId = ctx.guildID ?? null
+ const userId = ctx.user.id
+ const id = ctx.interactionID
+ if (!isSnowflake(id)) {
+ throw Error("the snowflake wasn't a snowflake")
+ }
+ const timestamp = getTimestamp(id)
+ const table = ctx.options['delete']['table']
+ if (!isTable(table)) {
+ throw Error(`there's no table number ${table}`)
+ }
+ const text = ctx.options['delete']['text']
+ const result = await this.db.deleteResponse(table, text, userId, guildId, guildId === null ? ValueAccess.CreatorDM : ValueAccess.Server)
+ switch (result.result) {
+ case DeleteResult.Deleted:
+ await ctx.send({
+ embeds: [{
+ title: 'Your deleted response',
+ fields: [generateFieldFor(table, text)],
+ timestamp: new Date(result.timestamp).toISOString(),
+ }]
+ })
+ break
+ case DeleteResult.OldGlobal:
+ await ctx.send({
+ embeds: [{
+ title: 'An undeletable global response',
+ fields: [generateFieldFor(table, text)],
+ timestamp: new Date(result.timestamp).toISOString(),
+ }],
+ ephemeral: true
+ })
+ break
+ case DeleteResult.NoOldText:
+ await ctx.send({
+ embeds: [{
+ title: 'A nonexistent response',
+ fields: [generateFieldFor(table, text)],
+ }],
+ ephemeral: true
+ })
+ break
+ }
+ }
+}
+
+export class GenerateCommand extends SlashCommand {
+ private readonly db: DbAccess
+
+ constructor(creator: SlashCreator, db: DbAccess, forGuilds?: Snowflake|Snowflake[]) {
+ super(creator, {
+ name: "generate",
+ description: "Generates a new scenario to play with and sends it to the current channel.",
+ nsfw: false,
+ dmPermission: true,
+ guildIDs: forGuilds,
+ throttling: {
+ duration: 5,
+ usages: 1,
+ }
+ });
+ this.db = db
+ if (!forGuilds) {
+ creator.registerGlobalComponent(DONE_ID, this.onDone.bind(this))
+ creator.registerGlobalComponent(REROLL_ID, this.onReroll.bind(this))
+ creator.registerGlobalComponent(SELECT_ID, this.onSelect.bind(this))
+ creator.registerGlobalComponent(DELETE_ID, this.onDelete.bind(this))
+ }
+ }
+
+ async run(ctx: CommandContext): Promise {
+ try {
+ const tables = calculateUnlockedValues()
+ const responses = await (ctx.guildID
+ ? this.db.getResponsesInServer(ctx.guildID)
+ : this.db.getResponsesInDMWith(ctx.user.id))
+ const values = generateValuesFor(tables, responses)
+ const locks = populateLocksFor(values)
+ await ctx.send(generateMessageFor(values, locks))
+ } catch (e) {
+ await ctx.send(generateErrorMessageFor(e, "generate a scenario for you"))
+ }
+ }
+
+ async onSelect(ctx: ComponentContext): Promise {
+ try {
+ const oldEmbed = getEmbedFrom(ctx.message)
+ const {values, locked: oldLocks} = loadEmbed(oldEmbed)
+ const newLocks = selectUnlockedFrom(ctx.values, oldLocks)
+ await ctx.editParent(generateMessageFor(values, newLocks))
+ } catch (e) {
+ await ctx.send(generateErrorMessageFor(e, "change the selected components"))
+ }
+ }
+
+ async onDone(ctx: ComponentContext): Promise {
+ try {
+ const oldEmbed = getEmbedFrom(ctx.message)
+ const { values } = loadEmbed(oldEmbed)
+ await ctx.editParent(generateMessageFor(values, undefined))
+ } catch (e) {
+ await ctx.send(generateErrorMessageFor(e, "finish this scenario"))
+ }
+ }
+
+ async onReroll(ctx: ComponentContext): Promise {
+ try {
+ const oldEmbed = getEmbedFrom(ctx.message)
+ const { values: oldValues, locked: locks } = loadEmbed(oldEmbed)
+ const selected = calculateUnlockedValues(oldValues, locks)
+ const responses = await (ctx.guildID
+ ? this.db.getResponsesInServer(ctx.guildID)
+ : this.db.getResponsesInDMWith(ctx.user.id))
+ const newValues = generateValuesFor(selected, responses, oldValues)
+ await ctx.editParent(generateMessageFor(newValues, locks))
+ } catch (e) {
+ await ctx.send(generateErrorMessageFor(e, "reroll this scenario"))
+ throw e
+ }
+ }
+
+ async onDelete(ctx: ComponentContext): Promise {
+ try {
+ await ctx.delete(ctx.messageID)
+ } catch (e) {
+ await ctx.send(generateErrorMessageFor(e, "delete this scenario"))
+ }
+ }
+}
diff --git a/src/dbAccess.ts b/src/dbAccess.ts
new file mode 100644
index 0000000..0832a61
--- /dev/null
+++ b/src/dbAccess.ts
@@ -0,0 +1,180 @@
+import { type RollableTables, RollTable, RollTableOrder, ValueAccess } from './rolltable.js';
+
+interface DbResponse {
+ tableId: RollTable,
+ text: string,
+}
+
+export enum UpdateResult {
+ Updated = 0,
+ NewConflict = 1,
+ OldGlobal = 2,
+ NoOldText = 3,
+}
+
+export enum DeleteResult {
+ Deleted = 0,
+ OldGlobal = 2,
+ NoOldText = 3,
+}
+
+function buildRollableTables(responses: DbResponse[]): RollableTables {
+ const out: {[key in RollTable]?: string[]} = {}
+ for (const table of RollTableOrder) {
+ out[table] = []
+ }
+ for (const { tableId, text } of responses) {
+ out[tableId]?.push(text)
+ }
+ return out as RollableTables
+}
+
+export class DbAccess {
+ private readonly getResponsesInServerQuery: D1PreparedStatement
+ private readonly getResponsesInDMQuery: D1PreparedStatement;
+ private readonly putResponseQuery: D1PreparedStatement;
+ private readonly checkResponseAlreadyExistsQuery: D1PreparedStatement;
+ private readonly getResponsesGlobal: D1PreparedStatement;
+ private readonly updateResponseQuery: D1PreparedStatement;
+ private readonly deleteResponseQuery: D1PreparedStatement;
+
+ constructor(db: D1Database) {
+ this.getResponsesGlobal = db.prepare(
+ `SELECT DISTINCT tableId, text FROM responses
+ WHERE access = ${ValueAccess.Global}`)
+ this.getResponsesInServerQuery = db.prepare(
+ `SELECT DISTINCT tableId, text FROM responses
+ WHERE access = ${ValueAccess.Global}
+ OR (access = ${ValueAccess.Server} AND serverSnowflake = ?);`)
+ this.getResponsesInDMQuery = db.prepare(
+ `SELECT DISTINCT tableId, text FROM responses
+ WHERE access = ${ValueAccess.Global}
+ OR (access = ${ValueAccess.CreatorDM} AND userSnowflake = ?);`)
+ this.putResponseQuery = db.prepare(
+ `INSERT OR IGNORE INTO responses (id, tableId, text, timestamp, userSnowflake, serverSnowflake, access) VALUES (?, ?, ?, ?, ?, ?, ?) RETURNING timestamp, access;`)
+ this.updateResponseQuery = db.prepare(
+ `UPDATE responses SET text = ?3, timestamp = ?4, userSnowflake = ?5, serverSnowflake = ?6
+ WHERE tableId = ?1 AND text = ?2
+ AND ((?7 = ${ValueAccess.CreatorDM} AND access = ${ValueAccess.CreatorDM} AND userSnowflake = ?5)
+ OR (?7 = ${ValueAccess.Server} AND access = ${ValueAccess.Server} AND serverSnowflake = ?6))
+ RETURNING timestamp, access;`)
+ this.deleteResponseQuery = db.prepare(
+ `DELETE FROM responses
+ WHERE tableId = ?1 AND text = ?2
+ AND ((?5 = ${ValueAccess.CreatorDM} AND access = ${ValueAccess.CreatorDM} AND userSnowflake = ?3)
+ OR (?5 = ${ValueAccess.Server} AND access = ${ValueAccess.Server} AND serverSnowflake = ?4))
+ RETURNING timestamp, access;`)
+ this.checkResponseAlreadyExistsQuery = db.prepare(
+ `SELECT timestamp, access FROM responses
+ WHERE tableId = ?1 AND text = ?2
+ AND (access = ${ValueAccess.Global}
+ OR (?3 = ${ValueAccess.CreatorDM} AND access = ${ValueAccess.CreatorDM} AND userSnowflake = ?4)
+ OR (?3 = ${ValueAccess.Server} AND access = ${ValueAccess.Server} AND serverSnowflake = ?4));`)
+ }
+
+ async getGlobalResponses(): Promise {
+ const {results} = await this.getResponsesGlobal.all()
+ return buildRollableTables(results)
+ }
+
+ async getResponsesInServer(inServerSnowflake: string): Promise {
+ const statement = this.getResponsesInServerQuery.bind(inServerSnowflake)
+ const {results} = await statement.all()
+ return buildRollableTables(results)
+ }
+
+ async getResponsesInDMWith(withUserSnowflake: string): Promise {
+ const statement = this.getResponsesInDMQuery.bind(withUserSnowflake)
+ const {results} = await statement.all()
+ return buildRollableTables(results)
+ }
+
+ async putResponse(requestTimestamp: number, table: RollTable, text: string, fromUserSnowflake: string, inServerSnowflake: string|null, access?: ValueAccess): Promise<{
+ timestamp: number,
+ access: ValueAccess,
+ inserted: boolean
+ }> {
+ const effectiveAccess = access ?? (inServerSnowflake ? ValueAccess.Server : ValueAccess.CreatorDM)
+ const relevantSnowflake = access === ValueAccess.Server ? inServerSnowflake : access === ValueAccess.CreatorDM ? fromUserSnowflake : null
+ const existingResponseStatement = this.checkResponseAlreadyExistsQuery.bind(table, text, effectiveAccess, relevantSnowflake)
+ const existingResponse = await existingResponseStatement.first<{timestamp: number, access: ValueAccess}>()
+ if (existingResponse) {
+ return {
+ timestamp: existingResponse.timestamp,
+ access: existingResponse.access,
+ inserted: false,
+ }
+ }
+ const statement = this.putResponseQuery.bind(
+ requestTimestamp, table, text, requestTimestamp, fromUserSnowflake, inServerSnowflake, effectiveAccess)
+ const result = await statement.first<{timestamp: number, access: ValueAccess}>()
+ if (!result) {
+ throw Error("no response from insert")
+ }
+ return {
+ timestamp: result.timestamp,
+ access: result.access,
+ inserted: true
+ }
+ }
+
+ async updateResponse(timestamp: number, table: RollTable, oldText: string, newText: string, userId: string, guildId: string | null, access?: ValueAccess): Promise<{result: UpdateResult.NoOldText|UpdateResult.Updated} | {result: UpdateResult.NewConflict, timestamp: number, access: ValueAccess} | {result: UpdateResult.OldGlobal, timestamp: number, access: ValueAccess.Global}> {
+ const effectiveAccess = access ?? (guildId ? ValueAccess.Server : ValueAccess.CreatorDM)
+ const relevantSnowflake = access === ValueAccess.Server ? guildId : access === ValueAccess.CreatorDM ? userId : null
+ const existingOldResponseStatement = this.checkResponseAlreadyExistsQuery.bind(table, oldText, effectiveAccess, relevantSnowflake)
+ const existingOldResponse = await existingOldResponseStatement.first<{timestamp: number, access: ValueAccess}>()
+ if (!existingOldResponse) {
+ return {
+ result: UpdateResult.NoOldText
+ }
+ } else if (existingOldResponse.access === ValueAccess.Global) {
+ return {
+ timestamp: existingOldResponse.timestamp,
+ access: existingOldResponse.access,
+ result: UpdateResult.OldGlobal,
+ }
+ }
+ const existingNewResponseStatement = this.checkResponseAlreadyExistsQuery.bind(table, newText, effectiveAccess, relevantSnowflake)
+ const existingNewResponse = await existingNewResponseStatement.first<{timestamp: number, access: ValueAccess}>()
+ if (existingNewResponse) {
+ return {
+ result: UpdateResult.NewConflict,
+ timestamp: existingNewResponse.timestamp,
+ access: existingNewResponse.access,
+ }
+ }
+ const statement = this.updateResponseQuery.bind(
+ table, oldText, newText, timestamp, userId, guildId, effectiveAccess)
+ await statement.run()
+ return {result: UpdateResult.Updated}
+ }
+
+ async deleteResponse(table: RollTable, text: string, userId: string, guildId: string | null, access?: ValueAccess): Promise<
+ {result: DeleteResult.Deleted, timestamp: number, access: ValueAccess} |
+ {result: DeleteResult.NoOldText} |
+ {result: DeleteResult.OldGlobal, timestamp: number, access: ValueAccess.Global}
+ > {
+ const effectiveAccess = access ?? (guildId ? ValueAccess.Server : ValueAccess.CreatorDM)
+ const relevantSnowflake = access === ValueAccess.Server ? guildId : access === ValueAccess.CreatorDM ? userId : null
+ const existingOldResponseStatement = this.checkResponseAlreadyExistsQuery.bind(table, text, effectiveAccess, relevantSnowflake)
+ const existingOldResponse = await existingOldResponseStatement.first<{timestamp: number, access: ValueAccess}>()
+ if (!existingOldResponse) {
+ return {
+ result: DeleteResult.NoOldText
+ }
+ } else if (existingOldResponse.access === ValueAccess.Global) {
+ return {
+ timestamp: existingOldResponse.timestamp,
+ access: existingOldResponse.access,
+ result: DeleteResult.OldGlobal,
+ }
+ }
+ const statement = this.deleteResponseQuery.bind(
+ table, text, userId, guildId, effectiveAccess)
+ const deleted = await statement.first<{timestamp: number, access: ValueAccess}>()
+ if (!deleted) {
+ throw Error("no response from delete")
+ }
+ return {result: DeleteResult.Deleted, timestamp: deleted.timestamp, access: deleted.access}
+ }
+}
diff --git a/src/generated.ts b/src/generated.ts
new file mode 100644
index 0000000..1e0b091
--- /dev/null
+++ b/src/generated.ts
@@ -0,0 +1,233 @@
+import { type RollableTables, rollOn, RollTable, RollTableOrder } from './rolltable.js';
+import {
+ ButtonStyle,
+ type ComponentActionRow,
+ type ComponentButton,
+ type ComponentSelectMenu,
+ type ComponentSelectOption,
+ ComponentType,
+ EmbedField,
+ MessageEmbed, type MessageEmbedOptions, type MessageOptions
+} from 'slash-create/web';
+
+export type ComponentValues = { [key in RollTable]?: string }
+export type ComponentLocks = { [Key in RollTable]?: boolean }
+
+export interface GeneratedMessage {
+ values: ComponentValues
+ locked?: ComponentLocks
+}
+
+export const RollTableEmoji = {
+ [RollTable.Setting]: '\u{1f3d9}\ufe0f',
+ [RollTable.Theme]: '\u{1f4d4}',
+ [RollTable.Start]: '\u25b6\ufe0f',
+ [RollTable.Challenge]: '\u{1f613}',
+ [RollTable.Twist]: '\u{1f500}',
+ [RollTable.Focus]: '\u{1f444}',
+ [RollTable.Word]: '\u{2728}'
+} as const satisfies {readonly [key in RollTable]: string}
+
+export const RollTableEmbedTitles = {
+ [RollTable.Setting]: 'The action takes place...',
+ [RollTable.Theme]: 'The encounter is themed around...',
+ [RollTable.Start]: 'The action begins when...',
+ [RollTable.Challenge]: 'Things are more difficult because...',
+ [RollTable.Twist]: 'Partway through, unexpectedly...',
+ [RollTable.Focus]: 'The vore scene is focused on...',
+ [RollTable.Word]: 'The word of the day is...'
+} as const satisfies {readonly [key in RollTable]: string}
+
+export const RollTableNames = {
+ [RollTable.Setting]: 'Setting',
+ [RollTable.Theme]: 'Theme',
+ [RollTable.Start]: 'Inciting Incident',
+ [RollTable.Challenge]: 'Challenge',
+ [RollTable.Twist]: 'Twist',
+ [RollTable.Focus]: 'Vore Scene Focus',
+ [RollTable.Word]: 'Word of the Day'
+} as const satisfies {readonly [key in RollTable]: string}
+
+
+export const RollTableEmbedsReversed = {
+ "\u{1f3d9}\ufe0f The action takes place...": RollTable.Setting,
+ "\u{1f4d4} The encounter is themed around...": RollTable.Theme,
+ "\u25b6\ufe0f The action begins when...": RollTable.Start,
+ "\u{1f613} Things are more difficult because...": RollTable.Challenge,
+ "\u{1f500} Partway through, unexpectedly...": RollTable.Twist,
+ "\u{1f444} The vore scene is focused on...": RollTable.Focus,
+ "\u{2728} The word of the day is...": RollTable.Word,
+} as const satisfies {readonly [key in RollTable as `${typeof RollTableEmoji[key]} ${typeof RollTableEmbedTitles[key]}`]: key} & {[other: string]: RollTable}
+
+export function calculateUnlockedValues(original?: ComponentValues|undefined, locks?: ComponentLocks|undefined): RollTable[] {
+ if (!original && !locks) {
+ return RollTableOrder
+ }
+ const existingItems = original ? RollTableOrder.filter(v => typeof original[v] !== "undefined") : RollTableOrder
+ return locks ? existingItems.filter(v => locks[v] !== true) : existingItems
+}
+
+export function generateValuesFor(selected: readonly RollTable[], tables: RollableTables, original: ComponentValues = {}): ComponentValues {
+ const result: ComponentValues = Object.assign({}, original)
+ for (const table of selected) {
+ result[table] = rollOn(table, tables)
+ }
+ return result
+}
+
+export const LOCK_SUFFIX = " \u{1f512}"
+export const UNLOCK_SUFFIX = " \u{1f513}"
+
+export function generateFieldFor(field: RollTable, value: string, lock: boolean|null = null) {
+ return {
+ name: RollTableEmoji[field] + " " + RollTableEmbedTitles[field] + (lock !== null ? (lock ? LOCK_SUFFIX : UNLOCK_SUFFIX) : ""),
+ value,
+ }
+}
+
+export function generateEmbedFor(values: ComponentValues, locks: ComponentLocks|undefined): MessageEmbedOptions {
+ const fields: EmbedField[] = []
+ const usableLocks = locks ?? {}
+ for (const field of RollTableOrder) {
+ const value = values[field]
+ if (value) {
+ fields.push(generateFieldFor(field, value, usableLocks.hasOwnProperty(field) ? usableLocks[field] : null))
+ }
+ }
+ return {
+ title: 'Your generated scenario',
+ fields,
+ timestamp: new Date().toISOString()
+ }
+}
+
+export function getEmbedFrom({embeds}: {embeds?: MessageEmbed[]|undefined}): MessageEmbed {
+ const result = embeds && embeds.length >= 1 ? embeds[0] : null
+ if (!result) {
+ throw Error("there were no embeds on the message to read")
+ }
+ return result
+}
+export function loadEmbed(embed: MessageEmbed): GeneratedMessage {
+ const result: {values: ComponentValues, locked: ComponentLocks} = {
+ values: {},
+ locked: {},
+ }
+ if (!embed.fields || embed.fields.length === 0) {
+ throw Error("there were no fields on the embed to read")
+ }
+ for (const field of embed.fields!) {
+ let locked: boolean|undefined,
+ name = field.name
+ if (name.endsWith(LOCK_SUFFIX)) {
+ locked = true
+ name = name.substring(0, name.length - LOCK_SUFFIX.length)
+ } else if (name.endsWith(UNLOCK_SUFFIX)) {
+ locked = false
+ name = name.substring(0, name.length - UNLOCK_SUFFIX.length)
+ } else {
+ throw Error(`there was no lock or unlock suffix on ${name}`)
+ }
+ const value = field.value
+ if (RollTableEmbedsReversed.hasOwnProperty(name)) {
+ const table = RollTableEmbedsReversed[name as keyof typeof RollTableEmbedsReversed]
+ if (typeof locked !== "undefined") {
+ result.locked[table] = locked
+ }
+ result.values[table] = value
+ } else {
+ throw Error(`I don't know a field named ${name}`)
+ }
+ }
+ return result
+}
+
+export function populateLocksFor(values: ComponentValues, original?: ComponentLocks|undefined): ComponentLocks {
+ const result = Object.assign({}, original)
+ for (const table of RollTableOrder) {
+ if (typeof values[table] !== "undefined") {
+ result[table] = result[table] ?? true
+ }
+ }
+ return result
+}
+
+export function selectUnlockedFrom(values: string[], oldLocks?: ComponentLocks | undefined): ComponentLocks {
+ const result = Object.assign({}, oldLocks ?? {})
+ for (const table of RollTableOrder) {
+ if (result.hasOwnProperty(table)) {
+ result[table] = !values.includes(`${table}`)
+ }
+ }
+ return result
+}
+
+export const SELECT_ID = "selected"
+export const REROLL_ID = "reroll"
+export const DONE_ID = "done"
+export const DELETE_ID = "delete"
+
+export function generateActionsFor(values: ComponentValues, locks: ComponentLocks|undefined): ComponentActionRow[] {
+ if (!locks) {
+ return []
+ }
+ const items = RollTableOrder.filter((v) => values.hasOwnProperty(v))
+ const lockedItems = items.filter((v) => locks[v] === true)
+ const selectOptions: ComponentSelectOption[] = items.map((v) => ({
+ default: !(locks[v] ?? false),
+ value: `${v}`,
+ label: RollTableNames[v],
+ emoji: {name: RollTableEmoji[v]}
+ }))
+ if (selectOptions.length === 0) {
+ return []
+ }
+ const select: ComponentSelectMenu = {
+ type: ComponentType.STRING_SELECT,
+ custom_id: SELECT_ID,
+ disabled: false,
+ max_values: selectOptions.length,
+ min_values: 0,
+ options: selectOptions,
+ placeholder: 'Components to reroll'
+ }
+ const selectRow: ComponentActionRow = { type: ComponentType.ACTION_ROW, components: [ select ] }
+ const rerollButton: ComponentButton = {
+ type: ComponentType.BUTTON,
+ custom_id: REROLL_ID,
+ disabled: lockedItems.length === items.length,
+ emoji: {name: '\u{1f3b2}'},
+ label: (lockedItems.length === 0 ? "Reroll ALL" : "Reroll Selected"),
+ style: ButtonStyle.PRIMARY
+ }
+ const doneButton: ComponentButton = {
+ type: ComponentType.BUTTON,
+ custom_id: DONE_ID,
+ disabled: false,
+ emoji: { name: '\u{1f44d}' },
+ label: 'Looks good!',
+ style: ButtonStyle.SUCCESS,
+ }
+ const deleteButton: ComponentButton = {
+ type: ComponentType.BUTTON,
+ custom_id: DELETE_ID,
+ disabled: false,
+ emoji: { name: '\u{1f5d1}\ufe0f' },
+ label: 'Trash it.',
+ style: ButtonStyle.DESTRUCTIVE,
+ }
+ const buttonRow: ComponentActionRow = { type: ComponentType.ACTION_ROW, components: [rerollButton, doneButton, deleteButton] }
+ return [selectRow, buttonRow]
+}
+
+export function generateMessageFor(values: ComponentValues, locks: ComponentLocks|undefined): MessageOptions {
+ return { embeds: [generateEmbedFor(values, locks)], components: generateActionsFor(values, locks), ephemeral: false }
+}
+
+export function generateErrorMessageFor(e: unknown, context?: string): MessageOptions {
+ console.error(`Error when trying to ${context ?? "do something (unknown context)"}`, e)
+ return {
+ content: `I wasn't able to ${context ?? "do that"}. Thing is, ${e}...`,
+ ephemeral: true,
+ }
+}
diff --git a/src/index.ts b/src/index.ts
index 8087b85..61d159c 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -8,25 +8,121 @@
* Learn more at https://developers.cloudflare.com/workers/
*/
+import { CloudflareWorkerServer, SlashCreator } from 'slash-create/web';
+import { GenerateCommand, ResponseCommand } from './commands.js';
+import { DbAccess } from './dbAccess.js';
+import { isSnowflake, type Snowflake } from 'discord-snowflake';
+import { RollTableOrder } from './rolltable.js';
+import { RollTableEmbedTitles, RollTableEmoji, RollTableNames } from './generated.js';
+
export interface Env {
- // Example binding to KV. Learn more at https://developers.cloudflare.com/workers/runtime-apis/kv/
- // MY_KV_NAMESPACE: KVNamespace;
- //
- // Example binding to Durable Object. Learn more at https://developers.cloudflare.com/workers/runtime-apis/durable-objects/
- // MY_DURABLE_OBJECT: DurableObjectNamespace;
- //
- // Example binding to R2. Learn more at https://developers.cloudflare.com/workers/runtime-apis/r2/
- // MY_BUCKET: R2Bucket;
- //
- // Example binding to a Service. Learn more at https://developers.cloudflare.com/workers/runtime-apis/service-bindings/
- // MY_SERVICE: Fetcher;
- //
- // Example binding to a Queue. Learn more at https://developers.cloudflare.com/queues/javascript-apis/
- // MY_QUEUE: Queue;
+ BASE_URL: string;
+ DISCORD_APP_ID: string
+ DISCORD_APP_SECRET: string
+ DISCORD_PUBLIC_KEY: string
+ DISCORD_DEV_GUILD_IDS: string
+ DB: D1Database
+}
+
+function getHandler(env: Env, token?: string) {
+ const dbAccess = new DbAccess(env.DB)
+ const server = new CloudflareWorkerServer()
+ const creator = new SlashCreator({
+ allowedMentions: {everyone: false, roles: false, users: false},
+ applicationID: env.DISCORD_APP_ID,
+ componentTimeouts: true,
+ defaultImageSize: 0,
+ disableTimeouts: false,
+ endpointPath: '/discord/interactions',
+ handleCommandsManually: false,
+ publicKey: env.DISCORD_PUBLIC_KEY,
+ unknownCommandResponse: true,
+ token: token,
+ })
+ const withGuilds: Snowflake[] = env.DISCORD_DEV_GUILD_IDS ? env.DISCORD_DEV_GUILD_IDS.split(",").flatMap(v => isSnowflake(v) ? [v] : []) : []
+ creator.withServer(server)
+ creator.registerCommand(new GenerateCommand(creator, dbAccess))
+ creator.registerCommand(new ResponseCommand(creator, dbAccess, env.BASE_URL))
+ creator.registerCommand(new GenerateCommand(creator, dbAccess, withGuilds))
+ creator.registerCommand(new ResponseCommand(creator, dbAccess, env.BASE_URL, withGuilds))
+
+ return {
+ fetch: server.fetch.bind(server),
+ syncCommands: creator.syncCommands.bind(creator),
+ db: dbAccess,
+ }
+}
+
+function getAuthorization(username: string, password: string): string {
+ return btoa(username + ":" + password)
}
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise {
- return new Response('Hello World!');
+ const tokenRequest = new Request(`https://discord.com/api/v10/oauth2/token`, {
+ headers: new Headers({
+ "Content-Type": "application/x-www-form-urlencoded",
+ "Authorization": `Basic ${getAuthorization(env.DISCORD_APP_ID, env.DISCORD_APP_SECRET)}`,
+ }),
+ body: new URLSearchParams({"grant_type": "client_credentials", "scope": "applications.commands.update"}),
+ method: "POST"
+ })
+ const tokenResponse = await fetch(tokenRequest)
+ if (tokenResponse.status !== 200) {
+ const text = await tokenResponse.text()
+ console.error(`Failed getting token`, text)
+ return new Response(`Could not sync commands: Failed getting token: ${tokenResponse.status} ${tokenResponse.statusText}\n${text}`, {status: 500})
+ }
+ const json = await tokenResponse.json() as {access_token: string}
+ const handler = getHandler(env, "Bearer " + json.access_token)
+ const url = new URL(request.url)
+ if (url.pathname === "/discord/interactions") {
+ try {
+ return handler.fetch(request, env, ctx)
+ } catch (e) {
+ console.error("Failed to respond to interactions endpoint", e);
+ return new Response(`Could not respond to interaction: ${e}`, {
+ status: 500
+ })
+ }
+ } else if (url.pathname === "/discord/sync") {
+ try {
+ await handler.syncCommands({
+ deleteCommands: true,
+ syncGuilds: true,
+ })
+ } catch (e) {
+ console.error("Failed to respond to sync endpoint", e)
+ return new Response(`Could not sync commands: ${e}`, {
+ status: 500,
+ })
+ }
+ return new Response(`Synced commands!`, {
+ status: 200,
+ })
+ } else if (url.pathname === "/responses") {
+ try {
+ const response = []
+ const server = url.searchParams.get("server")
+ const tables = await (server === null
+ ? handler.db.getGlobalResponses()
+ : handler.db.getResponsesInServer(server))
+ for (const table of RollTableOrder) {
+ response.push(`${RollTableNames[table]} - ${RollTableEmoji[table]} ${RollTableEmbedTitles[table]}`)
+ for (const value of tables[table]) {
+ response.push(` * ${value}`)
+ }
+ response.push('')
+ }
+ return new Response(response.join('\n'), {status: 200})
+ } catch (e) {
+ console.error("Failed to respond to list endpoint", e)
+ return new Response(`Could not list responses: ${e}`, {
+ status: 500,
+ })
+ }
+ } else {
+ return new Response(`Invalid path ${url.pathname}`, {status: 404})
+ }
},
};
diff --git a/src/rolltable.ts b/src/rolltable.ts
new file mode 100644
index 0000000..27ed1da
--- /dev/null
+++ b/src/rolltable.ts
@@ -0,0 +1,43 @@
+export enum RollTable {
+ Setting = 0,
+ Theme = 1,
+ Start = 2,
+ Challenge = 3,
+ Twist = 4,
+ Focus = 5,
+ Word = 6,
+}
+
+export enum ValueAccess {
+ Global = 0,
+ Server = 1,
+ CreatorDM = 2,
+}
+
+export const RollTableOrder =
+ [RollTable.Setting, RollTable.Theme, RollTable.Start, RollTable.Challenge, RollTable.Twist, RollTable.Focus, RollTable.Word] as const satisfies RollTable[]
+
+export const RollTableOrdinals =
+ {
+ [RollTable.Setting]: 0,
+ [RollTable.Theme]: 1,
+ [RollTable.Start]: 2,
+ [RollTable.Challenge]: 3,
+ [RollTable.Twist]: 4,
+ [RollTable.Focus]: 5,
+ [RollTable.Word]: 6,
+ } as const satisfies {[key in RollTable]: number} & {[key in Extract as typeof RollTableOrder[key]]: key}
+
+export type RollableTables = {readonly [key in RollTable]: readonly string[]}
+
+export function isTable(val: number): val is RollTable {
+ return RollTableOrdinals.hasOwnProperty(val)
+}
+
+export function rollOn(table: RollTable, tables: RollableTables): string {
+ const values = tables[table]
+ if (values.length === 0) {
+ throw Error(`no possible options for table ${table}`)
+ }
+ return values[Math.floor(values.length * Math.random())]
+}
diff --git a/wrangler.toml b/wrangler.toml
index 03404a2..44ae9ea 100644
--- a/wrangler.toml
+++ b/wrangler.toml
@@ -1,51 +1,17 @@
-name = "ncc-gen"
+name = "vore-scenario-generator"
main = "src/index.ts"
compatibility_date = "2023-12-18"
-# Variable bindings. These are arbitrary, plaintext strings (similar to environment variables)
-# Note: Use secrets to store sensitive data.
-# Docs: https://developers.cloudflare.com/workers/platform/environment-variables
-# [vars]
-# MY_VARIABLE = "production_value"
-
-# Bind a KV Namespace. Use KV as persistent storage for small key-value pairs.
-# Docs: https://developers.cloudflare.com/workers/runtime-apis/kv
-# [[kv_namespaces]]
-# binding = "MY_KV_NAMESPACE"
-# id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
-
-# Bind an R2 Bucket. Use R2 to store arbitrarily large blobs of data, such as files.
-# Docs: https://developers.cloudflare.com/r2/api/workers/workers-api-usage/
-# [[r2_buckets]]
-# binding = "MY_BUCKET"
-# bucket_name = "my-bucket"
-
-# Bind a Queue producer. Use this binding to schedule an arbitrary task that may be processed later by a Queue consumer.
-# Docs: https://developers.cloudflare.com/queues/get-started
-# [[queues.producers]]
-# binding = "MY_QUEUE"
-# queue = "my-queue"
-
-# Bind a Queue consumer. Queue Consumers can retrieve tasks scheduled by Producers to act on them.
-# Docs: https://developers.cloudflare.com/queues/get-started
-# [[queues.consumers]]
-# queue = "my-queue"
-
-# Bind another Worker service. Use this binding to call another Worker without network overhead.
-# Docs: https://developers.cloudflare.com/workers/platform/services
-# [[services]]
-# binding = "MY_SERVICE"
-# service = "my-service"
-
-# Bind a Durable Object. Durable objects are a scale-to-zero compute primitive based on the actor model.
-# Durable Objects can live for as long as needed. Use these when you need a long-running "server", such as in realtime apps.
-# Docs: https://developers.cloudflare.com/workers/runtime-apis/durable-objects
-# [[durable_objects.bindings]]
-# name = "MY_DURABLE_OBJECT"
-# class_name = "MyDurableObject"
-
-# Durable Object migrations.
-# Docs: https://developers.cloudflare.com/workers/learning/using-durable-objects#configure-durable-object-classes-with-migrations
-# [[migrations]]
-# tag = "v1"
-# new_classes = ["MyDurableObject"]
+[vars]
+# BASE_URL
+# DISCORD_APP_ID
+# DISCORD_APP_SECRET
+# DISCORD_PUBLIC_KEY
+# DISCORD_DEV_GUILD_IDS
+
+[[d1_databases]]
+binding = "DB" # i.e. available in your Worker on env.DB
+database_name = "production-ncc-gen"
+database_id = "d09d3c74-c75f-4418-8f1b-2fe7f21637e6"
+migrations_table = "d1_migrations"
+migrations_dir = "migrations"